diff --git a/ANTIGRAVITY_HTTP_API.md b/ANTIGRAVITY_HTTP_API.md new file mode 100644 index 00000000..c7f6c2b2 --- /dev/null +++ b/ANTIGRAVITY_HTTP_API.md @@ -0,0 +1,417 @@ +# Antigravity HTTP API 集成指南 + +## 架构 + +``` +下游客户端(IDE、工具、脚本) + ↓ (HTTP POST/GET) +sub2api HTTP API + ↓ (内部调用) +LanguageServerService(业务逻辑层) + ↓ (伪装 + 转发) +官方 API(Anthropic/Google) +``` + +## 集成步骤 + +### Step 1:在服务器初始化代码中注册路由 + +编辑 `backend/cmd/server/main.go`: + +```go +package main + +import ( + "log/slog" + "net/http" + + "github.com/gin-gonic/gin" + "github.com/Wei-Shaw/sub2api/internal/handler" + "github.com/Wei-Shaw/sub2api/internal/service" +) + +func main() { + // 初始化日志 + logger := slog.Default() + + // 创建 Gin 引擎 + router := gin.Default() + + // ======================================== + // 初始化 Antigravity HTTP API + // ======================================== + + // 1. 创建业务逻辑层 + langServerService := service.NewLanguageServerService(logger) + + // 2. 创建 HTTP 处理器 + antigravityHTTPHandler := handler.NewAntigravityHTTPHandler( + langServerService, + logger, + ) + + // 3. 注册所有路由 + antigravityHTTPHandler.RegisterRoutes(router) + + // ======================================== + // 启动服务器 + // ======================================== + + addr := ":8080" + logger.Info("starting server", "addr", addr) + + if err := router.Run(addr); err != nil { + logger.Error("server error", "error", err) + } +} +``` + +### Step 2:测试 API 端点 + +#### 启动会话 + +```bash +curl -X POST http://localhost:8080/api/v1/cascade/start \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer YOUR_OAUTH_TOKEN" \ + -d '{ + "model": "claude-opus-4-6", + "system_prompt": "You are a helpful assistant.", + "metadata": { + "user-agent": "Claude IDE v1.0.0", + "machine-id": "auth0|user_abc123", + "mac-machine-id": "12345678-1234-1234-1234-123456789012", + "dev-device-id": "87654321-4321-4321-4321-210987654321" + } + }' + +# 响应示例: +# { +# "cascade_id": "550e8400-e29b-41d4-a716-446655440000" +# } +``` + +#### 发送消息(流式) + +```bash +curl -X POST http://localhost:8080/api/v1/cascade/message \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer YOUR_OAUTH_TOKEN" \ + -d '{ + "cascade_id": "550e8400-e29b-41d4-a716-446655440000", + "message": "What is the capital of France?" + }' + +# 响应为 Server-Sent Events (SSE): +# data: {"type":"message_delta","payload":"..."} +# data: {"type":"message_delta","payload":"..."} +# data: {"type":"completion","payload":"..."} +``` + +#### 获取模型列表 + +```bash +curl -X GET http://localhost:8080/api/v1/models + +# 响应示例: +# { +# "default_model": "claude-opus-4-6", +# "models": [ +# { +# "name": "claude-opus-4-6", +# "display_name": "Claude Opus 4.6", +# "max_tokens": 200000, +# "supports_thinking": true, +# "provider": "anthropic" +# }, +# ... +# ] +# } +``` + +#### 健康检查 + +```bash +curl -X GET http://localhost:8080/api/v1/health + +# 响应示例: +# { +# "status": "running", +# "version": "1.0.0" +# } +``` + +### Step 3:客户端连接示例(Python) + +```python +import requests +import json +from sseclient import SSEClient + +# 1. 启动会话 +BASE_URL = "http://localhost:8080/api/v1" +TOKEN = "Bearer YOUR_OAUTH_TOKEN" + +headers = { + "Authorization": TOKEN, + "Content-Type": "application/json", +} + +# 启动 Cascade +response = requests.post( + f"{BASE_URL}/cascade/start", + headers=headers, + json={ + "model": "claude-opus-4-6", + "system_prompt": "You are a helpful AI assistant.", + "metadata": { + "user-agent": "MyApp/1.0", + "machine-id": "auth0|user_xyz789", + } + } +) + +cascade_id = response.json()["cascade_id"] +print(f"Cascade started: {cascade_id}") + +# 2. 发送消息(流式) +message_response = requests.post( + f"{BASE_URL}/cascade/message", + headers=headers, + json={ + "cascade_id": cascade_id, + "message": "Hello! How are you?" + }, + stream=True, +) + +# 3. 接收流式更新 +client = SSEClient(message_response) +for event in client: + if event.event == "update": + data = json.loads(event.data) + print(f"Update: {data['type']} - {data['payload']}") +``` + +### Step 4:客户端连接示例(TypeScript/Node.js) + +```typescript +import axios from 'axios'; + +const BASE_URL = 'http://localhost:8080/api/v1'; +const TOKEN = 'Bearer YOUR_OAUTH_TOKEN'; + +const headers = { + 'Authorization': TOKEN, + 'Content-Type': 'application/json', +}; + +async function runCascade() { + // 1. 启动会话 + const startResponse = await axios.post( + `${BASE_URL}/cascade/start`, + { + model: 'claude-opus-4-6', + system_prompt: 'You are a helpful assistant.', + metadata: { + 'user-agent': 'MyApp/1.0', + 'machine-id': 'auth0|user_xyz789', + } + }, + { headers } + ); + + const cascadeId = startResponse.data.cascade_id; + console.log(`Cascade started: ${cascadeId}`); + + // 2. 发送消息(流式) + const messageResponse = await axios.post( + `${BASE_URL}/cascade/message`, + { + cascade_id: cascadeId, + message: 'Hello! How are you?', + }, + { headers, responseType: 'stream' } + ); + + // 3. 处理 SSE 流 + messageResponse.data.on('data', (chunk: Buffer) => { + const line = chunk.toString(); + if (line.startsWith('data: ')) { + const data = JSON.parse(line.slice(6)); + console.log(`Update: ${data.type} - ${data.payload}`); + } + }); +} + +runCascade().catch(console.error); +``` + +## API 文档 + +### POST /api/v1/cascade/start + +**启动新的 Cascade Agent 会话** + +**请求头:** +- `Authorization: Bearer `(必需) +- `Content-Type: application/json` + +**请求体:** +```json +{ + "model": "claude-opus-4-6", // 模型名称 + "system_prompt": "...", // 系统提示(可选) + "metadata": { // 伪装信息(可选) + "user-agent": "...", + "machine-id": "...", + "mac-machine-id": "...", + "dev-device-id": "...", + "sqm-id": "..." + } +} +``` + +**响应:** +```json +{ + "cascade_id": "uuid" +} +``` + +--- + +### POST /api/v1/cascade/message + +**发送用户消息到 Cascade(流式)** + +**请求头:** +- `Authorization: Bearer `(必需) +- `Content-Type: application/json` + +**请求体:** +```json +{ + "cascade_id": "uuid", + "message": "user message here", + "context": {} // 可选:上下文信息 +} +``` + +**响应:** Server-Sent Events (SSE) 流 +``` +data: {"type":"message_delta","payload":"..."} +data: {"type":"message_delta","payload":"..."} +data: {"type":"completion","payload":"..."} +``` + +--- + +### POST /api/v1/cascade/cancel + +**取消 Cascade 会话** + +**请求体:** +```json +{ + "cascade_id": "uuid" +} +``` + +**响应:** +```json +{ + "success": true +} +``` + +--- + +### GET /api/v1/models + +**获取可用模型列表** + +**响应:** +```json +{ + "default_model": "claude-opus-4-6", + "models": [ + { + "name": "claude-opus-4-6", + "display_name": "Claude Opus 4.6", + "max_tokens": 200000, + "supports_thinking": true, + "supports_images": true, + "provider": "anthropic" + }, + ... + ] +} +``` + +--- + +### GET /api/v1/health + +**健康检查** + +**响应:** +```json +{ + "status": "running", + "version": "1.0.0" +} +``` + +## 关键实现细节 + +### 伪装信息注入 + +在 `LanguageServerService.callUpstreamAPI()` 中,需要: + +1. **User-Agent 注入** + - 从 `session.Metadata["user-agent"]` 提取 + - 或动态生成(IDE 类型 + 版本 + 系统) + +2. **设备指纹注入** + - machine_id: `auth0|user_<32字符base36>` + - mac_machine_id: UUID v4 + - dev_device_id: UUID v4 + - sqm_id: `{UUID_UPPERCASE}` + +3. **TLS 指纹伪装** + - 由 `http.Transport` 处理 + - 使用 uTLS 库模拟 Claude CLI + +4. **OAuth Token 管理** + - 自动刷新过期 token + - 处理 401 错误重新认证 + +## TODO 清单 + +- [ ] 实现真实的 Anthropic API 调用(替代模拟) +- [ ] 实现 OAuth Token 自动刷新机制 +- [ ] 实现 TLS 指纹和伪装注入 +- [ ] 实现会话持久化(Redis 或数据库) +- [ ] 实现速率限制和多账号轮转 +- [ ] 添加错误处理和重试逻辑 +- [ ] 编写单元测试和集成测试 +- [ ] 生成 API 文档(Swagger/OpenAPI) + +## 文件结构 + +``` +backend/ +├── internal/ +│ ├── handler/ +│ │ └── antigravity_http.go # HTTP 处理器(已实现) +│ ├── service/ +│ │ └── language_server_service.go # 业务逻辑层(已实现) +│ └── pkg/ +│ └── anthropic/ +│ └── client.go # Anthropic 客户端(待完善) +│ +├── cmd/server/ +│ └── main.go # 服务器入口(需更新) +``` + diff --git a/IMPLEMENTATION_SUMMARY.md b/IMPLEMENTATION_SUMMARY.md new file mode 100644 index 00000000..1d6c3da0 --- /dev/null +++ b/IMPLEMENTATION_SUMMARY.md @@ -0,0 +1,270 @@ +# ✅ Antigravity HTTP API 实现完成总结 + +## 📐 架构确认 + +``` +下游客户端(IDE、工具、脚本) + ↓ (HTTP POST/GET) +sub2api HTTP 服务 + ├─ POST /api/v1/cascade/start (启动会话) + ├─ POST /api/v1/cascade/message (发送消息,流式) + ├─ POST /api/v1/cascade/cancel (取消会话) + ├─ GET /api/v1/models (获取模型列表) + └─ GET /api/v1/health (健康检查) + + ↓ (内部调用) +LanguageServerService(业务逻辑层) + ├─ StartCascade() + ├─ SendUserMessage() + ├─ CancelCascade() + ├─ GetAvailableModels() + └─ GetStatus() + + ↓ (伪装 + 转发) +官方 API(Anthropic) +``` + +## ✅ 已完成的实现 + +### 1. HTTP 处理层 +**文件:** `backend/internal/handler/antigravity_http.go` + +- ✅ `StartCascade` - HTTP POST 端点 +- ✅ `SendUserMessage` - HTTP POST 端点(SSE 流式) +- ✅ `CancelCascade` - HTTP POST 端点 +- ✅ `GetModels` - HTTP GET 端点 +- ✅ `Health` - HTTP GET 端点 +- ✅ 路由注册函数 + +### 2. 业务逻辑层 +**文件:** `backend/internal/service/language_server_service.go` + +- ✅ `StartCascade()` - 创建会话、生成 ID、保存元数据 +- ✅ `SendUserMessage()` - 消息处理、流式 API 调用 +- ✅ `CancelCascade()` - 取消会话 +- ✅ `GetAvailableModels()` - 返回模型列表 +- ✅ `GetStatus()` - 返回服务状态 +- ✅ 会话管理(线程安全) +- ✅ 模拟 API 响应(临时) + +### 3. 文档 +- ✅ `ANTIGRAVITY_HTTP_API.md` - 完整的集成指南 +- ✅ `.claude/plan/language-server-implementation-roadmap.md` - 实现路线图 +- ✅ `.claude/plan/antigravity-security-hardening.md` - 安全加固计划 + +## 📦 关键代码框架 + +### 服务层结构 +```go +type LanguageServerService struct { + cascadeSessions map[string]*CascadeSession // 会话存储 + sessionMutex sync.RWMutex // 线程安全 + logger *slog.Logger +} + +type CascadeSession struct { + ID string + ModelName string + Messages []map[string]interface{} // 聊天历史 + Metadata map[string]string // 伪装信息(User-Agent、设备指纹等) + Token string // OAuth token + CreatedAt int64 +} +``` + +### HTTP 端点示例 +```go +// 启动会话 +POST /api/v1/cascade/start +Body: { "model": "claude-opus-4-6", "metadata": {...} } +Response: { "cascade_id": "uuid" } + +// 发送消息(流式) +POST /api/v1/cascade/message +Body: { "cascade_id": "uuid", "message": "..." } +Response: Server-Sent Events 流 + +// 模型列表 +GET /api/v1/models +Response: { "models": [...], "default_model": "..." } +``` + +## 🔧 接下来需要做什么 + +### Phase 1:连接上游 API(必需) +**预计 1-2 天** → ✅ **进行中** + +已完成: +- ✅ 注入 `HTTPUpstream` 服务到 `LanguageServerService` +- ✅ 实现 `callUpstreamAPI()` 方法,使用真实的 HTTP 请求 +- ✅ 实现 `streamUpstreamResponse()` 处理 SSE 流式响应 +- ✅ 完整的错误处理和日志记录 +- ✅ 请求头设置(Authorization、User-Agent、Content-Type) +- ✅ 响应体解压和流式处理 + +核心实现代码: +```go +// 使用 httpUpstream 服务发送请求 +resp, err := svc.httpUpstream.Do(req, "", 0, 10) + +// 处理 SSE 流式响应 +scanner := bufio.NewScanner(resp.Body) +for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + // 解析 SSE 格式并转发到客户端 +} +``` + +待完成: +- [ ] Wire 依赖注入集成(需要在 wire.go 中添加 Provider) +- [ ] 实际环境测试(使用 ANTHROPIC_BASE_URL 和 ANTHROPIC_API_KEY) +- [ ] Token 管理和自动刷新 + +### Phase 2:伪装层增强(关键) +**预计 2-3 天** + +- [ ] User-Agent 动态生成(IDE 类型 + 版本 + 系统) +- [ ] 设备指纹生成和注入 +- [ ] TLS 指纹验证(JA3/JA4) +- [ ] OAuth token 自动刷新机制 +- [ ] 请求头完整性检查 + +### Phase 3:测试和验证 +**预计 1-2 天** + +- [ ] 单元测试(会话管理、消息处理) +- [ ] 集成测试(完整流程) +- [ ] 真实 API 测试(实际调用 Anthropic) +- [ ] 伪装验证(TLS 抓包、指纹对比) + +### Phase 4:生产部署 +**预计 1 天** + +- [ ] 环境配置(OAuth credentials、API keys) +- [ ] 监控和日志(会话数、成功率、延迟) +- [ ] 性能优化(连接池、缓存) +- [ ] 安全检查(密钥管理、访问控制) + +## 🎯 当前状态 + +| 组件 | 状态 | 进度 | +|------|------|------| +| HTTP 处理层 | ✅ 完成 | 100% | +| 业务逻辑层 | ✅ 完成 | 100% | +| 上游 API 集成 | ✅ 实现完成 | 95% | +| Wire 依赖注入 | ⏳ 待做 | 0% | +| 伪装层 | ⏳ 待做 | 0% | +| 测试 | ⏳ 待做 | 0% | +| 文档 | ✅ 完成 | 100% | + +## 🚀 快速启动 + +### 1. 验证代码编译 +```bash +cd /Users/win/2025/aitool/MiniGravity/sub2api +go build ./backend/cmd/server +``` + +### 2. 更新服务器启动代码 +编辑 `backend/cmd/server/main.go`,按 `ANTIGRAVITY_HTTP_API.md` 中的示例注册路由。 + +### 3. 启动服务器 +```bash +go run ./backend/cmd/server +``` + +### 4. 测试端点 +```bash +# 获取模型列表 +curl http://localhost:8080/api/v1/models + +# 启动会话 +curl -X POST http://localhost:8080/api/v1/cascade/start \ + -H "Authorization: Bearer YOUR_TOKEN" \ + -d '{"model":"claude-opus-4-6"}' +``` + +## 📝 文件清单 + +``` +backend/ +├── internal/ +│ ├── handler/ +│ │ └── antigravity_http.go ✅ HTTP 处理器(完成) +│ ├── service/ +│ │ └── language_server_service.go ✅ 业务逻辑(完成框架) +│ ├── pkg/ +│ │ └── anthropic/ +│ │ └── client.go ⏳ 需要增强 +│ └── ... +│ +├── cmd/server/ +│ └── main.go ⏳ 需要更新(注册路由) +└── ... + +根目录/ +├── ANTIGRAVITY_HTTP_API.md ✅ API 集成指南(完成) +├── .claude/plan/ +│ ├── language-server-implementation-roadmap.md ✅ 实现路线图 +│ └── antigravity-security-hardening.md ✅ 安全计划 +└── proto/ + └── language_server_simplified.proto ✅ Proto 定义(备用) +``` + +## 💡 设计亮点 + +1. **简洁清晰的分层** + - HTTP 层负责请求/响应 + - Service 层负责业务逻辑 + - 上游 API 层负责转发 + +2. **线程安全的会话管理** + - 使用 `sync.RWMutex` 保护会话存储 + - 支持并发消息处理 + +3. **灵活的伪装信息** + - 通过 metadata 注入任意伪装信息 + - 易于扩展新的伪装字段 + +4. **标准的 SSE 流式响应** + - 使用 Server-Sent Events + - 兼容所有 HTTP 客户端 + +## ❓ 常见问题 + +### Q1: 如何处理多个并发客户端? +A: `LanguageServerService` 使用 `sync.RWMutex` 保护会话存储,支持并发读写。每个会话独立,互不影响。 + +### Q2: 如何注入伪装信息? +A: 在 `POST /api/v1/cascade/start` 的请求中通过 `metadata` 字段注入: +```json +{ + "metadata": { + "user-agent": "Claude IDE v1.0", + "machine-id": "auth0|user_...", + ... + } +} +``` + +### Q3: 支持哪些模型? +A: 目前支持:Claude Opus/Sonnet/Haiku、Gemini。通过 `GET /api/v1/models` 查看完整列表。 + +### Q4: 如何处理 OAuth token? +A: Token 通过 HTTP 请求头传递: +``` +Authorization: Bearer +``` +Service 层会自动刷新过期 token(待实现)。 + +## 📞 技术支持 + +- **整体架构**:HTTP 层 → Service 层 → Anthropic API +- **关键文件**:`antigravity_http.go`、`language_server_service.go` +- **集成指南**:`ANTIGRAVITY_HTTP_API.md` +- **下一步**:实现上游 API 调用和伪装层 + +--- + +**状态**:✅ Phase 1 实现完成,可开始 Wire 集成和实测 +**下一个里程碑**:Wire 依赖注入 + 伪装层实现(预计 1-2 天) diff --git a/antigravity_tools/device_original.json b/antigravity_tools/device_original.json new file mode 100644 index 00000000..3155065f --- /dev/null +++ b/antigravity_tools/device_original.json @@ -0,0 +1,6 @@ +{ + "machine_id": "auth0|user_ubulk8ajegkkadrbwxxuggwussjerynp", + "mac_machine_id": "a2e58794-1539-4ae4-8cf4-a541152dc5fd", + "dev_device_id": "0e8aef44-12f6-45ce-aba3-d68b867c20d2", + "sqm_id": "{AAC0F97A-67D0-462F-9834-58898594C504}" +} \ No newline at end of file diff --git a/antigravity_tools/gui_config.json b/antigravity_tools/gui_config.json new file mode 100644 index 00000000..0a6cf1a5 --- /dev/null +++ b/antigravity_tools/gui_config.json @@ -0,0 +1,140 @@ +{ + "language": "zh", + "theme": "system", + "auto_refresh": true, + "refresh_interval": 15, + "auto_sync": false, + "sync_interval": 5, + "default_export_path": null, + "proxy": { + "enabled": false, + "allow_lan_access": false, + "auth_mode": "auto", + "port": 8045, + "api_key": "sk-9f0e5a8dc10848d9aa8d2d4f97481d0f", + "admin_password": null, + "auto_start": false, + "custom_mapping": {}, + "request_timeout": 120, + "enable_logging": true, + "debug_logging": { + "enabled": false, + "output_dir": null + }, + "upstream_proxy": { + "enabled": false, + "url": "" + }, + "zai": { + "enabled": false, + "base_url": "https://api.z.ai/api/anthropic", + "api_key": "", + "dispatch_mode": "off", + "model_mapping": {}, + "models": { + "opus": "glm-4.7", + "sonnet": "glm-4.7", + "haiku": "glm-4.5-air" + }, + "mcp": { + "enabled": false, + "web_search_enabled": false, + "web_reader_enabled": false, + "vision_enabled": false + } + }, + "user_agent_override": null, + "scheduling": { + "mode": "Balance", + "max_wait_seconds": 60 + }, + "experimental": { + "enable_signature_cache": true, + "enable_tool_loop_recovery": true, + "enable_cross_model_checks": true, + "enable_usage_scaling": false, + "context_compression_threshold_l1": 0.4, + "context_compression_threshold_l2": 0.55, + "context_compression_threshold_l3": 0.7 + }, + "security_monitor": { + "blacklist": { + "enabled": false, + "block_message": "Access denied" + }, + "whitelist": { + "enabled": false, + "whitelist_priority": true + } + }, + "preferred_account_id": null, + "saved_user_agent": "antigravity/1.15.8 darwin/arm64", + "thinking_budget": { + "mode": "auto", + "custom_value": 24576 + }, + "global_system_prompt": { + "enabled": false, + "content": "" + }, + "image_thinking_mode": null, + "proxy_pool": { + "enabled": false, + "proxies": [], + "health_check_interval": 300, + "auto_failover": true, + "strategy": "priority", + "account_bindings": {} + } + }, + "antigravity_executable": null, + "antigravity_args": null, + "auto_launch": false, + "scheduled_warmup": { + "enabled": false, + "monitored_models": [ + "gemini-3-flash", + "claude", + "gemini-3-pro-high", + "gemini-3-pro-image" + ] + }, + "quota_protection": { + "enabled": true, + "threshold_percentage": 10, + "monitored_models": [ + "claude", + "gemini-3-pro-high", + "gemini-3-flash", + "gemini-3-pro-image", + "gemini-3.1-pro-high", + "gemini-3.1-pro-low", + "claude-sonnet-4-6" + ] + }, + "pinned_quota_models": { + "models": [ + "gemini-3-pro-high", + "gemini-3-flash", + "gemini-3-pro-image", + "claude-sonnet-4-5-thinking" + ] + }, + "circuit_breaker": { + "enabled": true, + "backoff_steps": [ + 60, + 300, + 1800, + 7200 + ] + }, + "hidden_menu_items": [], + "cloudflared": { + "enabled": true, + "mode": "quick", + "port": 8045, + "token": "", + "use_http2": true + } +} \ No newline at end of file diff --git a/antigravity_tools/warmup_history.json b/antigravity_tools/warmup_history.json new file mode 100644 index 00000000..76d48aed --- /dev/null +++ b/antigravity_tools/warmup_history.json @@ -0,0 +1,37 @@ +{ + "degalesitzitery@gmail.com:gemini-2.5-flash-lite:100": 1773982108, + "rattayastacio@gmail.com:gemini-3.1-pro-low:100": 1772877508, + "shbbabwetting719@gmail.com:gemini-3-pro-high:100": 1772097921, + "northcuttmeihofer150@gmail.com:gemini-3-pro-high:100": 1772877508, + "northcuttmeihofer150@gmail.com:gemini-3.1-pro-low:100": 1772877508, + "northcuttmeihofer150@gmail.com:gemini-3-flash:100": 1772877508, + "northcuttmeihofer150@gmail.com:gemini-2.5-flash-thinking:100": 1772877508, + "northcuttmeihofer150@gmail.com:gemini-2.5-pro:100": 1772877508, + "degalesitzitery@gmail.com:gemini-3-pro-high:100": 1773982098, + "degalesitzitery@gmail.com:gemini-3-flash-agent:100": 1773982092, + "rattayastacio@gmail.com:gemini-2.5-flash-thinking:100": 1772877508, + "northcuttmeihofer150@gmail.com:gemini-3-pro-low:100": 1772877508, + "rattayastacio@gmail.com:gemini-3-pro-high:100": 1772877508, + "degalesitzitery@gmail.com:gemini-2.5-flash:100": 1773982107, + "shbbabwetting719@gmail.com:gemini-3-flash:100": 1772097921, + "rattayastacio@gmail.com:gemini-2.5-flash:100": 1772877508, + "degalesitzitery@gmail.com:gemini-3-pro-low:100": 1773982097, + "degalesitzitery@gmail.com:gemini-3.1-flash-image:100": 1773982106, + "degalesitzitery@gmail.com:gemini-3.1-pro-high:100": 1773982103, + "degalesitzitery@gmail.com:gemini-3-flash:100": 1773982095, + "degalesitzitery@gmail.com:gemini-3.1-pro-low:100": 1773982090, + "northcuttmeihofer150@gmail.com:gemini-3.1-pro-high:100": 1772877508, + "northcuttmeihofer150@gmail.com:gemini-2.5-flash-lite:100": 1772877508, + "northcuttmeihofer150@gmail.com:gemini-2.5-flash:100": 1772877508, + "rattayastacio@gmail.com:gemini-2.5-pro:100": 1772877508, + "northcuttmeihofer150@gmail.com:gemini-3.1-flash-image:100": 1772877508, + "rattayastacio@gmail.com:gemini-3-flash:100": 1772877508, + "rattayastacio@gmail.com:gemini-3.1-pro-high:100": 1772877508, + "rattayastacio@gmail.com:gemini-2.5-flash-lite:100": 1772877508, + "degalesitzitery@gmail.com:gemini-2.5-flash-thinking:100": 1773982096, + "rattayastacio@gmail.com:gemini-3-pro-low:100": 1772877508, + "degalesitzitery@gmail.com:gemini-2.5-pro:100": 1773982109, + "rattayastacio@gmail.com:gemini-3.1-flash-image:100": 1772877508, + "maureendebree@gmail.com:gemini-3-pro-high:100": 1772097921, + "maureendebree@gmail.com:gemini-3-flash:100": 1772097921 +} \ No newline at end of file diff --git a/backend/internal/gen/language_server_pbconnect/language_server_simplified.connect.go b/backend/internal/gen/language_server_pbconnect/language_server_simplified.connect.go new file mode 100644 index 00000000..10999497 --- /dev/null +++ b/backend/internal/gen/language_server_pbconnect/language_server_simplified.connect.go @@ -0,0 +1,499 @@ +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: language_server_simplified.proto + +package language_server_pbconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + language_server_pb "github.com/Wei-Shaw/sub2api/internal/gen/language_server_pb" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion1_13_0 + +const ( + // LanguageServerServiceName is the fully-qualified name of the LanguageServerService service. + LanguageServerServiceName = "exa.language_server_pb.LanguageServerService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // LanguageServerServiceStartCascadeProcedure is the fully-qualified name of the + // LanguageServerService's StartCascade RPC. + LanguageServerServiceStartCascadeProcedure = "/exa.language_server_pb.LanguageServerService/StartCascade" + // LanguageServerServiceSendUserCascadeMessageProcedure is the fully-qualified name of the + // LanguageServerService's SendUserCascadeMessage RPC. + LanguageServerServiceSendUserCascadeMessageProcedure = "/exa.language_server_pb.LanguageServerService/SendUserCascadeMessage" + // LanguageServerServiceCancelCascadeInvocationProcedure is the fully-qualified name of the + // LanguageServerService's CancelCascadeInvocation RPC. + LanguageServerServiceCancelCascadeInvocationProcedure = "/exa.language_server_pb.LanguageServerService/CancelCascadeInvocation" + // LanguageServerServiceAcknowledgeCascadeCodeEditProcedure is the fully-qualified name of the + // LanguageServerService's AcknowledgeCascadeCodeEdit RPC. + LanguageServerServiceAcknowledgeCascadeCodeEditProcedure = "/exa.language_server_pb.LanguageServerService/AcknowledgeCascadeCodeEdit" + // LanguageServerServiceGetCascadeModelConfigsProcedure is the fully-qualified name of the + // LanguageServerService's GetCascadeModelConfigs RPC. + LanguageServerServiceGetCascadeModelConfigsProcedure = "/exa.language_server_pb.LanguageServerService/GetCascadeModelConfigs" + // LanguageServerServiceGetCommandModelConfigsProcedure is the fully-qualified name of the + // LanguageServerService's GetCommandModelConfigs RPC. + LanguageServerServiceGetCommandModelConfigsProcedure = "/exa.language_server_pb.LanguageServerService/GetCommandModelConfigs" + // LanguageServerServiceReadFileProcedure is the fully-qualified name of the LanguageServerService's + // ReadFile RPC. + LanguageServerServiceReadFileProcedure = "/exa.language_server_pb.LanguageServerService/ReadFile" + // LanguageServerServiceWriteFileProcedure is the fully-qualified name of the + // LanguageServerService's WriteFile RPC. + LanguageServerServiceWriteFileProcedure = "/exa.language_server_pb.LanguageServerService/WriteFile" + // LanguageServerServiceReadDirProcedure is the fully-qualified name of the LanguageServerService's + // ReadDir RPC. + LanguageServerServiceReadDirProcedure = "/exa.language_server_pb.LanguageServerService/ReadDir" + // LanguageServerServiceDeleteFileOrDirectoryProcedure is the fully-qualified name of the + // LanguageServerService's DeleteFileOrDirectory RPC. + LanguageServerServiceDeleteFileOrDirectoryProcedure = "/exa.language_server_pb.LanguageServerService/DeleteFileOrDirectory" + // LanguageServerServiceStatUriProcedure is the fully-qualified name of the LanguageServerService's + // StatUri RPC. + LanguageServerServiceStatUriProcedure = "/exa.language_server_pb.LanguageServerService/StatUri" + // LanguageServerServiceWatchDirectoryProcedure is the fully-qualified name of the + // LanguageServerService's WatchDirectory RPC. + LanguageServerServiceWatchDirectoryProcedure = "/exa.language_server_pb.LanguageServerService/WatchDirectory" + // LanguageServerServiceHeartbeatProcedure is the fully-qualified name of the + // LanguageServerService's Heartbeat RPC. + LanguageServerServiceHeartbeatProcedure = "/exa.language_server_pb.LanguageServerService/Heartbeat" + // LanguageServerServiceGetStatusProcedure is the fully-qualified name of the + // LanguageServerService's GetStatus RPC. + LanguageServerServiceGetStatusProcedure = "/exa.language_server_pb.LanguageServerService/GetStatus" +) + +// LanguageServerServiceClient is a client for the exa.language_server_pb.LanguageServerService +// service. +type LanguageServerServiceClient interface { + // Cascade 流程 + StartCascade(context.Context, *connect.Request[language_server_pb.StartCascadeRequest]) (*connect.Response[language_server_pb.StartCascadeResponse], error) + SendUserCascadeMessage(context.Context, *connect.Request[language_server_pb.SendUserCascadeMessageRequest]) (*connect.ServerStreamForClient[language_server_pb.CascadeReactiveUpdate], error) + CancelCascadeInvocation(context.Context, *connect.Request[language_server_pb.CancelCascadeInvocationRequest]) (*connect.Response[language_server_pb.CancelCascadeInvocationResponse], error) + AcknowledgeCascadeCodeEdit(context.Context, *connect.Request[language_server_pb.AcknowledgeCascadeCodeEditRequest]) (*connect.Response[language_server_pb.AcknowledgeCascadeCodeEditResponse], error) + // 模型配置 + GetCascadeModelConfigs(context.Context, *connect.Request[language_server_pb.GetCascadeModelConfigsRequest]) (*connect.Response[language_server_pb.GetCascadeModelConfigsResponse], error) + GetCommandModelConfigs(context.Context, *connect.Request[language_server_pb.GetCommandModelConfigsRequest]) (*connect.Response[language_server_pb.GetCommandModelConfigsResponse], error) + // 文件操作 + ReadFile(context.Context, *connect.Request[language_server_pb.ReadFileRequest]) (*connect.Response[language_server_pb.ReadFileResponse], error) + WriteFile(context.Context, *connect.Request[language_server_pb.WriteFileRequest]) (*connect.Response[language_server_pb.WriteFileResponse], error) + ReadDir(context.Context, *connect.Request[language_server_pb.ReadDirRequest]) (*connect.Response[language_server_pb.ReadDirResponse], error) + DeleteFileOrDirectory(context.Context, *connect.Request[language_server_pb.DeleteFileOrDirectoryRequest]) (*connect.Response[language_server_pb.DeleteFileOrDirectoryResponse], error) + StatUri(context.Context, *connect.Request[language_server_pb.StatUriRequest]) (*connect.Response[language_server_pb.StatUriResponse], error) + WatchDirectory(context.Context, *connect.Request[language_server_pb.WatchDirectoryRequest]) (*connect.ServerStreamForClient[language_server_pb.WatchDirectoryResponse], error) + // 健康检查 + Heartbeat(context.Context, *connect.Request[language_server_pb.HeartbeatRequest]) (*connect.Response[language_server_pb.HeartbeatResponse], error) + GetStatus(context.Context, *connect.Request[language_server_pb.GetStatusRequest]) (*connect.Response[language_server_pb.GetStatusResponse], error) +} + +// NewLanguageServerServiceClient constructs a client for the +// exa.language_server_pb.LanguageServerService service. By default, it uses the Connect protocol +// with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To +// use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() +// options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewLanguageServerServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) LanguageServerServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + languageServerServiceMethods := language_server_pb.File_language_server_simplified_proto.Services().ByName("LanguageServerService").Methods() + return &languageServerServiceClient{ + startCascade: connect.NewClient[language_server_pb.StartCascadeRequest, language_server_pb.StartCascadeResponse]( + httpClient, + baseURL+LanguageServerServiceStartCascadeProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("StartCascade")), + connect.WithClientOptions(opts...), + ), + sendUserCascadeMessage: connect.NewClient[language_server_pb.SendUserCascadeMessageRequest, language_server_pb.CascadeReactiveUpdate]( + httpClient, + baseURL+LanguageServerServiceSendUserCascadeMessageProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("SendUserCascadeMessage")), + connect.WithClientOptions(opts...), + ), + cancelCascadeInvocation: connect.NewClient[language_server_pb.CancelCascadeInvocationRequest, language_server_pb.CancelCascadeInvocationResponse]( + httpClient, + baseURL+LanguageServerServiceCancelCascadeInvocationProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("CancelCascadeInvocation")), + connect.WithClientOptions(opts...), + ), + acknowledgeCascadeCodeEdit: connect.NewClient[language_server_pb.AcknowledgeCascadeCodeEditRequest, language_server_pb.AcknowledgeCascadeCodeEditResponse]( + httpClient, + baseURL+LanguageServerServiceAcknowledgeCascadeCodeEditProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("AcknowledgeCascadeCodeEdit")), + connect.WithClientOptions(opts...), + ), + getCascadeModelConfigs: connect.NewClient[language_server_pb.GetCascadeModelConfigsRequest, language_server_pb.GetCascadeModelConfigsResponse]( + httpClient, + baseURL+LanguageServerServiceGetCascadeModelConfigsProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("GetCascadeModelConfigs")), + connect.WithClientOptions(opts...), + ), + getCommandModelConfigs: connect.NewClient[language_server_pb.GetCommandModelConfigsRequest, language_server_pb.GetCommandModelConfigsResponse]( + httpClient, + baseURL+LanguageServerServiceGetCommandModelConfigsProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("GetCommandModelConfigs")), + connect.WithClientOptions(opts...), + ), + readFile: connect.NewClient[language_server_pb.ReadFileRequest, language_server_pb.ReadFileResponse]( + httpClient, + baseURL+LanguageServerServiceReadFileProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("ReadFile")), + connect.WithClientOptions(opts...), + ), + writeFile: connect.NewClient[language_server_pb.WriteFileRequest, language_server_pb.WriteFileResponse]( + httpClient, + baseURL+LanguageServerServiceWriteFileProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("WriteFile")), + connect.WithClientOptions(opts...), + ), + readDir: connect.NewClient[language_server_pb.ReadDirRequest, language_server_pb.ReadDirResponse]( + httpClient, + baseURL+LanguageServerServiceReadDirProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("ReadDir")), + connect.WithClientOptions(opts...), + ), + deleteFileOrDirectory: connect.NewClient[language_server_pb.DeleteFileOrDirectoryRequest, language_server_pb.DeleteFileOrDirectoryResponse]( + httpClient, + baseURL+LanguageServerServiceDeleteFileOrDirectoryProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("DeleteFileOrDirectory")), + connect.WithClientOptions(opts...), + ), + statUri: connect.NewClient[language_server_pb.StatUriRequest, language_server_pb.StatUriResponse]( + httpClient, + baseURL+LanguageServerServiceStatUriProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("StatUri")), + connect.WithClientOptions(opts...), + ), + watchDirectory: connect.NewClient[language_server_pb.WatchDirectoryRequest, language_server_pb.WatchDirectoryResponse]( + httpClient, + baseURL+LanguageServerServiceWatchDirectoryProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("WatchDirectory")), + connect.WithClientOptions(opts...), + ), + heartbeat: connect.NewClient[language_server_pb.HeartbeatRequest, language_server_pb.HeartbeatResponse]( + httpClient, + baseURL+LanguageServerServiceHeartbeatProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("Heartbeat")), + connect.WithClientOptions(opts...), + ), + getStatus: connect.NewClient[language_server_pb.GetStatusRequest, language_server_pb.GetStatusResponse]( + httpClient, + baseURL+LanguageServerServiceGetStatusProcedure, + connect.WithSchema(languageServerServiceMethods.ByName("GetStatus")), + connect.WithClientOptions(opts...), + ), + } +} + +// languageServerServiceClient implements LanguageServerServiceClient. +type languageServerServiceClient struct { + startCascade *connect.Client[language_server_pb.StartCascadeRequest, language_server_pb.StartCascadeResponse] + sendUserCascadeMessage *connect.Client[language_server_pb.SendUserCascadeMessageRequest, language_server_pb.CascadeReactiveUpdate] + cancelCascadeInvocation *connect.Client[language_server_pb.CancelCascadeInvocationRequest, language_server_pb.CancelCascadeInvocationResponse] + acknowledgeCascadeCodeEdit *connect.Client[language_server_pb.AcknowledgeCascadeCodeEditRequest, language_server_pb.AcknowledgeCascadeCodeEditResponse] + getCascadeModelConfigs *connect.Client[language_server_pb.GetCascadeModelConfigsRequest, language_server_pb.GetCascadeModelConfigsResponse] + getCommandModelConfigs *connect.Client[language_server_pb.GetCommandModelConfigsRequest, language_server_pb.GetCommandModelConfigsResponse] + readFile *connect.Client[language_server_pb.ReadFileRequest, language_server_pb.ReadFileResponse] + writeFile *connect.Client[language_server_pb.WriteFileRequest, language_server_pb.WriteFileResponse] + readDir *connect.Client[language_server_pb.ReadDirRequest, language_server_pb.ReadDirResponse] + deleteFileOrDirectory *connect.Client[language_server_pb.DeleteFileOrDirectoryRequest, language_server_pb.DeleteFileOrDirectoryResponse] + statUri *connect.Client[language_server_pb.StatUriRequest, language_server_pb.StatUriResponse] + watchDirectory *connect.Client[language_server_pb.WatchDirectoryRequest, language_server_pb.WatchDirectoryResponse] + heartbeat *connect.Client[language_server_pb.HeartbeatRequest, language_server_pb.HeartbeatResponse] + getStatus *connect.Client[language_server_pb.GetStatusRequest, language_server_pb.GetStatusResponse] +} + +// StartCascade calls exa.language_server_pb.LanguageServerService.StartCascade. +func (c *languageServerServiceClient) StartCascade(ctx context.Context, req *connect.Request[language_server_pb.StartCascadeRequest]) (*connect.Response[language_server_pb.StartCascadeResponse], error) { + return c.startCascade.CallUnary(ctx, req) +} + +// SendUserCascadeMessage calls exa.language_server_pb.LanguageServerService.SendUserCascadeMessage. +func (c *languageServerServiceClient) SendUserCascadeMessage(ctx context.Context, req *connect.Request[language_server_pb.SendUserCascadeMessageRequest]) (*connect.ServerStreamForClient[language_server_pb.CascadeReactiveUpdate], error) { + return c.sendUserCascadeMessage.CallServerStream(ctx, req) +} + +// CancelCascadeInvocation calls +// exa.language_server_pb.LanguageServerService.CancelCascadeInvocation. +func (c *languageServerServiceClient) CancelCascadeInvocation(ctx context.Context, req *connect.Request[language_server_pb.CancelCascadeInvocationRequest]) (*connect.Response[language_server_pb.CancelCascadeInvocationResponse], error) { + return c.cancelCascadeInvocation.CallUnary(ctx, req) +} + +// AcknowledgeCascadeCodeEdit calls +// exa.language_server_pb.LanguageServerService.AcknowledgeCascadeCodeEdit. +func (c *languageServerServiceClient) AcknowledgeCascadeCodeEdit(ctx context.Context, req *connect.Request[language_server_pb.AcknowledgeCascadeCodeEditRequest]) (*connect.Response[language_server_pb.AcknowledgeCascadeCodeEditResponse], error) { + return c.acknowledgeCascadeCodeEdit.CallUnary(ctx, req) +} + +// GetCascadeModelConfigs calls exa.language_server_pb.LanguageServerService.GetCascadeModelConfigs. +func (c *languageServerServiceClient) GetCascadeModelConfigs(ctx context.Context, req *connect.Request[language_server_pb.GetCascadeModelConfigsRequest]) (*connect.Response[language_server_pb.GetCascadeModelConfigsResponse], error) { + return c.getCascadeModelConfigs.CallUnary(ctx, req) +} + +// GetCommandModelConfigs calls exa.language_server_pb.LanguageServerService.GetCommandModelConfigs. +func (c *languageServerServiceClient) GetCommandModelConfigs(ctx context.Context, req *connect.Request[language_server_pb.GetCommandModelConfigsRequest]) (*connect.Response[language_server_pb.GetCommandModelConfigsResponse], error) { + return c.getCommandModelConfigs.CallUnary(ctx, req) +} + +// ReadFile calls exa.language_server_pb.LanguageServerService.ReadFile. +func (c *languageServerServiceClient) ReadFile(ctx context.Context, req *connect.Request[language_server_pb.ReadFileRequest]) (*connect.Response[language_server_pb.ReadFileResponse], error) { + return c.readFile.CallUnary(ctx, req) +} + +// WriteFile calls exa.language_server_pb.LanguageServerService.WriteFile. +func (c *languageServerServiceClient) WriteFile(ctx context.Context, req *connect.Request[language_server_pb.WriteFileRequest]) (*connect.Response[language_server_pb.WriteFileResponse], error) { + return c.writeFile.CallUnary(ctx, req) +} + +// ReadDir calls exa.language_server_pb.LanguageServerService.ReadDir. +func (c *languageServerServiceClient) ReadDir(ctx context.Context, req *connect.Request[language_server_pb.ReadDirRequest]) (*connect.Response[language_server_pb.ReadDirResponse], error) { + return c.readDir.CallUnary(ctx, req) +} + +// DeleteFileOrDirectory calls exa.language_server_pb.LanguageServerService.DeleteFileOrDirectory. +func (c *languageServerServiceClient) DeleteFileOrDirectory(ctx context.Context, req *connect.Request[language_server_pb.DeleteFileOrDirectoryRequest]) (*connect.Response[language_server_pb.DeleteFileOrDirectoryResponse], error) { + return c.deleteFileOrDirectory.CallUnary(ctx, req) +} + +// StatUri calls exa.language_server_pb.LanguageServerService.StatUri. +func (c *languageServerServiceClient) StatUri(ctx context.Context, req *connect.Request[language_server_pb.StatUriRequest]) (*connect.Response[language_server_pb.StatUriResponse], error) { + return c.statUri.CallUnary(ctx, req) +} + +// WatchDirectory calls exa.language_server_pb.LanguageServerService.WatchDirectory. +func (c *languageServerServiceClient) WatchDirectory(ctx context.Context, req *connect.Request[language_server_pb.WatchDirectoryRequest]) (*connect.ServerStreamForClient[language_server_pb.WatchDirectoryResponse], error) { + return c.watchDirectory.CallServerStream(ctx, req) +} + +// Heartbeat calls exa.language_server_pb.LanguageServerService.Heartbeat. +func (c *languageServerServiceClient) Heartbeat(ctx context.Context, req *connect.Request[language_server_pb.HeartbeatRequest]) (*connect.Response[language_server_pb.HeartbeatResponse], error) { + return c.heartbeat.CallUnary(ctx, req) +} + +// GetStatus calls exa.language_server_pb.LanguageServerService.GetStatus. +func (c *languageServerServiceClient) GetStatus(ctx context.Context, req *connect.Request[language_server_pb.GetStatusRequest]) (*connect.Response[language_server_pb.GetStatusResponse], error) { + return c.getStatus.CallUnary(ctx, req) +} + +// LanguageServerServiceHandler is an implementation of the +// exa.language_server_pb.LanguageServerService service. +type LanguageServerServiceHandler interface { + // Cascade 流程 + StartCascade(context.Context, *connect.Request[language_server_pb.StartCascadeRequest]) (*connect.Response[language_server_pb.StartCascadeResponse], error) + SendUserCascadeMessage(context.Context, *connect.Request[language_server_pb.SendUserCascadeMessageRequest], *connect.ServerStream[language_server_pb.CascadeReactiveUpdate]) error + CancelCascadeInvocation(context.Context, *connect.Request[language_server_pb.CancelCascadeInvocationRequest]) (*connect.Response[language_server_pb.CancelCascadeInvocationResponse], error) + AcknowledgeCascadeCodeEdit(context.Context, *connect.Request[language_server_pb.AcknowledgeCascadeCodeEditRequest]) (*connect.Response[language_server_pb.AcknowledgeCascadeCodeEditResponse], error) + // 模型配置 + GetCascadeModelConfigs(context.Context, *connect.Request[language_server_pb.GetCascadeModelConfigsRequest]) (*connect.Response[language_server_pb.GetCascadeModelConfigsResponse], error) + GetCommandModelConfigs(context.Context, *connect.Request[language_server_pb.GetCommandModelConfigsRequest]) (*connect.Response[language_server_pb.GetCommandModelConfigsResponse], error) + // 文件操作 + ReadFile(context.Context, *connect.Request[language_server_pb.ReadFileRequest]) (*connect.Response[language_server_pb.ReadFileResponse], error) + WriteFile(context.Context, *connect.Request[language_server_pb.WriteFileRequest]) (*connect.Response[language_server_pb.WriteFileResponse], error) + ReadDir(context.Context, *connect.Request[language_server_pb.ReadDirRequest]) (*connect.Response[language_server_pb.ReadDirResponse], error) + DeleteFileOrDirectory(context.Context, *connect.Request[language_server_pb.DeleteFileOrDirectoryRequest]) (*connect.Response[language_server_pb.DeleteFileOrDirectoryResponse], error) + StatUri(context.Context, *connect.Request[language_server_pb.StatUriRequest]) (*connect.Response[language_server_pb.StatUriResponse], error) + WatchDirectory(context.Context, *connect.Request[language_server_pb.WatchDirectoryRequest], *connect.ServerStream[language_server_pb.WatchDirectoryResponse]) error + // 健康检查 + Heartbeat(context.Context, *connect.Request[language_server_pb.HeartbeatRequest]) (*connect.Response[language_server_pb.HeartbeatResponse], error) + GetStatus(context.Context, *connect.Request[language_server_pb.GetStatusRequest]) (*connect.Response[language_server_pb.GetStatusResponse], error) +} + +// NewLanguageServerServiceHandler builds an HTTP handler from the service implementation. It +// returns the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewLanguageServerServiceHandler(svc LanguageServerServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + languageServerServiceMethods := language_server_pb.File_language_server_simplified_proto.Services().ByName("LanguageServerService").Methods() + languageServerServiceStartCascadeHandler := connect.NewUnaryHandler( + LanguageServerServiceStartCascadeProcedure, + svc.StartCascade, + connect.WithSchema(languageServerServiceMethods.ByName("StartCascade")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceSendUserCascadeMessageHandler := connect.NewServerStreamHandler( + LanguageServerServiceSendUserCascadeMessageProcedure, + svc.SendUserCascadeMessage, + connect.WithSchema(languageServerServiceMethods.ByName("SendUserCascadeMessage")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceCancelCascadeInvocationHandler := connect.NewUnaryHandler( + LanguageServerServiceCancelCascadeInvocationProcedure, + svc.CancelCascadeInvocation, + connect.WithSchema(languageServerServiceMethods.ByName("CancelCascadeInvocation")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceAcknowledgeCascadeCodeEditHandler := connect.NewUnaryHandler( + LanguageServerServiceAcknowledgeCascadeCodeEditProcedure, + svc.AcknowledgeCascadeCodeEdit, + connect.WithSchema(languageServerServiceMethods.ByName("AcknowledgeCascadeCodeEdit")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceGetCascadeModelConfigsHandler := connect.NewUnaryHandler( + LanguageServerServiceGetCascadeModelConfigsProcedure, + svc.GetCascadeModelConfigs, + connect.WithSchema(languageServerServiceMethods.ByName("GetCascadeModelConfigs")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceGetCommandModelConfigsHandler := connect.NewUnaryHandler( + LanguageServerServiceGetCommandModelConfigsProcedure, + svc.GetCommandModelConfigs, + connect.WithSchema(languageServerServiceMethods.ByName("GetCommandModelConfigs")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceReadFileHandler := connect.NewUnaryHandler( + LanguageServerServiceReadFileProcedure, + svc.ReadFile, + connect.WithSchema(languageServerServiceMethods.ByName("ReadFile")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceWriteFileHandler := connect.NewUnaryHandler( + LanguageServerServiceWriteFileProcedure, + svc.WriteFile, + connect.WithSchema(languageServerServiceMethods.ByName("WriteFile")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceReadDirHandler := connect.NewUnaryHandler( + LanguageServerServiceReadDirProcedure, + svc.ReadDir, + connect.WithSchema(languageServerServiceMethods.ByName("ReadDir")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceDeleteFileOrDirectoryHandler := connect.NewUnaryHandler( + LanguageServerServiceDeleteFileOrDirectoryProcedure, + svc.DeleteFileOrDirectory, + connect.WithSchema(languageServerServiceMethods.ByName("DeleteFileOrDirectory")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceStatUriHandler := connect.NewUnaryHandler( + LanguageServerServiceStatUriProcedure, + svc.StatUri, + connect.WithSchema(languageServerServiceMethods.ByName("StatUri")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceWatchDirectoryHandler := connect.NewServerStreamHandler( + LanguageServerServiceWatchDirectoryProcedure, + svc.WatchDirectory, + connect.WithSchema(languageServerServiceMethods.ByName("WatchDirectory")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceHeartbeatHandler := connect.NewUnaryHandler( + LanguageServerServiceHeartbeatProcedure, + svc.Heartbeat, + connect.WithSchema(languageServerServiceMethods.ByName("Heartbeat")), + connect.WithHandlerOptions(opts...), + ) + languageServerServiceGetStatusHandler := connect.NewUnaryHandler( + LanguageServerServiceGetStatusProcedure, + svc.GetStatus, + connect.WithSchema(languageServerServiceMethods.ByName("GetStatus")), + connect.WithHandlerOptions(opts...), + ) + return "/exa.language_server_pb.LanguageServerService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case LanguageServerServiceStartCascadeProcedure: + languageServerServiceStartCascadeHandler.ServeHTTP(w, r) + case LanguageServerServiceSendUserCascadeMessageProcedure: + languageServerServiceSendUserCascadeMessageHandler.ServeHTTP(w, r) + case LanguageServerServiceCancelCascadeInvocationProcedure: + languageServerServiceCancelCascadeInvocationHandler.ServeHTTP(w, r) + case LanguageServerServiceAcknowledgeCascadeCodeEditProcedure: + languageServerServiceAcknowledgeCascadeCodeEditHandler.ServeHTTP(w, r) + case LanguageServerServiceGetCascadeModelConfigsProcedure: + languageServerServiceGetCascadeModelConfigsHandler.ServeHTTP(w, r) + case LanguageServerServiceGetCommandModelConfigsProcedure: + languageServerServiceGetCommandModelConfigsHandler.ServeHTTP(w, r) + case LanguageServerServiceReadFileProcedure: + languageServerServiceReadFileHandler.ServeHTTP(w, r) + case LanguageServerServiceWriteFileProcedure: + languageServerServiceWriteFileHandler.ServeHTTP(w, r) + case LanguageServerServiceReadDirProcedure: + languageServerServiceReadDirHandler.ServeHTTP(w, r) + case LanguageServerServiceDeleteFileOrDirectoryProcedure: + languageServerServiceDeleteFileOrDirectoryHandler.ServeHTTP(w, r) + case LanguageServerServiceStatUriProcedure: + languageServerServiceStatUriHandler.ServeHTTP(w, r) + case LanguageServerServiceWatchDirectoryProcedure: + languageServerServiceWatchDirectoryHandler.ServeHTTP(w, r) + case LanguageServerServiceHeartbeatProcedure: + languageServerServiceHeartbeatHandler.ServeHTTP(w, r) + case LanguageServerServiceGetStatusProcedure: + languageServerServiceGetStatusHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedLanguageServerServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedLanguageServerServiceHandler struct{} + +func (UnimplementedLanguageServerServiceHandler) StartCascade(context.Context, *connect.Request[language_server_pb.StartCascadeRequest]) (*connect.Response[language_server_pb.StartCascadeResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.StartCascade is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) SendUserCascadeMessage(context.Context, *connect.Request[language_server_pb.SendUserCascadeMessageRequest], *connect.ServerStream[language_server_pb.CascadeReactiveUpdate]) error { + return connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.SendUserCascadeMessage is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) CancelCascadeInvocation(context.Context, *connect.Request[language_server_pb.CancelCascadeInvocationRequest]) (*connect.Response[language_server_pb.CancelCascadeInvocationResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.CancelCascadeInvocation is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) AcknowledgeCascadeCodeEdit(context.Context, *connect.Request[language_server_pb.AcknowledgeCascadeCodeEditRequest]) (*connect.Response[language_server_pb.AcknowledgeCascadeCodeEditResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.AcknowledgeCascadeCodeEdit is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) GetCascadeModelConfigs(context.Context, *connect.Request[language_server_pb.GetCascadeModelConfigsRequest]) (*connect.Response[language_server_pb.GetCascadeModelConfigsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.GetCascadeModelConfigs is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) GetCommandModelConfigs(context.Context, *connect.Request[language_server_pb.GetCommandModelConfigsRequest]) (*connect.Response[language_server_pb.GetCommandModelConfigsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.GetCommandModelConfigs is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) ReadFile(context.Context, *connect.Request[language_server_pb.ReadFileRequest]) (*connect.Response[language_server_pb.ReadFileResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.ReadFile is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) WriteFile(context.Context, *connect.Request[language_server_pb.WriteFileRequest]) (*connect.Response[language_server_pb.WriteFileResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.WriteFile is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) ReadDir(context.Context, *connect.Request[language_server_pb.ReadDirRequest]) (*connect.Response[language_server_pb.ReadDirResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.ReadDir is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) DeleteFileOrDirectory(context.Context, *connect.Request[language_server_pb.DeleteFileOrDirectoryRequest]) (*connect.Response[language_server_pb.DeleteFileOrDirectoryResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.DeleteFileOrDirectory is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) StatUri(context.Context, *connect.Request[language_server_pb.StatUriRequest]) (*connect.Response[language_server_pb.StatUriResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.StatUri is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) WatchDirectory(context.Context, *connect.Request[language_server_pb.WatchDirectoryRequest], *connect.ServerStream[language_server_pb.WatchDirectoryResponse]) error { + return connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.WatchDirectory is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) Heartbeat(context.Context, *connect.Request[language_server_pb.HeartbeatRequest]) (*connect.Response[language_server_pb.HeartbeatResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.Heartbeat is not implemented")) +} + +func (UnimplementedLanguageServerServiceHandler) GetStatus(context.Context, *connect.Request[language_server_pb.GetStatusRequest]) (*connect.Response[language_server_pb.GetStatusResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.GetStatus is not implemented")) +} diff --git a/backend/internal/gen/language_server_simplified.pb.go b/backend/internal/gen/language_server_simplified.pb.go new file mode 100644 index 00000000..a8b8ffc4 --- /dev/null +++ b/backend/internal/gen/language_server_simplified.pb.go @@ -0,0 +1,1977 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v6.33.4 +// source: language_server_simplified.proto + +package language_server_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CascadeReactiveUpdate_UpdateType int32 + +const ( + CascadeReactiveUpdate_UNKNOWN CascadeReactiveUpdate_UpdateType = 0 + CascadeReactiveUpdate_STATE_CHANGE CascadeReactiveUpdate_UpdateType = 1 // Agent 状态变化 + CascadeReactiveUpdate_MESSAGE_DELTA CascadeReactiveUpdate_UpdateType = 2 // 消息增量(流式文本) + CascadeReactiveUpdate_TOOL_CALL CascadeReactiveUpdate_UpdateType = 3 // 工具调用 + CascadeReactiveUpdate_CODE_EDIT CascadeReactiveUpdate_UpdateType = 4 // 代码编辑提案 + CascadeReactiveUpdate_COMPLETION CascadeReactiveUpdate_UpdateType = 5 // Agent 完成 +) + +// Enum value maps for CascadeReactiveUpdate_UpdateType. +var ( + CascadeReactiveUpdate_UpdateType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "STATE_CHANGE", + 2: "MESSAGE_DELTA", + 3: "TOOL_CALL", + 4: "CODE_EDIT", + 5: "COMPLETION", + } + CascadeReactiveUpdate_UpdateType_value = map[string]int32{ + "UNKNOWN": 0, + "STATE_CHANGE": 1, + "MESSAGE_DELTA": 2, + "TOOL_CALL": 3, + "CODE_EDIT": 4, + "COMPLETION": 5, + } +) + +func (x CascadeReactiveUpdate_UpdateType) Enum() *CascadeReactiveUpdate_UpdateType { + p := new(CascadeReactiveUpdate_UpdateType) + *p = x + return p +} + +func (x CascadeReactiveUpdate_UpdateType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CascadeReactiveUpdate_UpdateType) Descriptor() protoreflect.EnumDescriptor { + return file_language_server_simplified_proto_enumTypes[0].Descriptor() +} + +func (CascadeReactiveUpdate_UpdateType) Type() protoreflect.EnumType { + return &file_language_server_simplified_proto_enumTypes[0] +} + +func (x CascadeReactiveUpdate_UpdateType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CascadeReactiveUpdate_UpdateType.Descriptor instead. +func (CascadeReactiveUpdate_UpdateType) EnumDescriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{3, 0} +} + +type FileInfo_Type int32 + +const ( + FileInfo_UNKNOWN FileInfo_Type = 0 + FileInfo_FILE FileInfo_Type = 1 + FileInfo_DIRECTORY FileInfo_Type = 2 + FileInfo_SYMLINK FileInfo_Type = 3 +) + +// Enum value maps for FileInfo_Type. +var ( + FileInfo_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "FILE", + 2: "DIRECTORY", + 3: "SYMLINK", + } + FileInfo_Type_value = map[string]int32{ + "UNKNOWN": 0, + "FILE": 1, + "DIRECTORY": 2, + "SYMLINK": 3, + } +) + +func (x FileInfo_Type) Enum() *FileInfo_Type { + p := new(FileInfo_Type) + *p = x + return p +} + +func (x FileInfo_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FileInfo_Type) Descriptor() protoreflect.EnumDescriptor { + return file_language_server_simplified_proto_enumTypes[1].Descriptor() +} + +func (FileInfo_Type) Type() protoreflect.EnumType { + return &file_language_server_simplified_proto_enumTypes[1] +} + +func (x FileInfo_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FileInfo_Type.Descriptor instead. +func (FileInfo_Type) EnumDescriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{13, 0} +} + +type StartCascadeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` // 模型名称(e.g., "claude-opus-4-6") + SystemPrompt string `protobuf:"bytes,2,opt,name=system_prompt,json=systemPrompt,proto3" json:"system_prompt,omitempty"` // 系统提示(可选) + Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 元数据(设备指纹、User-Agent 等) + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StartCascadeRequest) Reset() { + *x = StartCascadeRequest{} + mi := &file_language_server_simplified_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StartCascadeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartCascadeRequest) ProtoMessage() {} + +func (x *StartCascadeRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StartCascadeRequest.ProtoReflect.Descriptor instead. +func (*StartCascadeRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{0} +} + +func (x *StartCascadeRequest) GetModel() string { + if x != nil { + return x.Model + } + return "" +} + +func (x *StartCascadeRequest) GetSystemPrompt() string { + if x != nil { + return x.SystemPrompt + } + return "" +} + +func (x *StartCascadeRequest) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +type StartCascadeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + CascadeId string `protobuf:"bytes,1,opt,name=cascade_id,json=cascadeId,proto3" json:"cascade_id,omitempty"` // 新建会话的 ID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StartCascadeResponse) Reset() { + *x = StartCascadeResponse{} + mi := &file_language_server_simplified_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StartCascadeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartCascadeResponse) ProtoMessage() {} + +func (x *StartCascadeResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StartCascadeResponse.ProtoReflect.Descriptor instead. +func (*StartCascadeResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{1} +} + +func (x *StartCascadeResponse) GetCascadeId() string { + if x != nil { + return x.CascadeId + } + return "" +} + +type SendUserCascadeMessageRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + CascadeId string `protobuf:"bytes,1,opt,name=cascade_id,json=cascadeId,proto3" json:"cascade_id,omitempty"` // 会话 ID + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // 用户消息 + Context map[string]string `protobuf:"bytes,3,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // 上下文信息(文件、符号等) + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SendUserCascadeMessageRequest) Reset() { + *x = SendUserCascadeMessageRequest{} + mi := &file_language_server_simplified_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SendUserCascadeMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendUserCascadeMessageRequest) ProtoMessage() {} + +func (x *SendUserCascadeMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendUserCascadeMessageRequest.ProtoReflect.Descriptor instead. +func (*SendUserCascadeMessageRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{2} +} + +func (x *SendUserCascadeMessageRequest) GetCascadeId() string { + if x != nil { + return x.CascadeId + } + return "" +} + +func (x *SendUserCascadeMessageRequest) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *SendUserCascadeMessageRequest) GetContext() map[string]string { + if x != nil { + return x.Context + } + return nil +} + +type CascadeReactiveUpdate struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type CascadeReactiveUpdate_UpdateType `protobuf:"varint,1,opt,name=type,proto3,enum=exa.language_server_pb.CascadeReactiveUpdate_UpdateType" json:"type,omitempty"` + Payload string `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` // JSON 格式的负载 + Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CascadeReactiveUpdate) Reset() { + *x = CascadeReactiveUpdate{} + mi := &file_language_server_simplified_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CascadeReactiveUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CascadeReactiveUpdate) ProtoMessage() {} + +func (x *CascadeReactiveUpdate) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CascadeReactiveUpdate.ProtoReflect.Descriptor instead. +func (*CascadeReactiveUpdate) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{3} +} + +func (x *CascadeReactiveUpdate) GetType() CascadeReactiveUpdate_UpdateType { + if x != nil { + return x.Type + } + return CascadeReactiveUpdate_UNKNOWN +} + +func (x *CascadeReactiveUpdate) GetPayload() string { + if x != nil { + return x.Payload + } + return "" +} + +func (x *CascadeReactiveUpdate) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +type CancelCascadeInvocationRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + CascadeId string `protobuf:"bytes,1,opt,name=cascade_id,json=cascadeId,proto3" json:"cascade_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CancelCascadeInvocationRequest) Reset() { + *x = CancelCascadeInvocationRequest{} + mi := &file_language_server_simplified_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CancelCascadeInvocationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CancelCascadeInvocationRequest) ProtoMessage() {} + +func (x *CancelCascadeInvocationRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CancelCascadeInvocationRequest.ProtoReflect.Descriptor instead. +func (*CancelCascadeInvocationRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{4} +} + +func (x *CancelCascadeInvocationRequest) GetCascadeId() string { + if x != nil { + return x.CascadeId + } + return "" +} + +type CancelCascadeInvocationResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CancelCascadeInvocationResponse) Reset() { + *x = CancelCascadeInvocationResponse{} + mi := &file_language_server_simplified_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CancelCascadeInvocationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CancelCascadeInvocationResponse) ProtoMessage() {} + +func (x *CancelCascadeInvocationResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CancelCascadeInvocationResponse.ProtoReflect.Descriptor instead. +func (*CancelCascadeInvocationResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{5} +} + +type AcknowledgeCascadeCodeEditRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + CascadeId string `protobuf:"bytes,1,opt,name=cascade_id,json=cascadeId,proto3" json:"cascade_id,omitempty"` + CodeEditId string `protobuf:"bytes,2,opt,name=code_edit_id,json=codeEditId,proto3" json:"code_edit_id,omitempty"` + Accepted bool `protobuf:"varint,3,opt,name=accepted,proto3" json:"accepted,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AcknowledgeCascadeCodeEditRequest) Reset() { + *x = AcknowledgeCascadeCodeEditRequest{} + mi := &file_language_server_simplified_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AcknowledgeCascadeCodeEditRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeCascadeCodeEditRequest) ProtoMessage() {} + +func (x *AcknowledgeCascadeCodeEditRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeCascadeCodeEditRequest.ProtoReflect.Descriptor instead. +func (*AcknowledgeCascadeCodeEditRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{6} +} + +func (x *AcknowledgeCascadeCodeEditRequest) GetCascadeId() string { + if x != nil { + return x.CascadeId + } + return "" +} + +func (x *AcknowledgeCascadeCodeEditRequest) GetCodeEditId() string { + if x != nil { + return x.CodeEditId + } + return "" +} + +func (x *AcknowledgeCascadeCodeEditRequest) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type AcknowledgeCascadeCodeEditResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AcknowledgeCascadeCodeEditResponse) Reset() { + *x = AcknowledgeCascadeCodeEditResponse{} + mi := &file_language_server_simplified_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AcknowledgeCascadeCodeEditResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeCascadeCodeEditResponse) ProtoMessage() {} + +func (x *AcknowledgeCascadeCodeEditResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcknowledgeCascadeCodeEditResponse.ProtoReflect.Descriptor instead. +func (*AcknowledgeCascadeCodeEditResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{7} +} + +type ModelConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // 模型名称(e.g., "claude-opus-4-6") + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // 显示名称(e.g., "Claude Opus 4.6") + ModelId int32 `protobuf:"varint,3,opt,name=model_id,json=modelId,proto3" json:"model_id,omitempty"` // 模型 ID(枚举值) + MaxTokens int32 `protobuf:"varint,4,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"` // 最大输出 token 数 + SupportsThinking bool `protobuf:"varint,5,opt,name=supports_thinking,json=supportsThinking,proto3" json:"supports_thinking,omitempty"` // 是否支持 thinking + ThinkingBudget int32 `protobuf:"varint,6,opt,name=thinking_budget,json=thinkingBudget,proto3" json:"thinking_budget,omitempty"` // thinking token 预算 + SupportsImages bool `protobuf:"varint,7,opt,name=supports_images,json=supportsImages,proto3" json:"supports_images,omitempty"` // 是否支持图像 + Provider string `protobuf:"bytes,8,opt,name=provider,proto3" json:"provider,omitempty"` // 提供者(anthropic/google/openai) + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelConfig) Reset() { + *x = ModelConfig{} + mi := &file_language_server_simplified_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelConfig) ProtoMessage() {} + +func (x *ModelConfig) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelConfig.ProtoReflect.Descriptor instead. +func (*ModelConfig) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{8} +} + +func (x *ModelConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ModelConfig) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *ModelConfig) GetModelId() int32 { + if x != nil { + return x.ModelId + } + return 0 +} + +func (x *ModelConfig) GetMaxTokens() int32 { + if x != nil { + return x.MaxTokens + } + return 0 +} + +func (x *ModelConfig) GetSupportsThinking() bool { + if x != nil { + return x.SupportsThinking + } + return false +} + +func (x *ModelConfig) GetThinkingBudget() int32 { + if x != nil { + return x.ThinkingBudget + } + return 0 +} + +func (x *ModelConfig) GetSupportsImages() bool { + if x != nil { + return x.SupportsImages + } + return false +} + +func (x *ModelConfig) GetProvider() string { + if x != nil { + return x.Provider + } + return "" +} + +type GetCascadeModelConfigsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCascadeModelConfigsRequest) Reset() { + *x = GetCascadeModelConfigsRequest{} + mi := &file_language_server_simplified_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCascadeModelConfigsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCascadeModelConfigsRequest) ProtoMessage() {} + +func (x *GetCascadeModelConfigsRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCascadeModelConfigsRequest.ProtoReflect.Descriptor instead. +func (*GetCascadeModelConfigsRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{9} +} + +type GetCascadeModelConfigsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Models []*ModelConfig `protobuf:"bytes,1,rep,name=models,proto3" json:"models,omitempty"` + DefaultModel string `protobuf:"bytes,2,opt,name=default_model,json=defaultModel,proto3" json:"default_model,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCascadeModelConfigsResponse) Reset() { + *x = GetCascadeModelConfigsResponse{} + mi := &file_language_server_simplified_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCascadeModelConfigsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCascadeModelConfigsResponse) ProtoMessage() {} + +func (x *GetCascadeModelConfigsResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCascadeModelConfigsResponse.ProtoReflect.Descriptor instead. +func (*GetCascadeModelConfigsResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{10} +} + +func (x *GetCascadeModelConfigsResponse) GetModels() []*ModelConfig { + if x != nil { + return x.Models + } + return nil +} + +func (x *GetCascadeModelConfigsResponse) GetDefaultModel() string { + if x != nil { + return x.DefaultModel + } + return "" +} + +type GetCommandModelConfigsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCommandModelConfigsRequest) Reset() { + *x = GetCommandModelConfigsRequest{} + mi := &file_language_server_simplified_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCommandModelConfigsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCommandModelConfigsRequest) ProtoMessage() {} + +func (x *GetCommandModelConfigsRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCommandModelConfigsRequest.ProtoReflect.Descriptor instead. +func (*GetCommandModelConfigsRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{11} +} + +type GetCommandModelConfigsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Models []*ModelConfig `protobuf:"bytes,1,rep,name=models,proto3" json:"models,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCommandModelConfigsResponse) Reset() { + *x = GetCommandModelConfigsResponse{} + mi := &file_language_server_simplified_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCommandModelConfigsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCommandModelConfigsResponse) ProtoMessage() {} + +func (x *GetCommandModelConfigsResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCommandModelConfigsResponse.ProtoReflect.Descriptor instead. +func (*GetCommandModelConfigsResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{12} +} + +func (x *GetCommandModelConfigsResponse) GetModels() []*ModelConfig { + if x != nil { + return x.Models + } + return nil +} + +type FileInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Type FileInfo_Type `protobuf:"varint,2,opt,name=type,proto3,enum=exa.language_server_pb.FileInfo_Type" json:"type,omitempty"` + Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` + ModifiedTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=modified_time,json=modifiedTime,proto3" json:"modified_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FileInfo) Reset() { + *x = FileInfo{} + mi := &file_language_server_simplified_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FileInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileInfo) ProtoMessage() {} + +func (x *FileInfo) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileInfo.ProtoReflect.Descriptor instead. +func (*FileInfo) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{13} +} + +func (x *FileInfo) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *FileInfo) GetType() FileInfo_Type { + if x != nil { + return x.Type + } + return FileInfo_UNKNOWN +} + +func (x *FileInfo) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *FileInfo) GetModifiedTime() *timestamppb.Timestamp { + if x != nil { + return x.ModifiedTime + } + return nil +} + +type ReadFileRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReadFileRequest) Reset() { + *x = ReadFileRequest{} + mi := &file_language_server_simplified_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReadFileRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadFileRequest) ProtoMessage() {} + +func (x *ReadFileRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadFileRequest.ProtoReflect.Descriptor instead. +func (*ReadFileRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{14} +} + +func (x *ReadFileRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +type ReadFileResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` + Encoding string `protobuf:"bytes,2,opt,name=encoding,proto3" json:"encoding,omitempty"` // UTF-8, binary, etc. + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReadFileResponse) Reset() { + *x = ReadFileResponse{} + mi := &file_language_server_simplified_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReadFileResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadFileResponse) ProtoMessage() {} + +func (x *ReadFileResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadFileResponse.ProtoReflect.Descriptor instead. +func (*ReadFileResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{15} +} + +func (x *ReadFileResponse) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *ReadFileResponse) GetEncoding() string { + if x != nil { + return x.Encoding + } + return "" +} + +type WriteFileRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + CreateParent bool `protobuf:"varint,3,opt,name=create_parent,json=createParent,proto3" json:"create_parent,omitempty"` // 是否创建父目录 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WriteFileRequest) Reset() { + *x = WriteFileRequest{} + mi := &file_language_server_simplified_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WriteFileRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteFileRequest) ProtoMessage() {} + +func (x *WriteFileRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WriteFileRequest.ProtoReflect.Descriptor instead. +func (*WriteFileRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{16} +} + +func (x *WriteFileRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *WriteFileRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *WriteFileRequest) GetCreateParent() bool { + if x != nil { + return x.CreateParent + } + return false +} + +type WriteFileResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WriteFileResponse) Reset() { + *x = WriteFileResponse{} + mi := &file_language_server_simplified_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WriteFileResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteFileResponse) ProtoMessage() {} + +func (x *WriteFileResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WriteFileResponse.ProtoReflect.Descriptor instead. +func (*WriteFileResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{17} +} + +func (x *WriteFileResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type ReadDirRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReadDirRequest) Reset() { + *x = ReadDirRequest{} + mi := &file_language_server_simplified_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReadDirRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadDirRequest) ProtoMessage() {} + +func (x *ReadDirRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadDirRequest.ProtoReflect.Descriptor instead. +func (*ReadDirRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{18} +} + +func (x *ReadDirRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +type ReadDirResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Files []*FileInfo `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReadDirResponse) Reset() { + *x = ReadDirResponse{} + mi := &file_language_server_simplified_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReadDirResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadDirResponse) ProtoMessage() {} + +func (x *ReadDirResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadDirResponse.ProtoReflect.Descriptor instead. +func (*ReadDirResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{19} +} + +func (x *ReadDirResponse) GetFiles() []*FileInfo { + if x != nil { + return x.Files + } + return nil +} + +type DeleteFileOrDirectoryRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Recursive bool `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"` // 递归删除目录 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteFileOrDirectoryRequest) Reset() { + *x = DeleteFileOrDirectoryRequest{} + mi := &file_language_server_simplified_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteFileOrDirectoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFileOrDirectoryRequest) ProtoMessage() {} + +func (x *DeleteFileOrDirectoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFileOrDirectoryRequest.ProtoReflect.Descriptor instead. +func (*DeleteFileOrDirectoryRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{20} +} + +func (x *DeleteFileOrDirectoryRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *DeleteFileOrDirectoryRequest) GetRecursive() bool { + if x != nil { + return x.Recursive + } + return false +} + +type DeleteFileOrDirectoryResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteFileOrDirectoryResponse) Reset() { + *x = DeleteFileOrDirectoryResponse{} + mi := &file_language_server_simplified_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteFileOrDirectoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFileOrDirectoryResponse) ProtoMessage() {} + +func (x *DeleteFileOrDirectoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFileOrDirectoryResponse.ProtoReflect.Descriptor instead. +func (*DeleteFileOrDirectoryResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{21} +} + +func (x *DeleteFileOrDirectoryResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type StatUriRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StatUriRequest) Reset() { + *x = StatUriRequest{} + mi := &file_language_server_simplified_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StatUriRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatUriRequest) ProtoMessage() {} + +func (x *StatUriRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatUriRequest.ProtoReflect.Descriptor instead. +func (*StatUriRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{22} +} + +func (x *StatUriRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +type StatUriResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + FileInfo *FileInfo `protobuf:"bytes,1,opt,name=file_info,json=fileInfo,proto3" json:"file_info,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StatUriResponse) Reset() { + *x = StatUriResponse{} + mi := &file_language_server_simplified_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StatUriResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatUriResponse) ProtoMessage() {} + +func (x *StatUriResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatUriResponse.ProtoReflect.Descriptor instead. +func (*StatUriResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{23} +} + +func (x *StatUriResponse) GetFileInfo() *FileInfo { + if x != nil { + return x.FileInfo + } + return nil +} + +type WatchDirectoryRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Patterns []string `protobuf:"bytes,2,rep,name=patterns,proto3" json:"patterns,omitempty"` // 文件模式(glob) + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WatchDirectoryRequest) Reset() { + *x = WatchDirectoryRequest{} + mi := &file_language_server_simplified_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WatchDirectoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WatchDirectoryRequest) ProtoMessage() {} + +func (x *WatchDirectoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WatchDirectoryRequest.ProtoReflect.Descriptor instead. +func (*WatchDirectoryRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{24} +} + +func (x *WatchDirectoryRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *WatchDirectoryRequest) GetPatterns() []string { + if x != nil { + return x.Patterns + } + return nil +} + +type WatchDirectoryResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + EventType string `protobuf:"bytes,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` // created, modified, deleted + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WatchDirectoryResponse) Reset() { + *x = WatchDirectoryResponse{} + mi := &file_language_server_simplified_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WatchDirectoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WatchDirectoryResponse) ProtoMessage() {} + +func (x *WatchDirectoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WatchDirectoryResponse.ProtoReflect.Descriptor instead. +func (*WatchDirectoryResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{25} +} + +func (x *WatchDirectoryResponse) GetEventType() string { + if x != nil { + return x.EventType + } + return "" +} + +func (x *WatchDirectoryResponse) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *WatchDirectoryResponse) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +type HeartbeatRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *HeartbeatRequest) Reset() { + *x = HeartbeatRequest{} + mi := &file_language_server_simplified_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HeartbeatRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeartbeatRequest) ProtoMessage() {} + +func (x *HeartbeatRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeartbeatRequest.ProtoReflect.Descriptor instead. +func (*HeartbeatRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{26} +} + +func (x *HeartbeatRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +type HeartbeatResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Healthy bool `protobuf:"varint,1,opt,name=healthy,proto3" json:"healthy,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *HeartbeatResponse) Reset() { + *x = HeartbeatResponse{} + mi := &file_language_server_simplified_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HeartbeatResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeartbeatResponse) ProtoMessage() {} + +func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead. +func (*HeartbeatResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{27} +} + +func (x *HeartbeatResponse) GetHealthy() bool { + if x != nil { + return x.Healthy + } + return false +} + +func (x *HeartbeatResponse) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type GetStatusRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetStatusRequest) Reset() { + *x = GetStatusRequest{} + mi := &file_language_server_simplified_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatusRequest) ProtoMessage() {} + +func (x *GetStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStatusRequest.ProtoReflect.Descriptor instead. +func (*GetStatusRequest) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{28} +} + +type GetStatusResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` // running, degraded, down + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Info map[string]string `protobuf:"bytes,3,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetStatusResponse) Reset() { + *x = GetStatusResponse{} + mi := &file_language_server_simplified_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatusResponse) ProtoMessage() {} + +func (x *GetStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[29] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStatusResponse.ProtoReflect.Descriptor instead. +func (*GetStatusResponse) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{29} +} + +func (x *GetStatusResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetStatusResponse) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *GetStatusResponse) GetInfo() map[string]string { + if x != nil { + return x.Info + } + return nil +} + +type ErrorInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Details map[string]string `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ErrorInfo) Reset() { + *x = ErrorInfo{} + mi := &file_language_server_simplified_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ErrorInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ErrorInfo) ProtoMessage() {} + +func (x *ErrorInfo) ProtoReflect() protoreflect.Message { + mi := &file_language_server_simplified_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ErrorInfo.ProtoReflect.Descriptor instead. +func (*ErrorInfo) Descriptor() ([]byte, []int) { + return file_language_server_simplified_proto_rawDescGZIP(), []int{30} +} + +func (x *ErrorInfo) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *ErrorInfo) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *ErrorInfo) GetDetails() map[string]string { + if x != nil { + return x.Details + } + return nil +} + +var File_language_server_simplified_proto protoreflect.FileDescriptor + +const file_language_server_simplified_proto_rawDesc = "" + + "\n" + + " language_server_simplified.proto\x12\x16exa.language_server_pb\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xe4\x01\n" + + "\x13StartCascadeRequest\x12\x14\n" + + "\x05model\x18\x01 \x01(\tR\x05model\x12#\n" + + "\rsystem_prompt\x18\x02 \x01(\tR\fsystemPrompt\x12U\n" + + "\bmetadata\x18\x03 \x03(\v29.exa.language_server_pb.StartCascadeRequest.MetadataEntryR\bmetadata\x1a;\n" + + "\rMetadataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"5\n" + + "\x14StartCascadeResponse\x12\x1d\n" + + "\n" + + "cascade_id\x18\x01 \x01(\tR\tcascadeId\"\xf2\x01\n" + + "\x1dSendUserCascadeMessageRequest\x12\x1d\n" + + "\n" + + "cascade_id\x18\x01 \x01(\tR\tcascadeId\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12\\\n" + + "\acontext\x18\x03 \x03(\v2B.exa.language_server_pb.SendUserCascadeMessageRequest.ContextEntryR\acontext\x1a:\n" + + "\fContextEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa7\x02\n" + + "\x15CascadeReactiveUpdate\x12L\n" + + "\x04type\x18\x01 \x01(\x0e28.exa.language_server_pb.CascadeReactiveUpdate.UpdateTypeR\x04type\x12\x18\n" + + "\apayload\x18\x02 \x01(\tR\apayload\x128\n" + + "\ttimestamp\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\"l\n" + + "\n" + + "UpdateType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x10\n" + + "\fSTATE_CHANGE\x10\x01\x12\x11\n" + + "\rMESSAGE_DELTA\x10\x02\x12\r\n" + + "\tTOOL_CALL\x10\x03\x12\r\n" + + "\tCODE_EDIT\x10\x04\x12\x0e\n" + + "\n" + + "COMPLETION\x10\x05\"?\n" + + "\x1eCancelCascadeInvocationRequest\x12\x1d\n" + + "\n" + + "cascade_id\x18\x01 \x01(\tR\tcascadeId\"!\n" + + "\x1fCancelCascadeInvocationResponse\"\x80\x01\n" + + "!AcknowledgeCascadeCodeEditRequest\x12\x1d\n" + + "\n" + + "cascade_id\x18\x01 \x01(\tR\tcascadeId\x12 \n" + + "\fcode_edit_id\x18\x02 \x01(\tR\n" + + "codeEditId\x12\x1a\n" + + "\baccepted\x18\x03 \x01(\bR\baccepted\"$\n" + + "\"AcknowledgeCascadeCodeEditResponse\"\x99\x02\n" + + "\vModelConfig\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12!\n" + + "\fdisplay_name\x18\x02 \x01(\tR\vdisplayName\x12\x19\n" + + "\bmodel_id\x18\x03 \x01(\x05R\amodelId\x12\x1d\n" + + "\n" + + "max_tokens\x18\x04 \x01(\x05R\tmaxTokens\x12+\n" + + "\x11supports_thinking\x18\x05 \x01(\bR\x10supportsThinking\x12'\n" + + "\x0fthinking_budget\x18\x06 \x01(\x05R\x0ethinkingBudget\x12'\n" + + "\x0fsupports_images\x18\a \x01(\bR\x0esupportsImages\x12\x1a\n" + + "\bprovider\x18\b \x01(\tR\bprovider\"\x1f\n" + + "\x1dGetCascadeModelConfigsRequest\"\x82\x01\n" + + "\x1eGetCascadeModelConfigsResponse\x12;\n" + + "\x06models\x18\x01 \x03(\v2#.exa.language_server_pb.ModelConfigR\x06models\x12#\n" + + "\rdefault_model\x18\x02 \x01(\tR\fdefaultModel\"\x1f\n" + + "\x1dGetCommandModelConfigsRequest\"]\n" + + "\x1eGetCommandModelConfigsResponse\x12;\n" + + "\x06models\x18\x01 \x03(\v2#.exa.language_server_pb.ModelConfigR\x06models\"\xe9\x01\n" + + "\bFileInfo\x12\x12\n" + + "\x04path\x18\x01 \x01(\tR\x04path\x129\n" + + "\x04type\x18\x02 \x01(\x0e2%.exa.language_server_pb.FileInfo.TypeR\x04type\x12\x12\n" + + "\x04size\x18\x03 \x01(\x03R\x04size\x12?\n" + + "\rmodified_time\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\fmodifiedTime\"9\n" + + "\x04Type\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\b\n" + + "\x04FILE\x10\x01\x12\r\n" + + "\tDIRECTORY\x10\x02\x12\v\n" + + "\aSYMLINK\x10\x03\"%\n" + + "\x0fReadFileRequest\x12\x12\n" + + "\x04path\x18\x01 \x01(\tR\x04path\"H\n" + + "\x10ReadFileResponse\x12\x18\n" + + "\acontent\x18\x01 \x01(\tR\acontent\x12\x1a\n" + + "\bencoding\x18\x02 \x01(\tR\bencoding\"e\n" + + "\x10WriteFileRequest\x12\x12\n" + + "\x04path\x18\x01 \x01(\tR\x04path\x12\x18\n" + + "\acontent\x18\x02 \x01(\tR\acontent\x12#\n" + + "\rcreate_parent\x18\x03 \x01(\bR\fcreateParent\"-\n" + + "\x11WriteFileResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\"$\n" + + "\x0eReadDirRequest\x12\x12\n" + + "\x04path\x18\x01 \x01(\tR\x04path\"I\n" + + "\x0fReadDirResponse\x126\n" + + "\x05files\x18\x01 \x03(\v2 .exa.language_server_pb.FileInfoR\x05files\"P\n" + + "\x1cDeleteFileOrDirectoryRequest\x12\x12\n" + + "\x04path\x18\x01 \x01(\tR\x04path\x12\x1c\n" + + "\trecursive\x18\x02 \x01(\bR\trecursive\"9\n" + + "\x1dDeleteFileOrDirectoryResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\"$\n" + + "\x0eStatUriRequest\x12\x12\n" + + "\x04path\x18\x01 \x01(\tR\x04path\"P\n" + + "\x0fStatUriResponse\x12=\n" + + "\tfile_info\x18\x01 \x01(\v2 .exa.language_server_pb.FileInfoR\bfileInfo\"G\n" + + "\x15WatchDirectoryRequest\x12\x12\n" + + "\x04path\x18\x01 \x01(\tR\x04path\x12\x1a\n" + + "\bpatterns\x18\x02 \x03(\tR\bpatterns\"\x85\x01\n" + + "\x16WatchDirectoryResponse\x12\x1d\n" + + "\n" + + "event_type\x18\x01 \x01(\tR\teventType\x12\x12\n" + + "\x04path\x18\x02 \x01(\tR\x04path\x128\n" + + "\ttimestamp\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\"1\n" + + "\x10HeartbeatRequest\x12\x1d\n" + + "\n" + + "session_id\x18\x01 \x01(\tR\tsessionId\"G\n" + + "\x11HeartbeatResponse\x12\x18\n" + + "\ahealthy\x18\x01 \x01(\bR\ahealthy\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\"\x12\n" + + "\x10GetStatusRequest\"\xc7\x01\n" + + "\x11GetStatusResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\x12G\n" + + "\x04info\x18\x03 \x03(\v23.exa.language_server_pb.GetStatusResponse.InfoEntryR\x04info\x1a7\n" + + "\tInfoEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xbf\x01\n" + + "\tErrorInfo\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12H\n" + + "\adetails\x18\x03 \x03(\v2..exa.language_server_pb.ErrorInfo.DetailsEntryR\adetails\x1a:\n" + + "\fDetailsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x012\xf3\f\n" + + "\x15LanguageServerService\x12i\n" + + "\fStartCascade\x12+.exa.language_server_pb.StartCascadeRequest\x1a,.exa.language_server_pb.StartCascadeResponse\x12\x80\x01\n" + + "\x16SendUserCascadeMessage\x125.exa.language_server_pb.SendUserCascadeMessageRequest\x1a-.exa.language_server_pb.CascadeReactiveUpdate0\x01\x12\x8a\x01\n" + + "\x17CancelCascadeInvocation\x126.exa.language_server_pb.CancelCascadeInvocationRequest\x1a7.exa.language_server_pb.CancelCascadeInvocationResponse\x12\x93\x01\n" + + "\x1aAcknowledgeCascadeCodeEdit\x129.exa.language_server_pb.AcknowledgeCascadeCodeEditRequest\x1a:.exa.language_server_pb.AcknowledgeCascadeCodeEditResponse\x12\x87\x01\n" + + "\x16GetCascadeModelConfigs\x125.exa.language_server_pb.GetCascadeModelConfigsRequest\x1a6.exa.language_server_pb.GetCascadeModelConfigsResponse\x12\x87\x01\n" + + "\x16GetCommandModelConfigs\x125.exa.language_server_pb.GetCommandModelConfigsRequest\x1a6.exa.language_server_pb.GetCommandModelConfigsResponse\x12]\n" + + "\bReadFile\x12'.exa.language_server_pb.ReadFileRequest\x1a(.exa.language_server_pb.ReadFileResponse\x12`\n" + + "\tWriteFile\x12(.exa.language_server_pb.WriteFileRequest\x1a).exa.language_server_pb.WriteFileResponse\x12Z\n" + + "\aReadDir\x12&.exa.language_server_pb.ReadDirRequest\x1a'.exa.language_server_pb.ReadDirResponse\x12\x84\x01\n" + + "\x15DeleteFileOrDirectory\x124.exa.language_server_pb.DeleteFileOrDirectoryRequest\x1a5.exa.language_server_pb.DeleteFileOrDirectoryResponse\x12Z\n" + + "\aStatUri\x12&.exa.language_server_pb.StatUriRequest\x1a'.exa.language_server_pb.StatUriResponse\x12q\n" + + "\x0eWatchDirectory\x12-.exa.language_server_pb.WatchDirectoryRequest\x1a..exa.language_server_pb.WatchDirectoryResponse0\x01\x12`\n" + + "\tHeartbeat\x12(.exa.language_server_pb.HeartbeatRequest\x1a).exa.language_server_pb.HeartbeatResponse\x12`\n" + + "\tGetStatus\x12(.exa.language_server_pb.GetStatusRequest\x1a).exa.language_server_pb.GetStatusResponseB=Z;github.com/Wei-Shaw/sub2api/internal/gen/language_server_pbb\x06proto3" + +var ( + file_language_server_simplified_proto_rawDescOnce sync.Once + file_language_server_simplified_proto_rawDescData []byte +) + +func file_language_server_simplified_proto_rawDescGZIP() []byte { + file_language_server_simplified_proto_rawDescOnce.Do(func() { + file_language_server_simplified_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_language_server_simplified_proto_rawDesc), len(file_language_server_simplified_proto_rawDesc))) + }) + return file_language_server_simplified_proto_rawDescData +} + +var file_language_server_simplified_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_language_server_simplified_proto_msgTypes = make([]protoimpl.MessageInfo, 35) +var file_language_server_simplified_proto_goTypes = []any{ + (CascadeReactiveUpdate_UpdateType)(0), // 0: exa.language_server_pb.CascadeReactiveUpdate.UpdateType + (FileInfo_Type)(0), // 1: exa.language_server_pb.FileInfo.Type + (*StartCascadeRequest)(nil), // 2: exa.language_server_pb.StartCascadeRequest + (*StartCascadeResponse)(nil), // 3: exa.language_server_pb.StartCascadeResponse + (*SendUserCascadeMessageRequest)(nil), // 4: exa.language_server_pb.SendUserCascadeMessageRequest + (*CascadeReactiveUpdate)(nil), // 5: exa.language_server_pb.CascadeReactiveUpdate + (*CancelCascadeInvocationRequest)(nil), // 6: exa.language_server_pb.CancelCascadeInvocationRequest + (*CancelCascadeInvocationResponse)(nil), // 7: exa.language_server_pb.CancelCascadeInvocationResponse + (*AcknowledgeCascadeCodeEditRequest)(nil), // 8: exa.language_server_pb.AcknowledgeCascadeCodeEditRequest + (*AcknowledgeCascadeCodeEditResponse)(nil), // 9: exa.language_server_pb.AcknowledgeCascadeCodeEditResponse + (*ModelConfig)(nil), // 10: exa.language_server_pb.ModelConfig + (*GetCascadeModelConfigsRequest)(nil), // 11: exa.language_server_pb.GetCascadeModelConfigsRequest + (*GetCascadeModelConfigsResponse)(nil), // 12: exa.language_server_pb.GetCascadeModelConfigsResponse + (*GetCommandModelConfigsRequest)(nil), // 13: exa.language_server_pb.GetCommandModelConfigsRequest + (*GetCommandModelConfigsResponse)(nil), // 14: exa.language_server_pb.GetCommandModelConfigsResponse + (*FileInfo)(nil), // 15: exa.language_server_pb.FileInfo + (*ReadFileRequest)(nil), // 16: exa.language_server_pb.ReadFileRequest + (*ReadFileResponse)(nil), // 17: exa.language_server_pb.ReadFileResponse + (*WriteFileRequest)(nil), // 18: exa.language_server_pb.WriteFileRequest + (*WriteFileResponse)(nil), // 19: exa.language_server_pb.WriteFileResponse + (*ReadDirRequest)(nil), // 20: exa.language_server_pb.ReadDirRequest + (*ReadDirResponse)(nil), // 21: exa.language_server_pb.ReadDirResponse + (*DeleteFileOrDirectoryRequest)(nil), // 22: exa.language_server_pb.DeleteFileOrDirectoryRequest + (*DeleteFileOrDirectoryResponse)(nil), // 23: exa.language_server_pb.DeleteFileOrDirectoryResponse + (*StatUriRequest)(nil), // 24: exa.language_server_pb.StatUriRequest + (*StatUriResponse)(nil), // 25: exa.language_server_pb.StatUriResponse + (*WatchDirectoryRequest)(nil), // 26: exa.language_server_pb.WatchDirectoryRequest + (*WatchDirectoryResponse)(nil), // 27: exa.language_server_pb.WatchDirectoryResponse + (*HeartbeatRequest)(nil), // 28: exa.language_server_pb.HeartbeatRequest + (*HeartbeatResponse)(nil), // 29: exa.language_server_pb.HeartbeatResponse + (*GetStatusRequest)(nil), // 30: exa.language_server_pb.GetStatusRequest + (*GetStatusResponse)(nil), // 31: exa.language_server_pb.GetStatusResponse + (*ErrorInfo)(nil), // 32: exa.language_server_pb.ErrorInfo + nil, // 33: exa.language_server_pb.StartCascadeRequest.MetadataEntry + nil, // 34: exa.language_server_pb.SendUserCascadeMessageRequest.ContextEntry + nil, // 35: exa.language_server_pb.GetStatusResponse.InfoEntry + nil, // 36: exa.language_server_pb.ErrorInfo.DetailsEntry + (*timestamppb.Timestamp)(nil), // 37: google.protobuf.Timestamp +} +var file_language_server_simplified_proto_depIdxs = []int32{ + 33, // 0: exa.language_server_pb.StartCascadeRequest.metadata:type_name -> exa.language_server_pb.StartCascadeRequest.MetadataEntry + 34, // 1: exa.language_server_pb.SendUserCascadeMessageRequest.context:type_name -> exa.language_server_pb.SendUserCascadeMessageRequest.ContextEntry + 0, // 2: exa.language_server_pb.CascadeReactiveUpdate.type:type_name -> exa.language_server_pb.CascadeReactiveUpdate.UpdateType + 37, // 3: exa.language_server_pb.CascadeReactiveUpdate.timestamp:type_name -> google.protobuf.Timestamp + 10, // 4: exa.language_server_pb.GetCascadeModelConfigsResponse.models:type_name -> exa.language_server_pb.ModelConfig + 10, // 5: exa.language_server_pb.GetCommandModelConfigsResponse.models:type_name -> exa.language_server_pb.ModelConfig + 1, // 6: exa.language_server_pb.FileInfo.type:type_name -> exa.language_server_pb.FileInfo.Type + 37, // 7: exa.language_server_pb.FileInfo.modified_time:type_name -> google.protobuf.Timestamp + 15, // 8: exa.language_server_pb.ReadDirResponse.files:type_name -> exa.language_server_pb.FileInfo + 15, // 9: exa.language_server_pb.StatUriResponse.file_info:type_name -> exa.language_server_pb.FileInfo + 37, // 10: exa.language_server_pb.WatchDirectoryResponse.timestamp:type_name -> google.protobuf.Timestamp + 35, // 11: exa.language_server_pb.GetStatusResponse.info:type_name -> exa.language_server_pb.GetStatusResponse.InfoEntry + 36, // 12: exa.language_server_pb.ErrorInfo.details:type_name -> exa.language_server_pb.ErrorInfo.DetailsEntry + 2, // 13: exa.language_server_pb.LanguageServerService.StartCascade:input_type -> exa.language_server_pb.StartCascadeRequest + 4, // 14: exa.language_server_pb.LanguageServerService.SendUserCascadeMessage:input_type -> exa.language_server_pb.SendUserCascadeMessageRequest + 6, // 15: exa.language_server_pb.LanguageServerService.CancelCascadeInvocation:input_type -> exa.language_server_pb.CancelCascadeInvocationRequest + 8, // 16: exa.language_server_pb.LanguageServerService.AcknowledgeCascadeCodeEdit:input_type -> exa.language_server_pb.AcknowledgeCascadeCodeEditRequest + 11, // 17: exa.language_server_pb.LanguageServerService.GetCascadeModelConfigs:input_type -> exa.language_server_pb.GetCascadeModelConfigsRequest + 13, // 18: exa.language_server_pb.LanguageServerService.GetCommandModelConfigs:input_type -> exa.language_server_pb.GetCommandModelConfigsRequest + 16, // 19: exa.language_server_pb.LanguageServerService.ReadFile:input_type -> exa.language_server_pb.ReadFileRequest + 18, // 20: exa.language_server_pb.LanguageServerService.WriteFile:input_type -> exa.language_server_pb.WriteFileRequest + 20, // 21: exa.language_server_pb.LanguageServerService.ReadDir:input_type -> exa.language_server_pb.ReadDirRequest + 22, // 22: exa.language_server_pb.LanguageServerService.DeleteFileOrDirectory:input_type -> exa.language_server_pb.DeleteFileOrDirectoryRequest + 24, // 23: exa.language_server_pb.LanguageServerService.StatUri:input_type -> exa.language_server_pb.StatUriRequest + 26, // 24: exa.language_server_pb.LanguageServerService.WatchDirectory:input_type -> exa.language_server_pb.WatchDirectoryRequest + 28, // 25: exa.language_server_pb.LanguageServerService.Heartbeat:input_type -> exa.language_server_pb.HeartbeatRequest + 30, // 26: exa.language_server_pb.LanguageServerService.GetStatus:input_type -> exa.language_server_pb.GetStatusRequest + 3, // 27: exa.language_server_pb.LanguageServerService.StartCascade:output_type -> exa.language_server_pb.StartCascadeResponse + 5, // 28: exa.language_server_pb.LanguageServerService.SendUserCascadeMessage:output_type -> exa.language_server_pb.CascadeReactiveUpdate + 7, // 29: exa.language_server_pb.LanguageServerService.CancelCascadeInvocation:output_type -> exa.language_server_pb.CancelCascadeInvocationResponse + 9, // 30: exa.language_server_pb.LanguageServerService.AcknowledgeCascadeCodeEdit:output_type -> exa.language_server_pb.AcknowledgeCascadeCodeEditResponse + 12, // 31: exa.language_server_pb.LanguageServerService.GetCascadeModelConfigs:output_type -> exa.language_server_pb.GetCascadeModelConfigsResponse + 14, // 32: exa.language_server_pb.LanguageServerService.GetCommandModelConfigs:output_type -> exa.language_server_pb.GetCommandModelConfigsResponse + 17, // 33: exa.language_server_pb.LanguageServerService.ReadFile:output_type -> exa.language_server_pb.ReadFileResponse + 19, // 34: exa.language_server_pb.LanguageServerService.WriteFile:output_type -> exa.language_server_pb.WriteFileResponse + 21, // 35: exa.language_server_pb.LanguageServerService.ReadDir:output_type -> exa.language_server_pb.ReadDirResponse + 23, // 36: exa.language_server_pb.LanguageServerService.DeleteFileOrDirectory:output_type -> exa.language_server_pb.DeleteFileOrDirectoryResponse + 25, // 37: exa.language_server_pb.LanguageServerService.StatUri:output_type -> exa.language_server_pb.StatUriResponse + 27, // 38: exa.language_server_pb.LanguageServerService.WatchDirectory:output_type -> exa.language_server_pb.WatchDirectoryResponse + 29, // 39: exa.language_server_pb.LanguageServerService.Heartbeat:output_type -> exa.language_server_pb.HeartbeatResponse + 31, // 40: exa.language_server_pb.LanguageServerService.GetStatus:output_type -> exa.language_server_pb.GetStatusResponse + 27, // [27:41] is the sub-list for method output_type + 13, // [13:27] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_language_server_simplified_proto_init() } +func file_language_server_simplified_proto_init() { + if File_language_server_simplified_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_language_server_simplified_proto_rawDesc), len(file_language_server_simplified_proto_rawDesc)), + NumEnums: 2, + NumMessages: 35, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_language_server_simplified_proto_goTypes, + DependencyIndexes: file_language_server_simplified_proto_depIdxs, + EnumInfos: file_language_server_simplified_proto_enumTypes, + MessageInfos: file_language_server_simplified_proto_msgTypes, + }.Build() + File_language_server_simplified_proto = out.File + file_language_server_simplified_proto_goTypes = nil + file_language_server_simplified_proto_depIdxs = nil +} diff --git a/backend/internal/handler/antigravity_http.go b/backend/internal/handler/antigravity_http.go new file mode 100644 index 00000000..7d200985 --- /dev/null +++ b/backend/internal/handler/antigravity_http.go @@ -0,0 +1,267 @@ +package handler + +import ( + "encoding/json" + "net/http" + "log/slog" + + "github.com/gin-gonic/gin" + "github.com/Wei-Shaw/sub2api/internal/service" +) + +// AntigravityHTTPHandler 处理下游客户端的 HTTP 请求 +// 内部调用 LanguageServerService,再转发到上游 API +type AntigravityHTTPHandler struct { + langServerService *service.LanguageServerService + logger *slog.Logger +} + +func NewAntigravityHTTPHandler( + langServerService *service.LanguageServerService, + logger *slog.Logger, +) *AntigravityHTTPHandler { + return &AntigravityHTTPHandler{ + langServerService: langServerService, + logger: logger, + } +} + +// ============================================================================ +// Cascade 流程 API +// ============================================================================ + +// StartCascadeRequest HTTP 请求格式 +type StartCascadeRequest struct { + Model string `json:"model"` // 模型名称 + SystemPrompt string `json:"system_prompt"` // 系统提示 + Metadata map[string]string `json:"metadata"` // 设备指纹等伪装信息 +} + +// StartCascadeResponse HTTP 响应格式 +type StartCascadeResponse struct { + CascadeID string `json:"cascade_id"` +} + +// POST /api/v1/cascade/start +// 启动新的 Cascade Agent 会话 +func (h *AntigravityHTTPHandler) StartCascade(c *gin.Context) { + var req StartCascadeRequest + if err := c.ShouldBindJSON(&req); err != nil { + h.logger.Error("invalid request", "error", err) + c.JSON(http.StatusBadRequest, gin.H{ + "error": "invalid request: " + err.Error(), + }) + return + } + + // 提取 OAuth token + token := c.GetHeader("Authorization") + if token == "" { + c.JSON(http.StatusUnauthorized, gin.H{ + "error": "missing authorization header", + }) + return + } + + // 调用内部 LanguageServerService + cascadeID, err := h.langServerService.StartCascade( + c.Request.Context(), + req.Model, + req.SystemPrompt, + req.Metadata, + token, + ) + if err != nil { + h.logger.Error("start cascade failed", "error", err) + c.JSON(http.StatusInternalServerError, gin.H{ + "error": err.Error(), + }) + return + } + + h.logger.Info("cascade started", "cascade_id", cascadeID, "model", req.Model) + + c.JSON(http.StatusOK, StartCascadeResponse{ + CascadeID: cascadeID, + }) +} + +// ============================================================================ + +// SendUserMessageRequest HTTP 请求格式 +type SendUserMessageRequest struct { + CascadeID string `json:"cascade_id"` // 会话 ID + Message string `json:"message"` // 用户消息 + Context map[string]string `json:"context"` // 上下文(可选) +} + +// CascadeUpdate 流式响应格式(Server-Sent Events) +type CascadeUpdate struct { + Type string `json:"type"` // "message_delta", "tool_call", etc. + Payload string `json:"payload"` // JSON 格式的负载 +} + +// POST /api/v1/cascade/message (流式) +// 发送用户消息,接收流式更新 +func (h *AntigravityHTTPHandler) SendUserMessage(c *gin.Context) { + var req SendUserMessageRequest + if err := c.ShouldBindJSON(&req); err != nil { + h.logger.Error("invalid request", "error", err) + c.JSON(http.StatusBadRequest, gin.H{ + "error": "invalid request: " + err.Error(), + }) + return + } + + // 提取 OAuth token + token := c.GetHeader("Authorization") + if token == "" { + c.JSON(http.StatusUnauthorized, gin.H{ + "error": "missing authorization header", + }) + return + } + + // 设置 Server-Sent Events 响应头 + c.Header("Content-Type", "text/event-stream") + c.Header("Cache-Control", "no-cache") + c.Header("Connection", "keep-alive") + + // 调用内部 LanguageServerService,获取流式响应 + updateChan, err := h.langServerService.SendUserMessage( + c.Request.Context(), + req.CascadeID, + req.Message, + token, + ) + if err != nil { + h.logger.Error("send user message failed", "error", err) + c.JSON(http.StatusInternalServerError, gin.H{ + "error": err.Error(), + }) + return + } + + // 逐个推送更新到客户端(SSE) + for update := range updateChan { + data, _ := json.Marshal(update) + c.SSEvent("update", string(data)) + c.Writer.Flush() + } + + h.logger.Info("cascade message processed", "cascade_id", req.CascadeID) +} + +// ============================================================================ + +// POST /api/v1/cascade/cancel +// 取消 Cascade 调用 +func (h *AntigravityHTTPHandler) CancelCascade(c *gin.Context) { + var req struct { + CascadeID string `json:"cascade_id"` + } + + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{ + "error": "invalid request", + }) + return + } + + if err := h.langServerService.CancelCascade( + c.Request.Context(), + req.CascadeID, + ); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{ + "error": err.Error(), + }) + return + } + + h.logger.Info("cascade cancelled", "cascade_id", req.CascadeID) + c.JSON(http.StatusOK, gin.H{ + "success": true, + }) +} + +// ============================================================================ +// 模型配置 API +// ============================================================================ + +// ModelConfig 模型配置 +type ModelConfig struct { + Name string `json:"name"` + DisplayName string `json:"display_name"` + MaxTokens int `json:"max_tokens"` + SupportsThinking bool `json:"supports_thinking"` + ThinkingBudget int `json:"thinking_budget,omitempty"` + SupportsImages bool `json:"supports_images"` + Provider string `json:"provider"` // anthropic, google, openai +} + +// GET /api/v1/models +// 获取可用模型列表 +func (h *AntigravityHTTPHandler) GetModels(c *gin.Context) { + models, err := h.langServerService.GetAvailableModels(c.Request.Context()) + if err != nil { + h.logger.Error("get models failed", "error", err) + c.JSON(http.StatusInternalServerError, gin.H{ + "error": err.Error(), + }) + return + } + + c.JSON(http.StatusOK, gin.H{ + "models": models, + "default_model": "claude-opus-4-6", + }) +} + +// ============================================================================ +// 健康检查 API +// ============================================================================ + +// GET /api/v1/health +// 健康检查 +func (h *AntigravityHTTPHandler) Health(c *gin.Context) { + status, err := h.langServerService.GetStatus(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{ + "status": "unhealthy", + "error": err.Error(), + }) + return + } + + c.JSON(http.StatusOK, gin.H{ + "status": status, + "version": "1.0.0", + }) +} + +// ============================================================================ + +// RegisterRoutes 注册所有 HTTP 路由 +func (h *AntigravityHTTPHandler) RegisterRoutes(router *gin.Engine) { + api := router.Group("/api/v1") + + // Cascade 流程 + api.POST("/cascade/start", h.StartCascade) + api.POST("/cascade/message", h.SendUserMessage) + api.POST("/cascade/cancel", h.CancelCascade) + + // 模型列表 + api.GET("/models", h.GetModels) + + // 健康检查 + api.GET("/health", h.Health) + + h.logger.Info("antigravity http handler registered", + "routes", []string{ + "/api/v1/cascade/start", + "/api/v1/cascade/message", + "/api/v1/cascade/cancel", + "/api/v1/models", + "/api/v1/health", + }) +} diff --git a/backend/internal/pkg/tlsfingerprint/dialer.go b/backend/internal/pkg/tlsfingerprint/dialer.go index 0bb05e4d..420fa3b7 100644 --- a/backend/internal/pkg/tlsfingerprint/dialer.go +++ b/backend/internal/pkg/tlsfingerprint/dialer.go @@ -25,7 +25,7 @@ type Profile struct { PointFormats []uint16 EnableGREASE bool SignatureAlgorithms []uint16 // Empty uses defaultSignatureAlgorithms - ALPNProtocols []string // Empty uses ["http/1.1"] + ALPNProtocols []string // Empty uses ["http/1.1"] (h2 requires http2.ConfigureTransports) SupportedVersions []uint16 // Empty uses [TLS1.3, TLS1.2] KeyShareGroups []uint16 // Empty uses [X25519] PSKModes []uint16 // Empty uses [psk_dhe_ke] @@ -362,8 +362,12 @@ func buildClientHelloSpecFromProfile(profile *Profile) *utls.ClientHelloSpec { } } - // Node.js 24.x 优先使用 HTTP/2,回退到 HTTP/1.1 - alpnProtocols := []string{"h2", "http/1.1"} + // IMPORTANT: Only advertise HTTP/1.1 here. + // Go's http.Transport with custom DialTLSContext cannot speak HTTP/2. + // If we advertise "h2", the server selects HTTP/2 and sends h2 frames, + // but http.Transport tries to parse them as HTTP/1.x → "malformed HTTP response". + // To fully mimic Node.js h2, we would need golang.org/x/net/http2 integration. + alpnProtocols := []string{"http/1.1"} if profile != nil && len(profile.ALPNProtocols) > 0 { alpnProtocols = profile.ALPNProtocols } diff --git a/backend/internal/repository/http_upstream.go b/backend/internal/repository/http_upstream.go index 9bf1a853..2c778730 100644 --- a/backend/internal/repository/http_upstream.go +++ b/backend/internal/repository/http_upstream.go @@ -811,9 +811,11 @@ func buildUpstreamTransportWithTLSFingerprint(settings poolSettings, proxyURL *u MaxConnsPerHost: settings.maxConnsPerHost, IdleConnTimeout: settings.idleConnTimeout, ResponseHeaderTimeout: settings.responseHeaderTimeout, - // 启用 HTTP/2 以匹配 Node.js 24.x 客户端行为 - // Node.js Claude Code 优先使用 HTTP/2,通过 ALPN 协商 - ForceAttemptHTTP2: true, + // NOTE: Do NOT set ForceAttemptHTTP2 here. + // When DialTLSContext is set (for utls fingerprinting), Go's built-in HTTP/2 + // support is bypassed. If ALPN negotiates "h2", the server sends HTTP/2 frames + // but http.Transport only speaks HTTP/1.x, causing "malformed HTTP response". + // The ALPN list in dialer.go is set to ["http/1.1"] only to match. } // 根据代理类型选择合适的 TLS 指纹 Dialer diff --git a/backend/internal/service/language_server_service.go b/backend/internal/service/language_server_service.go new file mode 100644 index 00000000..8d4d1caf --- /dev/null +++ b/backend/internal/service/language_server_service.go @@ -0,0 +1,447 @@ +package service + +import ( + "bufio" + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "log/slog" + "net/http" + "os" + "strings" + "sync" + "time" + + "github.com/google/uuid" +) + +// CascadeSession 代表一个 Cascade Agent 会话 +type CascadeSession struct { + ID string + ModelName string + Messages []map[string]interface{} // {role, content} + Metadata map[string]string // 设备指纹、User-Agent 等 + Token string // OAuth token + CreatedAt int64 +} + +// LanguageServerService 业务逻辑层 +// 处理 Cascade Agent 流程,转发到上游 API +type LanguageServerService struct { + // 会话管理 + cascadeSessions map[string]*CascadeSession + sessionMutex sync.RWMutex + + // 上游 HTTP 服务(用于发送请求) + httpUpstream HTTPUpstream + + // 上游配置 + upstreamBaseURL string + upstreamAPIKey string + + // 日志 + logger *slog.Logger +} + +func NewLanguageServerService( + logger *slog.Logger, + httpUpstream HTTPUpstream, +) *LanguageServerService { + return &LanguageServerService{ + cascadeSessions: make(map[string]*CascadeSession), + logger: logger, + httpUpstream: httpUpstream, + upstreamBaseURL: strings.TrimSuffix(os.Getenv("ANTHROPIC_BASE_URL"), "/"), + upstreamAPIKey: os.Getenv("ANTHROPIC_API_KEY"), + } +} + +// ============================================================================ +// Cascade 业务逻辑 +// ============================================================================ + +// StartCascade 启动新的 Cascade Agent 会话 +func (svc *LanguageServerService) StartCascade( + ctx context.Context, + model string, + systemPrompt string, + metadata map[string]string, + token string, +) (string, error) { + // 1. 验证输入 + if model == "" { + return "", fmt.Errorf("model is required") + } + + if token == "" { + return "", fmt.Errorf("oauth token is required") + } + + // 2. 生成会话 ID + sessionID := uuid.New().String() + + // 3. 创建会话 + session := &CascadeSession{ + ID: sessionID, + ModelName: model, + Messages: make([]map[string]interface{}, 0), + Metadata: metadata, + Token: token, + CreatedAt: getCurrentTimeMS(), + } + + // 如果提供了系统提示,添加为初始消息 + if systemPrompt != "" { + session.Messages = append(session.Messages, map[string]interface{}{ + "role": "user", + "content": systemPrompt, + }) + } + + // 4. 保存会话 + svc.sessionMutex.Lock() + svc.cascadeSessions[sessionID] = session + svc.sessionMutex.Unlock() + + svc.logger.Info("cascade session started", + "session_id", sessionID, + "model", model, + "has_system_prompt", systemPrompt != "") + + return sessionID, nil +} + +// SendUserMessage 发送用户消息到 Cascade +// 返回流式更新通道 +func (svc *LanguageServerService) SendUserMessage( + ctx context.Context, + cascadeID string, + userMessage string, + token string, +) (<-chan interface{}, error) { + // 1. 获取会话 + svc.sessionMutex.RLock() + session, exists := svc.cascadeSessions[cascadeID] + svc.sessionMutex.RUnlock() + + if !exists { + return nil, fmt.Errorf("cascade session not found: %s", cascadeID) + } + + // 2. 验证 token + if token != session.Token { + return nil, fmt.Errorf("invalid token for session") + } + + // 3. 添加用户消息到历史 + svc.sessionMutex.Lock() + session.Messages = append(session.Messages, map[string]interface{}{ + "role": "user", + "content": userMessage, + }) + svc.sessionMutex.Unlock() + + // 4. 创建响应通道 + updateChan := make(chan interface{}, 100) + + // 5. 启动后台 goroutine 处理 API 调用 + go func() { + defer close(updateChan) + + // 调用上游 API(关键!这里需要伪装) + svc.callUpstreamAPI(ctx, session, updateChan) + }() + + svc.logger.Info("user message sent to cascade", + "session_id", cascadeID, + "message_length", len(userMessage)) + + return updateChan, nil +} + +// CancelCascade 取消 Cascade 会话 +func (svc *LanguageServerService) CancelCascade( + ctx context.Context, + cascadeID string, +) error { + svc.sessionMutex.Lock() + _, exists := svc.cascadeSessions[cascadeID] + svc.sessionMutex.Unlock() + + if !exists { + return fmt.Errorf("cascade session not found: %s", cascadeID) + } + + // TODO: 取消正在进行的 API 调用 + + svc.logger.Info("cascade cancelled", "session_id", cascadeID) + return nil +} + +// ============================================================================ +// 模型配置 +// ============================================================================ + +// ModelConfig 模型配置 +type ModelConfig struct { + Name string + DisplayName string + MaxTokens int + SupportsThinking bool + ThinkingBudget int + SupportsImages bool + Provider string +} + +// GetAvailableModels 获取可用模型列表 +func (svc *LanguageServerService) GetAvailableModels(ctx context.Context) ([]ModelConfig, error) { + models := []ModelConfig{ + { + Name: "claude-opus-4-6", + DisplayName: "Claude Opus 4.6", + MaxTokens: 200000, + SupportsThinking: true, + ThinkingBudget: 32000, + SupportsImages: true, + Provider: "anthropic", + }, + { + Name: "claude-sonnet-4-6", + DisplayName: "Claude Sonnet 4.6", + MaxTokens: 200000, + SupportsThinking: false, + SupportsImages: true, + Provider: "anthropic", + }, + { + Name: "claude-haiku-4-5", + DisplayName: "Claude Haiku 4.5", + MaxTokens: 200000, + SupportsThinking: false, + SupportsImages: true, + Provider: "anthropic", + }, + { + Name: "gemini-3-pro", + DisplayName: "Gemini 3 Pro", + MaxTokens: 128000, + SupportsThinking: false, + SupportsImages: true, + Provider: "google", + }, + } + + return models, nil +} + +// ============================================================================ +// 状态查询 +// ============================================================================ + +// GetStatus 获取服务状态 +func (svc *LanguageServerService) GetStatus(ctx context.Context) (string, error) { + // TODO: 检查上游 API 连接状态 + return "running", nil +} + +// ============================================================================ +// 内部方法 +// ============================================================================ + +// callUpstreamAPI 调用上游 Anthropic API +// 这是关键方法:需要注入所有伪装信息 +// +// 伪装层包括: +// 1. User-Agent(来自 metadata 或动态生成) +// 2. 设备指纹(machine_id, mac_machine_id, dev_device_id, sqm_id) +// 3. TLS 指纹(通过 http.Transport 处理) +// 4. OAuth token 自动刷新 +// 5. 请求头完整性 +func (svc *LanguageServerService) callUpstreamAPI( + ctx context.Context, + session *CascadeSession, + updateChan chan<- interface{}, +) { + // 检查上游配置 + if svc.upstreamBaseURL == "" || svc.upstreamAPIKey == "" { + svc.logger.Error("upstream api configuration missing", + "has_base_url", svc.upstreamBaseURL != "", + "has_api_key", svc.upstreamAPIKey != "", + ) + updateChan <- map[string]interface{}{ + "type": "error", + "error": "upstream api not configured", + } + return + } + + // 1. 准备请求体 + requestBody := map[string]interface{}{ + "model": session.ModelName, + "messages": session.Messages, + "stream": true, + } + + bodyJSON, err := json.Marshal(requestBody) + if err != nil { + svc.logger.Error("failed to marshal request", + "session_id", session.ID, + "error", err, + ) + updateChan <- map[string]interface{}{ + "type": "error", + "error": "failed to prepare request", + } + return + } + + // 2. 构建上游请求 URL + upstreamURL := svc.upstreamBaseURL + "/v1/messages" + + // 3. 创建 HTTP 请求 + req, err := http.NewRequestWithContext(ctx, http.MethodPost, upstreamURL, bytes.NewReader(bodyJSON)) + if err != nil { + svc.logger.Error("failed to create request", + "session_id", session.ID, + "error", err, + ) + updateChan <- map[string]interface{}{ + "type": "error", + "error": "failed to create request", + } + return + } + + // 4. 设置基础请求头 + req.Header.Set("Content-Type", "application/json") + req.Header.Set("Authorization", "Bearer "+session.Token) + req.Header.Set("x-api-key", session.Token) // Claude API 兼容 + + // 5. 应用伪装信息 + if userAgent := session.Metadata["user-agent"]; userAgent != "" { + req.Header.Set("User-Agent", userAgent) + } + + // 提取其他伪装 headers(如果在 metadata 中) + if customHeaders := session.Metadata["custom-headers"]; customHeaders != "" { + // 可以在这里解析并应用自定义 headers + } + + svc.logger.Debug("sending upstream request", + "session_id", session.ID, + "url", upstreamURL, + "model", session.ModelName, + ) + + // 6. 发送请求 + resp, err := svc.httpUpstream.Do(req, "", 0, 10) + if err != nil { + svc.logger.Error("upstream request failed", + "session_id", session.ID, + "error", err, + ) + updateChan <- map[string]interface{}{ + "type": "error", + "error": fmt.Sprintf("upstream request failed: %v", err), + } + return + } + defer func() { _ = resp.Body.Close() }() + + // 7. 处理错误响应 + if resp.StatusCode >= 400 { + respBody, _ := io.ReadAll(io.LimitReader(resp.Body, 2<<20)) + svc.logger.Error("upstream error response", + "session_id", session.ID, + "status_code", resp.StatusCode, + "body", string(respBody), + ) + updateChan <- map[string]interface{}{ + "type": "error", + "status_code": resp.StatusCode, + "error": string(respBody), + } + return + } + + // 8. 处理流式响应 + svc.streamUpstreamResponse(ctx, session.ID, resp, updateChan) +} + +// streamUpstreamResponse 处理上游 SSE 流式响应 +func (svc *LanguageServerService) streamUpstreamResponse( + ctx context.Context, + sessionID string, + resp *http.Response, + updateChan chan<- interface{}, +) { + scanner := bufio.NewScanner(resp.Body) + // 设置合理的缓冲区大小 + scanner.Buffer(make([]byte, 64*1024), 512*1024) + + for scanner.Scan() { + select { + case <-ctx.Done(): + svc.logger.Info("streaming cancelled", "session_id", sessionID) + return + default: + } + + line := strings.TrimSpace(scanner.Text()) + + // 跳过空行 + if line == "" { + continue + } + + // 跳过注释行 + if strings.HasPrefix(line, ":") { + continue + } + + // 解析 SSE 格式 (data: {...}) + if !strings.HasPrefix(line, "data:") { + continue + } + + eventData := strings.TrimPrefix(line, "data:") + eventData = strings.TrimSpace(eventData) + + // 解析 JSON + var event map[string]interface{} + if err := json.Unmarshal([]byte(eventData), &event); err != nil { + svc.logger.Debug("failed to parse event", + "session_id", sessionID, + "error", err, + "data", eventData, + ) + continue + } + + // 发送事件到客户端通道 + select { + case updateChan <- event: + case <-ctx.Done(): + return + case <-time.After(5 * time.Second): + svc.logger.Warn("channel send timeout", + "session_id", sessionID, + ) + return + } + } + + if err := scanner.Err(); err != nil { + svc.logger.Error("scanning upstream response failed", + "session_id", sessionID, + "error", err, + ) + } +} + +// getCurrentTimeMS 获取当前时间戳(毫秒) +func getCurrentTimeMS() int64 { + return time.Now().UnixMilli() +} diff --git a/proto/language_server.desc.bin b/proto/language_server.desc.bin new file mode 100644 index 00000000..ecfd3104 Binary files /dev/null and b/proto/language_server.desc.bin differ diff --git a/proto/language_server.proto b/proto/language_server.proto new file mode 100644 index 00000000..0a5e1b34 --- /dev/null +++ b/proto/language_server.proto @@ -0,0 +1,2230 @@ +syntax = "proto3"; +package exa.language_server_pb; + +enum IdeAction { + IDE_ACTION_UNSPECIFIED = 0; + IDE_ACTION_SAVE = 1; + IDE_ACTION_SELECTION_CHANGED = 2; + IDE_ACTION_VISIBLE_RANGES_CHANGED = 3; + IDE_ACTION_ACTIVE_EDITOR_CHANGED = 4; + IDE_ACTION_STARTUP = 5; +} + +enum CodeiumState { + CODEIUM_STATE_UNSPECIFIED = 0; + CODEIUM_STATE_INACTIVE = 1; + CODEIUM_STATE_PROCESSING = 2; + CODEIUM_STATE_SUCCESS = 3; + CODEIUM_STATE_WARNING = 4; + CODEIUM_STATE_ERROR = 5; +} + +enum CompletionPartType { + COMPLETION_PART_TYPE_UNSPECIFIED = 0; + COMPLETION_PART_TYPE_INLINE = 1; + COMPLETION_PART_TYPE_BLOCK = 2; + COMPLETION_PART_TYPE_INLINE_MASK = 3; +} + +enum UnifiedDiffChangeType { + UNIFIED_DIFF_CHANGE_TYPE_UNSPECIFIED = 0; + UNIFIED_DIFF_CHANGE_TYPE_INSERT = 1; + UNIFIED_DIFF_CHANGE_TYPE_DELETE = 2; + UNIFIED_DIFF_CHANGE_TYPE_UNCHANGED = 3; +} + +enum EditorThemeType { + EDITOR_THEME_TYPE_UNSPECIFIED = 0; + EDITOR_THEME_TYPE_LIGHT = 1; + EDITOR_THEME_TYPE_DARK = 2; + EDITOR_THEME_TYPE_HIGH_CONTRAST = 3; + EDITOR_THEME_TYPE_HIGH_CONTRAST_LIGHT = 4; +} + +enum ClientTrajectoryVerbosity { + CLIENT_TRAJECTORY_VERBOSITY_UNSPECIFIED = 0; + CLIENT_TRAJECTORY_VERBOSITY_DEBUG = 1; + CLIENT_TRAJECTORY_VERBOSITY_PROD_UI = 2; + CLIENT_TRAJECTORY_VERBOSITY_FULL = 3; +} + +enum AgentMessageOrigin { + AGENT_MESSAGE_ORIGIN_UNSPECIFIED = 0; + AGENT_MESSAGE_ORIGIN_IDE = 1; + AGENT_MESSAGE_ORIGIN_SDK_EXECUTABLE = 2; + AGENT_MESSAGE_ORIGIN_SUBAGENT = 3; +} + +enum CodeRevertActionType { + CODE_REVERT_ACTION_TYPE_UNSPECIFIED = 0; + CODE_REVERT_ACTION_TYPE_MODIFY = 1; + CODE_REVERT_ACTION_TYPE_CREATE = 2; + CODE_REVERT_ACTION_TYPE_DELETE = 3; +} + +enum CustomizationFileType { + CUSTOMIZATION_FILE_TYPE_UNSPECIFIED = 0; + CUSTOMIZATION_FILE_TYPE_RULES = 1; + CUSTOMIZATION_FILE_TYPE_WORKFLOWS = 2; + CUSTOMIZATION_FILE_TYPE_GLOBAL_WORKFLOWS = 3; + CUSTOMIZATION_FILE_TYPE_SKILLS = 4; + CUSTOMIZATION_FILE_TYPE_GLOBAL_SKILLS = 5; + CUSTOMIZATION_FILE_TYPE_AGENT = 6; + CUSTOMIZATION_FILE_TYPE_GLOBAL_AGENT = 7; + CUSTOMIZATION_FILE_TYPE_PLUGIN = 8; + CUSTOMIZATION_FILE_TYPE_GLOBAL_PLUGIN = 9; + CUSTOMIZATION_FILE_TYPE_HOOKS = 10; +} + +enum FileType { + FILE_TYPE_UNSPECIFIED = 0; + FILE_TYPE_FILE = 1; + FILE_TYPE_DIRECTORY = 2; + FILE_TYPE_SYMLINK = 3; +} + +enum CustomizationPathsOperation { + CUSTOMIZATION_PATHS_OPERATION_UNSPECIFIED = 0; + CUSTOMIZATION_PATHS_OPERATION_ADD = 1; + CUSTOMIZATION_PATHS_OPERATION_REMOVE = 2; + CUSTOMIZATION_PATHS_OPERATION_SET = 3; +} + +message HandleStreamingCommandRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.Document document = 2; + exa.codeium_common_pb.EditorOptions editor_options = 3; + exa.codeium_common_pb.Model requested_model_id = 4; + uint64 selection_start_line = 6; + uint64 selection_end_line = 7; + string command_text = 8; + exa.codeium_common_pb.CommandRequestSource request_source = 9; + exa.codeium_common_pb.ContextScope mentioned_scope = 10; + exa.codeium_common_pb.ActionPointer action_pointer = 11; + string parent_completion_id = 12; + exa.diff_action_pb.DiffType diff_type = 13; + repeated exa.codeium_common_pb.CodeDiagnostic diagnostics = 14; + exa.codeium_common_pb.SupercompleteTriggerCondition supercomplete_trigger_condition = 15; + exa.codeium_common_pb.TerminalCommandData terminal_command_data = 16; + exa.codeium_common_pb.ExperimentConfig experiment_config = 5; + bool ignore_supercomplete_debounce = 17; + string clipboard_entry = 18; + repeated exa.codeium_common_pb.IntellisenseSuggestion intellisense_suggestions = 19; +} + +message HandleStreamingCommandResponse { + string completion_id = 1; + string prompt_id = 2; + exa.diff_action_pb.UnifiedDiff diff = 3; + exa.language_server_pb.LatencyInfo latency_info = 4; + uint64 selection_start_line = 5; + uint64 selection_end_line = 6; + double score = 7; + exa.diff_action_pb.CharacterDiff character_diff = 8; + exa.diff_action_pb.ComboDiff combo_diff = 9; + exa.codeium_common_pb.SuperCompleteFilterReason filter_reason = 10; + optional exa.codeium_common_pb.DocumentPosition jump_position = 14; + exa.language_server_pb.RequestInfo request_info = 12; + exa.codeium_common_pb.StopReason stop_reason = 13; + gemini_coder.Trajectory trajectory = 15; + string raw_text = 16; + string trace_id = 17; + optional uint64 closest_changed_line = 11; +} + +message MultilineConfig { + float threshold = 1; +} + +message GetCompletionsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.Document document = 2; + exa.codeium_common_pb.EditorOptions editor_options = 3; + repeated exa.codeium_common_pb.Document other_documents = 5; + exa.codeium_common_pb.MockResponseData mock_response_data = 6; + bool disable_cache = 8; + repeated exa.codeium_common_pb.CodeContextItem oracle_items = 9; + string model_name = 10; + exa.codeium_common_pb.Model requested_model_id = 12; + exa.language_server_pb.MultilineConfig multiline_config = 13; + exa.codeium_common_pb.ExperimentConfig experiment_config = 7; +} + +message GetCompletionsResponse { + exa.language_server_pb.State state = 1; + repeated exa.language_server_pb.CompletionItem completion_items = 2; + repeated exa.language_server_pb.CompletionItem filtered_completion_items = 7; + exa.language_server_pb.RequestInfo request_info = 3; + exa.language_server_pb.LatencyInfo latency_info = 4; + string model_tag = 5; + string prompt_id = 6; + repeated exa.language_server_pb.CodeRange code_ranges = 8; +} + +message ProvideCompletionFeedbackRequest { + exa.codeium_common_pb.Metadata metadata = 1; + bool is_accepted = 2; + int64 feedback_delay_ms = 3; + string completion_id = 4; + string prompt_id = 5; + exa.language_server_pb.LatencyInfo latency_info = 6; + exa.codeium_common_pb.ProviderSource source = 7; + exa.codeium_common_pb.Document document = 8; + uint64 view_columns_open = 10; + bool is_intentional_reject = 11; + bool is_partial = 12; + string midstream_autocomplete_text = 13; + bool has_active_vim_extension = 14; + string trace_id = 15; + int64 accepted_lines = 16; + int64 removed_lines = 17; + exa.codeium_common_pb.ExperimentConfig experiment_config = 9; +} + +message ProvideCompletionFeedbackResponse { +} + +message HeartbeatRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.codeium_common_pb.ErrorTrace previous_error_traces = 2; + exa.codeium_common_pb.ExperimentConfig experiment_config = 3; +} + +message HeartbeatResponse { + google.protobuf.Timestamp last_extension_heartbeat = 1; +} + +message ReconnectExtensionServerRequest { + int32 extension_server_port = 1; + string extension_server_csrf_token = 2; +} + +message ReconnectExtensionServerResponse { +} + +message GetStatusRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetStatusResponse { + exa.codeium_common_pb.Status status = 1; +} + +message GetCascadeModelConfigsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + optional bool filter = 2; +} + +message GetCascadeModelConfigsResponse { + repeated exa.codeium_common_pb.ClientModelConfig client_model_configs = 1; + repeated exa.codeium_common_pb.ClientModelSort client_model_sorts = 2; + optional exa.codeium_common_pb.DefaultOverrideModelConfig default_override_model_config = 3; +} + +message TeamOrganizationalControls { + string team_id = 1; + repeated string cascade_model_labels = 2; + repeated string command_model_labels = 3; + google.protobuf.Timestamp created_at = 4; + google.protobuf.Timestamp updated_at = 5; + repeated string extension_model_labels = 6; +} + +message GetTeamOrganizationalControlsRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetTeamOrganizationalControlsResponse { + exa.codeium_common_pb.TeamOrganizationalControls controls = 1; +} + +message GetMcpServerTemplatesRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetMcpServerTemplatesResponse { + repeated exa.codeium_common_pb.McpServerTemplate templates = 1; +} + +message GetCommandModelConfigsRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetCommandModelConfigsResponse { + repeated exa.codeium_common_pb.ClientModelConfig client_model_configs = 1; +} + +message RecordEventRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.Event event = 2; +} + +message RecordEventResponse { +} + +message CancelRequestRequest { + exa.codeium_common_pb.Metadata metadata = 1; + uint64 request_id = 2; +} + +message CancelRequestResponse { +} + +message EditConfigurationRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.CompletionConfiguration completion_configuration = 2; +} + +message EditConfigurationResponse { + exa.codeium_common_pb.CompletionConfiguration completion_configuration = 1; +} + +message GetTranscriptionRequest { + exa.codeium_common_pb.Metadata metadata = 1; + bytes audio_data = 2; +} + +message GetTranscriptionResponse { + string transcribed_text = 1; +} + +message RegisterGdmUserRequest { +} + +message RegisterGdmUserResponse { + bool created = 1; + string name = 2; + string email = 3; + string api_key = 4; +} + +message MigrateApiKeyRequest { + string api_key = 1; +} + +message MigrateApiKeyResponse { + string session_token = 1; +} + +message WellSupportedLanguagesRequest { +} + +message WellSupportedLanguagesResponse { + repeated exa.codeium_common_pb.Language languages = 1; +} + +message RecordSearchDocOpenRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string result_id = 2; +} + +message RecordSearchDocOpenResponse { +} + +message RecordSearchResultsViewRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string cluster_search_id = 2; + string exact_search_id = 3; + repeated string search_result_ids = 4; +} + +message RecordSearchResultsViewResponse { +} + +message ContextInfoRequest { +} + +message ContextInfoResponse { + repeated string active_workspaces = 1; + repeated string ignored_workspaces = 2; +} + +message RefreshContextForIdeActionRequest { + exa.codeium_common_pb.Metadata metadata = 8; + exa.codeium_common_pb.Document active_document = 1; + repeated string open_document_filepaths_migrate_me_to_uri = 2; + repeated string open_document_uris = 6; + repeated exa.codeium_common_pb.Document other_documents = 5; + repeated string workspace_paths_migrate_me_to_uri = 3; + repeated string workspace_uris = 7; + bool blocking = 4; + exa.codeium_common_pb.ExperimentConfig experiment_config = 9; + exa.language_server_pb.IdeAction ide_action = 10; +} + +message RefreshContextForIdeActionResponse { +} + +message RecordChatFeedbackRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string message_id = 2; + exa.chat_pb.ChatFeedbackType feedback = 3; + string reason = 4; + google.protobuf.Timestamp timestamp = 5; +} + +message RecordChatFeedbackResponse { +} + +message RecordChatPanelSessionRequest { + exa.codeium_common_pb.Metadata metadata = 1; + google.protobuf.Timestamp start_timestamp = 2; + google.protobuf.Timestamp end_timestamp = 3; +} + +message RecordChatPanelSessionResponse { +} + +message GetUserAnalyticsSummaryRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string time_zone = 2; + google.protobuf.Timestamp start_timestamp = 3; + google.protobuf.Timestamp end_timestamp = 4; +} + +message GetUserAnalyticsSummaryResponse { + exa.codeium_common_pb.CompletionStatistics completion_statistics = 1; + repeated exa.codeium_common_pb.CompletionByDateEntry completions_by_day = 2; + repeated exa.codeium_common_pb.CompletionByLanguageEntry completions_by_language = 3; + repeated exa.codeium_common_pb.ChatStatsByModelEntry chats_by_model = 4; +} + +message GetUserStatusRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetUserStatusResponse { + exa.codeium_common_pb.UserStatus user_status = 1; + exa.codeium_common_pb.PlanInfo plan_info = 2; +} + +message GetProfileDataRequest { + string api_key = 1; +} + +message GetProfileDataResponse { + string profile_picture_url = 1; +} + +message GetChangelogRequest { + string version = 1; +} + +message GetChangelogResponse { + string path = 1; +} + +message ExitRequest { +} + +message ExitResponse { +} + +message RestartRequest { +} + +message RestartResponse { +} + +message State { + exa.language_server_pb.CodeiumState state = 1; + string message = 2; +} + +message RequestInfo { + string prompt_id = 1; + exa.codeium_common_pb.CompletionsRequest completions_request = 4; + string typing_as_suggested_prompt_suffix = 5; + exa.codeium_common_pb.CompletionType completion_type = 6; +} + +message LatencyInfo { + uint64 client_latency_ms = 1; + uint64 prompt_latency_ms = 2; + repeated exa.codeium_common_pb.PromptStageLatency prompt_stage_latencies = 3; + uint64 debounce_latency_ms = 4; + uint64 rpc_latency_ms = 5; + uint64 network_latency_ms = 6; +} + +message Suffix { + string text = 1; + int64 delta_cursor_offset = 2; +} + +message CompletionPart { + string text = 1; + uint64 offset = 2; + exa.language_server_pb.CompletionPartType type = 3; + string prefix = 4; + uint64 line = 5; +} + +message CompletionItem { + exa.codeium_common_pb.Completion completion = 1; + exa.language_server_pb.Suffix suffix = 5; + exa.codeium_common_pb.Range range = 2; + exa.codeium_common_pb.CompletionSource source = 3; + repeated exa.language_server_pb.CompletionPart completion_parts = 8; +} + +message AddTrackedWorkspaceRequest { + string workspace = 1; + bool do_not_watch_files = 2; + bool is_passive_workspace = 3; +} + +message AddTrackedWorkspaceResponse { +} + +message RemoveTrackedWorkspaceRequest { + string workspace = 1; + bool is_passive_workspace = 2; +} + +message RemoveTrackedWorkspaceResponse { +} + +message GetWorkspaceEditStateRequest { +} + +message WorkspaceEditState { + string repo_root = 1; + uint64 num_additions = 2; + uint64 num_deletions = 3; + repeated exa.cortex_pb.ActionResultEdit edits = 4; +} + +message GetWorkspaceEditStateResponse { + repeated exa.language_server_pb.WorkspaceEditState workspace_edits = 1; +} + +message BranchInfo { + string name = 1; + bool is_current_branch = 2; +} + +message RepoInfo { + string name = 1; + string repo_path = 2; + repeated exa.language_server_pb.BranchInfo branches = 3; + exa.codeium_common_pb.ScmType scm_type = 4; +} + +message GetRepoInfosRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated string repo_uris = 2; +} + +message GetRepoInfosResponse { + repeated exa.language_server_pb.RepoInfo repos = 1; +} + +message GetWorkspaceInfosRequest { +} + +message WorkspaceInfo { + string workspace_uri = 1; + string git_root_uri = 2; +} + +message GetWorkspaceInfosResponse { + string home_dir_path = 1; + repeated exa.language_server_pb.WorkspaceInfo workspace_infos = 2; + string home_dir_uri = 3; +} + +message SetWorkingDirectoriesRequest { + repeated string directory_uris = 1; +} + +message SetWorkingDirectoriesResponse { +} + +message GetWorkingDirectoriesRequest { +} + +message GetWorkingDirectoriesResponse { + repeated exa.codeium_common_pb.WorkingDirectoryInfo directories = 1; +} + +message CreateWorktreeRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string repo_path = 2; + string base_branch_name = 3; + exa.codeium_common_pb.PlanInfo plan_info = 4; + repeated exa.codeium_common_pb.TextOrScopeItem items = 5; + repeated exa.codeium_common_pb.ImageData images = 6; + repeated exa.codeium_common_pb.Media media = 7; +} + +message CreateWorktreeResponse { + string worktree_dir_uri = 1; + string worktree_name = 2; +} + +message DeleteWorktreeRequest { + string worktree_dir_uri = 1; + string repo_uri = 2; +} + +message DeleteWorktreeResponse { + bool success = 1; + string error_message = 2; +} + +message CheckoutWorktreeRequest { + string worktree_dir_uri = 1; + string target_workspace_uri = 2; + bool delete_worktree_after_checkout = 3; +} + +message CheckoutWorktreeResponse { + bool success = 1; + string error_message = 2; + exa.language_server_pb.CheckoutSummary summary = 3; + string diff_patch = 4; +} + +message CheckoutSummary { + int32 files_changed = 1; + int32 additions = 2; + int32 deletions = 3; +} + +message GetWorktreeDiffRequest { + string worktree_dir_uri = 1; + string target_workspace_uri = 2; +} + +message GetWorktreeDiffResponse { + string diff_patch = 1; + exa.language_server_pb.CheckoutSummary summary = 2; +} + +message CreateCitcWorkspaceRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.codeium_common_pb.TextOrScopeItem items = 2; + repeated exa.codeium_common_pb.Media media = 3; + bool clone_current_workspace = 4; + string source_workspace_uri = 5; +} + +message CreateCitcWorkspaceResponse { + string workspace_dir_uri = 1; + string workspace_name = 2; +} + +message GenerateCommitMessageRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.PlanInfo plan_info = 2; + string repo_root = 3; +} + +message CommitMessageData { + string repo_root = 1; + string commit_message_summary = 2; + string commit_message_description = 3; + repeated string changed_files_migrate_me_to_uri = 4; + repeated string changed_file_uris = 5; +} + +message GenerateCommitMessageResponse { + exa.language_server_pb.CommitMessageData commit_message = 2; +} + +message RecordCommitMessageSaveRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string repo_root = 2; + string branch_name = 3; + string commit_hash = 4; + string commit_message = 5; + google.protobuf.Timestamp commit_timestamp = 6; + string parent_commit_hash = 7; + string author_name = 8; + string author_email = 9; +} + +message RecordCommitMessageSaveResponse { +} + +message UpdatePRForWorktreeRequest { + string worktree_fs_path = 1; + string commit_message = 2; + string title = 3; + string body = 4; +} + +message UpdatePRForWorktreeResponse { + string pr_url = 1; +} + +message GetUserSettingsRequest { +} + +message GetUserSettingsResponse { + exa.codeium_common_pb.UserSettings user_settings = 1; +} + +message SetUserSettingsRequest { + exa.codeium_common_pb.UserSettings user_settings = 1; +} + +message SetUserSettingsResponse { + exa.codeium_common_pb.UserSettings user_settings = 1; +} + +message GetDebugDiagnosticsRequest { +} + +message GetDebugDiagnosticsResponse { + exa.codeium_common_pb.LanguageServerDiagnostics language_server_diagnostics = 1; +} + +message CodeRange { + exa.codeium_common_pb.CodeSource source = 1; + uint64 start_offset = 2; + uint64 end_offset = 3; + bool modified = 4; + string completion_id = 5; + exa.codeium_common_pb.CompletionType completion_type = 6; + exa.codeium_common_pb.ProviderSource provider_source = 7; +} + +message CodeTrackerState { + string absolute_path_migrate_me_to_uri = 1; + string absolute_uri = 6; + string text = 2; + repeated exa.language_server_pb.CodeRange ranges = 3; + string commit = 4; + string repo_root_migrate_me_to_uri = 5; + string repo_root_uri = 7; +} + +message GetMatchingContextScopeItemsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.codeium_common_pb.ContextScopeType allowed_types = 2; + repeated exa.codeium_common_pb.CodeContextType allowed_context_types = 7; + string query = 3; + bool fuzzy_match = 4; + int32 max_items = 5; + bool case_insensitive = 6; + string repo_filter = 8; + uint64 cancel_token = 9; +} + +message GetMatchingContextScopeItemsResponse { + repeated exa.codeium_common_pb.ContextScopeItem items = 1; +} + +message SetupUniversitySandboxRequest { +} + +message SetupUniversitySandboxResponse { + string base_directory = 1; +} + +message UnifiedDiffChange { + string text = 1; + exa.language_server_pb.UnifiedDiffChangeType type = 2; +} + +message UnifiedDiff { + repeated exa.language_server_pb.UnifiedDiffChange changes = 1; +} + +message CodeTheme { + string background = 1; + string text = 2; + string whitespace = 3; + string other = 4; + string literal = 5; + string literal_string = 6; + string number = 7; + string operator = 8; + string punctuation = 9; + string generic = 10; + string name = 11; + string keyword = 12; + string comment = 13; + string error = 14; +} + +message OnboardingItemState { + exa.codeium_common_pb.OnboardingActionType action_type = 1; + bool completed = 2; +} + +message OnboardingState { + bool has_skipped = 1; + repeated exa.language_server_pb.OnboardingItemState items = 2; +} + +message ResetOnboardingRequest { + bool clear_history = 1; +} + +message ResetOnboardingResponse { +} + +message SkipOnboardingRequest { +} + +message SkipOnboardingResponse { +} + +message GetUserTrajectoryDebugRequest { + bool include_all_trajectories = 1; +} + +message GetUserTrajectoryDebugResponse { + repeated exa.jetski_cortex_pb.ImplicitTrajectory mainline = 1; + gemini_coder.Trajectory granular = 2; + exa.language_server_pb.SupercompletePromptTrajectory supercomplete = 3; +} + +message SupercompletePromptTrajectory { + gemini_coder.Trajectory trajectory = 1; + repeated int32 included_steps = 2; +} + +message GetUserTrajectoryDescriptionsRequest { +} + +message GetUserTrajectoryDescriptionsResponse { + repeated exa.cortex_pb.ImplicitTrajectoryDescription trajectories = 1; +} + +message ForceBackgroundResearchRefreshRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string mainline_trajectory_id = 2; + bool blocking = 3; + bool full_refresh = 4; +} + +message ForceBackgroundResearchRefreshResponse { +} + +message ReplayGroundTruthTrajectoryRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated gemini_coder.Step replay_steps = 2; + string cascade_id = 3; + exa.cortex_pb.CascadeConfig cascade_config = 4; +} + +message ReplayGroundTruthTrajectoryResponse { + gemini_coder.Trajectory trajectory = 1; +} + +message InitializeCascadePanelStateRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.UserStatus user_status = 2; +} + +message InitializeCascadePanelStateResponse { +} + +message StartCascadeRequest { + exa.jetski_cortex_pb.BaseTrajectoryIdentifier base_trajectory_identifier = 3; + exa.cortex_pb.CortexTrajectorySource source = 4; + exa.cortex_pb.CortexTrajectoryType trajectory_type = 5; + exa.cortex_pb.AgentScriptItem agent_script_item = 6; + optional string cascade_id = 7; + repeated string workspace_uris = 8; + repeated string override_workspace_uris = 9; + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.ExperimentConfig experiment_config = 2; +} + +message StartCascadeResponse { + string cascade_id = 1; +} + +message GetCascadeTrajectoryRequest { + string cascade_id = 1; + exa.language_server_pb.ClientTrajectoryVerbosity verbosity = 2; + exa.jetski_cortex_pb.ClientTrajectoryVerbosity trajectory_verbosity = 3; +} + +message GetCascadeTrajectoryResponse { + gemini_coder.Trajectory trajectory = 1; + exa.cortex_pb.CascadeRunStatus status = 2; + uint32 num_total_steps = 3; + uint32 num_total_generator_metadata = 4; +} + +message GetArtifactSnapshotsRequest { + string cascade_id = 1; +} + +message GetArtifactSnapshotsResponse { + repeated exa.cortex_pb.ArtifactSnapshot artifact_snapshots = 1; +} + +message GetUserTrajectoryRequest { + string trajectory_id = 1; +} + +message GetUserTrajectoryResponse { + gemini_coder.Trajectory trajectory = 1; +} + +message GetCascadeTrajectoryStepsRequest { + string cascade_id = 1; + uint32 step_offset = 2; + exa.language_server_pb.ClientTrajectoryVerbosity verbosity = 3; + exa.jetski_cortex_pb.ClientTrajectoryVerbosity trajectory_verbosity = 4; +} + +message GetCascadeTrajectoryStepsResponse { + repeated gemini_coder.Step steps = 1; +} + +message GetCascadeTrajectoryGeneratorMetadataRequest { + string cascade_id = 1; + uint32 generator_metadata_offset = 2; + bool include_messages = 3; +} + +message GetCascadeTrajectoryGeneratorMetadataResponse { + repeated exa.cortex_pb.CortexStepGeneratorMetadata generator_metadata = 1; +} + +message GetAllCascadeTrajectoriesRequest { + bool exclude_subtrajectories = 1; +} + +message GetAllCascadeTrajectoriesResponse { + repeated exa.language_server_pb.GetAllCascadeTrajectoriesResponse.TrajectorySummariesEntry trajectory_summaries = 1; +} + +message CancelCascadeInvocationRequest { + string cascade_id = 1; + bool kill_background_tasks = 2; +} + +message CancelCascadeInvocationResponse { +} + +message ForceStopCascadeTreeRequest { + string conversation_id = 1; +} + +message ForceStopCascadeTreeResponse { + repeated string stopped_conversation_ids = 1; +} + +message CancelCascadeStepsRequest { + string cascade_id = 1; + repeated uint32 step_indices = 2; +} + +message CancelCascadeStepsResponse { +} + +message SendStepsToBackgroundRequest { + string conversation_id = 1; + repeated uint32 step_indices = 2; +} + +message SendStepsToBackgroundResponse { +} + +message SkipBrowserSubagentRequest { + string cascade_id = 1; + int32 step_index = 2; +} + +message SkipBrowserSubagentResponse { +} + +message SendUserCascadeMessageRequest { + exa.codeium_common_pb.Metadata metadata = 3; + string cascade_id = 1; + repeated exa.codeium_common_pb.TextOrScopeItem items = 2; + repeated exa.codeium_common_pb.ImageData images = 6; + repeated exa.codeium_common_pb.ArtifactComment artifact_comments = 10; + repeated exa.codeium_common_pb.FileDiffComment file_diff_comments = 12; + repeated exa.codeium_common_pb.FileComment file_comments = 13; + repeated exa.codeium_common_pb.Media media = 14; + exa.cortex_pb.CascadeConfig cascade_config = 5; + exa.codeium_common_pb.ExperimentConfig experiment_config = 4; + bool blocking = 8; + repeated gemini_coder.Step additional_steps = 9; + exa.chat_client_server_pb.ChatClientRequestStreamClientType client_type = 11; + bool propagate_error = 16; + exa.cortex_pb.CortexStepPlannerResponse planner_response = 17; + exa.language_server_pb.AgentMessageOrigin message_origin = 18; +} + +message SendUserCascadeMessageResponse { + bool queued = 1; +} + +message SignalExecutableIdleRequest { + string conversation_id = 1; +} + +message SignalExecutableIdleResponse { +} + +message SendAllQueuedMessagesRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string cascade_id = 2; + exa.cortex_pb.CascadeConfig cascade_config = 3; +} + +message SendAllQueuedMessagesResponse { +} + +message DeleteQueuedUserInputStepRequest { + string cascade_id = 1; + int32 step_index = 2; +} + +message DeleteQueuedUserInputStepResponse { +} + +message SaveMediaAsArtifactRequest { + exa.codeium_common_pb.Media media = 1; +} + +message SaveMediaAsArtifactResponse { + string uri = 1; +} + +message DeleteMediaArtifactRequest { + string uri = 1; +} + +message DeleteMediaArtifactResponse { + bool success = 1; + string error_message = 2; +} + +message RevertToCascadeStepRequest { + exa.codeium_common_pb.Metadata metadata = 3; + string cascade_id = 1; + int32 step_index = 2; + exa.codeium_common_pb.ExperimentConfig experiment_config = 4; + exa.cortex_pb.CascadeConfig override_config = 5; +} + +message RevertToCascadeStepResponse { + exa.cortex_pb.RevertMetadata metadata = 1; +} + +message CodeEditRevertPreview { + string file_uri = 1; + exa.diff_action_pb.UnifiedDiff diff = 2; + exa.language_server_pb.CodeRevertActionType action_type = 3; +} + +message GetRevertPreviewRequest { + string cascade_id = 1; + int32 step_index = 2; + exa.codeium_common_pb.Metadata metadata = 3; + exa.cortex_pb.CascadeConfig override_config = 4; +} + +message GetRevertPreviewResponse { + repeated exa.language_server_pb.CodeEditRevertPreview code_edit_previews = 1; +} + +message RecordUserStepSnapshotRequest { + string cascade_id = 1; + int32 step_index = 2; + exa.cortex_pb.UserStepSnapshot snapshot = 3; +} + +message RecordUserStepSnapshotResponse { +} + +message HandleCascadeUserInteractionRequest { + string cascade_id = 1; + exa.cortex_pb.CascadeUserInteraction interaction = 2; +} + +message HandleCascadeUserInteractionResponse { +} + +message AcknowledgeCascadeCodeEditRequest { + exa.codeium_common_pb.Metadata metadata = 4; + string cascade_id = 1; + repeated string absolute_uri = 2; + repeated string contents = 5; + bool accept = 3; +} + +message AcknowledgeCascadeCodeEditResponse { +} + +message CodeAcknowledgementRequestInfo { + string uri_path = 1; + repeated uint32 step_indices = 2; + string pre_code_actions_state = 3; + string post_code_actions_state = 4; +} + +message AcknowledgeCodeActionStepRequest { + string cascade_id = 1; + bool accept = 3; + string written_feedback = 4; + exa.cortex_pb.CodeAcknowledgementScope acknowledgement_scope = 5; + repeated exa.language_server_pb.CodeAcknowledgementRequestInfo code_acknowledgement_request_infos = 7; +} + +message AcknowledgeCodeActionStepResponse { +} + +message GetCodeValidationStatesRequest { + string cascade_id = 1; +} + +message GetCodeValidationStatesResponse { + repeated exa.language_server_pb.ValidationState states = 1; +} + +message ValidationState { + string uri = 1; + string last_acknowledged_state = 2; + string current_state = 3; + bool last_state_file_nonexistent = 4; +} + +message DeleteCascadeTrajectoryRequest { + string cascade_id = 1; +} + +message DeleteCascadeTrajectoryResponse { +} + +message ResolveOutstandingStepsRequest { + string cascade_id = 1; +} + +message ResolveOutstandingStepsResponse { +} + +message StreamTerminalShellCommandResponse { +} + +message GetWebDocsOptionsRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetWebDocsOptionsResponse { + repeated exa.codeium_common_pb.WebDocsOption options = 1; +} + +message UpdateDevExperimentsRequest { + exa.codeium_common_pb.ExperimentConfig experiment_config = 1; +} + +message UpdateDevExperimentsResponse { +} + +message SetBaseExperimentsRequest { + exa.codeium_common_pb.ExperimentConfig experiment_config = 1; +} + +message SetBaseExperimentsResponse { +} + +message GetCascadeModelConfigDataRequest { +} + +message GetCascadeMemoriesRequest { +} + +message GetCascadeMemoriesResponse { + repeated exa.cortex_pb.CortexMemory memories = 1; +} + +message GetModelStatusesRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetModelStatusesResponse { + repeated exa.codeium_common_pb.ModelStatusInfo model_status_infos = 1; +} + +message DeleteCascadeMemoryRequest { + string memory_id = 1; +} + +message DeleteCascadeMemoryResponse { +} + +message UpdateCascadeMemoryRequest { + string memory_id = 1; + string title = 2; + string content = 3; + repeated string tags = 4; +} + +message UpdateCascadeMemoryResponse { +} + +message GetUserMemoriesRequest { +} + +message GetUserMemoriesResponse { + repeated exa.cortex_pb.CortexMemory memories = 1; +} + +message GetConversationTagsRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetConversationTagsResponse { + repeated exa.language_server_pb.GetConversationTagsResponse.ConversationTagsEntry conversation_tags = 1; +} + +message ConversationTagList { + repeated string tags = 1; +} + +message UpdateConversationTagsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string cascade_id = 2; + repeated string tags = 3; +} + +message UpdateConversationTagsResponse { +} + +message UpdateConversationAnnotationsRequest { + string cascade_id = 1; + exa.jetski_cortex_pb.ConversationAnnotations annotations = 2; + bool merge_annotations = 3; +} + +message UpdateConversationAnnotationsResponse { +} + +message RefreshMcpServersRequest { + bool shallow = 1; + optional string server_name = 2; +} + +message RefreshMcpServersResponse { +} + +message GetMcpServerStatesRequest { +} + +message GetMcpServerStatesResponse { + repeated exa.cortex_pb.McpServerState states = 1; + bool is_loading = 2; +} + +message CompleteMcpOAuthRequest { + string server_name = 1; + string authorization_code = 2; +} + +message CompleteMcpOAuthResponse { +} + +message DisconnectMcpOAuthRequest { + string server_name = 1; +} + +message DisconnectMcpOAuthResponse { +} + +message GetAllWorkflowsRequest { + repeated string workspace_uris = 1; +} + +message GetAllWorkflowsResponse { + repeated exa.cortex_pb.WorkflowSpec workflows = 2; +} + +message GetAllCustomAgentConfigsRequest { +} + +message GetAllCustomAgentConfigsResponse { + repeated exa.language_server_pb.GetAllCustomAgentConfigsResponse.ConfigMapEntry config_map = 1; +} + +message CopyBuiltinWorkflowToWorkspaceRequest { + exa.cortex_pb.WorkflowSpec workflow = 1; + exa.codeium_common_pb.Metadata metadata = 2; +} + +message CopyBuiltinWorkflowToWorkspaceResponse { + exa.cortex_pb.WorkflowSpec workflow = 1; +} + +message GetAllRulesRequest { + repeated string workspace_uris = 1; +} + +message GetAllRulesResponse { + repeated exa.cortex_pb.CortexMemory memories = 2; +} + +message GetAllSkillsRequest { + repeated string workspace_uris = 1; +} + +message GetAllSkillsResponse { + repeated exa.cortex_pb.WorkflowSpec skills = 1; +} + +message GetSkillMarketplaceLinkRequest { + string skill_path = 1; +} + +message GetSkillMarketplaceLinkResponse { + string marketplace_url = 1; +} + +message ScanSkillsConfigFileRequest { + string config_file_path = 1; + string workspace_uri = 2; +} + +message ScanSkillsConfigFileResponse { + repeated exa.cortex_pb.WorkflowSpec skills = 1; +} + +message ListMcpResourcesRequest { + optional string server_name = 1; + optional string query = 2; +} + +message ListMcpResourcesResponse { + repeated exa.codeium_common_pb.McpResourceItem resources = 1; +} + +message ListMcpPromptsRequest { +} + +message ListMcpPromptsResponse { + repeated exa.cortex_pb.McpPromptSpec prompts = 1; +} + +message GetMcpPromptRequest { + string server_name = 1; + string name = 2; + repeated exa.language_server_pb.GetMcpPromptRequest.ArgumentsEntry arguments = 3; +} + +message GetMcpPromptResponse { + string description = 1; + repeated exa.codeium_common_pb.McpPromptMessage messages = 2; +} + +message UpdateEnterpriseExperimentsFromUrlRequest { + string portal_url = 1; +} + +message UpdateEnterpriseExperimentsFromUrlResponse { + bool success = 1; + string error_message = 2; + exa.codeium_common_pb.ExperimentConfig experiment_config = 3; +} + +message ImportFromCursorRequest { + string source_path = 1; +} + +message ImportFromCursorResponse { + repeated string copied_files = 1; + repeated string duplicate_files = 2; + repeated string problem_files = 3; +} + +message CreateCustomizationFileRequest { + exa.language_server_pb.CustomizationFileType file_type = 1; + string file_name = 2; + string workspace_uri = 3; +} + +message CreateCustomizationFileResponse { + string file_path = 1; +} + +message SendActionToChatPanelRequest { + string action_type = 1; + repeated bytes payload = 2; +} + +message SendActionToChatPanelResponse { +} + +message RecordUserGrepRequest { + string query = 1; + repeated exa.cortex_pb.GrepSearchResult results = 2; + google.protobuf.Timestamp timestamp = 3; +} + +message RecordUserGrepResponse { +} + +message GetUnleashDataRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.language_server_pb.GetUnleashDataRequest.PropertiesEntry properties = 2; +} + +message GetUnleashDataResponse { + exa.codeium_common_pb.UnleashContext context = 1; + exa.codeium_common_pb.ExperimentConfig experiment_config = 2; +} + +message ShouldEnableUnleashRequest { +} + +message ShouldEnableUnleashResponse { + bool should_enable = 1; +} + +message GetPatchAndCodeChangeRequest { + string intent = 1; + exa.codeium_common_pb.GitRepoInfo base_state_repo_info = 2; + string repo_path = 3; +} + +message GetPatchAndCodeChangeResponse { + string patch_string = 1; + exa.code_edit.code_edit_pb.CodeChangeWithContext code_change_with_context = 2; +} + +message ConvertTrajectoryToMarkdownRequest { + gemini_coder.Trajectory trajectory = 1; + string conversation_id = 2; +} + +message ConvertTrajectoryToMarkdownResponse { + string markdown = 1; +} + +message LoadTrajectoryRequest { + string cascade_id = 1; +} + +message LoadTrajectoryResponse { +} + +message CreateTrajectoryShareRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.cortex_pb.TrajectoryShareStatus share_status = 3; + string cascade_id = 4; +} + +message CreateTrajectoryShareResponse { + string url = 1; +} + +message GetAvailableCascadePluginsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string os = 2; + optional string search_query = 3; +} + +message GetAvailableCascadePluginsResponse { + repeated exa.cascade_plugins_pb.CascadePluginTemplate plugins = 1; +} + +message InstallCascadePluginRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string plugin_id = 2; +} + +message InstallCascadePluginResponse { + int64 installation_count = 1; +} + +message GetCascadePluginByIdRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string os = 2; + string plugin_id = 3; +} + +message GetCascadePluginByIdResponse { + exa.cascade_plugins_pb.CascadePluginTemplate plugin = 1; +} + +message RecordLintsRequest { + exa.codeium_common_pb.Language current_language = 1; + repeated exa.codeium_common_pb.CodeDiagnostic lints = 2; + google.protobuf.Timestamp timestamp = 3; +} + +message RecordLintsResponse { +} + +message StatUriRequest { + string uri = 1; +} + +message StatUriResponse { + exa.language_server_pb.FileType file_type = 1; + google.protobuf.Timestamp mod_time = 2; +} + +message ReadFileRequest { + string uri = 1; +} + +message ReadFileResponse { + bytes content = 1; + exa.codeium_common_pb.Language language = 2; +} + +message WriteFileRequest { + string uri = 1; + bytes content = 2; + bool overwrite = 3; +} + +message WriteFileResponse { +} + +message ReadDirRequest { + string uri = 1; +} + +message ReadDirEntry { + string uri = 1; + exa.language_server_pb.FileType file_type = 2; +} + +message ReadDirResponse { + repeated exa.language_server_pb.ReadDirEntry entries = 1; +} + +message DeleteFileOrDirectoryRequest { + string uri = 1; +} + +message DeleteFileOrDirectoryResponse { +} + +message WatchDirectoryRequest { + string uri = 1; + bool recursive = 2; +} + +message WatchDirectoryResponse { + repeated string uri = 1; +} + +message SetBrowserOpenConversationRequest { + string cascade_id = 1; + optional google.protobuf.Timestamp expires_at = 2; +} + +message SetBrowserOpenConversationResponse { +} + +message GetBrowserOpenConversationRequest { +} + +message GetBrowserOpenConversationResponse { + optional string cascade_id = 1; +} + +message RecordInteractiveCascadeFeedbackRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string cascade_id = 2; + int32 step_index = 3; + int32 chunk_index = 4; + exa.cortex_pb.AcknowledgementType acknowledgement_type = 5; +} + +message RecordInteractiveCascadeFeedbackResponse { +} + +message GetCascadeNuxesRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetCascadeNuxesResponse { + repeated exa.codeium_common_pb.CascadeNUXConfig nuxes = 1; +} + +message GetStaticExperimentStatusRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetStaticExperimentStatusResponse { + repeated exa.chat_pb.ChatExperimentStatus status = 1; +} + +message RecordAnalyticsEventRequest { + string event_name = 1; + exa.codeium_common_pb.Metadata metadata = 2; + repeated exa.language_server_pb.RecordAnalyticsEventRequest.ExtraEntry extra = 3; + repeated exa.language_server_pb.RecordAnalyticsEventRequest.ExperimentsEntry experiments = 4; +} + +message RecordAnalyticsEventResponse { +} + +message RecordErrorRequest { + exa.codeium_common_pb.ErrorTrace error_trace = 1; + bool should_upload_immediately = 2; +} + +message RecordErrorResponse { +} + +message RecordObservabilityDataRequest { + string datatype = 1; + repeated exa.language_server_pb.RecordObservabilityDataRequest.ExtraEntry extra = 2; + repeated exa.language_server_pb.RecordObservabilityDataRequest.SensitiveDataEntry sensitive_data = 3; +} + +message RecordObservabilityDataResponse { +} + +message GetTermsOfServiceRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetTermsOfServiceResponse { + string terms_of_service_text = 1; + string version = 2; +} + +message AcceptTermsOfServiceRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string version = 2; +} + +message AcceptTermsOfServiceResponse { +} + +message DumpFlightRecorderRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string trace_file_path = 2; +} + +message DumpFlightRecorderResponse { +} + +message DumpPprofRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string heap_file_path = 2; + string goroutine_file_path = 3; + string mutex_file_path = 4; +} + +message DumpPprofResponse { +} + +message OAuthTokenInfo { + string access_token = 1; + string token_type = 2; + string refresh_token = 3; + google.protobuf.Timestamp expiry = 4; + bool is_gcp_tos = 6; +} + +message SaveOAuthTokenInfoRequest { + exa.language_server_pb.OAuthTokenInfo token_info = 1; +} + +message SaveOAuthTokenInfoResponse { +} + +message RemoveOAuthTokenInfoRequest { +} + +message RemoveOAuthTokenInfoResponse { +} + +message CreateReplayWorkspaceRequest { + string trajectory_id = 1; + optional int32 step_index = 2; + string workspace_name = 3; + string target_user = 4; +} + +message CreateReplayWorkspaceResponse { +} + +message LoadReplayConversationRequest { + string workspace_name = 1; + string user = 2; + string cascade_id = 3; +} + +message LoadReplayConversationResponse { +} + +message ListPagesRequest { +} + +message ListPagesResponse { + repeated exa.codeium_common_pb.BrowserPageMetadata pages = 1; +} + +message BrowserValidateCascadeOrCancelOverlayRequest { + string cascade_id = 1; +} + +message BrowserValidateCascadeOrCancelOverlayResponse { +} + +message SmartFocusConversationRequest { + string cascade_id = 1; +} + +message SmartFocusConversationResponse { +} + +message OpenUrlRequest { + string url = 1; +} + +message OpenUrlResponse { +} + +message FocusUserPageRequest { + string page_id = 1; +} + +message FocusUserPageResponse { +} + +message AddToBrowserWhitelistRequest { + string hostname = 1; + repeated string hostnames = 2; +} + +message AddToBrowserWhitelistResponse { +} + +message CaptureConsoleLogsRequest { + string page_id = 1; +} + +message CaptureConsoleLogsResponse { + exa.codeium_common_pb.ConsoleLogScopeItem console_logs = 1; +} + +message StartScreenRecordingRequest { + string cascade_id = 1; + bool onboarded = 2; +} + +message StartScreenRecordingResponse { +} + +message SaveScreenRecordingRequest { + bytes video_data = 1; + string filename = 2; + string cascade_id = 3; +} + +message SaveScreenRecordingResponse { + string file_path = 1; +} + +message GetBrowserWhitelistFilePathRequest { +} + +message GetBrowserWhitelistFilePathResponse { + string path = 1; +} + +message GetAllBrowserWhitelistedUrlsRequest { +} + +message GetAllBrowserWhitelistedUrlsResponse { + repeated string whitelisted_urls = 1; +} + +message CaptureScreenshotRequest { + string page_id = 1; +} + +message CaptureScreenshotResponse { + exa.codeium_common_pb.ImageData screenshot = 2; + exa.codeium_common_pb.Media media_screenshot = 3; +} + +message SmartOpenBrowserRequest { + string url = 1; + bool is_onboarded = 2; +} + +message SmartOpenBrowserResponse { +} + +message SimulateSegFaultRequest { +} + +message SimulateSegFaultResponse { +} + +message HandleScreenRecordingRequest { + string cascade_id = 1; +} + +message HandleScreenRecordingResponse { + bytes video_data = 1; +} + +message PatchStats { + int32 num_files_changed = 1; + int32 num_line_additions = 2; + int32 num_line_deletions = 3; +} + +message GetRevisionArtifactRequest { + string repo_path_uri = 1; + optional string base_commit = 2; +} + +message GetRevisionArtifactResponse { + exa.language_server_pb.PatchStats stats = 1; + string patch = 2; +} + +message GetModelResponseRequest { + string prompt = 1; + exa.codeium_common_pb.Model model = 2; +} + +message GetModelResponseResponse { + string response = 1; +} + +message GetAgentScriptsRequest { + repeated string workspace_uris = 1; +} + +message GetAgentScriptsResponse { + repeated exa.cortex_pb.AgentScriptItem agent_scripts = 1; + repeated exa.cortex_pb.AgentCustomization agent_customizations = 2; +} + +message SaveAgentScriptCommandSpecRequest { + string name = 1; + bool save_to_workspace = 2; + bool overwrite = 3; + exa.cortex_pb.AgentScriptCommandSpec command_spec = 4; +} + +message SaveAgentScriptCommandSpecResponse { + bool created = 1; + exa.cortex_pb.AgentScriptItem agent_script = 2; +} + +message ListCustomizationPathsByFileRequest { + exa.codeium_common_pb.RefreshCustomizationType type = 1; + bool is_global = 2; +} + +message ListCustomizationPathsByFileResponse { + repeated exa.language_server_pb.ListCustomizationPathsByFileResponse.PathsFilesEntry paths_files = 1; +} + +message CustomizationPathsList { + repeated string paths = 1; +} + +message UpdateCustomizationPathsFileRequest { + string file_path = 1; + repeated string paths = 2; + exa.language_server_pb.CustomizationPathsOperation operation = 3; +} + +message UpdateCustomizationPathsFileResponse { +} + +message UpdateCustomizationRequest { + string path = 1; + exa.language_server_pb.CustomizationPathsOperation operation = 2; + oneof customization { + exa.cortex_pb.AgentScriptItem agent = 3; + exa.cortex_pb.PluginItem plugin = 4; + } +} + +message UpdateCustomizationResponse { +} + +message GetAllPluginsRequest { + repeated string workspace_uris = 1; +} + +message Plugin { + string name = 1; + string path = 2; + bool is_global = 3; + repeated exa.cortex_pb.WorkflowSpec skills = 4; + repeated exa.cortex_pb.AgentCustomization agents = 5; + repeated exa.cortex_pb.McpServerSpec mcp_servers = 6; +} + +message GetAllPluginsResponse { + repeated exa.language_server_pb.Plugin plugins = 1; +} + +message GetTokenBaseRequest { + exa.cortex_pb.CascadeConfig cascade_config = 1; + repeated string workspace_uris = 2; +} + +message GetTokenBaseResponse { + exa.cortex_pb.TokenBreakdown customization_token_base = 3; + int32 remaining_budget = 4; + int32 customization_budget = 5; + exa.cortex_pb.TokenBreakdown token_base = 1; + int32 max_token_base = 2; +} + +message RunCommandRequest { + string command = 1; + repeated string args = 2; + string cwd = 3; +} + +message RunCommandResponse { + string stdout = 1; + string stderr = 2; + int32 exit_code = 3; +} + +message JetboxWriteStateRequest { + jetbox_state_pb.State state = 1; +} + +message JetboxWriteStateResponse { +} + +message JetboxSubscribeToStateRequest { +} + +message JetboxSubscribeToStateResponse { + jetbox_state_pb.State state = 1; +} + +message JetboxWriteSummaryRequest { + string cascade_id = 1; + exa.jetski_cortex_pb.CascadeTrajectorySummary summary = 2; +} + +message JetboxWriteSummaryResponse { +} + +message JetboxDeleteSummaryRequest { + string cascade_id = 1; +} + +message JetboxDeleteSummaryResponse { +} + +message JetboxSubscribeToSummariesRequest { +} + +message JetboxSubscribeToSummariesResponse { + repeated exa.language_server_pb.JetboxSubscribeToSummariesResponse.UpdatesEntry updates = 1; + repeated string deletes = 2; +} + +message GcertStatus { + bool valid = 1; + string error = 2; + google.protobuf.Timestamp expires_at = 3; +} + +message OAuthStatus { + bool valid = 1; + string error = 2; +} + +message JetboxSubscribeToGcertStateRequest { +} + +message JetboxSubscribeToGcertStateResponse { + exa.language_server_pb.GcertStatus gcert_status = 1; +} + +message JetboxSubscribeToOAuthStateRequest { +} + +message JetboxSubscribeToOAuthStateResponse { + exa.language_server_pb.OAuthStatus oauth_status = 1; +} + +message SearchFilesRequest { + string query = 1; + string workspace_uri = 2; + int32 max_results = 3; + bool include_directories = 4; + uint64 cancel_token = 5; +} + +message SearchFilesResponse { + repeated exa.codeium_common_pb.PathScopeItem results = 1; +} + +message SearchCodeRequest { + string query = 1; + string workspace_uri = 2; + int32 max_results = 3; + int32 lines_context = 4; + uint64 cancel_token = 5; +} + +message SearchCodeResponse { + repeated exa.language_server_pb.SearchCodeResult results = 1; +} + +message SearchCodeResult { + string absolute_uri = 1; + repeated exa.language_server_pb.SearchCodeResult.WorkspaceUrisToRelativePathsEntry workspace_uris_to_relative_paths = 2; + int32 line_number = 3; + string snippet = 4; + int32 match_start_col = 5; + int32 match_end_col = 6; +} + +message GenerateSkillInstallationCLRequest { + repeated string skill_paths = 1; + string ldap = 2; +} + +message GenerateSkillInstallationCLResponse { + int64 cl_number = 1; + string cl_url = 2; +} + +message JetboxGetLatestVersionRequest { +} + +message JetboxGetLatestVersionResponse { + string latest_version = 1; +} + +message GetAgentTeamMetadataRequest { + string project_dir_uri = 1; +} + +message AgentInstance { + string name = 1; + string log_file_path = 2; +} + +message AgentTeamTask { + string id = 1; + bool is_completed = 2; + string task_file_uri = 3; +} + +message GetAgentTeamMetadataResponse { + repeated exa.language_server_pb.AgentInstance agents = 1; + repeated exa.language_server_pb.AgentTeamTask tasks = 2; +} + +message GetCodeFrequencyForRepoRequest { + string repo_uri = 1; + string branch = 2; + int32 minutes_per_bucket = 3; +} + +message CodeFrequencyRecord { + int32 num_commits = 1; + int32 lines_added = 2; + int32 lines_deleted = 3; + google.protobuf.Timestamp record_start_time = 4; + google.protobuf.Timestamp record_end_time = 5; +} + +message GetCodeFrequencyForRepoResponse { + repeated exa.language_server_pb.CodeFrequencyRecord code_frequency = 1; +} + +service LanguageServerService { + rpc ProvideCompletionFeedback(exa.language_server_pb.ProvideCompletionFeedbackRequest) returns (exa.language_server_pb.ProvideCompletionFeedbackResponse); + rpc Heartbeat(exa.language_server_pb.HeartbeatRequest) returns (exa.language_server_pb.HeartbeatResponse); + rpc GetStatus(exa.language_server_pb.GetStatusRequest) returns (exa.language_server_pb.GetStatusResponse); + rpc GetCommandModelConfigs(exa.language_server_pb.GetCommandModelConfigsRequest) returns (exa.language_server_pb.GetCommandModelConfigsResponse); + rpc GetCascadeModelConfigs(exa.language_server_pb.GetCascadeModelConfigsRequest) returns (exa.language_server_pb.GetCascadeModelConfigsResponse); + rpc RecordEvent(exa.language_server_pb.RecordEventRequest) returns (exa.language_server_pb.RecordEventResponse); + rpc RegisterGdmUser(exa.language_server_pb.RegisterGdmUserRequest) returns (exa.language_server_pb.RegisterGdmUserResponse); + rpc MigrateApiKey(exa.language_server_pb.MigrateApiKeyRequest) returns (exa.language_server_pb.MigrateApiKeyResponse); + rpc WellSupportedLanguages(exa.language_server_pb.WellSupportedLanguagesRequest) returns (exa.language_server_pb.WellSupportedLanguagesResponse); + rpc RecordSearchDocOpen(exa.language_server_pb.RecordSearchDocOpenRequest) returns (exa.language_server_pb.RecordSearchDocOpenResponse); + rpc RecordSearchResultsView(exa.language_server_pb.RecordSearchResultsViewRequest) returns (exa.language_server_pb.RecordSearchResultsViewResponse); + rpc HandleStreamingCommand(exa.language_server_pb.HandleStreamingCommandRequest) returns (stream exa.language_server_pb.HandleStreamingCommandResponse); + rpc GetMcpServerTemplates(exa.language_server_pb.GetMcpServerTemplatesRequest) returns (exa.language_server_pb.GetMcpServerTemplatesResponse); + rpc AddTrackedWorkspace(exa.language_server_pb.AddTrackedWorkspaceRequest) returns (exa.language_server_pb.AddTrackedWorkspaceResponse); + rpc RemoveTrackedWorkspace(exa.language_server_pb.RemoveTrackedWorkspaceRequest) returns (exa.language_server_pb.RemoveTrackedWorkspaceResponse); + rpc SmartFocusConversation(exa.language_server_pb.SmartFocusConversationRequest) returns (exa.language_server_pb.SmartFocusConversationResponse); + rpc StatUri(exa.language_server_pb.StatUriRequest) returns (exa.language_server_pb.StatUriResponse); + rpc ReadFile(exa.language_server_pb.ReadFileRequest) returns (exa.language_server_pb.ReadFileResponse); + rpc WriteFile(exa.language_server_pb.WriteFileRequest) returns (exa.language_server_pb.WriteFileResponse); + rpc ReadDir(exa.language_server_pb.ReadDirRequest) returns (exa.language_server_pb.ReadDirResponse); + rpc DeleteFileOrDirectory(exa.language_server_pb.DeleteFileOrDirectoryRequest) returns (exa.language_server_pb.DeleteFileOrDirectoryResponse); + rpc WatchDirectory(exa.language_server_pb.WatchDirectoryRequest) returns (stream exa.language_server_pb.WatchDirectoryResponse); + rpc SetBrowserOpenConversation(exa.language_server_pb.SetBrowserOpenConversationRequest) returns (exa.language_server_pb.SetBrowserOpenConversationResponse); + rpc GetBrowserOpenConversation(exa.language_server_pb.GetBrowserOpenConversationRequest) returns (exa.language_server_pb.GetBrowserOpenConversationResponse); + rpc RefreshContextForIdeAction(exa.language_server_pb.RefreshContextForIdeActionRequest) returns (exa.language_server_pb.RefreshContextForIdeActionResponse); + rpc GetMatchingContextScopeItems(exa.language_server_pb.GetMatchingContextScopeItemsRequest) returns (exa.language_server_pb.GetMatchingContextScopeItemsResponse); + rpc RecordChatFeedback(exa.language_server_pb.RecordChatFeedbackRequest) returns (exa.language_server_pb.RecordChatFeedbackResponse); + rpc RecordChatPanelSession(exa.language_server_pb.RecordChatPanelSessionRequest) returns (exa.language_server_pb.RecordChatPanelSessionResponse); + rpc ShouldEnableUnleash(exa.language_server_pb.ShouldEnableUnleashRequest) returns (exa.language_server_pb.ShouldEnableUnleashResponse); + rpc GetWorkspaceEditState(exa.language_server_pb.GetWorkspaceEditStateRequest) returns (exa.language_server_pb.GetWorkspaceEditStateResponse); + rpc GetRepoInfos(exa.language_server_pb.GetRepoInfosRequest) returns (exa.language_server_pb.GetRepoInfosResponse); + rpc GetWorkspaceInfos(exa.language_server_pb.GetWorkspaceInfosRequest) returns (exa.language_server_pb.GetWorkspaceInfosResponse); + rpc CreateWorktree(exa.language_server_pb.CreateWorktreeRequest) returns (exa.language_server_pb.CreateWorktreeResponse); + rpc DeleteWorktree(exa.language_server_pb.DeleteWorktreeRequest) returns (exa.language_server_pb.DeleteWorktreeResponse); + rpc CheckoutWorktree(exa.language_server_pb.CheckoutWorktreeRequest) returns (exa.language_server_pb.CheckoutWorktreeResponse); + rpc GetWorktreeDiff(exa.language_server_pb.GetWorktreeDiffRequest) returns (exa.language_server_pb.GetWorktreeDiffResponse); + rpc CreateCitcWorkspace(exa.language_server_pb.CreateCitcWorkspaceRequest) returns (exa.language_server_pb.CreateCitcWorkspaceResponse); + rpc SetWorkingDirectories(exa.language_server_pb.SetWorkingDirectoriesRequest) returns (exa.language_server_pb.SetWorkingDirectoriesResponse); + rpc GetWorkingDirectories(exa.language_server_pb.GetWorkingDirectoriesRequest) returns (exa.language_server_pb.GetWorkingDirectoriesResponse); + rpc GetRevisionArtifact(exa.language_server_pb.GetRevisionArtifactRequest) returns (exa.language_server_pb.GetRevisionArtifactResponse); + rpc GenerateCommitMessage(exa.language_server_pb.GenerateCommitMessageRequest) returns (exa.language_server_pb.GenerateCommitMessageResponse); + rpc RecordCommitMessageSave(exa.language_server_pb.RecordCommitMessageSaveRequest) returns (exa.language_server_pb.RecordCommitMessageSaveResponse); + rpc UpdatePRForWorktree(exa.language_server_pb.UpdatePRForWorktreeRequest) returns (exa.language_server_pb.UpdatePRForWorktreeResponse); + rpc SendActionToChatPanel(exa.language_server_pb.SendActionToChatPanelRequest) returns (exa.language_server_pb.SendActionToChatPanelResponse); + rpc GetUserSettings(exa.language_server_pb.GetUserSettingsRequest) returns (exa.language_server_pb.GetUserSettingsResponse); + rpc SetUserSettings(exa.language_server_pb.SetUserSettingsRequest) returns (exa.language_server_pb.SetUserSettingsResponse); + rpc GetDebugDiagnostics(exa.language_server_pb.GetDebugDiagnosticsRequest) returns (exa.language_server_pb.GetDebugDiagnosticsResponse); + rpc DumpFlightRecorder(exa.language_server_pb.DumpFlightRecorderRequest) returns (exa.language_server_pb.DumpFlightRecorderResponse); + rpc DumpPprof(exa.language_server_pb.DumpPprofRequest) returns (exa.language_server_pb.DumpPprofResponse); + rpc GetUserAnalyticsSummary(exa.language_server_pb.GetUserAnalyticsSummaryRequest) returns (exa.language_server_pb.GetUserAnalyticsSummaryResponse); + rpc GetUserStatus(exa.language_server_pb.GetUserStatusRequest) returns (exa.language_server_pb.GetUserStatusResponse); + rpc GetProfileData(exa.language_server_pb.GetProfileDataRequest) returns (exa.language_server_pb.GetProfileDataResponse); + rpc GetChangelog(exa.language_server_pb.GetChangelogRequest) returns (exa.language_server_pb.GetChangelogResponse); + rpc SetupUniversitySandbox(exa.language_server_pb.SetupUniversitySandboxRequest) returns (exa.language_server_pb.SetupUniversitySandboxResponse); + rpc Exit(exa.language_server_pb.ExitRequest) returns (exa.language_server_pb.ExitResponse); + rpc Restart(exa.language_server_pb.RestartRequest) returns (exa.language_server_pb.RestartResponse); + rpc ResetOnboarding(exa.language_server_pb.ResetOnboardingRequest) returns (exa.language_server_pb.ResetOnboardingResponse); + rpc SkipOnboarding(exa.language_server_pb.SkipOnboardingRequest) returns (exa.language_server_pb.SkipOnboardingResponse); + rpc GetTermsOfService(exa.language_server_pb.GetTermsOfServiceRequest) returns (exa.language_server_pb.GetTermsOfServiceResponse); + rpc AcceptTermsOfService(exa.language_server_pb.AcceptTermsOfServiceRequest) returns (exa.language_server_pb.AcceptTermsOfServiceResponse); + rpc GetUserTrajectoryDebug(exa.language_server_pb.GetUserTrajectoryDebugRequest) returns (exa.language_server_pb.GetUserTrajectoryDebugResponse); + rpc GetUserTrajectoryDescriptions(exa.language_server_pb.GetUserTrajectoryDescriptionsRequest) returns (exa.language_server_pb.GetUserTrajectoryDescriptionsResponse); + rpc StreamUserTrajectoryReactiveUpdates(exa.reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream exa.reactive_component_pb.StreamReactiveUpdatesResponse); + rpc GetCascadeMemories(exa.language_server_pb.GetCascadeMemoriesRequest) returns (exa.language_server_pb.GetCascadeMemoriesResponse); + rpc DeleteCascadeMemory(exa.language_server_pb.DeleteCascadeMemoryRequest) returns (exa.language_server_pb.DeleteCascadeMemoryResponse); + rpc UpdateCascadeMemory(exa.language_server_pb.UpdateCascadeMemoryRequest) returns (exa.language_server_pb.UpdateCascadeMemoryResponse); + rpc GetUserMemories(exa.language_server_pb.GetUserMemoriesRequest) returns (exa.language_server_pb.GetUserMemoriesResponse); + rpc UpdateConversationAnnotations(exa.language_server_pb.UpdateConversationAnnotationsRequest) returns (exa.language_server_pb.UpdateConversationAnnotationsResponse); + rpc StartCascade(exa.language_server_pb.StartCascadeRequest) returns (exa.language_server_pb.StartCascadeResponse); + rpc CancelCascadeInvocation(exa.language_server_pb.CancelCascadeInvocationRequest) returns (exa.language_server_pb.CancelCascadeInvocationResponse); + rpc ForceStopCascadeTree(exa.language_server_pb.ForceStopCascadeTreeRequest) returns (exa.language_server_pb.ForceStopCascadeTreeResponse); + rpc CancelCascadeSteps(exa.language_server_pb.CancelCascadeStepsRequest) returns (exa.language_server_pb.CancelCascadeStepsResponse); + rpc SendStepsToBackground(exa.language_server_pb.SendStepsToBackgroundRequest) returns (exa.language_server_pb.SendStepsToBackgroundResponse); + rpc SkipBrowserSubagent(exa.language_server_pb.SkipBrowserSubagentRequest) returns (exa.language_server_pb.SkipBrowserSubagentResponse); + rpc GetCascadeModelConfigData(exa.language_server_pb.GetCascadeModelConfigDataRequest) returns (exa.codeium_common_pb.CascadeModelConfigData); + rpc SendUserCascadeMessage(exa.language_server_pb.SendUserCascadeMessageRequest) returns (exa.language_server_pb.SendUserCascadeMessageResponse); + rpc SignalExecutableIdle(exa.language_server_pb.SignalExecutableIdleRequest) returns (exa.language_server_pb.SignalExecutableIdleResponse); + rpc SendAllQueuedMessages(exa.language_server_pb.SendAllQueuedMessagesRequest) returns (exa.language_server_pb.SendAllQueuedMessagesResponse); + rpc DeleteQueuedUserInputStep(exa.language_server_pb.DeleteQueuedUserInputStepRequest) returns (exa.language_server_pb.DeleteQueuedUserInputStepResponse); + rpc RevertToCascadeStep(exa.language_server_pb.RevertToCascadeStepRequest) returns (exa.language_server_pb.RevertToCascadeStepResponse); + rpc GetRevertPreview(exa.language_server_pb.GetRevertPreviewRequest) returns (exa.language_server_pb.GetRevertPreviewResponse); + rpc RecordUserStepSnapshot(exa.language_server_pb.RecordUserStepSnapshotRequest) returns (exa.language_server_pb.RecordUserStepSnapshotResponse); + rpc GetAllCascadeTrajectories(exa.language_server_pb.GetAllCascadeTrajectoriesRequest) returns (exa.language_server_pb.GetAllCascadeTrajectoriesResponse); + rpc HandleCascadeUserInteraction(exa.language_server_pb.HandleCascadeUserInteractionRequest) returns (exa.language_server_pb.HandleCascadeUserInteractionResponse); + rpc AcknowledgeCascadeCodeEdit(exa.language_server_pb.AcknowledgeCascadeCodeEditRequest) returns (exa.language_server_pb.AcknowledgeCascadeCodeEditResponse); + rpc AcknowledgeCodeActionStep(exa.language_server_pb.AcknowledgeCodeActionStepRequest) returns (exa.language_server_pb.AcknowledgeCodeActionStepResponse); + rpc GetCodeValidationStates(exa.language_server_pb.GetCodeValidationStatesRequest) returns (exa.language_server_pb.GetCodeValidationStatesResponse); + rpc DeleteCascadeTrajectory(exa.language_server_pb.DeleteCascadeTrajectoryRequest) returns (exa.language_server_pb.DeleteCascadeTrajectoryResponse); + rpc InitializeCascadePanelState(exa.language_server_pb.InitializeCascadePanelStateRequest) returns (exa.language_server_pb.InitializeCascadePanelStateResponse); + rpc StreamCascadePanelReactiveUpdates(exa.reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream exa.reactive_component_pb.StreamReactiveUpdatesResponse); + rpc StreamCascadeReactiveUpdates(exa.reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream exa.reactive_component_pb.StreamReactiveUpdatesResponse); + rpc StreamCascadeSummariesReactiveUpdates(exa.reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream exa.reactive_component_pb.StreamReactiveUpdatesResponse); + rpc StreamAgentStateUpdates(exa.jetski_cortex_pb.StreamAgentStateUpdatesRequest) returns (stream exa.jetski_cortex_pb.StreamAgentStateUpdatesResponse); + rpc RequestAgentStatePageUpdate(exa.jetski_cortex_pb.AgentStatePageUpdateRequest) returns (exa.jetski_cortex_pb.AgentStatePageUpdateResponse); + rpc ForceBackgroundResearchRefresh(exa.language_server_pb.ForceBackgroundResearchRefreshRequest) returns (exa.language_server_pb.ForceBackgroundResearchRefreshResponse); + rpc ResolveOutstandingSteps(exa.language_server_pb.ResolveOutstandingStepsRequest) returns (exa.language_server_pb.ResolveOutstandingStepsResponse); + rpc RefreshMcpServers(exa.language_server_pb.RefreshMcpServersRequest) returns (exa.language_server_pb.RefreshMcpServersResponse); + rpc GetMcpServerStates(exa.language_server_pb.GetMcpServerStatesRequest) returns (exa.language_server_pb.GetMcpServerStatesResponse); + rpc CompleteMcpOAuth(exa.language_server_pb.CompleteMcpOAuthRequest) returns (exa.language_server_pb.CompleteMcpOAuthResponse); + rpc DisconnectMcpOAuth(exa.language_server_pb.DisconnectMcpOAuthRequest) returns (exa.language_server_pb.DisconnectMcpOAuthResponse); + rpc StreamTerminalShellCommand(stream exa.codeium_common_pb.TerminalShellCommandStreamChunk) returns (exa.language_server_pb.StreamTerminalShellCommandResponse); + rpc GetModelResponse(exa.language_server_pb.GetModelResponseRequest) returns (exa.language_server_pb.GetModelResponseResponse); + rpc SaveMediaAsArtifact(exa.language_server_pb.SaveMediaAsArtifactRequest) returns (exa.language_server_pb.SaveMediaAsArtifactResponse); + rpc DeleteMediaArtifact(exa.language_server_pb.DeleteMediaArtifactRequest) returns (exa.language_server_pb.DeleteMediaArtifactResponse); + rpc GetWebDocsOptions(exa.language_server_pb.GetWebDocsOptionsRequest) returns (exa.language_server_pb.GetWebDocsOptionsResponse); + rpc UpdateDevExperiments(exa.language_server_pb.UpdateDevExperimentsRequest) returns (exa.language_server_pb.UpdateDevExperimentsResponse); + rpc SetBaseExperiments(exa.language_server_pb.SetBaseExperimentsRequest) returns (exa.language_server_pb.SetBaseExperimentsResponse); + rpc GetUnleashData(exa.language_server_pb.GetUnleashDataRequest) returns (exa.language_server_pb.GetUnleashDataResponse); + rpc GetModelStatuses(exa.language_server_pb.GetModelStatusesRequest) returns (exa.language_server_pb.GetModelStatusesResponse); + rpc GetAllWorkflows(exa.language_server_pb.GetAllWorkflowsRequest) returns (exa.language_server_pb.GetAllWorkflowsResponse); + rpc GetAllCustomAgentConfigs(exa.language_server_pb.GetAllCustomAgentConfigsRequest) returns (exa.language_server_pb.GetAllCustomAgentConfigsResponse); + rpc CopyBuiltinWorkflowToWorkspace(exa.language_server_pb.CopyBuiltinWorkflowToWorkspaceRequest) returns (exa.language_server_pb.CopyBuiltinWorkflowToWorkspaceResponse); + rpc GetAllRules(exa.language_server_pb.GetAllRulesRequest) returns (exa.language_server_pb.GetAllRulesResponse); + rpc GetAllSkills(exa.language_server_pb.GetAllSkillsRequest) returns (exa.language_server_pb.GetAllSkillsResponse); + rpc GetSkillMarketplaceLink(exa.language_server_pb.GetSkillMarketplaceLinkRequest) returns (exa.language_server_pb.GetSkillMarketplaceLinkResponse); + rpc GenerateSkillInstallationCL(exa.language_server_pb.GenerateSkillInstallationCLRequest) returns (exa.language_server_pb.GenerateSkillInstallationCLResponse); + rpc ScanSkillsConfigFile(exa.language_server_pb.ScanSkillsConfigFileRequest) returns (exa.language_server_pb.ScanSkillsConfigFileResponse); + rpc ListMcpResources(exa.language_server_pb.ListMcpResourcesRequest) returns (exa.language_server_pb.ListMcpResourcesResponse); + rpc ListMcpPrompts(exa.language_server_pb.ListMcpPromptsRequest) returns (exa.language_server_pb.ListMcpPromptsResponse); + rpc GetMcpPrompt(exa.language_server_pb.GetMcpPromptRequest) returns (exa.language_server_pb.GetMcpPromptResponse); + rpc UpdateEnterpriseExperimentsFromUrl(exa.language_server_pb.UpdateEnterpriseExperimentsFromUrlRequest) returns (exa.language_server_pb.UpdateEnterpriseExperimentsFromUrlResponse); + rpc ImportFromCursor(exa.language_server_pb.ImportFromCursorRequest) returns (exa.language_server_pb.ImportFromCursorResponse); + rpc CreateCustomizationFile(exa.language_server_pb.CreateCustomizationFileRequest) returns (exa.language_server_pb.CreateCustomizationFileResponse); + rpc ListCustomizationPathsByFile(exa.language_server_pb.ListCustomizationPathsByFileRequest) returns (exa.language_server_pb.ListCustomizationPathsByFileResponse); + rpc UpdateCustomizationPathsFile(exa.language_server_pb.UpdateCustomizationPathsFileRequest) returns (exa.language_server_pb.UpdateCustomizationPathsFileResponse); + rpc GetTeamOrganizationalControls(exa.language_server_pb.GetTeamOrganizationalControlsRequest) returns (exa.language_server_pb.GetTeamOrganizationalControlsResponse); + rpc RecordUserGrep(exa.language_server_pb.RecordUserGrepRequest) returns (exa.language_server_pb.RecordUserGrepResponse); + rpc CreateTrajectoryShare(exa.language_server_pb.CreateTrajectoryShareRequest) returns (exa.language_server_pb.CreateTrajectoryShareResponse); + rpc GetCascadeTrajectory(exa.language_server_pb.GetCascadeTrajectoryRequest) returns (exa.language_server_pb.GetCascadeTrajectoryResponse); + rpc GetArtifactSnapshots(exa.language_server_pb.GetArtifactSnapshotsRequest) returns (exa.language_server_pb.GetArtifactSnapshotsResponse); + rpc GetUserTrajectory(exa.language_server_pb.GetUserTrajectoryRequest) returns (exa.language_server_pb.GetUserTrajectoryResponse); + rpc GetCascadeTrajectorySteps(exa.language_server_pb.GetCascadeTrajectoryStepsRequest) returns (exa.language_server_pb.GetCascadeTrajectoryStepsResponse); + rpc GetCascadeTrajectoryGeneratorMetadata(exa.language_server_pb.GetCascadeTrajectoryGeneratorMetadataRequest) returns (exa.language_server_pb.GetCascadeTrajectoryGeneratorMetadataResponse); + rpc GetPatchAndCodeChange(exa.language_server_pb.GetPatchAndCodeChangeRequest) returns (exa.language_server_pb.GetPatchAndCodeChangeResponse); + rpc ConvertTrajectoryToMarkdown(exa.language_server_pb.ConvertTrajectoryToMarkdownRequest) returns (exa.language_server_pb.ConvertTrajectoryToMarkdownResponse); + rpc LoadTrajectory(exa.language_server_pb.LoadTrajectoryRequest) returns (exa.language_server_pb.LoadTrajectoryResponse); + rpc GetAvailableCascadePlugins(exa.language_server_pb.GetAvailableCascadePluginsRequest) returns (exa.language_server_pb.GetAvailableCascadePluginsResponse); + rpc InstallCascadePlugin(exa.language_server_pb.InstallCascadePluginRequest) returns (exa.language_server_pb.InstallCascadePluginResponse); + rpc GetCascadePluginById(exa.language_server_pb.GetCascadePluginByIdRequest) returns (exa.language_server_pb.GetCascadePluginByIdResponse); + rpc GetAllPlugins(exa.language_server_pb.GetAllPluginsRequest) returns (exa.language_server_pb.GetAllPluginsResponse); + rpc UpdateCustomization(exa.language_server_pb.UpdateCustomizationRequest) returns (exa.language_server_pb.UpdateCustomizationResponse); + rpc GetAgentScripts(exa.language_server_pb.GetAgentScriptsRequest) returns (exa.language_server_pb.GetAgentScriptsResponse); + rpc SaveAgentScriptCommandSpec(exa.language_server_pb.SaveAgentScriptCommandSpecRequest) returns (exa.language_server_pb.SaveAgentScriptCommandSpecResponse); + rpc RecordLints(exa.language_server_pb.RecordLintsRequest) returns (exa.language_server_pb.RecordLintsResponse); + rpc ReplayGroundTruthTrajectory(exa.language_server_pb.ReplayGroundTruthTrajectoryRequest) returns (exa.language_server_pb.ReplayGroundTruthTrajectoryResponse); + rpc CreateReplayWorkspace(exa.language_server_pb.CreateReplayWorkspaceRequest) returns (exa.language_server_pb.CreateReplayWorkspaceResponse); + rpc LoadReplayConversation(exa.language_server_pb.LoadReplayConversationRequest) returns (exa.language_server_pb.LoadReplayConversationResponse); + rpc RecordInteractiveCascadeFeedback(exa.language_server_pb.RecordInteractiveCascadeFeedbackRequest) returns (exa.language_server_pb.RecordInteractiveCascadeFeedbackResponse); + rpc GetCascadeNuxes(exa.language_server_pb.GetCascadeNuxesRequest) returns (exa.language_server_pb.GetCascadeNuxesResponse); + rpc GetTranscription(exa.language_server_pb.GetTranscriptionRequest) returns (exa.language_server_pb.GetTranscriptionResponse); + rpc GetStaticExperimentStatus(exa.language_server_pb.GetStaticExperimentStatusRequest) returns (exa.language_server_pb.GetStaticExperimentStatusResponse); + rpc RecordAnalyticsEvent(exa.language_server_pb.RecordAnalyticsEventRequest) returns (exa.language_server_pb.RecordAnalyticsEventResponse); + rpc RecordError(exa.language_server_pb.RecordErrorRequest) returns (exa.language_server_pb.RecordErrorResponse); + rpc RecordObservabilityData(exa.language_server_pb.RecordObservabilityDataRequest) returns (exa.language_server_pb.RecordObservabilityDataResponse); + rpc ListPages(exa.language_server_pb.ListPagesRequest) returns (exa.language_server_pb.ListPagesResponse); + rpc BrowserValidateCascadeOrCancelOverlay(exa.language_server_pb.BrowserValidateCascadeOrCancelOverlayRequest) returns (exa.language_server_pb.BrowserValidateCascadeOrCancelOverlayResponse); + rpc OpenUrl(exa.language_server_pb.OpenUrlRequest) returns (exa.language_server_pb.OpenUrlResponse); + rpc FocusUserPage(exa.language_server_pb.FocusUserPageRequest) returns (exa.language_server_pb.FocusUserPageResponse); + rpc AddToBrowserWhitelist(exa.language_server_pb.AddToBrowserWhitelistRequest) returns (exa.language_server_pb.AddToBrowserWhitelistResponse); + rpc CaptureConsoleLogs(exa.language_server_pb.CaptureConsoleLogsRequest) returns (exa.language_server_pb.CaptureConsoleLogsResponse); + rpc StartScreenRecording(exa.language_server_pb.StartScreenRecordingRequest) returns (exa.language_server_pb.StartScreenRecordingResponse); + rpc SaveScreenRecording(exa.language_server_pb.SaveScreenRecordingRequest) returns (exa.language_server_pb.SaveScreenRecordingResponse); + rpc GetBrowserWhitelistFilePath(exa.language_server_pb.GetBrowserWhitelistFilePathRequest) returns (exa.language_server_pb.GetBrowserWhitelistFilePathResponse); + rpc HandleScreenRecording(exa.language_server_pb.HandleScreenRecordingRequest) returns (exa.language_server_pb.HandleScreenRecordingResponse); + rpc GetAllBrowserWhitelistedUrls(exa.language_server_pb.GetAllBrowserWhitelistedUrlsRequest) returns (exa.language_server_pb.GetAllBrowserWhitelistedUrlsResponse); + rpc CaptureScreenshot(exa.language_server_pb.CaptureScreenshotRequest) returns (exa.language_server_pb.CaptureScreenshotResponse); + rpc SmartOpenBrowser(exa.language_server_pb.SmartOpenBrowserRequest) returns (exa.language_server_pb.SmartOpenBrowserResponse); + rpc SimulateSegFault(exa.language_server_pb.SimulateSegFaultRequest) returns (exa.language_server_pb.SimulateSegFaultResponse); + rpc ReconnectExtensionServer(exa.language_server_pb.ReconnectExtensionServerRequest) returns (exa.language_server_pb.ReconnectExtensionServerResponse); + rpc GetTokenBase(exa.language_server_pb.GetTokenBaseRequest) returns (exa.language_server_pb.GetTokenBaseResponse); + rpc RunCommand(exa.language_server_pb.RunCommandRequest) returns (exa.language_server_pb.RunCommandResponse); + rpc JetboxWriteState(exa.language_server_pb.JetboxWriteStateRequest) returns (exa.language_server_pb.JetboxWriteStateResponse); + rpc JetboxSubscribeToState(exa.language_server_pb.JetboxSubscribeToStateRequest) returns (stream exa.language_server_pb.JetboxSubscribeToStateResponse); + rpc JetboxWriteSummary(exa.language_server_pb.JetboxWriteSummaryRequest) returns (exa.language_server_pb.JetboxWriteSummaryResponse); + rpc JetboxDeleteSummary(exa.language_server_pb.JetboxDeleteSummaryRequest) returns (exa.language_server_pb.JetboxDeleteSummaryResponse); + rpc JetboxSubscribeToSummaries(exa.language_server_pb.JetboxSubscribeToSummariesRequest) returns (stream exa.language_server_pb.JetboxSubscribeToSummariesResponse); + rpc JetboxSubscribeToGcertState(exa.language_server_pb.JetboxSubscribeToGcertStateRequest) returns (stream exa.language_server_pb.JetboxSubscribeToGcertStateResponse); + rpc JetboxSubscribeToOAuthState(exa.language_server_pb.JetboxSubscribeToOAuthStateRequest) returns (stream exa.language_server_pb.JetboxSubscribeToOAuthStateResponse); + rpc SearchFiles(exa.language_server_pb.SearchFilesRequest) returns (exa.language_server_pb.SearchFilesResponse); + rpc SearchCode(exa.language_server_pb.SearchCodeRequest) returns (exa.language_server_pb.SearchCodeResponse); + rpc JetboxGetLatestVersion(exa.language_server_pb.JetboxGetLatestVersionRequest) returns (exa.language_server_pb.JetboxGetLatestVersionResponse); + rpc GetAgentTeamMetadata(exa.language_server_pb.GetAgentTeamMetadataRequest) returns (exa.language_server_pb.GetAgentTeamMetadataResponse); + rpc GetCodeFrequencyForRepo(exa.language_server_pb.GetCodeFrequencyForRepoRequest) returns (exa.language_server_pb.GetCodeFrequencyForRepoResponse); +} \ No newline at end of file diff --git a/proto/language_server_simplified.proto b/proto/language_server_simplified.proto new file mode 100644 index 00000000..da1d177d --- /dev/null +++ b/proto/language_server_simplified.proto @@ -0,0 +1,218 @@ +syntax = "proto3"; + +package exa.language_server_pb; + +option go_package = "github.com/Wei-Shaw/sub2api/internal/gen/language_server_pb"; + +import "google/protobuf/timestamp.proto"; +import "google/protobuf/empty.proto"; + +// ============================================================================ +// 核心 Cascade 消息类型(Agent 流程) +// ============================================================================ + +message StartCascadeRequest { + string model = 1; // 模型名称(e.g., "claude-opus-4-6") + string system_prompt = 2; // 系统提示(可选) + map metadata = 3; // 元数据(设备指纹、User-Agent 等) +} + +message StartCascadeResponse { + string cascade_id = 1; // 新建会话的 ID +} + +message SendUserCascadeMessageRequest { + string cascade_id = 1; // 会话 ID + string message = 2; // 用户消息 + map context = 3; // 上下文信息(文件、符号等) +} + +message CascadeReactiveUpdate { + enum UpdateType { + UNKNOWN = 0; + STATE_CHANGE = 1; // Agent 状态变化 + MESSAGE_DELTA = 2; // 消息增量(流式文本) + TOOL_CALL = 3; // 工具调用 + CODE_EDIT = 4; // 代码编辑提案 + COMPLETION = 5; // Agent 完成 + } + + UpdateType type = 1; + string payload = 2; // JSON 格式的负载 + google.protobuf.Timestamp timestamp = 3; +} + +message CancelCascadeInvocationRequest { + string cascade_id = 1; +} + +message CancelCascadeInvocationResponse { +} + +message AcknowledgeCascadeCodeEditRequest { + string cascade_id = 1; + string code_edit_id = 2; + bool accepted = 3; +} + +message AcknowledgeCascadeCodeEditResponse { +} + +// ============================================================================ +// 模型配置消息类型 +// ============================================================================ + +message ModelConfig { + string name = 1; // 模型名称(e.g., "claude-opus-4-6") + string display_name = 2; // 显示名称(e.g., "Claude Opus 4.6") + int32 model_id = 3; // 模型 ID(枚举值) + int32 max_tokens = 4; // 最大输出 token 数 + bool supports_thinking = 5; // 是否支持 thinking + int32 thinking_budget = 6; // thinking token 预算 + bool supports_images = 7; // 是否支持图像 + string provider = 8; // 提供者(anthropic/google/openai) +} + +message GetCascadeModelConfigsRequest { +} + +message GetCascadeModelConfigsResponse { + repeated ModelConfig models = 1; + string default_model = 2; +} + +message GetCommandModelConfigsRequest { +} + +message GetCommandModelConfigsResponse { + repeated ModelConfig models = 1; +} + +// ============================================================================ +// 文件操作消息类型 +// ============================================================================ + +message FileInfo { + enum Type { + UNKNOWN = 0; + FILE = 1; + DIRECTORY = 2; + SYMLINK = 3; + } + + string path = 1; + Type type = 2; + int64 size = 3; + google.protobuf.Timestamp modified_time = 4; +} + +message ReadFileRequest { + string path = 1; +} + +message ReadFileResponse { + string content = 1; + string encoding = 2; // UTF-8, binary, etc. +} + +message WriteFileRequest { + string path = 1; + string content = 2; + bool create_parent = 3; // 是否创建父目录 +} + +message WriteFileResponse { + bool success = 1; +} + +message ReadDirRequest { + string path = 1; +} + +message ReadDirResponse { + repeated FileInfo files = 1; +} + +message DeleteFileOrDirectoryRequest { + string path = 1; + bool recursive = 2; // 递归删除目录 +} + +message DeleteFileOrDirectoryResponse { + bool success = 1; +} + +message StatUriRequest { + string path = 1; +} + +message StatUriResponse { + FileInfo file_info = 1; +} + +message WatchDirectoryRequest { + string path = 1; + repeated string patterns = 2; // 文件模式(glob) +} + +message WatchDirectoryResponse { + string event_type = 1; // created, modified, deleted + string path = 2; + google.protobuf.Timestamp timestamp = 3; +} + +// ============================================================================ +// 通用消息类型 +// ============================================================================ + +message HeartbeatRequest { + string session_id = 1; +} + +message HeartbeatResponse { + bool healthy = 1; + string version = 2; +} + +message GetStatusRequest { +} + +message GetStatusResponse { + string status = 1; // running, degraded, down + string version = 2; + map info = 3; +} + +message ErrorInfo { + string code = 1; + string message = 2; + map details = 3; +} + +// ============================================================================ +// LanguageServerService RPC 定义(核心方法) +// ============================================================================ + +service LanguageServerService { + // Cascade 流程 + rpc StartCascade(StartCascadeRequest) returns (StartCascadeResponse); + rpc SendUserCascadeMessage(SendUserCascadeMessageRequest) returns (stream CascadeReactiveUpdate); + rpc CancelCascadeInvocation(CancelCascadeInvocationRequest) returns (CancelCascadeInvocationResponse); + rpc AcknowledgeCascadeCodeEdit(AcknowledgeCascadeCodeEditRequest) returns (AcknowledgeCascadeCodeEditResponse); + + // 模型配置 + rpc GetCascadeModelConfigs(GetCascadeModelConfigsRequest) returns (GetCascadeModelConfigsResponse); + rpc GetCommandModelConfigs(GetCommandModelConfigsRequest) returns (GetCommandModelConfigsResponse); + + // 文件操作 + rpc ReadFile(ReadFileRequest) returns (ReadFileResponse); + rpc WriteFile(WriteFileRequest) returns (WriteFileResponse); + rpc ReadDir(ReadDirRequest) returns (ReadDirResponse); + rpc DeleteFileOrDirectory(DeleteFileOrDirectoryRequest) returns (DeleteFileOrDirectoryResponse); + rpc StatUri(StatUriRequest) returns (StatUriResponse); + rpc WatchDirectory(WatchDirectoryRequest) returns (stream WatchDirectoryResponse); + + // 健康检查 + rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse); + rpc GetStatus(GetStatusRequest) returns (GetStatusResponse); +} diff --git a/proto/src/_imports.json b/proto/src/_imports.json new file mode 100644 index 00000000..99db5e5e --- /dev/null +++ b/proto/src/_imports.json @@ -0,0 +1,220 @@ +{ + "status.proto": [ + [ + "google/protobuf/source_context.proto" + ], + [ + "google/protobuf/any.proto" + ] + ], + "google/api/http.proto": [ + [], + [] + ], + "google/api/field_info.proto": [ + [], + [] + ], + "google/rpc/error_details.proto": [ + [ + "google/protobuf/source_context.proto" + ], + [ + "google/protobuf/duration.proto" + ] + ], + "google/protobuf/source_context.proto": [ + [], + [] + ], + "google/protobuf/compiler/plugin.proto": [ + [ + "google/protobuf/source_context.proto" + ], + [] + ], + "exa/chat_pb/chat.proto": [ + [ + "google/protobuf/source_context.proto", + "exa/codeium_common_pb/codeium_common.proto", + "exa/diff_action_pb/diff_action.proto" + ], + [ + "google/protobuf/timestamp.proto" + ] + ], + "exa/reactive_component_pb/reactive_component.proto": [ + [], + [] + ], + "exa/browser_pb/browser.proto": [ + [ + "google/protobuf/source_context.proto", + "exa/codeium_common_pb/codeium_common.proto" + ], + [ + "google/protobuf/timestamp.proto" + ] + ], + "exa/context_module_pb/context_module.proto": [ + [ + "exa/chat_pb/chat.proto", + "exa/codeium_common_pb/codeium_common.proto" + ], + [] + ], + "exa/google/internal/cloud/code/v1internal/model_configs.proto": [ + [ + "google/protobuf/source_context.proto", + "exa/codeium_common_pb/codeium_common.proto" + ], + [ + "google/protobuf/timestamp.proto" + ] + ], + "exa/diff_action_pb/diff_action.proto": [ + [], + [] + ], + "exa/code_edit/code_edit_pb/code_edit.proto": [ + [ + "exa/index_pb/index.proto", + "exa/codeium_common_pb/codeium_common.proto", + "exa/context_module_pb/context_module.proto" + ], + [] + ], + "exa/opensearch_clients_pb/opensearch_clients.proto": [ + [ + "exa/chat_pb/chat.proto", + "google/protobuf/source_context.proto", + "exa/codeium_common_pb/codeium_common.proto", + "exa/index_pb/index.proto" + ], + [ + "google/protobuf/timestamp.proto" + ] + ], + "exa/jetski_cortex_pb/jetski_cortex.proto": [ + [ + "exa/cortex_pb/cortex.proto", + "exa/google/internal/cloud/code/v1internal/model_configs.proto", + "google/protobuf/source_context.proto", + "exa/gemini_coder/proto/trajectory.proto" + ], + [ + "google/protobuf/timestamp.proto" + ] + ], + "exa/analytics_pb/analytics.proto": [ + [ + "exa/context_module_pb/context_module.proto", + "google/protobuf/source_context.proto", + "exa/gemini_coder/proto/trajectory.proto", + "exa/cortex_pb/cortex.proto", + "exa/codeium_common_pb/codeium_common.proto" + ], + [ + "google/protobuf/timestamp.proto" + ] + ], + "exa/gemini_coder/proto/trajectory.proto": [ + [ + "exa/cortex_pb/cortex.proto" + ], + [] + ], + "exa/index_pb/index.proto": [ + [ + "google/protobuf/source_context.proto", + "exa/codeium_common_pb/codeium_common.proto" + ], + [ + "google/protobuf/duration.proto", + "google/protobuf/timestamp.proto" + ] + ], + "exa/cortex_pb/cortex.proto": [ + [ + "exa/context_module_pb/context_module.proto", + "google/protobuf/source_context.proto", + "exa/chat_client_server_pb/chat_client_server.proto", + "exa/opensearch_clients_pb/opensearch_clients.proto", + "exa/chat_pb/chat.proto", + "exa/browser_pb/browser.proto", + "exa/google/internal/cloud/code/v1internal/model_configs.proto", + "exa/codeium_common_pb/codeium_common.proto", + "exa/diff_action_pb/diff_action.proto" + ], + [ + "google/protobuf/timestamp.proto", + "google/protobuf/any.proto", + "google/protobuf/empty.proto", + "google/protobuf/duration.proto", + "google/protobuf/struct.proto" + ] + ], + "exa/language_server_pb/language_server.proto": [ + [ + "exa/cascade_plugins_pb/cascade_plugins.proto", + "exa/jetbox_state_pb/jetbox_state.proto", + "exa/reactive_component_pb/reactive_component.proto", + "google/protobuf/source_context.proto", + "exa/chat_client_server_pb/chat_client_server.proto", + "exa/chat_pb/chat.proto", + "exa/gemini_coder/proto/trajectory.proto", + "exa/code_edit/code_edit_pb/code_edit.proto", + "exa/jetski_cortex_pb/jetski_cortex.proto", + "exa/cortex_pb/cortex.proto", + "exa/codeium_common_pb/codeium_common.proto", + "exa/diff_action_pb/diff_action.proto" + ], + [ + "google/protobuf/timestamp.proto" + ] + ], + "exa/codeium_common_pb/codeium_common.proto": [ + [ + "google/protobuf/source_context.proto", + "exa/google/internal/cloud/code/v1internal/model_configs.proto" + ], + [ + "google/protobuf/duration.proto", + "google/protobuf/timestamp.proto" + ] + ], + "exa/jetbox_state_pb/jetbox_state.proto": [ + [ + "exa/codeium_common_pb/codeium_common.proto" + ], + [] + ], + "exa/unified_state_sync_pb/unified_state_sync.proto": [ + [ + "exa/codeium_common_pb/codeium_common.proto" + ], + [] + ], + "exa/extension_server_pb/extension_server.proto": [ + [ + "exa/language_server_pb/language_server.proto", + "exa/gemini_coder/proto/trajectory.proto", + "exa/jetski_cortex_pb/jetski_cortex.proto", + "exa/unified_state_sync_pb/unified_state_sync.proto", + "exa/codeium_common_pb/codeium_common.proto" + ], + [] + ], + "exa/cascade_plugins_pb/cascade_plugins.proto": [ + [ + "exa/codeium_common_pb/codeium_common.proto" + ], + [] + ], + "exa/chat_client_server_pb/chat_client_server.proto": [ + [ + "exa/codeium_common_pb/codeium_common.proto" + ], + [] + ] +} \ No newline at end of file diff --git a/proto/src/exa/analytics_pb/analytics.desc.bin b/proto/src/exa/analytics_pb/analytics.desc.bin new file mode 100644 index 00000000..b9d2bba9 Binary files /dev/null and b/proto/src/exa/analytics_pb/analytics.desc.bin differ diff --git a/proto/src/exa/analytics_pb/analytics.proto b/proto/src/exa/analytics_pb/analytics.proto new file mode 100644 index 00000000..2ee9a0f2 --- /dev/null +++ b/proto/src/exa/analytics_pb/analytics.proto @@ -0,0 +1,126 @@ +syntax = "proto3"; +package exa.analytics_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/analytics_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; +import "exa/context_module_pb/context_module.proto"; +import "exa/cortex_pb/cortex.proto"; +import "exa/gemini_coder/proto/trajectory.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +message RecordCommandUsageRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string command = 2; + string selection = 3; + exa.codeium_common_pb.CommandRequestSource request_source = 4; + string prompt_id = 5; + string completion_id = 6; + string completion = 7; + string prompt = 8; + exa.codeium_common_pb.Model requested_model_id = 9; + exa.codeium_common_pb.StopReason stop_reason = 10; + exa.codeium_common_pb.Language language = 11; + exa.codeium_common_pb.ProviderSource provider_source = 12; + exa.prompt_pb.UnifiedPromptComponents command_prompt_components = 13; + exa.cortex_pb.CortexTrajectoryReference cortex_trajectory_reference = 14; + exa.codeium_common_pb.SuperCompleteFilterReason super_complete_filter_reason = 15; + exa.codeium_common_pb.SupercompleteTriggerCondition supercomplete_trigger_condition = 17; + repeated exa.codeium_common_pb.PromptStageLatency prompt_stage_latencies = 16; + exa.codeium_common_pb.CompletionProfile completion_profile = 18; +} + +message RecordCommandUsageResponse { +} + +message BatchRecordPromptsRequest { + repeated exa.analytics_pb.RecordPromptRequest prompts = 1; +} + +message BatchRecordPromptsResponse { +} + +message RecordPromptRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.CompletionsRequest request = 2; + string prompt_id = 3; + google.protobuf.Timestamp timestamp = 4; + string ip = 5; + string inference_address = 6; + exa.codeium_common_pb.ProviderSource provider_source = 7; + string api_server_address = 8; + exa.codeium_common_pb.Model firstline_model = 9; + exa.codeium_common_pb.PromptComponents prompt_components = 10; + bool is_server_side_prompt = 11; + exa.prompt_pb.UnifiedPromptComponents unified_prompt_components = 12; + exa.cortex_pb.CortexTrajectoryReference cortex_trajectory_reference = 13; +} + +message RecordCompletionsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.codeium_common_pb.CompletionWithLatencyInfo completions_with_latency_info = 2; + string prompt_id = 3; + uint64 prompt_length = 4; + exa.codeium_common_pb.ProviderSource provider_source = 5; + string relative_path = 6; + exa.codeium_common_pb.Repository repository = 7; + string model_tag = 8; + google.protobuf.Timestamp timestamp = 9; +} + +message RecordCompletionsResponse { +} + +message BatchRecordCompletionsRequest { + repeated exa.analytics_pb.RecordCompletionsRequest completions = 1; +} + +message BatchRecordCompletionsResponse { +} + +message RecordContextToPromptRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.context_module_pb.ContextUseCase prompt_user = 2; + string chat_message_id = 3; + repeated exa.context_module_pb.RetrievedCodeContextItemMetadata retrieved_code_context_item_metadata = 4; + uint64 latency_ms = 5; + google.protobuf.Timestamp timestamp = 6; + exa.cortex_pb.CortexWorkflowState cortex_state = 7; + string prompt_id = 8; +} + +message RecordContextToPromptResponse { +} + +message RecordCortexTrajectoryRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string trajectory_id = 2; + string cascade_id = 5; + exa.cortex_pb.CortexTrajectoryType trajectory_type = 3; + exa.cortex_pb.CortexTrajectorySource trajectory_source = 7; + repeated exa.cortex_pb.CortexTrajectoryReference parents = 4; + exa.cortex_pb.CortexTrajectoryMetadata trajectory_metadata = 6; +} + +message RecordCortexTrajectoryResponse { +} + +message RecordCortexTrajectoryStepRequest { + exa.codeium_common_pb.Metadata metadata = 1; + gemini_coder.Step step = 2; + exa.cortex_pb.CortexTrajectoryReference reference = 3; +} + +message RecordCortexTrajectoryStepResponse { +} + +service AnalyticsService { + rpc RecordCommandUsage(exa.analytics_pb.RecordCommandUsageRequest) returns (exa.analytics_pb.RecordCommandUsageResponse); + rpc RecordCompletions(exa.analytics_pb.RecordCompletionsRequest) returns (exa.analytics_pb.RecordCompletionsResponse); + rpc RecordContextToPrompt(exa.analytics_pb.RecordContextToPromptRequest) returns (exa.analytics_pb.RecordContextToPromptResponse); + rpc RecordCortexTrajectory(exa.analytics_pb.RecordCortexTrajectoryRequest) returns (exa.analytics_pb.RecordCortexTrajectoryResponse); + rpc RecordCortexTrajectoryStep(exa.analytics_pb.RecordCortexTrajectoryStepRequest) returns (exa.analytics_pb.RecordCortexTrajectoryStepResponse); + rpc BatchRecordPrompts(exa.analytics_pb.BatchRecordPromptsRequest) returns (exa.analytics_pb.BatchRecordPromptsResponse); + rpc BatchRecordCompletions(exa.analytics_pb.BatchRecordCompletionsRequest) returns (exa.analytics_pb.BatchRecordCompletionsResponse); +} \ No newline at end of file diff --git a/proto/src/exa/browser_pb/browser.desc.bin b/proto/src/exa/browser_pb/browser.desc.bin new file mode 100644 index 00000000..20aa9693 Binary files /dev/null and b/proto/src/exa/browser_pb/browser.desc.bin differ diff --git a/proto/src/exa/browser_pb/browser.proto b/proto/src/exa/browser_pb/browser.proto new file mode 100644 index 00000000..fabaac8a --- /dev/null +++ b/proto/src/exa/browser_pb/browser.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; +package exa.browser_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/browser_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +enum ClickType { + CLICK_TYPE_UNSPECIFIED = 0; + CLICK_TYPE_LEFT = 1; + CLICK_TYPE_RIGHT = 2; + CLICK_TYPE_DOUBLE = 3; + CLICK_TYPE_NONE = 4; +} + +enum ScrollDirection { + SCROLL_DIRECTION_UNSPECIFIED = 0; + SCROLL_DIRECTION_UP = 1; + SCROLL_DIRECTION_DOWN = 2; + SCROLL_DIRECTION_LEFT = 3; + SCROLL_DIRECTION_RIGHT = 4; +} + +enum WindowState { + WINDOW_STATE_UNSPECIFIED = 0; + WINDOW_STATE_NORMAL = 1; + WINDOW_STATE_MINIMIZED = 2; + WINDOW_STATE_MAXIMIZED = 3; + WINDOW_STATE_FULLSCREEN = 4; +} + +message SerializablePageState { + string page_id = 1; + exa.codeium_common_pb.BrowserPageMetadata metadata = 2; + exa.codeium_common_pb.DOMTree dom_tree = 3; + exa.codeium_common_pb.ImageData screenshot = 4; + exa.browser_pb.AgentMousePosition agent_mouse_position = 5; + exa.codeium_common_pb.ConsoleLogScopeItem console_logs = 6; + google.protobuf.Timestamp added_time = 7; + string serialized_dom_tree = 8; + exa.codeium_common_pb.Media media_screenshot = 9; +} + +message AgentMousePosition { + int32 x = 1; + int32 y = 2; +} diff --git a/proto/src/exa/cascade_plugins_pb/cascade_plugins.desc.bin b/proto/src/exa/cascade_plugins_pb/cascade_plugins.desc.bin new file mode 100644 index 00000000..6fab48cc Binary files /dev/null and b/proto/src/exa/cascade_plugins_pb/cascade_plugins.desc.bin differ diff --git a/proto/src/exa/cascade_plugins_pb/cascade_plugins.proto b/proto/src/exa/cascade_plugins_pb/cascade_plugins.proto new file mode 100644 index 00000000..8c2fd623 --- /dev/null +++ b/proto/src/exa/cascade_plugins_pb/cascade_plugins.proto @@ -0,0 +1,88 @@ +syntax = "proto3"; +package exa.cascade_plugins_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/cascade_plugins_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; + +message CascadePluginTemplate { + string title = 1; + string id = 2; + string link = 3; + string description = 4; + map commands = 5; + oneof configuration { + exa.cascade_plugins_pb.CascadePluginLocalConfig local = 9; + exa.cascade_plugins_pb.CascadePluginRemoteConfig remote = 10; + } + int64 installation_count = 6; + string trust_level = 7; + string readme = 8; +} + +message CascadePluginLocalConfig { + map commands = 5; +} + +message CascadePluginCommand { + exa.cascade_plugins_pb.CascadePluginCommandTemplate template = 1; + repeated exa.cascade_plugins_pb.CascadePluginCommandVariable variables = 2; +} + +message CascadePluginCommandTemplate { + string command = 1; + repeated string args = 2; + map env = 3; +} + +message CascadePluginCommandVariable { + string name = 1; + string title = 2; + string description = 3; + string link = 4; +} + +message CascadePluginRemoteConfig { + exa.cascade_plugins_pb.CascadePluginRemoteConfigTemplate template = 1; +} + +message CascadePluginRemoteConfigTemplate { + string server_url = 1; + map headers = 2; + string auth_provider_type = 3; +} + +message GetAvailableCascadePluginsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string os = 2; + optional string search_query = 3; +} + +message GetAvailableCascadePluginsResponse { + repeated exa.cascade_plugins_pb.CascadePluginTemplate plugins = 1; +} + +message InstallCascadePluginRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string plugin_id = 2; +} + +message InstallCascadePluginResponse { + int64 installation_count = 1; +} + +message GetCascadePluginByIdRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string os = 2; + string plugin_id = 3; +} + +message GetCascadePluginByIdResponse { + exa.cascade_plugins_pb.CascadePluginTemplate plugin = 1; +} + +service CascadePluginsService { + rpc GetAvailableCascadePlugins(exa.cascade_plugins_pb.GetAvailableCascadePluginsRequest) returns (exa.cascade_plugins_pb.GetAvailableCascadePluginsResponse); + rpc InstallCascadePlugin(exa.cascade_plugins_pb.InstallCascadePluginRequest) returns (exa.cascade_plugins_pb.InstallCascadePluginResponse); + rpc GetCascadePluginById(exa.cascade_plugins_pb.GetCascadePluginByIdRequest) returns (exa.cascade_plugins_pb.GetCascadePluginByIdResponse); +} \ No newline at end of file diff --git a/proto/src/exa/chat_client_server_pb/chat_client_server.desc.bin b/proto/src/exa/chat_client_server_pb/chat_client_server.desc.bin new file mode 100644 index 00000000..3d30cb40 Binary files /dev/null and b/proto/src/exa/chat_client_server_pb/chat_client_server.desc.bin differ diff --git a/proto/src/exa/chat_client_server_pb/chat_client_server.proto b/proto/src/exa/chat_client_server_pb/chat_client_server.proto new file mode 100644 index 00000000..8ab65f0b --- /dev/null +++ b/proto/src/exa/chat_client_server_pb/chat_client_server.proto @@ -0,0 +1,47 @@ +syntax = "proto3"; +package exa.chat_client_server_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/chat_client_server_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; + +enum ChatClientRequestStreamClientType { + CHAT_CLIENT_REQUEST_STREAM_CLIENT_TYPE_UNSPECIFIED = 0; + CHAT_CLIENT_REQUEST_STREAM_CLIENT_TYPE_IDE = 1; + CHAT_CLIENT_REQUEST_STREAM_CLIENT_TYPE_BROWSER = 2; +} + +message StartChatClientRequestStreamRequest { + exa.chat_client_server_pb.ChatClientRequestStreamClientType client_type = 1; +} + +message ChatClientRequest { + oneof request { + exa.chat_client_server_pb.AddCascadeInputRequest add_cascade_input = 1; + exa.chat_client_server_pb.SendActionToChatPanelRequest send_action_to_chat_panel = 2; + exa.chat_client_server_pb.InitialAckRequest initial_ack = 3; + exa.chat_client_server_pb.RefreshCustomizationRequest refresh_customization = 4; + } +} + +message AddCascadeInputRequest { + repeated exa.codeium_common_pb.TextOrScopeItem items = 1; + repeated exa.codeium_common_pb.ImageData images = 2; + repeated exa.codeium_common_pb.Media media = 3; +} + +message SendActionToChatPanelRequest { + string action_type = 1; + repeated bytes payload = 2; +} + +message InitialAckRequest { +} + +message RefreshCustomizationRequest { + exa.codeium_common_pb.RefreshCustomizationType config_type = 1; +} + +service ChatClientServerService { + rpc StartChatClientRequestStream(exa.chat_client_server_pb.StartChatClientRequestStreamRequest) returns (stream exa.chat_client_server_pb.ChatClientRequest); +} \ No newline at end of file diff --git a/proto/src/exa/chat_pb/chat.desc.bin b/proto/src/exa/chat_pb/chat.desc.bin new file mode 100644 index 00000000..56dd0665 Binary files /dev/null and b/proto/src/exa/chat_pb/chat.desc.bin differ diff --git a/proto/src/exa/chat_pb/chat.proto b/proto/src/exa/chat_pb/chat.proto new file mode 100644 index 00000000..4af2e38d --- /dev/null +++ b/proto/src/exa/chat_pb/chat.proto @@ -0,0 +1,338 @@ +syntax = "proto3"; +package exa.chat_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/chat_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; +import "exa/diff_action_pb/diff_action.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +enum ChatFeedbackType { + FEEDBACK_TYPE_UNSPECIFIED = 0; + FEEDBACK_TYPE_ACCEPT = 1; + FEEDBACK_TYPE_REJECT = 2; + FEEDBACK_TYPE_COPIED = 3; + FEEDBACK_TYPE_ACCEPT_DIFF = 4; + FEEDBACK_TYPE_REJECT_DIFF = 5; + FEEDBACK_TYPE_APPLY_DIFF = 6; + FEEDBACK_TYPE_INSERT_AT_CURSOR = 7; +} + +enum ChatIntentType { + CHAT_INTENT_UNSPECIFIED = 0; + CHAT_INTENT_GENERIC = 1; + CHAT_INTENT_CODE_BLOCK_REFACTOR = 6; + CHAT_INTENT_GENERATE_CODE = 9; + CHAT_INTENT_FAST_APPLY = 12; +} + +enum CacheControlType { + CACHE_CONTROL_TYPE_UNSPECIFIED = 0; + CACHE_CONTROL_TYPE_EPHEMERAL = 1; +} + +message CodeBlockInfo { + string raw_source = 1; + int32 start_line = 2; + int32 start_col = 3; + int32 end_line = 4; + int32 end_col = 5; +} + +message ChatMetrics { + uint64 response_stream_latency_ms = 1; + uint64 refresh_context_latency_ms = 2; + uint64 should_get_local_context_for_chat_latency_ms = 3; + bool should_get_local_context_for_chat = 4; + uint64 compute_change_events_latency_ms = 5; + uint64 context_to_chat_prompt_latency_ms = 6; + int32 num_prompt_tokens = 7; + int32 num_system_prompt_tokens = 8; + uint64 num_input_tokens = 16; + google.protobuf.Timestamp start_timestamp = 9; + google.protobuf.Timestamp end_timestamp = 10; + string active_document_absolute_path = 11; + exa.codeium_common_pb.CodeContextItem last_active_code_context_item = 12; + uint64 num_indexed_files = 13; + uint64 num_indexed_code_context_items = 14; + exa.codeium_common_pb.Model model = 15; +} + +message IntentGeneric { + string text = 1; + repeated exa.codeium_common_pb.TextOrScopeItem items = 2; +} + +message IntentCodeBlockRefactor { + exa.chat_pb.CodeBlockInfo code_block_info = 1; + exa.codeium_common_pb.Language language = 2; + string file_path_migrate_me_to_uri = 3; + string uri = 5; + string refactor_description = 4; +} + +message IntentGenerateCode { + string instruction = 1; + exa.codeium_common_pb.Language language = 2; + string file_path_migrate_me_to_uri = 3; + string uri = 5; + int32 line_number = 4; +} + +message IntentFastApply { + string diff_outline = 1; + exa.codeium_common_pb.Language language = 2; + exa.chat_pb.CodeBlockInfo old_code = 3; +} + +message ChatMessageIntent { + oneof intent { + exa.chat_pb.IntentGeneric generic = 1; + exa.chat_pb.IntentCodeBlockRefactor code_block_refactor = 6; + exa.chat_pb.IntentGenerateCode generate_code = 9; + exa.chat_pb.IntentFastApply fast_apply = 13; + } + uint32 num_tokens = 12; +} + +message ChatMessageActionSearch { +} + +message ChatMessageActionEdit { + string file_path_migrate_me_to_uri = 1; + string uri = 6; + exa.diff_action_pb.DiffBlock diff = 2; + exa.codeium_common_pb.Language language = 3; + string text_pre = 4; + string text_post = 5; +} + +message ChatMessageActionGeneric { + string text = 1; + string display_text = 2; +} + +message ChatMessageStatusContextRelevancy { + bool is_loading = 1; + bool is_relevant = 2; + repeated string query_suggestions = 3; +} + +message ChatMessageStatus { + oneof status { + exa.chat_pb.ChatMessageStatusContextRelevancy context_relevancy = 1; + } +} + +message ChatMessageError { + string text = 1; +} + +message ChatMessageAction { + oneof action { + exa.chat_pb.ChatMessageActionGeneric generic = 1; + exa.chat_pb.ChatMessageActionEdit edit = 3; + exa.chat_pb.ChatMessageActionSearch search = 5; + } + uint32 num_tokens = 2; + repeated exa.codeium_common_pb.CodeContextItem context_items = 4; + exa.chat_pb.ChatIntentType latest_intent = 6; + exa.chat_pb.ChatMetrics generation_stats = 7; + repeated exa.codeium_common_pb.KnowledgeBaseItemWithMetadata knowledge_base_items = 8; +} + +message ChatMessage { + string message_id = 1; + exa.codeium_common_pb.ChatMessageSource source = 2; + google.protobuf.Timestamp timestamp = 3; + string conversation_id = 4; + oneof content { + exa.chat_pb.ChatMessageIntent intent = 5; + exa.chat_pb.ChatMessageAction action = 6; + exa.chat_pb.ChatMessageError error = 7; + exa.chat_pb.ChatMessageStatus status = 8; + } + bool in_progress = 9; + exa.chat_pb.GetChatMessageRequest request = 10; + bool redact = 11; +} + +message Conversation { + repeated exa.chat_pb.ChatMessage messages = 1; +} + +message ChatMessagePrompt { + string message_id = 1; + exa.codeium_common_pb.ChatMessageSource source = 2; + string prompt = 3; + uint32 num_tokens = 4; + bool safe_for_code_telemetry = 5; + repeated exa.codeium_common_pb.ChatToolCall tool_calls = 6; + string tool_call_id = 7; + exa.chat_pb.PromptCacheOptions prompt_cache_options = 8; + bool tool_result_is_error = 9; + repeated exa.codeium_common_pb.ImageData images = 10; + repeated exa.codeium_common_pb.Media media = 19; + string thinking = 11; + string raw_thinking = 17; + string signature = 12; + bytes thinking_signature = 20; + bool thinking_redacted = 13; + repeated exa.codeium_common_pb.PromptAnnotationRange prompt_annotation_ranges = 14; + int32 step_idx = 18; + string provider_assigned_message_id = 21; +} + +message ChatMessagePrompts { + repeated exa.chat_pb.ChatMessagePrompt prompts = 1; +} + +message PromptCacheOptions { + exa.chat_pb.CacheControlType type = 1; +} + +message ChatToolDefinition { + string name = 1; + string description = 2; + string json_schema_string = 3; + bool strict = 4; + repeated string attribution_field_names = 5; + string server_name = 6; +} + +message ChatToolChoice { + oneof choice { + string option_name = 1; + string tool_name = 2; + } +} + +message ChatMentionsSearchRequest { + string query = 1; + repeated exa.codeium_common_pb.CodeContextType allowed_types = 2; + bool include_repo_info = 3; +} + +message ChatMentionsSearchResponse { + repeated exa.codeium_common_pb.CodeContextItem cci_items = 1; + repeated exa.codeium_common_pb.GitRepoInfo repo_infos = 2; +} + +message GetChatMessageRequest { + message EnterpriseExternalModelConfig { + int32 max_output_tokens = 2; + int32 max_input_tokens = 3; + } + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.chat_pb.ChatMessage chat_messages = 3; + exa.codeium_common_pb.Document active_document = 5; + repeated string open_document_uris = 12; + repeated string workspace_uris = 13; + string active_selection = 11; + exa.codeium_common_pb.ContextInclusionType context_inclusion_type = 8; + exa.codeium_common_pb.Model chat_model = 9; + string system_prompt_override = 10; + string chat_model_name = 14; + exa.chat_pb.GetChatMessageRequest.EnterpriseExternalModelConfig enterprise_chat_model_config = 15; + exa.codeium_common_pb.ExperimentConfig experiment_config = 4; + repeated string open_document_paths_migrate_me_to_uris = 6; + repeated string workspace_paths_migrate_me_to_uris = 7; +} + +message ChatExperimentStatus { + exa.codeium_common_pb.ExperimentKey experiment_key = 1; + bool enabled = 2; +} + +message FormattedChatMessage { + exa.codeium_common_pb.ChatMessageSource role = 1; + string header = 2; + string content = 3; + string footer = 4; +} + +message IndexMap { + message IndexList { + repeated int32 indices = 1; + } + map index_map = 1; +} + +message ChatMessageRollout { + string system_prompt = 1; + repeated exa.chat_pb.ChatToolDefinition tools = 2; + exa.chat_pb.ChatToolChoice tool_choice = 3; + repeated exa.chat_pb.ChatMessagePrompt input_chat_messages = 4; + repeated exa.chat_pb.ChatMessagePrompt output_chat_messages = 5; + exa.chat_pb.IndexMap trajectory_to_chat_message_index_map = 6; +} + +message XboxInferenceToolRequest { + string model_name = 3; + string model_enum = 4; + exa.chat_pb.Example gemini_example = 2; +} + +message Example { + repeated exa.chat_pb.Message messages = 1; +} + +message Message { + string role = 1; + repeated exa.chat_pb.Chunk chunks = 2; +} + +message Chunk { + enum Trainable { + UNKNOWN_TRAINABLE = 0; + FORMATTER_DEFINED = 1; + ALWAYS = 2; + NEVER = 3; + } + oneof value { + string text = 3; + exa.chat_pb.Image image = 4; + } + exa.chat_pb.Chunk.Trainable trainable = 10; +} + +message Image { + exa.chat_pb.FileData value = 5; + int32 height_px = 3; + int32 width_px = 4; +} + +message FileData { + bytes content = 3; + string mime_type = 2; +} + +message RpcRequest { + oneof request { + exa.chat_pb.RunToolRequest run_tool_request = 1; + } + string id = 3; +} + +message RpcResponse { + oneof response { + exa.chat_pb.RunToolResponse run_tool_response = 1; + } + string request_id = 2; +} + +message RunToolRequest { + string name = 1; + string operation_id = 2; + string parameters = 3; +} + +message RunToolResponse { + message Status { + int32 code = 1; + string status_message = 2; + } + string response = 1; + exa.chat_pb.RunToolResponse.Status status = 2; +} diff --git a/proto/src/exa/code_edit/code_edit_pb/code_edit.desc.bin b/proto/src/exa/code_edit/code_edit_pb/code_edit.desc.bin new file mode 100644 index 00000000..8b493e85 Binary files /dev/null and b/proto/src/exa/code_edit/code_edit_pb/code_edit.desc.bin differ diff --git a/proto/src/exa/code_edit/code_edit_pb/code_edit.proto b/proto/src/exa/code_edit/code_edit_pb/code_edit.proto new file mode 100644 index 00000000..301d63aa --- /dev/null +++ b/proto/src/exa/code_edit/code_edit_pb/code_edit.proto @@ -0,0 +1,181 @@ +syntax = "proto3"; +package exa.code_edit.code_edit_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/code_edit/code_edit_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; +import "exa/context_module_pb/context_module.proto"; +import "exa/index_pb/index.proto"; + +enum RelevanceReason { + RELEVANCE_REASON_UNSPECIFIED = 0; + RELEVANCE_REASON_SAME_COMMIT_OLD = 1; + RELEVANCE_REASON_SAME_COMMIT_NEW = 2; + RELEVANCE_REASON_REF_IN_DELETION = 3; + RELEVANCE_REASON_REF_IN_INSERTION = 4; + RELEVANCE_REASON_NOT_RELEVANT = 99; +} + +enum DescriptionType { + DESCRIPTION_TYPE_UNSPECIFIED = 0; + DESCRIPTION_TYPE_EDIT_COMMAND = 1; + DESCRIPTION_TYPE_INSERTION_COMMAND = 2; +} + +enum IntentType { + INTENT_TYPE_UNSPECIFIED = 0; + INTENT_TYPE_COMMIT_GOAL = 1; + INTENT_TYPE_DIFF_SEARCH = 2; + INTENT_TYPE_CLEAN_COMMIT = 3; + INTENT_TYPE_CCI_SIGNATURE_SEARCH = 4; + INTENT_TYPE_CCI_RAW_SOURCE_SEARCH = 5; +} + +enum RetrieverType { + RETRIEVER_TYPE_UNSPECIFIED = 0; + RETRIEVER_TYPE_CONTEXT_MODULE_LOCAL = 1; + RETRIEVER_TYPE_CONTEXT_MODULE_SEARCH = 2; + RETRIEVER_TYPE_SEARCH = 3; + RETRIEVER_TYPE_MQUERY_OPENAI = 4; + RETRIEVER_TYPE_MQUERY_CODEIUM = 5; + RETRIEVER_TYPE_CONTEXT_MODULE_SEARCH_MQUERY_SCORER = 6; + RETRIEVER_TYPE_COMMIT_GRAPH = 7; + RETRIEVER_TYPE_MORPH_NORMAL = 8; + RETRIEVER_TYPE_MORPH_ADVANCED = 9; + RETRIEVER_TYPE_GRAPH_CLUSTERS = 10; + RETRIEVER_TYPE_OPENSEARCH = 11; +} + +message RelevantCodeContext { + exa.codeium_common_pb.CodeContextItem code_context_item = 1; + exa.code_edit.code_edit_pb.RelevanceReason relevance_reason = 3; +} + +message IntentRelevance { + string intent = 1; + float relevance_score = 2; + string rationale = 3; +} + +message CodeContextItemChange { + exa.codeium_common_pb.CodeContextItem start_cci = 1; + exa.codeium_common_pb.CodeContextItem end_cci = 2; + repeated exa.code_edit.code_edit_pb.RelevantCodeContext relevant_code_contexts = 3; + map description_by_type = 4; + repeated exa.code_edit.code_edit_pb.IntentRelevance intent_relevance = 5; +} + +message FileChange { + string start_file_path_migrate_me_to_uri = 1; + string start_file_uri = 10; + string start_file_rel_path = 8; + string end_file_path_migrate_me_to_uri = 2; + string end_file_uri = 11; + string end_file_rel_path = 9; + string old_file_content = 3; + string new_file_content = 4; + repeated exa.code_edit.code_edit_pb.CodeContextItemChange code_context_item_changes = 6; + repeated exa.codeium_common_pb.CodeContextItem unchanged_code_context_items = 7; +} + +message Intent { + string intent = 1; + exa.code_edit.code_edit_pb.IntentType intent_type = 2; + bool include_test_files = 3; +} + +message CodeChangeWithContext { + exa.codeium_common_pb.GitRepoInfo repository = 1; + repeated exa.code_edit.code_edit_pb.FileChange file_changes = 2; + repeated exa.code_edit.code_edit_pb.FileChange test_file_changes = 9; + string intent = 3; + oneof code_change_data_source { + exa.code_edit.code_edit_pb.GitCommit git_commit = 4; + } + exa.index_pb.IndexStats index_stats = 5; + repeated exa.codeium_common_pb.CodeContextItem unrelated_ccis = 6; + repeated exa.code_edit.code_edit_pb.Intent synthetic_intents = 8; +} + +message GitCommit { + string commit_hash = 1; + string parent_commit_hash = 2; +} + +message CommitToFileChangeRequest { + string repo_root = 1; + exa.codeium_common_pb.GitRepoInfo repository = 2; + int32 unrelated_cci_multiple = 3; + string db_dir = 4; +} + +message GitFilePatch { + string from = 1; + string to = 2; +} + +message CommitToFileChangeResponse { + repeated exa.code_edit.code_edit_pb.FileChange file_changes = 1; + string parent_commit_hash = 2; + exa.index_pb.IndexStats index_stats = 3; + repeated exa.codeium_common_pb.CodeContextItem unrelated_ccis = 4; +} + +message CodeRetrievalEvalTask { + exa.codeium_common_pb.GitRepoInfo repository = 1; + exa.code_edit.code_edit_pb.GitCommit commit_info = 5; + string query = 2; + repeated exa.code_edit.code_edit_pb.RelevantCodeContext target_code_contexts = 3; + string subdirectory = 4; +} + +message CodeRetrievalResult { + exa.codeium_common_pb.GitRepoInfo repository = 1; + string retriever_name = 3; + exa.code_edit.code_edit_pb.RetrieverInfo retriever_info = 4; + repeated exa.context_module_pb.CodeContextItemWithRetrievalMetadata code_context_with_metadatas = 5; +} + +message RetrieverClassification { + float relevance_score = 1; + exa.code_edit.code_edit_pb.RetrieverInfo retriever_info = 2; +} + +message CodeContextItemWithClassification { + exa.code_edit.code_edit_pb.RelevantCodeContext code_context_item = 1; + bool relevant = 2; + exa.code_edit.code_edit_pb.RetrieverClassification prediction = 3; +} + +message RetrieverInfo { + exa.code_edit.code_edit_pb.RetrieverType type = 1; + string model_name = 2; +} + +message RetrievalMetrics { + exa.code_edit.code_edit_pb.RetrieverInfo retriever_info = 1; + float precision_score = 2; + float recall_score = 3; + float accuracy_score = 4; + float label_ranking_average_precision_score = 5; + float roc_auc_score = 6; + float average_precision_score = 7; + float threshold = 8; +} + +message CodeRetrievalEvalResult { + exa.codeium_common_pb.GitRepoInfo repository = 1; + repeated exa.code_edit.code_edit_pb.CodeContextItemWithClassification classified_items = 2; + exa.code_edit.code_edit_pb.RetrievalMetrics metrics = 3; +} + +message InstructionWithId { + int32 id = 1; + string file = 2; + string function = 3; + string instruction = 4; +} + +message InstructionWithIdList { + repeated exa.code_edit.code_edit_pb.InstructionWithId instructions = 1; +} diff --git a/proto/src/exa/codeium_common_pb/codeium_common.desc.bin b/proto/src/exa/codeium_common_pb/codeium_common.desc.bin new file mode 100644 index 00000000..7ac113de Binary files /dev/null and b/proto/src/exa/codeium_common_pb/codeium_common.desc.bin differ diff --git a/proto/src/exa/codeium_common_pb/codeium_common.proto b/proto/src/exa/codeium_common_pb/codeium_common.proto new file mode 100644 index 00000000..c7277884 --- /dev/null +++ b/proto/src/exa/codeium_common_pb/codeium_common.proto @@ -0,0 +1,3571 @@ +syntax = "proto3"; +package exa.codeium_common_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/codeium_common_pb"; + +import "exa/google/internal/cloud/code/v1internal/model_configs.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +enum CommandRequestSource { + COMMAND_REQUEST_SOURCE_UNSPECIFIED = 0; + COMMAND_REQUEST_SOURCE_DEFAULT = 1; + COMMAND_REQUEST_SOURCE_PLAN = 7; + COMMAND_REQUEST_SOURCE_FAST_APPLY = 12; + COMMAND_REQUEST_SOURCE_TERMINAL = 13; + COMMAND_REQUEST_SOURCE_SUPERCOMPLETE = 10; + COMMAND_REQUEST_SOURCE_TAB_JUMP = 14; + COMMAND_REQUEST_SOURCE_CASCADE_CHAT = 16; +} + +enum ProviderSource { + PROVIDER_SOURCE_UNSPECIFIED = 0; + PROVIDER_SOURCE_AUTOCOMPLETE = 1; + PROVIDER_SOURCE_COMMAND_GENERATE = 4; + PROVIDER_SOURCE_COMMAND_EDIT = 5; + PROVIDER_SOURCE_SUPERCOMPLETE = 6; + PROVIDER_SOURCE_COMMAND_PLAN = 7; + PROVIDER_SOURCE_FAST_APPLY = 9; + PROVIDER_SOURCE_COMMAND_TERMINAL = 10; + PROVIDER_SOURCE_TAB_JUMP = 11; + PROVIDER_SOURCE_CASCADE = 12; +} + +enum PromptElementKind { + PROMPT_ELEMENT_KIND_UNSPECIFIED = 0; + PROMPT_ELEMENT_KIND_FILE_MARKER = 2; + PROMPT_ELEMENT_KIND_OTHER_DOCUMENT = 4; + PROMPT_ELEMENT_KIND_BEFORE_CURSOR = 5; + PROMPT_ELEMENT_KIND_AFTER_CURSOR = 7; + PROMPT_ELEMENT_KIND_FIM = 8; + PROMPT_ELEMENT_KIND_SOT = 9; + PROMPT_ELEMENT_KIND_EOT = 10; + PROMPT_ELEMENT_KIND_CODE_CONTEXT_ITEM = 13; + PROMPT_ELEMENT_KIND_INSTRUCTION = 14; + PROMPT_ELEMENT_KIND_SELECTION = 15; + PROMPT_ELEMENT_KIND_TRAJECTORY_STEP = 16; + PROMPT_ELEMENT_KIND_ACTIVE_DOCUMENT = 17; + PROMPT_ELEMENT_KIND_CACHED_MESSAGE = 18; +} + +enum PromptAnnotationKind { + PROMPT_ANNOTATION_KIND_UNSPECIFIED = 0; + PROMPT_ANNOTATION_KIND_COPY = 1; + PROMPT_ANNOTATION_KIND_PROMPT_CACHE = 2; +} + +enum ExperimentKey { + UNSPECIFIED = 0; + USE_INTERNAL_CHAT_MODEL = 36; + RECORD_FILES = 47; + NO_SAMPLER_EARLY_STOP = 48; + CM_MEMORY_TELEMETRY = 53; + LANGUAGE_SERVER_VERSION = 55; + LANGUAGE_SERVER_AUTO_RELOAD = 56; + ONLY_MULTILINE = 60; + USE_ATTRIBUTION_FOR_INDIVIDUAL_TIER = 68; + CHAT_MODEL_CONFIG = 78; + COMMAND_MODEL_CONFIG = 79; + MIN_IDE_VERSION = 81; + API_SERVER_VERBOSE_ERRORS = 84; + DEFAULT_ENABLE_SEARCH = 86; + COLLECT_ONBOARDING_EVENTS = 87; + COLLECT_EXAMPLE_COMPLETIONS = 88; + USE_MULTILINE_MODEL = 89; + ATTRIBUTION_KILL_SWITCH = 92; + FAST_MULTILINE = 94; + SINGLE_COMPLETION = 95; + STOP_FIRST_NON_WHITESPACE_LINE = 96; + CORTEX_CONFIG = 102; + MODEL_CHAT_11121_VARIANTS = 103; + INCLUDE_PROMPT_COMPONENTS = 105; + PERSIST_CODE_TRACKER = 108; + API_SERVER_LIVENESS_PROBE = 112; + CHAT_COMPLETION_TOKENS_SOFT_LIMIT = 114; + CHAT_TOKENS_SOFT_LIMIT = 115; + DISABLE_COMPLETIONS_CACHE = 118; + LLAMA3_405B_KILL_SWITCH = 119; + USE_COMMAND_DOCSTRING_GENERATION = 121; + SENTRY = 136; + FAST_SINGLELINE = 144; + R2_LANGUAGE_SERVER_DOWNLOAD = 147; + SPLIT_MODEL = 152; + ANTIGRAVITY_SENTRY_SAMPLE_RATE = 198; + API_SERVER_CUTOFF = 158; + FAST_SPEED_KILL_SWITCH = 159; + PREDICTIVE_MULTILINE = 160; + SUPERCOMPLETE_FILTER_REVERT = 125; + SUPERCOMPLETE_FILTER_PREFIX_MATCH = 126; + SUPERCOMPLETE_FILTER_SCORE_THRESHOLD = 127; + SUPERCOMPLETE_FILTER_INSERTION_CAP = 128; + SUPERCOMPLETE_FILTER_DELETION_CAP = 133; + SUPERCOMPLETE_FILTER_WHITESPACE_ONLY = 156; + SUPERCOMPLETE_FILTER_NO_OP = 170; + SUPERCOMPLETE_FILTER_SUFFIX_MATCH = 176; + SUPERCOMPLETE_FILTER_PREVIOUSLY_SHOWN = 182; + SUPERCOMPLETE_MIN_SCORE = 129; + SUPERCOMPLETE_MAX_INSERTIONS = 130; + SUPERCOMPLETE_LINE_RADIUS = 131; + SUPERCOMPLETE_MAX_DELETIONS = 132; + SUPERCOMPLETE_USE_CURRENT_LINE = 135; + SUPERCOMPLETE_RECENT_STEPS_DURATION = 138; + SUPERCOMPLETE_USE_CODE_DIAGNOSTICS = 143; + SUPERCOMPLETE_DIAGNOSTIC_SEVERITY_THRESHOLD = 223; + SUPERCOMPLETE_CODE_DIAGNOSTICS_TOP_K = 232; + SUPERCOMPLETE_MAX_TRAJECTORY_STEPS = 154; + SUPERCOMPLETE_ON_ACCEPT_ONLY = 157; + SUPERCOMPLETE_TEMPERATURE = 183; + SUPERCOMPLETE_MAX_TRAJECTORY_STEP_SIZE = 203; + SUPERCOMPLETE_DISABLE_TYPING_CACHE = 231; + SUPERCOMPLETE_ALWAYS_USE_CACHE_ON_EQUAL_STATE = 293; + SUPERCOMPLETE_CACHE_ON_PARENT_ID_KILL_SWITCH = 297; + SUPERCOMPLETE_PRUNE_RESPONSE = 140; + SUPERCOMPLETE_PRUNE_MAX_INSERT_DELETE_LINE_DELTA = 141; + SUPERCOMPLETE_MODEL_CONFIG = 145; + SUPERCOMPLETE_ON_TAB = 151; + SUPERCOMPLETE_INLINE_PURE_DELETE = 171; + SUPERCOMPLETE_INLINE_RICH_GHOST_TEXT_INSERTIONS = 218; + MODEL_CHAT_19821_VARIANTS = 308; + SUPERCOMPLETE_MAX_CONCURRENT_REQUESTS = 284; + COMMAND_PROMPT_CACHE_CONFIG = 255; + CUMULATIVE_PROMPT_CONFIG = 256; + CUMULATIVE_PROMPT_CASCADE_CONFIG = 279; + TAB_JUMP_CUMULATIVE_PROMPT_CONFIG = 301; + COMPLETION_SPEED_SUPERCOMPLETE_CACHE = 207; + COMPLETION_SPEED_PREDICTIVE_SUPERCOMPLETE = 208; + COMPLETION_SPEED_TAB_JUMP_CACHE = 209; + COMPLETION_SPEED_PREDICTIVE_TAB_JUMP = 210; + COMPLETION_SPEED_BLOCK_TAB_JUMP_ON_PREDICTIVE_SUPERCOMPLETE = 294; + JETBRAINS_ENABLE_ONBOARDING = 137; + ENABLE_AUTOCOMPLETE_DURING_INTELLISENSE = 146; + COMMAND_BOX_ON_TOP = 155; + CONTEXT_ACTIVE_DOCUMENT_FRACTION = 149; + CONTEXT_COMMAND_TRAJECTORY_PROMPT_CONFIG = 150; + CONTEXT_FORCE_LOCAL_CONTEXT = 178; + CROSS_SELL_EXTENSION_DOWNLOAD_ANTIGRAVITY = 220; + MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT_VARIANTS = 295; + SUPERCOMPLETE_NO_ACTIVE_NODE = 166; + TAB_JUMP_ENABLED = 168; + TAB_JUMP_LINE_RADIUS = 177; + TAB_JUMP_MIN_FILTER_RADIUS = 197; + TAB_JUMP_ON_ACCEPT_ONLY = 205; + TAB_JUMP_FILTER_IN_SELECTION = 215; + TAB_JUMP_MODEL_CONFIG = 237; + TAB_JUMP_FILTER_NO_OP = 238; + TAB_JUMP_FILTER_REVERT = 239; + TAB_JUMP_FILTER_SCORE_THRESHOLD = 240; + TAB_JUMP_FILTER_WHITESPACE_ONLY = 241; + TAB_JUMP_FILTER_INSERTION_CAP = 242; + TAB_JUMP_FILTER_DELETION_CAP = 243; + TAB_JUMP_PRUNE_RESPONSE = 260; + TAB_JUMP_PRUNE_MAX_INSERT_DELETE_LINE_DELTA = 261; + TAB_JUMP_STOP_TOKEN_MIDSTREAM = 317; + VIEWED_FILE_TRACKER_CONFIG = 211; + SNAPSHOT_TO_STEP_OPTIONS_OVERRIDE = 305; + STREAMING_EXTERNAL_COMMAND = 172; + USE_SPECIAL_EDIT_CODE_BLOCK = 179; + ENABLE_SUGGESTED_RESPONSES = 187; + CASCADE_BASE_MODEL_ID = 190; + CASCADE_PLAN_BASED_CONFIG_OVERRIDE = 266; + CASCADE_GLOBAL_CONFIG_OVERRIDE = 212; + CASCADE_BACKGROUND_RESEARCH_CONFIG_OVERRIDE = 193; + CASCADE_ENFORCE_QUOTA = 204; + CASCADE_ENABLE_AUTOMATED_MEMORIES = 224; + CASCADE_MEMORY_CONFIG_OVERRIDE = 314; + CASCADE_USE_REPLACE_CONTENT_EDIT_TOOL = 228; + CASCADE_VIEW_FILE_TOOL_CONFIG_OVERRIDE = 258; + CASCADE_USE_EXPERIMENT_CHECKPOINTER = 247; + CASCADE_ENABLE_MCP_TOOLS = 245; + CASCADE_AUTO_FIX_LINTS = 275; + USE_ANTHROPIC_TOKEN_EFFICIENT_TOOLS_BETA = 296; + CASCADE_USER_MEMORIES_IN_SYS_PROMPT = 289; + COLLAPSE_ASSISTANT_MESSAGES = 312; + CASCADE_DEFAULT_MODEL_OVERRIDE = 321; + ENABLE_SMART_COPY = 181; + ENABLE_COMMIT_MESSAGE_GENERATION = 185; + FIREWORKS_ON_DEMAND_DEPLOYMENT = 276; + API_SERVER_CLIENT_USE_HTTP_2 = 202; + AUTOCOMPLETE_DEFAULT_DEBOUNCE_MS = 213; + AUTOCOMPLETE_FAST_DEBOUNCE_MS = 214; + PROFILING_TELEMETRY_SAMPLE_RATE = 219; + STREAM_USER_SHELL_COMMANDS = 225; + API_SERVER_PROMPT_CACHE_REPLICAS = 307; + API_SERVER_ENABLE_MORE_LOGGING = 272; + COMMAND_INJECT_USER_MEMORIES = 233; + AUTOCOMPLETE_HIDDEN_ERROR_REGEX = 234; + DISABLE_IDE_COMPLETIONS_DEBOUNCE = 278; + COMBINED_MODEL_USE_FULL_INSTRUCTION_FOR_RETRIEVAL = 264; + MAX_PAST_TRAJECTORY_TOKENS_FOR_RETRIEVAL = 265; + ENABLE_QUICK_ACTIONS = 250; + QUICK_ACTIONS_WHITELIST_REGEX = 251; + CASCADE_NEW_MODELS_NUX = 259; + CASCADE_NEW_WAVE_2_MODELS_NUX = 270; + SUPERCOMPLETE_FAST_DEBOUNCE = 262; + SUPERCOMPLETE_REGULAR_DEBOUNCE = 263; + XML_TOOL_PARSING_MODELS = 268; + SUPERCOMPLETE_DONT_FILTER_MID_STREAMED = 269; + ANNOYANCE_MANAGER_MAX_NAVIGATION_RENDERS = 285; + ANNOYANCE_MANAGER_INLINE_PREVENTION_THRESHOLD_MS = 286; + ANNOYANCE_MANAGER_INLINE_PREVENTION_MAX_INTENTIONAL_REJECTIONS = 287; + ANNOYANCE_MANAGER_INLINE_PREVENTION_MAX_AUTO_REJECTIONS = 288; + USE_CUSTOM_CHARACTER_DIFF = 292; + FORCE_NON_OPTIMIZED_DIFF = 298; + CASCADE_RECIPES_AT_MENTION_VISIBILITY = 316; + IMPLICIT_USES_CLIPBOARD = 310; + DISABLE_SUPERCOMPLETE_PCW = 303; + BLOCK_TAB_ON_SHOWN_AUTOCOMPLETE = 304; + CASCADE_WEB_SEARCH_NUX = 311; + MODEL_NOTIFICATIONS = 319; + MODEL_SELECTOR_NUX_COPY = 320; + CASCADE_TOOL_CALL_PRICING_NUX = 322; + CASCADE_PLUGINS_TAB = 323; + WAVE_8_RULES_ENABLED = 324; + WAVE_8_KNOWLEDGE_ENABLED = 325; + CASCADE_ONBOARDING = 326; + CASCADE_ONBOARDING_REVERT = 327; + CASCADE_ANTIGRAVITY_BROWSER_TOOLS_ENABLED = 328; + CASCADE_MODEL_HEADER_WARNING = 329; + LOG_CASCADE_CHAT_PANEL_ERROR = 331; + TEST_ONLY = 999; +} + +enum ExperimentSource { + EXPERIMENT_SOURCE_UNSPECIFIED = 0; + EXPERIMENT_SOURCE_EXTENSION = 1; + EXPERIMENT_SOURCE_LANGUAGE_SERVER = 2; + EXPERIMENT_SOURCE_API_SERVER = 3; +} + +enum ModelAlias { + MODEL_ALIAS_UNSPECIFIED = 0; + MODEL_ALIAS_CASCADE_BASE = 1; + MODEL_ALIAS_VISTA = 3; + MODEL_ALIAS_SHAMU = 4; + MODEL_ALIAS_SWE_1 = 5; + MODEL_ALIAS_SWE_1_LITE = 6; + MODEL_ALIAS_AUTO = 7; + MODEL_ALIAS_RECOMMENDED = 8; +} + +enum Model { + MODEL_UNSPECIFIED = 0; + MODEL_CHAT_20706 = 235; + MODEL_CHAT_23310 = 269; + MODEL_GOOGLE_GEMINI_2_5_FLASH = 312; + MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING = 313; + MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING_TOOLS = 329; + MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE = 330; + MODEL_GOOGLE_GEMINI_2_5_PRO = 246; + MODEL_GOOGLE_GEMINI_2_5_PRO_EVAL = 331; + MODEL_GOOGLE_GEMINI_FOR_GOOGLE_2_5_PRO = 327; + MODEL_GOOGLE_GEMINI_NEMOSREEF = 328; + MODEL_GOOGLE_GEMINI_2_5_FLASH_IMAGE_PREVIEW = 332; + MODEL_GOOGLE_GEMINI_COMPUTER_USE_EXPERIMENTAL = 335; + MODEL_GOOGLE_GEMINI_RAINSONG = 339; + MODEL_GOOGLE_JARVIS_PROXY = 346; + MODEL_GOOGLE_JARVIS_V4S = 349; + MODEL_GOOGLE_GEMINI_TRAINING_POLICY = 323; + MODEL_GOOGLE_GEMINI_INTERNAL_BYOM = 326; + MODEL_GOOGLE_GEMINI_INTERNAL_TAB_FLASH_LITE = 344; + MODEL_GOOGLE_GEMINI_INTERNAL_TAB_JUMP_FLASH_LITE = 345; + MODEL_GOOGLE_GEMINI_HORIZONDAWN = 336; + MODEL_GOOGLE_GEMINI_PUREPRISM = 337; + MODEL_GOOGLE_GEMINI_GENTLEISLAND = 338; + MODEL_GOOGLE_GEMINI_ORIONFIRE = 343; + MODEL_GOOGLE_GEMINI_COSMICFORGE = 347; + MODEL_GOOGLE_GEMINI_RIFTRUNNER = 348; + MODEL_GOOGLE_GEMINI_RIFTRUNNER_THINKING_LOW = 352; + MODEL_GOOGLE_GEMINI_RIFTRUNNER_THINKING_HIGH = 353; + MODEL_GOOGLE_GEMINI_INFINITYJET = 350; + MODEL_GOOGLE_GEMINI_INFINITYBLOOM = 351; + MODEL_CLAUDE_4_SONNET = 281; + MODEL_CLAUDE_4_SONNET_THINKING = 282; + MODEL_CLAUDE_4_OPUS = 290; + MODEL_CLAUDE_4_OPUS_THINKING = 291; + MODEL_CLAUDE_4_5_SONNET = 333; + MODEL_CLAUDE_4_5_SONNET_THINKING = 334; + MODEL_CLAUDE_4_5_HAIKU = 340; + MODEL_CLAUDE_4_5_HAIKU_THINKING = 341; + MODEL_OPENAI_GPT_OSS_120B_MEDIUM = 342; + MODEL_PLACEHOLDER_M0 = 1000; + MODEL_PLACEHOLDER_M1 = 1001; + MODEL_PLACEHOLDER_M2 = 1002; + MODEL_PLACEHOLDER_M3 = 1003; + MODEL_PLACEHOLDER_M4 = 1004; + MODEL_PLACEHOLDER_M5 = 1005; + MODEL_PLACEHOLDER_M6 = 1006; + MODEL_PLACEHOLDER_M7 = 1007; + MODEL_PLACEHOLDER_M8 = 1008; + MODEL_PLACEHOLDER_M9 = 1009; + MODEL_PLACEHOLDER_M10 = 1010; + MODEL_PLACEHOLDER_M11 = 1011; + MODEL_PLACEHOLDER_M12 = 1012; + MODEL_PLACEHOLDER_M13 = 1013; + MODEL_PLACEHOLDER_M14 = 1014; + MODEL_PLACEHOLDER_M15 = 1015; + MODEL_PLACEHOLDER_M16 = 1016; + MODEL_PLACEHOLDER_M17 = 1017; + MODEL_PLACEHOLDER_M18 = 1018; + MODEL_PLACEHOLDER_M19 = 1019; + MODEL_PLACEHOLDER_M20 = 1020; + MODEL_PLACEHOLDER_M21 = 1021; + MODEL_PLACEHOLDER_M22 = 1022; + MODEL_PLACEHOLDER_M23 = 1023; + MODEL_PLACEHOLDER_M24 = 1024; + MODEL_PLACEHOLDER_M25 = 1025; + MODEL_PLACEHOLDER_M26 = 1026; + MODEL_PLACEHOLDER_M27 = 1027; + MODEL_PLACEHOLDER_M28 = 1028; + MODEL_PLACEHOLDER_M29 = 1029; + MODEL_PLACEHOLDER_M30 = 1030; + MODEL_PLACEHOLDER_M31 = 1031; + MODEL_PLACEHOLDER_M32 = 1032; + MODEL_PLACEHOLDER_M33 = 1033; + MODEL_PLACEHOLDER_M34 = 1034; + MODEL_PLACEHOLDER_M35 = 1035; + MODEL_PLACEHOLDER_M36 = 1036; + MODEL_PLACEHOLDER_M37 = 1037; + MODEL_PLACEHOLDER_M38 = 1038; + MODEL_PLACEHOLDER_M39 = 1039; + MODEL_PLACEHOLDER_M40 = 1040; + MODEL_PLACEHOLDER_M41 = 1041; + MODEL_PLACEHOLDER_M42 = 1042; + MODEL_PLACEHOLDER_M43 = 1043; + MODEL_PLACEHOLDER_M44 = 1044; + MODEL_PLACEHOLDER_M45 = 1045; + MODEL_PLACEHOLDER_M46 = 1046; + MODEL_PLACEHOLDER_M47 = 1047; + MODEL_PLACEHOLDER_M48 = 1048; + MODEL_PLACEHOLDER_M49 = 1049; + MODEL_PLACEHOLDER_M50 = 1050; + MODEL_PLACEHOLDER_M51 = 1051; + MODEL_PLACEHOLDER_M52 = 1052; + MODEL_PLACEHOLDER_M53 = 1053; + MODEL_PLACEHOLDER_M54 = 1054; + MODEL_PLACEHOLDER_M55 = 1055; + MODEL_PLACEHOLDER_M56 = 1056; + MODEL_PLACEHOLDER_M57 = 1057; + MODEL_PLACEHOLDER_M58 = 1058; + MODEL_PLACEHOLDER_M59 = 1059; + MODEL_PLACEHOLDER_M60 = 1060; + MODEL_PLACEHOLDER_M61 = 1061; + MODEL_PLACEHOLDER_M62 = 1062; + MODEL_PLACEHOLDER_M63 = 1063; + MODEL_PLACEHOLDER_M64 = 1064; + MODEL_PLACEHOLDER_M65 = 1065; + MODEL_PLACEHOLDER_M66 = 1066; + MODEL_PLACEHOLDER_M67 = 1067; + MODEL_PLACEHOLDER_M68 = 1068; + MODEL_PLACEHOLDER_M69 = 1069; + MODEL_PLACEHOLDER_M70 = 1070; + MODEL_PLACEHOLDER_M71 = 1071; + MODEL_PLACEHOLDER_M72 = 1072; + MODEL_PLACEHOLDER_M73 = 1073; + MODEL_PLACEHOLDER_M74 = 1074; + MODEL_PLACEHOLDER_M75 = 1075; + MODEL_PLACEHOLDER_M76 = 1076; + MODEL_PLACEHOLDER_M77 = 1077; + MODEL_PLACEHOLDER_M78 = 1078; + MODEL_PLACEHOLDER_M79 = 1079; + MODEL_PLACEHOLDER_M80 = 1080; + MODEL_PLACEHOLDER_M81 = 1081; + MODEL_PLACEHOLDER_M82 = 1082; + MODEL_PLACEHOLDER_M83 = 1083; + MODEL_PLACEHOLDER_M84 = 1084; + MODEL_PLACEHOLDER_M85 = 1085; + MODEL_PLACEHOLDER_M86 = 1086; + MODEL_PLACEHOLDER_M87 = 1087; + MODEL_PLACEHOLDER_M88 = 1088; + MODEL_PLACEHOLDER_M89 = 1089; + MODEL_PLACEHOLDER_M90 = 1090; + MODEL_PLACEHOLDER_M91 = 1091; + MODEL_PLACEHOLDER_M92 = 1092; + MODEL_PLACEHOLDER_M93 = 1093; + MODEL_PLACEHOLDER_M94 = 1094; + MODEL_PLACEHOLDER_M95 = 1095; + MODEL_PLACEHOLDER_M96 = 1096; + MODEL_PLACEHOLDER_M97 = 1097; + MODEL_PLACEHOLDER_M98 = 1098; + MODEL_PLACEHOLDER_M99 = 1099; + MODEL_PLACEHOLDER_M100 = 1100; + MODEL_PLACEHOLDER_M101 = 1101; + MODEL_PLACEHOLDER_M102 = 1102; + MODEL_PLACEHOLDER_M103 = 1103; + MODEL_PLACEHOLDER_M104 = 1104; + MODEL_PLACEHOLDER_M105 = 1105; + MODEL_PLACEHOLDER_M106 = 1106; + MODEL_PLACEHOLDER_M107 = 1107; + MODEL_PLACEHOLDER_M108 = 1108; + MODEL_PLACEHOLDER_M109 = 1109; + MODEL_PLACEHOLDER_M110 = 1110; + MODEL_PLACEHOLDER_M111 = 1111; + MODEL_PLACEHOLDER_M112 = 1112; + MODEL_PLACEHOLDER_M113 = 1113; + MODEL_PLACEHOLDER_M114 = 1114; + MODEL_PLACEHOLDER_M115 = 1115; + MODEL_PLACEHOLDER_M116 = 1116; + MODEL_PLACEHOLDER_M117 = 1117; + MODEL_PLACEHOLDER_M118 = 1118; + MODEL_PLACEHOLDER_M119 = 1119; + MODEL_PLACEHOLDER_M120 = 1120; + MODEL_PLACEHOLDER_M121 = 1121; + MODEL_PLACEHOLDER_M122 = 1122; + MODEL_PLACEHOLDER_M123 = 1123; + MODEL_PLACEHOLDER_M124 = 1124; + MODEL_PLACEHOLDER_M125 = 1125; + MODEL_PLACEHOLDER_M126 = 1126; + MODEL_PLACEHOLDER_M127 = 1127; + MODEL_PLACEHOLDER_M128 = 1128; + MODEL_PLACEHOLDER_M129 = 1129; + MODEL_PLACEHOLDER_M130 = 1130; + MODEL_PLACEHOLDER_M131 = 1131; + MODEL_PLACEHOLDER_M132 = 1132; + MODEL_PLACEHOLDER_M133 = 1133; + MODEL_PLACEHOLDER_M134 = 1134; + MODEL_PLACEHOLDER_M135 = 1135; + MODEL_PLACEHOLDER_M136 = 1136; + MODEL_PLACEHOLDER_M137 = 1137; + MODEL_PLACEHOLDER_M138 = 1138; + MODEL_PLACEHOLDER_M139 = 1139; + MODEL_PLACEHOLDER_M140 = 1140; + MODEL_PLACEHOLDER_M141 = 1141; + MODEL_PLACEHOLDER_M142 = 1142; + MODEL_PLACEHOLDER_M143 = 1143; + MODEL_PLACEHOLDER_M144 = 1144; + MODEL_PLACEHOLDER_M145 = 1145; + MODEL_PLACEHOLDER_M146 = 1146; + MODEL_PLACEHOLDER_M147 = 1147; + MODEL_PLACEHOLDER_M148 = 1148; + MODEL_PLACEHOLDER_M149 = 1149; + MODEL_PLACEHOLDER_M150 = 1150; +} + +enum PromptElementExclusionReason { + EXCLUSION_UNSPECIFIED = 0; + EXCLUSION_ELEMENT_KIND_DISABLED = 1; + EXCLUSION_ELEMENT_MISSING_DEPENDENCY = 2; + EXCLUSION_TOKEN_BUDGET = 3; + EXCLUSION_ACTIVE_SOURCE_OVERLAP = 4; +} + +enum StopReason { + STOP_REASON_UNSPECIFIED = 0; + STOP_REASON_INCOMPLETE = 1; + STOP_REASON_STOP_PATTERN = 2; + STOP_REASON_MAX_TOKENS = 3; + STOP_REASON_FUNCTION_CALL = 10; + STOP_REASON_CONTENT_FILTER = 11; + STOP_REASON_NON_INSERTION = 12; + STOP_REASON_ERROR = 13; + STOP_REASON_IMPROPER_FORMAT = 14; + STOP_REASON_OTHER = 15; + STOP_REASON_CLIENT_CANCELED = 16; + STOP_REASON_CLIENT_TOOL_PARSE_ERROR = 17; + STOP_REASON_CLIENT_STREAM_ERROR = 18; + STOP_REASON_CLIENT_LOOPING = 19; + STOP_REASON_CLIENT_INVALID_MESSAGE_ORDER = 20; + STOP_REASON_MIN_LOG_PROB = 4; + STOP_REASON_MAX_NEWLINES = 5; + STOP_REASON_EXIT_SCOPE = 6; + STOP_REASON_NONFINITE_LOGIT_OR_PROB = 7; + STOP_REASON_FIRST_NON_WHITESPACE_LINE = 8; + STOP_REASON_PARTIAL = 9; +} + +enum FilterReason { + FILTER_REASON_NONE = 0; + FILTER_REASON_INCOMPLETE = 1; + FILTER_REASON_EMPTY = 2; + FILTER_REASON_REPETITIVE = 3; + FILTER_REASON_DUPLICATE = 4; + FILTER_REASON_LONG_LINE = 5; + FILTER_REASON_COMPLETIONS_CUTOFF = 6; + FILTER_REASON_ATTRIBUTION = 7; + FILTER_REASON_NON_MATCHING = 8; + FILTER_REASON_NON_INSERTION = 9; +} + +enum AttributionStatus { + ATTRIBUTION_STATUS_UNSPECIFIED = 0; + ATTRIBUTION_STATUS_NEW_CODE = 1; + ATTRIBUTION_STATUS_NO_LICENSE = 2; + ATTRIBUTION_STATUS_NONPERMISSIVE = 3; + ATTRIBUTION_STATUS_PERMISSIVE = 4; + ATTRIBUTION_STATUS_PERMISSIVE_BLOCKED = 5; +} + +enum EmbeddingPriority { + EMBEDDING_PRIORITY_UNSPECIFIED = 0; + EMBEDDING_PRIORITY_HIGH = 1; + EMBEDDING_PRIORITY_LOW = 2; +} + +enum EmbeddingPrefix { + EMBEDDING_PREFIX_UNSPECIFIED = 0; + EMBEDDING_PREFIX_NOMIC_DOCUMENT = 1; + EMBEDDING_PREFIX_NOMIC_SEARCH = 2; + EMBEDDING_PREFIX_NOMIC_CLASSIFICATION = 3; + EMBEDDING_PREFIX_NOMIC_CLUSTERING = 4; +} + +enum EmbeddingSource { + EMBEDDING_SOURCE_UNSPECIFIED = 0; + EMBEDDING_SOURCE_CODE_CONTEXT_ITEM = 1; + EMBEDDING_SOURCE_COMMIT_INTENT = 2; +} + +enum EventType { + EVENT_TYPE_UNSPECIFIED = 0; + EVENT_TYPE_ENABLE_CODEIUM = 1; + EVENT_TYPE_DISABLE_CODEIUM = 2; + EVENT_TYPE_SHOW_PREVIOUS_COMPLETION = 3; + EVENT_TYPE_SHOW_NEXT_COMPLETION = 4; + EVENT_TYPE_COPILOT_STATUS = 5; + EVENT_TYPE_COMPLETION_SUPPRESSED = 6; + EVENT_TYPE_MEMORY_STATS = 8; + EVENT_TYPE_LOCAL_CONTEXT_RELEVANCE_CHECK = 9; + EVENT_TYPE_ACTIVE_EDITOR_CHANGED = 10; + EVENT_TYPE_SHOW_PREVIOUS_CORTEX_STEP = 11; + EVENT_TYPE_SHOW_NEXT_CORTEX_STEP = 12; + EVENT_TYPE_INDEXER_STATS = 13; +} + +enum SearchResultType { + SEARCH_RESULT_TYPE_UNSPECIFIED = 0; + SEARCH_RESULT_TYPE_CLUSTER = 1; + SEARCH_RESULT_TYPE_EXACT = 2; +} + +enum EmbedType { + EMBED_TYPE_UNSPECIFIED = 0; + EMBED_TYPE_RAW_SOURCE = 1; + EMBED_TYPE_DOCSTRING = 2; + EMBED_TYPE_FUNCTION = 3; + EMBED_TYPE_NODEPATH = 4; + EMBED_TYPE_DECLARATION = 5; + EMBED_TYPE_NAIVE_CHUNK = 6; + EMBED_TYPE_SIGNATURE = 7; +} + +enum CompletionSource { + COMPLETION_SOURCE_UNSPECIFIED = 0; + COMPLETION_SOURCE_TYPING_AS_SUGGESTED = 1; + COMPLETION_SOURCE_CACHE = 2; + COMPLETION_SOURCE_NETWORK = 3; +} + +enum CompletionType { + COMPLETION_TYPE_UNSPECIFIED = 0; + COMPLETION_TYPE_SINGLE = 1; + COMPLETION_TYPE_MULTI = 2; + COMPLETION_TYPE_INLINE_FIM = 3; + COMPLETION_TYPE_CASCADE = 4; +} + +enum Language { + LANGUAGE_UNSPECIFIED = 0; + LANGUAGE_C = 1; + LANGUAGE_CLOJURE = 2; + LANGUAGE_COFFEESCRIPT = 3; + LANGUAGE_CPP = 4; + LANGUAGE_CSHARP = 5; + LANGUAGE_CSS = 6; + LANGUAGE_CUDACPP = 7; + LANGUAGE_DOCKERFILE = 8; + LANGUAGE_GO = 9; + LANGUAGE_GROOVY = 10; + LANGUAGE_HANDLEBARS = 11; + LANGUAGE_HASKELL = 12; + LANGUAGE_HCL = 13; + LANGUAGE_HTML = 14; + LANGUAGE_INI = 15; + LANGUAGE_JAVA = 16; + LANGUAGE_JAVASCRIPT = 17; + LANGUAGE_JSON = 18; + LANGUAGE_JULIA = 19; + LANGUAGE_KOTLIN = 20; + LANGUAGE_LATEX = 21; + LANGUAGE_LESS = 22; + LANGUAGE_LUA = 23; + LANGUAGE_MAKEFILE = 24; + LANGUAGE_MARKDOWN = 25; + LANGUAGE_OBJECTIVEC = 26; + LANGUAGE_OBJECTIVECPP = 27; + LANGUAGE_PERL = 28; + LANGUAGE_PHP = 29; + LANGUAGE_PLAINTEXT = 30; + LANGUAGE_PROTOBUF = 31; + LANGUAGE_PBTXT = 32; + LANGUAGE_PYTHON = 33; + LANGUAGE_R = 34; + LANGUAGE_RUBY = 35; + LANGUAGE_RUST = 36; + LANGUAGE_SASS = 37; + LANGUAGE_SCALA = 38; + LANGUAGE_SCSS = 39; + LANGUAGE_SHELL = 40; + LANGUAGE_SQL = 41; + LANGUAGE_STARLARK = 42; + LANGUAGE_SWIFT = 43; + LANGUAGE_TSX = 44; + LANGUAGE_TYPESCRIPT = 45; + LANGUAGE_VISUALBASIC = 46; + LANGUAGE_VUE = 47; + LANGUAGE_XML = 48; + LANGUAGE_XSL = 49; + LANGUAGE_YAML = 50; + LANGUAGE_SVELTE = 51; + LANGUAGE_TOML = 52; + LANGUAGE_DART = 53; + LANGUAGE_RST = 54; + LANGUAGE_OCAML = 55; + LANGUAGE_CMAKE = 56; + LANGUAGE_PASCAL = 57; + LANGUAGE_ELIXIR = 58; + LANGUAGE_FSHARP = 59; + LANGUAGE_LISP = 60; + LANGUAGE_MATLAB = 61; + LANGUAGE_POWERSHELL = 62; + LANGUAGE_SOLIDITY = 63; + LANGUAGE_ADA = 64; + LANGUAGE_OCAML_INTERFACE = 65; + LANGUAGE_TREE_SITTER_QUERY = 66; + LANGUAGE_APL = 67; + LANGUAGE_ASSEMBLY = 68; + LANGUAGE_COBOL = 69; + LANGUAGE_CRYSTAL = 70; + LANGUAGE_EMACS_LISP = 71; + LANGUAGE_ERLANG = 72; + LANGUAGE_FORTRAN = 73; + LANGUAGE_FREEFORM = 74; + LANGUAGE_GRADLE = 75; + LANGUAGE_HACK = 76; + LANGUAGE_MAVEN = 77; + LANGUAGE_M68KASSEMBLY = 78; + LANGUAGE_SAS = 79; + LANGUAGE_UNIXASSEMBLY = 80; + LANGUAGE_VBA = 81; + LANGUAGE_VIMSCRIPT = 82; + LANGUAGE_WEBASSEMBLY = 83; + LANGUAGE_BLADE = 84; + LANGUAGE_ASTRO = 85; + LANGUAGE_MUMPS = 86; + LANGUAGE_GDSCRIPT = 87; + LANGUAGE_NIM = 88; + LANGUAGE_PROLOG = 89; + LANGUAGE_MARKDOWN_INLINE = 90; + LANGUAGE_APEX = 91; +} + +enum ChatMessageSource { + CHAT_MESSAGE_SOURCE_UNSPECIFIED = 0; + CHAT_MESSAGE_SOURCE_USER = 1; + CHAT_MESSAGE_SOURCE_SYSTEM = 2; + CHAT_MESSAGE_SOURCE_UNKNOWN = 3; + CHAT_MESSAGE_SOURCE_TOOL = 4; + CHAT_MESSAGE_SOURCE_SYSTEM_PROMPT = 5; +} + +enum UserTeamStatus { + USER_TEAM_STATUS_UNSPECIFIED = 0; + USER_TEAM_STATUS_PENDING = 1; + USER_TEAM_STATUS_APPROVED = 2; + USER_TEAM_STATUS_REJECTED = 3; +} + +enum TeamsFeatures { + TEAMS_FEATURES_UNSPECIFIED = 0; + TEAMS_FEATURES_SSO = 1; + TEAMS_FEATURES_ATTRIBUTION = 2; + TEAMS_FEATURES_PHI = 3; + TEAMS_FEATURES_CORTEX = 4; + TEAMS_FEATURES_OPENAI_DISABLED = 5; + TEAMS_FEATURES_REMOTE_INDEXING_DISABLED = 6; + TEAMS_FEATURES_API_KEY_ENABLED = 7; +} + +enum UserFeatures { + USER_FEATURES_UNSPECIFIED = 0; + USER_FEATURES_CORTEX = 1; + USER_FEATURES_CORTEX_TEST = 2; +} + +enum Permission { + PERMISSION_UNSPECIFIED = 0; + PERMISSION_ATTRIBUTION_READ = 1; + PERMISSION_ANALYTICS_READ = 2; + PERMISSION_LICENSE_READ = 3; + PERMISSION_TEAM_USER_READ = 4; + PERMISSION_TEAM_USER_UPDATE = 5; + PERMISSION_TEAM_USER_DELETE = 6; + PERMISSION_TEAM_USER_INVITE = 17; + PERMISSION_INDEXING_READ = 7; + PERMISSION_INDEXING_CREATE = 8; + PERMISSION_INDEXING_UPDATE = 9; + PERMISSION_INDEXING_DELETE = 10; + PERMISSION_INDEXING_MANAGEMENT = 27; + PERMISSION_FINETUNING_READ = 19; + PERMISSION_FINETUNING_CREATE = 20; + PERMISSION_FINETUNING_UPDATE = 21; + PERMISSION_FINETUNING_DELETE = 22; + PERMISSION_SSO_READ = 11; + PERMISSION_SSO_WRITE = 12; + PERMISSION_SERVICE_KEY_READ = 13; + PERMISSION_SERVICE_KEY_CREATE = 14; + PERMISSION_SERVICE_KEY_UPDATE = 28; + PERMISSION_SERVICE_KEY_DELETE = 15; + PERMISSION_ROLE_READ = 23; + PERMISSION_ROLE_CREATE = 24; + PERMISSION_ROLE_UPDATE = 25; + PERMISSION_ROLE_DELETE = 26; + PERMISSION_BILLING_READ = 16; + PERMISSION_BILLING_WRITE = 18; + PERMISSION_EXTERNAL_CHAT_UPDATE = 29; + PERMISSION_TEAM_SETTINGS_READ = 30; + PERMISSION_TEAM_SETTINGS_UPDATE = 31; +} + +enum TeamsTier { + TEAMS_TIER_UNSPECIFIED = 0; + TEAMS_TIER_TEAMS = 1; + TEAMS_TIER_PRO = 2; + TEAMS_TIER_TRIAL = 9; + TEAMS_TIER_ENTERPRISE_SAAS = 3; + TEAMS_TIER_HYBRID = 4; + TEAMS_TIER_ENTERPRISE_SELF_HOSTED = 5; + TEAMS_TIER_ENTERPRISE_SELF_SERVE = 10; + TEAMS_TIER_WAITLIST_PRO = 6; + TEAMS_TIER_TEAMS_ULTIMATE = 7; + TEAMS_TIER_PRO_ULTIMATE = 8; +} + +enum ModelProvider { + MODEL_PROVIDER_UNSPECIFIED = 0; + MODEL_PROVIDER_ANTIGRAVITY = 1; + MODEL_PROVIDER_OPENAI = 2; + MODEL_PROVIDER_ANTHROPIC = 3; + MODEL_PROVIDER_GOOGLE = 4; + MODEL_PROVIDER_XAI = 5; + MODEL_PROVIDER_DEEPSEEK = 6; +} + +enum ModelPricingType { + MODEL_PRICING_TYPE_UNSPECIFIED = 0; + MODEL_PRICING_TYPE_STATIC_CREDIT = 1; + MODEL_PRICING_TYPE_API = 2; + MODEL_PRICING_TYPE_BYOK = 3; +} + +enum TransactionStatus { + TRANSACTION_STATUS_UNSPECIFIED = 0; + TRANSACTION_STATUS_SUCCEEDED = 1; + TRANSACTION_STATUS_PROCESSING = 2; + TRANSACTION_STATUS_FAILED = 3; + TRANSACTION_STATUS_NO_ACTIVE = 4; +} + +enum ScmProvider { + SCM_PROVIDER_UNSPECIFIED = 0; + SCM_PROVIDER_GITHUB = 1; + SCM_PROVIDER_GITLAB = 2; + SCM_PROVIDER_BITBUCKET = 3; + SCM_PROVIDER_AZURE_DEVOPS = 4; +} + +enum ScmType { + SCM_TYPE_UNSPECIFIED = 0; + SCM_TYPE_GIT = 1; + SCM_TYPE_PERFORCE = 2; +} + +enum CodeContextType { + CODE_CONTEXT_TYPE_UNSPECIFIED = 0; + CODE_CONTEXT_TYPE_FUNCTION = 1; + CODE_CONTEXT_TYPE_CLASS = 2; + CODE_CONTEXT_TYPE_IMPORT = 3; + CODE_CONTEXT_TYPE_NAIVE_LINECHUNK = 4; + CODE_CONTEXT_TYPE_REFERENCE_FUNCTION = 5; + CODE_CONTEXT_TYPE_REFERENCE_CLASS = 6; + CODE_CONTEXT_TYPE_FILE = 7; + CODE_CONTEXT_TYPE_TERMINAL = 8; +} + +enum CodeContextSource { + CODE_CONTEXT_SOURCE_UNSPECIFIED = 0; + CODE_CONTEXT_SOURCE_OPEN_DOCS = 1; + CODE_CONTEXT_SOURCE_SEARCH_RESULT = 2; + CODE_CONTEXT_SOURCE_IMPORT = 3; + CODE_CONTEXT_SOURCE_LOCAL_DIRECTORY = 4; + CODE_CONTEXT_SOURCE_LAST_ACTIVE_DOC = 5; + CODE_CONTEXT_SOURCE_ORACLE_ITEMS = 6; + CODE_CONTEXT_SOURCE_PINNED_CONTEXT = 7; + CODE_CONTEXT_SOURCE_RESEARCH_STATE = 8; + CODE_CONTEXT_SOURCE_GROUND_TRUTH_PLAN_EDIT = 9; + CODE_CONTEXT_SOURCE_COMMIT_GRAPH = 10; +} + +enum ContextSnippetType { + CONTEXT_SNIPPET_TYPE_UNSPECIFIED = 0; + CONTEXT_SNIPPET_TYPE_RAW_SOURCE = 1; + CONTEXT_SNIPPET_TYPE_SIGNATURE = 2; + CONTEXT_SNIPPET_TYPE_NODEPATH = 3; +} + +enum CommitIntentType { + COMMIT_INTENT_TYPE_UNSPECIFIED = 0; + COMMIT_INTENT_TYPE_COMMIT_MESSAGE = 1; +} + +enum GpuType { + GPU_TYPE_UNSPECIFIED = 0; + GPU_TYPE_L4 = 1; + GPU_TYPE_T4 = 2; + GPU_TYPE_A10 = 3; + GPU_TYPE_A100 = 4; + GPU_TYPE_V100 = 5; + GPU_TYPE_A5000 = 6; +} + +enum ContextInclusionType { + CONTEXT_INCLUSION_TYPE_UNSPECIFIED = 0; + CONTEXT_INCLUSION_TYPE_INCLUDE = 1; + CONTEXT_INCLUSION_TYPE_EXCLUDE = 2; +} + +enum ThemePreference { + THEME_PREFERENCE_UNSPECIFIED = 0; + THEME_PREFERENCE_AUTO = 1; + THEME_PREFERENCE_LIGHT = 2; + THEME_PREFERENCE_DARK = 3; +} + +enum AutocompleteSpeed { + AUTOCOMPLETE_SPEED_UNSPECIFIED = 0; + AUTOCOMPLETE_SPEED_SLOW = 1; + AUTOCOMPLETE_SPEED_DEFAULT = 2; + AUTOCOMPLETE_SPEED_FAST = 3; +} + +enum TabEnabled { + TAB_ENABLED_UNSPECIFIED = 0; + TAB_ENABLED_OFF = 1; + TAB_ENABLED_ON = 2; +} + +enum CascadeCommandsAutoExecution { + CASCADE_COMMANDS_AUTO_EXECUTION_UNSPECIFIED = 0; + CASCADE_COMMANDS_AUTO_EXECUTION_OFF = 1; + CASCADE_COMMANDS_AUTO_EXECUTION_AUTO = 2; + CASCADE_COMMANDS_AUTO_EXECUTION_EAGER = 3; +} + +enum ArtifactReviewMode { + ARTIFACT_REVIEW_MODE_UNSPECIFIED = 0; + ARTIFACT_REVIEW_MODE_ALWAYS = 1; + ARTIFACT_REVIEW_MODE_TURBO = 2; + ARTIFACT_REVIEW_MODE_AUTO = 3; +} + +enum ExtensionPanelTab { + EXTENSION_PANEL_TAB_UNSPECIFIED = 0; + EXTENSION_PANEL_TAB_CHAT = 1; + EXTENSION_PANEL_TAB_PROFILE = 2; + EXTENSION_PANEL_TAB_BRAIN = 4; + EXTENSION_PANEL_TAB_COMMAND = 5; + EXTENSION_PANEL_TAB_CORTEX = 6; + EXTENSION_PANEL_TAB_DEBUG = 7; +} + +enum RememberLastModelSelection { + REMEMBER_LAST_MODEL_SELECTION_UNSPECIFIED = 0; + REMEMBER_LAST_MODEL_SELECTION_ENABLED = 1; + REMEMBER_LAST_MODEL_SELECTION_DISABLED = 2; +} + +enum CascadeNUXEvent { + CASCADE_NUX_EVENT_UNSPECIFIED = 0; + CASCADE_NUX_EVENT_DIFF_OVERVIEW = 1; + CASCADE_NUX_EVENT_WEB_SEARCH = 2; + CASCADE_NUX_EVENT_NEW_MODELS_WAVE2 = 3; + CASCADE_NUX_EVENT_TOOL_CALL = 4; + CASCADE_NUX_EVENT_MODEL_SELECTOR_NUX = 5; + CASCADE_NUX_EVENT_TOOL_CALL_PRICING_NUX = 6; + CASCADE_NUX_EVENT_WRITE_CHAT_MODE = 7; + CASCADE_NUX_EVENT_REVERT_STEP = 8; + CASCADE_NUX_EVENT_RULES = 9; + CASCADE_NUX_EVENT_WEB_MENTION = 10; + CASCADE_NUX_EVENT_BACKGROUND_CASCADE = 11; + CASCADE_NUX_EVENT_ANTHROPIC_API_PRICING = 12; + CASCADE_NUX_EVENT_PLAN_MODE = 13; + CASCADE_NUX_EVENT_OPEN_BROWSER_URL = 14; +} + +enum UserNUXEvent { + USER_NUX_EVENT_UNSPECIFIED = 0; + USER_NUX_EVENT_DISMISS_ANTIGRAVITY_CROSS_SELL = 1; +} + +enum ConversationalPlannerMode { + CONVERSATIONAL_PLANNER_MODE_UNSPECIFIED = 0; + CONVERSATIONAL_PLANNER_MODE_DEFAULT = 1; + CONVERSATIONAL_PLANNER_MODE_READ_ONLY = 2; +} + +enum PlanningMode { + PLANNING_MODE_UNSPECIFIED = 0; + PLANNING_MODE_OFF = 1; + PLANNING_MODE_ON = 2; +} + +enum TabToJump { + TAB_TO_JUMP_UNSPECIFIED = 0; + TAB_TO_JUMP_ENABLED = 1; + TAB_TO_JUMP_DISABLED = 2; +} + +enum CascadeWebSearchTool { + CASCADE_WEB_SEARCH_TOOL_UNSPECIFIED = 0; + CASCADE_WEB_SEARCH_TOOL_ENABLED = 1; + CASCADE_WEB_SEARCH_TOOL_DISABLED = 2; +} + +enum CascadeRunExtensionCode { + CASCADE_RUN_EXTENSION_CODE_UNSPECIFIED = 0; + CASCADE_RUN_EXTENSION_CODE_ENABLED = 1; + CASCADE_RUN_EXTENSION_CODE_DISABLED = 2; + CASCADE_RUN_EXTENSION_CODE_ONLY = 3; +} + +enum CascadeInputAutocomplete { + CASCADE_INPUT_AUTOCOMPLETE_UNSPECIFIED = 0; + CASCADE_INPUT_AUTOCOMPLETE_ENABLED = 1; + CASCADE_INPUT_AUTOCOMPLETE_DISABLED = 2; +} + +enum CascadeRunExtensionCodeAutoRun { + CASCADE_RUN_EXTENSION_CODE_AUTO_RUN_UNSPECIFIED = 0; + CASCADE_RUN_EXTENSION_CODE_AUTO_RUN_ENABLED = 1; + CASCADE_RUN_EXTENSION_CODE_AUTO_RUN_DISABLED = 2; + CASCADE_RUN_EXTENSION_CODE_AUTO_RUN_MODEL_DECIDES = 3; +} + +enum AgentBrowserTools { + AGENT_BROWSER_TOOLS_UNSPECIFIED = 0; + AGENT_BROWSER_TOOLS_ENABLED = 1; + AGENT_BROWSER_TOOLS_DISABLED = 2; +} + +enum FeatureUsageType { + FEATURE_USAGE_TYPE_UNSPECIFIED = 0; + FEATURE_USAGE_TYPE_CASCADE_BROWSER = 1; + FEATURE_USAGE_TYPE_CASCADE_WEB_AT_MENTION = 2; + FEATURE_USAGE_TYPE_CASCADE_REVERT_TO_STEP = 3; + FEATURE_USAGE_TYPE_CASCADE_CLICK_MODEL_SELECTOR = 4; + FEATURE_USAGE_TYPE_CASCADE_MESSAGE_FEEDBACK = 5; +} + +enum PlanMode { + PLAN_MODE_UNSPECIFIED = 0; + PLAN_MODE_ON = 1; + PLAN_MODE_OFF = 2; +} + +enum AutoContinueOnMaxGeneratorInvocations { + AUTO_CONTINUE_ON_MAX_GENERATOR_INVOCATIONS_UNSPECIFIED = 0; + AUTO_CONTINUE_ON_MAX_GENERATOR_INVOCATIONS_ENABLED = 1; + AUTO_CONTINUE_ON_MAX_GENERATOR_INVOCATIONS_DISABLED = 2; +} + +enum CascadeNUXLocation { + CASCADE_NUX_LOCATION_UNSPECIFIED = 0; + CASCADE_NUX_LOCATION_CASCADE_INPUT = 1; + CASCADE_NUX_LOCATION_MODEL_SELECTOR = 2; + CASCADE_NUX_LOCATION_RULES_TAB = 4; + CASCADE_NUX_LOCATION_REVERT_STEP = 6; + CASCADE_NUX_LOCATION_PLAN_MODE = 7; + CASCADE_NUX_LOCATION_WRITE_CHAT_MODE = 8; + CASCADE_NUX_LOCATION_TOOLBAR = 9; + CASCADE_NUX_LOCATION_MANAGER_BOTTOM_LEFT = 10; + CASCADE_NUX_LOCATION_ARTIFACT_VIEW_BOTTOM_LEFT = 11; +} + +enum CascadeNUXIcon { + CASCADE_NUX_ICON_UNSPECIFIED = 0; + CASCADE_NUX_ICON_WEB_SEARCH = 1; + CASCADE_NUX_ICON_ANTIGRAVITY_BROWSER = 2; +} + +enum CascadeNUXTrigger { + CASCADE_NUX_TRIGGER_UNSPECIFIED = 0; + CASCADE_NUX_TRIGGER_PRODUCED_CODE_DIFF = 1; + CASCADE_NUX_TRIGGER_OPEN_BROWSER_URL = 3; + CASCADE_NUX_TRIGGER_WEB_SEARCH = 4; + CASCADE_NUX_TRIGGER_MANAGER_POSTONBOARDING_COMPLETE = 5; + CASCADE_NUX_TRIGGER_MANAGER_ARTIFACT_CREATED = 6; + CASCADE_NUX_TRIGGER_MANAGER_ARTIFACT_OPENED = 7; + CASCADE_NUX_TRIGGER_MANAGER_FILE_OPENED = 8; + CASCADE_NUX_TRIGGER_MANAGER_CONVERSATION_AVAILABLE = 10; +} + +enum AnnotationsConfig { + ANNOTATIONS_CONFIG_UNSPECIFIED = 0; + ANNOTATIONS_CONFIG_ENABLED = 1; + ANNOTATIONS_CONFIG_DISABLED = 2; +} + +enum DetectAndUseProxy { + DETECT_AND_USE_PROXY_UNSPECIFIED = 0; + DETECT_AND_USE_PROXY_ENABLED = 1; + DETECT_AND_USE_PROXY_DISABLED = 2; +} + +enum BrowserJsExecutionPolicy { + BROWSER_JS_EXECUTION_POLICY_UNSPECIFIED = 0; + BROWSER_JS_EXECUTION_POLICY_DISABLED = 1; + BROWSER_JS_EXECUTION_POLICY_ALWAYS_ASK = 2; + BROWSER_JS_EXECUTION_POLICY_MODEL_DECIDES = 3; + BROWSER_JS_EXECUTION_POLICY_TURBO = 4; +} + +enum ModelType { + MODEL_TYPE_UNSPECIFIED = 0; + MODEL_TYPE_COMPLETION = 1; + MODEL_TYPE_CHAT = 2; + MODEL_TYPE_EMBED = 3; + MODEL_TYPE_QUERY = 4; +} + +enum APIProvider { + API_PROVIDER_UNSPECIFIED = 0; + API_PROVIDER_INTERNAL = 1; + API_PROVIDER_GOOGLE_VERTEX = 3; + API_PROVIDER_GOOGLE_GEMINI = 24; + API_PROVIDER_ANTHROPIC_VERTEX = 26; + API_PROVIDER_GOOGLE_EVERGREEN = 30; + API_PROVIDER_OPENAI_VERTEX = 31; +} + +enum ModelStatus { + MODEL_STATUS_UNSPECIFIED = 0; + MODEL_STATUS_INFO = 1; + MODEL_STATUS_WARNING = 2; +} + +enum CodeSource { + CODE_SOURCE_UNSPECIFIED = 0; + CODE_SOURCE_BASE = 1; + CODE_SOURCE_CODEIUM = 2; + CODE_SOURCE_USER = 3; + CODE_SOURCE_USER_LARGE = 4; + CODE_SOURCE_UNKNOWN = 5; +} + +enum DocumentType { + DOCUMENT_TYPE_UNSPECIFIED = 0; + DOCUMENT_TYPE_SLACK_MESSAGE = 1; + DOCUMENT_TYPE_SLACK_CHANNEL = 2; + DOCUMENT_TYPE_GITHUB_ISSUE = 3; + DOCUMENT_TYPE_GITHUB_ISSUE_COMMENT = 4; + DOCUMENT_TYPE_GITHUB_REPO = 8; + DOCUMENT_TYPE_GOOGLE_DRIVE_FILE = 5; + DOCUMENT_TYPE_GOOGLE_DRIVE_FOLDER = 6; + DOCUMENT_TYPE_JIRA_ISSUE = 7; + DOCUMENT_TYPE_CCI = 9; +} + +enum ContextScopeType { + CONTEXT_SCOPE_TYPE_UNSPECIFIED = 0; + CONTEXT_SCOPE_TYPE_FILE = 1; + CONTEXT_SCOPE_TYPE_DIRECTORY = 2; + CONTEXT_SCOPE_TYPE_REPOSITORY = 3; + CONTEXT_SCOPE_TYPE_CODE_CONTEXT = 4; + CONTEXT_SCOPE_TYPE_CCI_WITH_SUBRANGE = 5; + CONTEXT_SCOPE_TYPE_REPOSITORY_PATH = 6; + CONTEXT_SCOPE_TYPE_SLACK = 7; + CONTEXT_SCOPE_TYPE_GITHUB = 8; + CONTEXT_SCOPE_TYPE_FILE_LINE_RANGE = 9; + CONTEXT_SCOPE_TYPE_TEXT_BLOCK = 10; + CONTEXT_SCOPE_TYPE_JIRA = 11; + CONTEXT_SCOPE_TYPE_GOOGLE_DRIVE = 12; + CONTEXT_SCOPE_TYPE_CONSOLE_LOG = 13; + CONTEXT_SCOPE_TYPE_DOM_ELEMENT = 14; + CONTEXT_SCOPE_TYPE_RECIPE = 15; + CONTEXT_SCOPE_TYPE_KNOWLEDGE = 16; + CONTEXT_SCOPE_TYPE_RULE = 17; + CONTEXT_SCOPE_TYPE_MCP_RESOURCE = 18; + CONTEXT_SCOPE_TYPE_BROWSER_PAGE = 19; + CONTEXT_SCOPE_TYPE_BROWSER_CODE_BLOCK = 20; + CONTEXT_SCOPE_TYPE_BROWSER_TEXT = 21; + CONTEXT_SCOPE_TYPE_CONVERSATION = 22; + CONTEXT_SCOPE_TYPE_USER_ACTIVITY = 23; + CONTEXT_SCOPE_TYPE_TERMINAL = 24; +} + +enum StatusLevel { + STATUS_LEVEL_UNSPECIFIED = 0; + STATUS_LEVEL_ERROR = 1; + STATUS_LEVEL_WARNING = 2; + STATUS_LEVEL_INFO = 3; + STATUS_LEVEL_DEBUG = 4; +} + +enum CortexErrorCategory { + CORTEX_ERROR_CATEGORY_UNSPECIFIED = 0; + CORTEX_ERROR_CATEGORY_OVERALL = 1; + CORTEX_ERROR_CATEGORY_ACTION_PREPARE = 2; + CORTEX_ERROR_CATEGORY_ACTION_APPLY = 3; +} + +enum LastUpdateType { + LAST_UPDATE_TYPE_UNSPECIFIED = 0; + LAST_UPDATE_TYPE_OVERALL = 1; + LAST_UPDATE_TYPE_LAST_AUTOCOMPLETE_USAGE_TIME = 2; + LAST_UPDATE_TYPE_LAST_CHAT_USAGE_TIME = 3; + LAST_UPDATE_TYPE_LAST_COMMAND_USAGE_TIME = 4; +} + +enum OnboardingActionType { + ONBOARDING_ACTION_TYPE_UNSPECIFIED = 0; + ONBOARDING_ACTION_TYPE_AUTOCOMPLETE = 1; + ONBOARDING_ACTION_TYPE_COMMAND = 2; + ONBOARDING_ACTION_TYPE_CHAT = 3; +} + +enum SupercompleteTriggerCondition { + SUPERCOMPLETE_TRIGGER_CONDITION_UNSPECIFIED = 0; + SUPERCOMPLETE_TRIGGER_CONDITION_AUTOCOMPLETE_ACCEPT = 1; + SUPERCOMPLETE_TRIGGER_CONDITION_CURSOR_LINE_NAVIGATION = 2; + SUPERCOMPLETE_TRIGGER_CONDITION_TYPING = 3; + SUPERCOMPLETE_TRIGGER_CONDITION_FORCED = 4; + SUPERCOMPLETE_TRIGGER_CONDITION_TAB_JUMP_ACCEPT = 5; + SUPERCOMPLETE_TRIGGER_CONDITION_SUPERCOMPLETE_ACCEPT = 6; + SUPERCOMPLETE_TRIGGER_CONDITION_TAB_JUMP_PREDICTIVE = 7; + SUPERCOMPLETE_TRIGGER_CONDITION_AUTOCOMPLETE_PREDICTIVE = 8; + SUPERCOMPLETE_TRIGGER_CONDITION_SUPERCOMPLETE_PREDICTIVE = 9; + SUPERCOMPLETE_TRIGGER_CONDITION_TAB_JUMP_EDIT = 10; +} + +enum ProductEventType { + EVENT_UNSPECIFIED = 0; + ANTIGRAVITY_EDITOR_READY = 251; + ANTIGRAVITY_EXTENSION_START = 253; + ANTIGRAVITY_EXTENSION_ACTIVATED = 32; + LS_DOWNLOAD_START = 1; + LS_DOWNLOAD_COMPLETE = 2; + LS_DOWNLOAD_FAILURE = 5; + LS_BINARY_STARTUP = 250; + LS_STARTUP = 3; + LS_FAILURE = 4; + AUTOCOMPLETE_ACCEPTED = 6; + AUTOCOMPLETE_ONE_WORD_ACCEPTED = 7; + CHAT_MESSAGE_SENT = 8; + CHAT_MENTION_INSERT = 13; + CHAT_MENTION_MENU_OPEN = 19; + CHAT_OPEN_SETTINGS = 14; + CHAT_OPEN_CONTEXT_SETTINGS = 15; + CHAT_WITH_CODEBASE = 16; + CHAT_NEW_CONVERSATION = 17; + CHAT_CHANGE_MODEL = 18; + CHAT_TOGGLE_FOCUS_INSERT_TEXT = 34; + FUNCTION_REFACTOR = 28; + EXPLAIN_CODE_BLOCK = 29; + FUNCTION_ADD_DOCSTRING = 30; + EXPLAIN_PROBLEM = 31; + COMMAND_BOX_OPENED = 9; + COMMAND_SUBMITTED = 10; + COMMAND_ACCEPTED = 11; + COMMAND_REJECTED = 12; + WS_ONBOARDING_LANDING_PAGE_OPENED = 20; + WS_ONBOARDING_SETUP_PAGE_OPENED = 21; + WS_ONBOARDING_KEYBINDINGS_PAGE_OPENED = 22; + WS_ONBOARDING_MIGRATION_SCOPE_PAGE_OPENED = 23; + WS_ONBOARDING_IMPORT_PAGE_OPENED = 24; + WS_ONBOARDING_AUTH_PAGE_OPENED = 25; + WS_ONBOARDING_AUTH_MANUAL_PAGE_OPENED = 26; + WS_ONBOARDING_CHOOSE_THEME_PAGE_OPENED = 35; + AGY_ONBOARDING_TERMS_OF_USE_PAGE_OPENED = 231; + AGY_ONBOARDING_AGENT_CONFIG_PAGE_OPENED = 232; + AGY_ONBOARDING_USAGE_MODE_PAGE_OPENED = 233; + AGY_ONBOARDING_INSTALL_EXTENSIONS = 234; + WS_ONBOARDING_COMPLETED = 27; + WS_SKIPPED_ONBOARDING = 69; + WS_SETTINGS_PAGE_OPEN = 72; + WS_SETTINGS_PAGE_OPEN_WITH_SETTING_FOCUS = 73; + EMPTY_WORKSPACE_PAGE_OPENED = 209; + EMPTY_WORKSPACE_PAGE_RECENT_FOLDERS_CLICKED = 210; + EMPTY_WORKSPACE_PAGE_OPEN_FOLDER_CLICKED = 211; + EMPTY_WORKSPACE_PAGE_GENERATE_PROJECT_CLICKED = 212; + PROVIDE_FEEDBACK = 33; + CASCADE_MESSAGE_SENT = 36; + WS_OPEN_CASCADE_MEMORIES_PANEL = 38; + PROVIDE_MESSAGE_FEEDBACK = 41; + CASCADE_MEMORY_DELETED = 42; + CASCADE_STEP_COMPLETED = 43; + ACKNOWLEDGE_CASCADE_CODE_EDIT = 44; + CASCADE_WEB_TOOLS_OPEN_READ_URL_MARKDOWN = 45; + CASCADE_WEB_TOOLS_OPEN_CHUNK_MARKDOWN = 46; + CASCADE_MCP_SERVER_INIT = 64; + CASCADE_KNOWLEDGE_BASE_ITEM_OPENED = 113; + CASCADE_VIEW_LOADED = 119; + CASCADE_CONTEXT_SCOPE_ITEM_ATTACHED = 173; + CASCADE_CLICK_EVENT = 65; + CASCADE_IMPRESSION_EVENT = 67; + OPEN_CHANGELOG = 37; + CURSOR_DETECTED = 39; + VSCODE_DETECTED = 40; + JETBRAINS_DETECTED = 153; + CROSS_SELL_EXTENSION_DOWNLOAD_ANTIGRAVITY_CLICK = 47; + CROSS_SELL_EXTENSION_DOWNLOAD_ANTIGRAVITY_NUDGE_IMPRESSION = 48; + WS_PROBLEMS_TAB_SEND_ALL_TO_CASCADE = 49; + WS_PROBLEMS_TAB_SEND_ALL_IN_FILE_TO_CASCADE = 50; + WS_CASCADE_BAR_FILE_NAV = 51; + WS_CASCADE_BAR_HUNK_NAV = 52; + WS_CASCADE_BAR_ACCEPT_FILE = 53; + WS_CASCADE_BAR_REJECT_FILE = 54; + WS_CUSTOM_APP_ICON_MODAL_OPEN = 55; + WS_CUSTOM_APP_ICON_SELECT_CLASSIC = 56; + WS_CUSTOM_APP_ICON_SELECT_CLASSIC_LIGHT = 57; + WS_CUSTOM_APP_ICON_SELECT_RETRO = 58; + WS_CUSTOM_APP_ICON_SELECT_BLUEPRINT = 59; + WS_CUSTOM_APP_ICON_SELECT_HAND_DRAWN = 60; + WS_CUSTOM_APP_ICON_SELECT_SUNSET = 61; + WS_CUSTOM_APP_ICON_SELECT_VALENTINE = 66; + WS_CUSTOM_APP_ICON_SELECT_PIXEL_SURF = 82; + ENTERED_MCP_TOOLBAR_TAB = 63; + CLICKED_TO_CONFIGURE_MCP = 62; + WS_SETTINGS_UPDATED = 68; + BROWSER_PREVIEW_DOM_ELEMENT = 70; + BROWSER_PREVIEW_CONSOLE_OUTPUT = 71; + WS_SETTINGS_CHANGED_BY_USER = 74; + WS_GENERATE_COMMIT_MESSAGE_CLICKED = 75; + WS_GENERATE_COMMIT_MESSAGE_ERRORED = 76; + WS_CLICKED_COMMIT_FROM_SCM_PANEL = 77; + WS_CANCELED_GENERATE_COMMIT_MESSAGE = 79; + USING_DEV_EXTENSION = 78; + WS_APP_DEPLOYMENT_CREATE_PROJECT = 80; + WS_APP_DEPLOYMENT_DEPLOY_PROJECT = 81; + CASCADE_OPEN_ACTIVE_CONVERSATION_DROPDOWN = 114; + CASCADE_SELECT_ACTIVE_CONVERSATION_ON_DROPDOWN = 115; + CASCADE_NAVIGATE_ACTIVE_CONVERSATION_ON_DROPDOWN = 122; + CASCADE_SNOOZE_CONVERSATION_ON_DROPDOWN = 123; + CASCADE_TOGGLE_NOTIFICATION_ON_DROPDOWN = 124; + CASCADE_SELECT_NOTIFICATION_ON_DROPDOWN = 125; + CASCADE_NAVIGATE_NOTIFICATION_ON_DROPDOWN = 126; + CASCADE_DISMISS_NOTIFICATION_ON_DROPDOWN = 127; + CASCADE_TRAJECTORY_SHARE_COPY_LINK = 137; + CASCADE_TRAJECTORY_SHARE_CREATE_LINK = 138; + CASCADE_CUSTOMIZATIONS_TAB_CHANGE = 139; + CASCADE_WORKFLOW_OPEN = 140; + CASCADE_NEW_WORKFLOW_CLICKED = 141; + CASCADE_NEW_GLOBAL_WORKFLOW_CLICKED = 184; + CASCADE_WORKFLOW_REFRESH_CLICKED = 142; + CASCADE_RULE_OPEN = 143; + CASCADE_NEW_RULE_CLICKED = 144; + CASCADE_NEW_GLOBAL_RULE_CLICKED = 145; + CASCADE_RULE_REFRESH_CLICKED = 146; + CASCADE_IMPORT_RULES_FROM_CURSOR_CLICKED = 147; + WS_IMPORT_CURSOR_RULES_COMMAND_PALETTE = 152; + CASCADE_CHANGES_ACCEPT_ALL = 83; + CASCADE_CHANGES_REJECT_ALL = 84; + CASCADE_MEMORIES_EDIT = 85; + CASCADE_MEMORIES_VIEW = 86; + KEYBOARD_SHORTCUT = 136; + CASCADE_INSERT_AT_MENTION = 87; + CASCADE_ERROR_STEP = 120; + CASCADE_SUGGESTED_RESPONSES_SUGGESTION_CLICKED = 121; + CASCADE_PLUGIN_PANEL_OPENED = 128; + CASCADE_PLUGIN_PAGE_OPENED = 129; + CASCADE_PLUGIN_INSTALLED = 130; + CASCADE_PLUGIN_DISABLED = 131; + CASCADE_PLUGIN_ENABLED = 132; + CASCADE_PLUGIN_INSTALLATION_ERROR = 133; + CASCADE_PLUGIN_TOOL_ENABLED = 134; + CASCADE_PLUGIN_TOOL_DISABLED = 135; + CASCADE_CUSTOM_MODEL_EVENT = 229; + WEBSITE_NOT_FOUND_PAGE = 88; + WEBSITE_AUTH_REDIRECT_LONG_WAIT = 89; + WEBSITE_AUTH_REDIRECT_ERROR = 90; + WEBSITE_AUTH_REDIRECT_SUCCESS = 112; + WEBSITE_PAGE_VISIT = 175; + WEBSITE_SIGNUP_INFO = 176; + WEBSITE_START_PLAN_CHECKOUT = 177; + WEBSITE_START_UPDATE_PAYMENT = 202; + WEBSITE_START_VIEW_INVOICES = 203; + WEBSITE_UNIVERSITY_LECTURE_VIEW = 214; + WEBSITE_DISALLOW_ENTERPRISE_LOGIN = 224; + WEBSITE_SSO_LOGIN_REDIRECT = 225; + WEBSITE_ATTEMPT_TO_LOGIN = 226; + WEBSITE_SUCCESSFUL_LOGIN = 227; + WEBSITE_FAILED_LOGIN = 228; + JB_OPEN_PLAN_INFO = 91; + JB_SNOOZE_PLUGIN = 92; + JB_TOGGLE_PLUGIN_STATUS = 93; + JB_SWITCH_CHANNEL = 94; + JB_OPEN_SETTINGS = 95; + JB_PLUGIN_LOG_IN = 96; + JB_PLUGIN_LOG_OUT = 97; + JB_OPEN_QUICK_REFERENCE = 98; + JB_EDIT_KEYBOARD_SHORTCUTS = 99; + JB_CASCADE_BAR_CASCADE_ICON = 100; + JB_CASCADE_BAR_FILE_NAV = 101; + JB_CASCADE_BAR_HUNK_NAV = 102; + JB_CASCADE_BAR_ACCEPT_FILE = 103; + JB_CASCADE_BAR_REJECT_FILE = 104; + JB_INLAY_HUNK_ACCEPT = 105; + JB_INLAY_HUNK_REJECT = 106; + JB_DIFF_RE_RENDER = 107; + JB_ONBOARDING_OPENED = 108; + JB_ONBOARDING_COMPLETED = 109; + JB_ONBOARDING_SKIPPED = 110; + JB_ONBOARDING_LEARN_MORE = 111; + JB_DIFF_RESOLUTION_ERRORED = 116; + JB_ACKNOWLEDGE_CODE_EDIT_ERRORED = 117; + JB_OPEN_SETTINGS_NOTIFICATION = 118; + JB_MCP_ADD_SERVER = 148; + JB_MCP_SAVE_CONFIG = 149; + JB_MCP_EXPAND_TOOLS = 150; + JB_DISABLE_AUTOGEN_MEMORY = 151; + JB_TOGGLE_AUTOCOMPLETE = 154; + JB_LOGIN_MANUAL_AUTH_TOKEN = 174; + JB_AUTO_UPDATED = 179; + JB_DRAG_DROP_FILE = 182; + JB_AUTO_OPEN_CHAT_WINDOW = 183; + WS_TERMINAL_INTEGRATION_FORCE_EXIT = 155; + KNOWLEDGE_BASE_ITEM_CREATED = 156; + KNOWLEDGE_BASE_ITEM_EDITED = 157; + KNOWLEDGE_BASE_ITEM_DELETED = 158; + KNOWLEDGE_BASE_ITEM_READ = 159; + KNOWLEDGE_BASE_CONNECTION_CREATE = 160; + KNOWLEDGE_BASE_CONNECTION_REMOVE = 161; + TEAM_CONFIG_TOGGLE_AUTO_RUN_COMMANDS = 162; + TEAM_CONFIG_TOGGLE_MCP_SERVERS = 163; + TEAM_CONFIG_TOGGLE_APP_DEPLOYMENTS = 164; + TEAM_CONFIG_TOGGLE_SANDBOX_APP_DEPLOYMENTS = 165; + TEAM_CONFIG_TOGGLE_TEAMS_APP_DEPLOYMENTS = 166; + TEAM_CONFIG_TOGGLE_GITHUB_REVIEWS = 167; + TEAM_CONFIG_TOGGLE_GITHUB_DESCRIPTION_EDITS = 168; + TEAM_CONFIG_TOGGLE_PR_REVIEW_GUIDELINES = 169; + TEAM_CONFIG_TOGGLE_PR_DESCRIPTION_GUIDELINES = 170; + TEAM_CONFIG_TOGGLE_INDIVIDUAL_LEVEL_ANALYTICS = 171; + TEAM_CONFIG_TOGGLE_CONVERSATION_SHARING = 172; + TEAM_CONFIG_UPDATE_MCP_SERVERS = 178; + TEAM_CONFIG_TOGGLE_GITHUB_AUTO_REVIEWS = 207; + TEAM_CONFIG_UPDATE_TOP_UP_SETTINGS = 213; + BROWSER_OPEN = 180; + CASCADE_WEB_TOOLS_OPEN_BROWSER_MARKDOWN = 181; + BROWSER_PAGE_LOAD_SUCCESS = 206; + BROWSER_TOOLBAR_INSERT_PAGE_MENTION = 208; + BROWSER_INSERT_TEXT_CONTENT = 215; + BROWSER_INSERT_SCREENSHOT = 216; + BROWSER_INSERT_CODE_BLOCK = 217; + BROWSER_INSERT_LOG_BLOCK = 218; + BROWSER_INSERT_CONSOLE_OUTPUT = 219; + BROWSER_INSERT_DOM_ELEMENT = 220; + BROWSER_LAUNCH_FAILURE_DIAGNOSTICS = 230; + SUPERCOMPLETE_REQUEST_STARTED = 195; + SUPERCOMPLETE_CACHE_HIT = 196; + SUPERCOMPLETE_ERROR_GETTING_RESPONSE = 197; + SUPERCOMPLETE_NO_RESPONSE = 185; + SUPERCOMPLETE_REQUEST_SUCCEEDED = 186; + SUPERCOMPLETE_FILTERED = 187; + TAB_JUMP_REQUEST_STARTED = 188; + TAB_JUMP_CACHE_HIT = 189; + TAB_JUMP_ERROR_GETTING_RESPONSE = 190; + TAB_JUMP_NO_RESPONSE = 191; + TAB_JUMP_PROCESSING_COMPLETE = 192; + TAB_JUMP_FILTERED = 193; + TAB_JUMP_ERROR_UI_RENDERED = 194; + AUTOCOMPLETE_CHAT_NO_RESPONSE = 221; + AUTOCOMPLETE_CHAT_ERROR_GETTING_RESPONSE = 222; + AUTOCOMPLETE_CHAT_REQUEST_ACCEPTED = 223; +} + +enum IndexChoice { + INDEX_CHOICE_UNSPECIFIED = 0; + INDEX_CHOICE_GITHUB_BASE = 1; + INDEX_CHOICE_SLACK_BASE = 2; + INDEX_CHOICE_SLACK_AGGREGATE = 3; + INDEX_CHOICE_GOOGLE_DRIVE_BASE = 4; + INDEX_CHOICE_JIRA_BASE = 5; + INDEX_CHOICE_SCM = 6; +} + +enum MarkdownNodeType { + MARKDOWN_NODE_TYPE_UNSPECIFIED = 0; + MARKDOWN_NODE_TYPE_HEADER_1 = 1; + MARKDOWN_NODE_TYPE_HEADER_2 = 2; + MARKDOWN_NODE_TYPE_HEADER_3 = 3; + MARKDOWN_NODE_TYPE_HEADER_4 = 4; + MARKDOWN_NODE_TYPE_HEADER_5 = 5; + MARKDOWN_NODE_TYPE_HEADER_6 = 6; +} + +enum TerminalShellCommandSource { + TERMINAL_SHELL_COMMAND_SOURCE_UNSPECIFIED = 0; + TERMINAL_SHELL_COMMAND_SOURCE_USER = 1; + TERMINAL_SHELL_COMMAND_SOURCE_CASCADE = 2; +} + +enum TerminalShellCommandStatus { + TERMINAL_SHELL_COMMAND_STATUS_UNSPECIFIED = 0; + TERMINAL_SHELL_COMMAND_STATUS_RUNNING = 1; + TERMINAL_SHELL_COMMAND_STATUS_COMPLETED = 2; +} + +enum DeploymentBuildStatus { + DEPLOYMENT_BUILD_STATUS_UNSPECIFIED = 0; + DEPLOYMENT_BUILD_STATUS_QUEUED = 1; + DEPLOYMENT_BUILD_STATUS_INITIALIZING = 2; + DEPLOYMENT_BUILD_STATUS_BUILDING = 3; + DEPLOYMENT_BUILD_STATUS_ERROR = 4; + DEPLOYMENT_BUILD_STATUS_READY = 5; + DEPLOYMENT_BUILD_STATUS_CANCELED = 6; +} + +enum DeploymentProvider { + DEPLOYMENT_PROVIDER_UNSPECIFIED = 0; + DEPLOYMENT_PROVIDER_VERCEL = 1; + DEPLOYMENT_PROVIDER_NETLIFY = 2; + DEPLOYMENT_PROVIDER_CLOUDFLARE = 3; +} + +enum ValidationStatus { + VALIDATION_STATUS_UNSPECIFIED = 0; + VALIDATION_STATUS_AVAILABLE = 1; + VALIDATION_STATUS_IN_USE = 2; + VALIDATION_STATUS_TAKEN = 3; + VALIDATION_STATUS_INVALID = 4; +} + +enum PromptTemplaterType { + PROMPT_TEMPLATER_TYPE_UNSPECIFIED = 0; + PROMPT_TEMPLATER_TYPE_LLAMA_2 = 1; + PROMPT_TEMPLATER_TYPE_LLAMA_3 = 2; + PROMPT_TEMPLATER_TYPE_CHATML = 3; + PROMPT_TEMPLATER_TYPE_CHAT_TRANSCRIPT = 4; + PROMPT_TEMPLATER_TYPE_DEEPSEEK_V2 = 5; + PROMPT_TEMPLATER_TYPE_DEEPSEEK_V3 = 6; +} + +enum ToolFormatterType { + TOOL_FORMATTER_TYPE_UNSPECIFIED = 0; + TOOL_FORMATTER_TYPE_LLAMA_3 = 1; + TOOL_FORMATTER_TYPE_HERMES = 2; + TOOL_FORMATTER_TYPE_XML = 3; + TOOL_FORMATTER_TYPE_CHAT_TRANSCRIPT = 4; + TOOL_FORMATTER_TYPE_NONE = 5; +} + +enum BrowserInstallationStatus { + BROWSER_INSTALLATION_STATUS_UNSPECIFIED = 0; + BROWSER_INSTALLATION_STATUS_NOT_INSTALLED = 1; + BROWSER_INSTALLATION_STATUS_IN_PROGRESS = 2; + BROWSER_INSTALLATION_STATUS_COMPLETE = 3; + BROWSER_INSTALLATION_STATUS_ERROR = 4; +} + +enum BetterDirection { + BETTER_DIRECTION_UNSPECIFIED = 0; + BETTER_DIRECTION_LOWER = 1; + BETTER_DIRECTION_HIGHER = 2; +} + +enum MetricsScope { + METRICS_SCOPE_UNSPECIFIED = 0; + METRICS_SCOPE_EXECUTION_SEGMENT = 1; + METRICS_SCOPE_TRAJECTORY = 2; +} + +enum TrajectoryType { + TRAJECTORY_TYPE_UNSPECIFIED = 0; + TRAJECTORY_TYPE_CASCADE = 1; + TRAJECTORY_TYPE_MAINLINE_TRAJECTORY = 2; +} + +enum RefreshCustomizationType { + REFRESH_CUSTOMIZATION_TYPE_UNSPECIFIED = 0; + REFRESH_CUSTOMIZATION_TYPE_RULE = 1; + REFRESH_CUSTOMIZATION_TYPE_WORKFLOW = 2; + REFRESH_CUSTOMIZATION_TYPE_SKILL = 3; + REFRESH_CUSTOMIZATION_TYPE_AGENT = 4; + REFRESH_CUSTOMIZATION_TYPE_PLUGIN = 5; + REFRESH_CUSTOMIZATION_TYPE_HOOKS = 6; +} + +enum ThirdPartyWebSearchProvider { + THIRD_PARTY_WEB_SEARCH_PROVIDER_UNSPECIFIED = 0; + THIRD_PARTY_WEB_SEARCH_PROVIDER_GEMINI = 2; +} + +enum ThirdPartyWebSearchModel { + THIRD_PARTY_WEB_SEARCH_MODEL_UNSPECIFIED = 0; + THIRD_PARTY_WEB_SEARCH_MODEL_O3 = 1; + THIRD_PARTY_WEB_SEARCH_MODEL_GPT_4_1 = 2; + THIRD_PARTY_WEB_SEARCH_MODEL_O4_MINI = 3; +} + +enum WorkingDirectoryStatus { + WORKING_DIRECTORY_STATUS_UNSPECIFIED = 0; + WORKING_DIRECTORY_STATUS_READY = 1; + WORKING_DIRECTORY_STATUS_LOADING = 2; + WORKING_DIRECTORY_STATUS_ERROR = 3; +} + +enum ArtifactApprovalStatus { + ARTIFACT_APPROVAL_STATUS_UNSPECIFIED = 0; + ARTIFACT_APPROVAL_STATUS_APPROVED = 1; + ARTIFACT_APPROVAL_STATUS_REQUESTED_CHANGES = 2; +} + +enum ArtifactType { + ARTIFACT_TYPE_UNSPECIFIED = 0; + ARTIFACT_TYPE_IMPLEMENTATION_PLAN = 1; + ARTIFACT_TYPE_WALKTHROUGH = 2; + ARTIFACT_TYPE_TASK = 3; + ARTIFACT_TYPE_OTHER = 4; +} + +enum BrowserJsAutoRunPolicy { + BROWSER_JS_AUTO_RUN_POLICY_UNSPECIFIED = 0; + BROWSER_JS_AUTO_RUN_POLICY_DISABLED = 1; + BROWSER_JS_AUTO_RUN_POLICY_MODEL_DECIDES = 2; + BROWSER_JS_AUTO_RUN_POLICY_ENABLED = 3; +} + +message CompletionsRequest { + exa.codeium_common_pb.CompletionConfiguration configuration = 1; + string prompt = 2; + string serialized_prompt = 26; + string context_prompt = 21; + string uid = 25; + repeated exa.codeium_common_pb.PromptElementRange prompt_element_ranges = 8; + repeated exa.codeium_common_pb.PromptElementKindInfo prompt_element_kind_infos = 9; + uint64 prompt_latency_ms = 11; + repeated exa.codeium_common_pb.PromptStageLatency prompt_stage_latencies = 12; + uint64 num_tokenized_bytes = 20; + string editor_language = 3; + exa.codeium_common_pb.Language language = 4; + string absolute_path_uri_for_telemetry = 5; + string relative_path_for_telemetry = 6; + string workspace_uri_for_telemetry = 13; + string experiment_features_json = 7; + string experiment_variant_json = 19; + exa.codeium_common_pb.Model model = 10; + bool has_line_suffix = 14; + bool should_inline_fim = 15; + exa.codeium_common_pb.Repository repository = 16; + string model_tag = 17; + repeated string experiment_tags = 18; + string eval_suffix = 22; + repeated exa.codeium_common_pb.PromptAnnotationRange prompt_annotation_ranges = 23; + bool supports_packed_streaming_completion_maps = 24; +} + +message CompletionConfiguration { + uint64 num_completions = 1; + uint64 max_tokens = 2; + uint64 max_newlines = 3; + double min_log_probability = 4; + double temperature = 5; + double first_temperature = 6; + uint64 top_k = 7; + double top_p = 8; + repeated string stop_patterns = 9; + uint64 seed = 10; + double fim_eot_prob_threshold = 11; + bool use_fim_eot_threshold = 12; + bool do_not_score_stop_tokens = 13; + bool sqrt_len_normalized_log_prob_score = 14; + bool last_message_is_partial = 15; + bool return_logprob = 16; + bool disable_parallel_tool_calls = 17; +} + +message PromptElementRange { + exa.codeium_common_pb.PromptElementKind kind = 1; + uint64 byte_offset_start = 2; + uint64 byte_offset_end = 3; + uint64 token_offset_start = 4; + uint64 token_offset_end = 5; +} + +message ActionPointer { + string cortex_plan_id = 1; + string code_plan_id = 2; + int32 action_index = 3; +} + +message PromptAnnotationRange { + exa.codeium_common_pb.PromptAnnotationKind kind = 1; + uint64 byte_offset_start = 2; + uint64 byte_offset_end = 3; + string suffix = 4; +} + +message ExperimentWithVariant { + exa.codeium_common_pb.ExperimentKey key = 1; + string key_string = 5; + bool disabled = 6; + oneof payload { + string string = 2; + string json = 3; + string csv = 4; + } + exa.codeium_common_pb.ExperimentSource source = 7; +} + +message ExperimentConfig { + repeated exa.codeium_common_pb.ExperimentWithVariant experiments = 6; + repeated exa.codeium_common_pb.ExperimentKey force_enable_experiments = 1; + repeated exa.codeium_common_pb.ExperimentKey force_disable_experiments = 2; + repeated exa.codeium_common_pb.ExperimentWithVariant force_enable_experiments_with_variants = 3; + repeated string force_enable_experiment_strings = 4; + repeated string force_disable_experiment_strings = 5; + bool dev_mode = 7; +} + +message ExperimentLanguageServerVersionPayload { + string sha = 1; + string crc32c_linux_x64 = 2; + string crc32c_linux_arm = 3; + string crc32c_macos_x64 = 4; + string crc32c_macos_arm = 5; + string crc32c_windows_x64 = 6; +} + +message ExperimentModelConfigPayload { + string model_name = 1; + string context_check_model_name = 2; +} + +message ExperimentMiddleModeTokenPayload { + string mode_token = 1; +} + +message ExperimentMultilineModelThresholdPayload { + float threshold = 1; +} + +message ExperimentSentryPayload { + double sample_rate = 2; + map procedure_to_sample_rate = 3; + map error_match_to_sample_rate = 5; +} + +message TeamOrganizationalControls { + string team_id = 1; + repeated string cascade_model_labels = 2; + repeated string command_model_labels = 3; + google.protobuf.Timestamp created_at = 4; + google.protobuf.Timestamp updated_at = 5; + repeated string extension_model_labels = 6; +} + +message ExperimentProfilingTelemetrySampleRatePayload { + map memory_usage_to_sample_rate = 1; +} + +message ModelOrAlias { + oneof choice { + exa.codeium_common_pb.Model model = 1; + exa.codeium_common_pb.ModelAlias alias = 2; + } +} + +message PromptElementKindInfo { + exa.codeium_common_pb.PromptElementKind kind = 1; + exa.codeium_common_pb.ExperimentKey experiment_key = 2; + bool enabled = 3; + uint64 num_considered = 4; + uint64 num_included = 5; +} + +message PromptElementInclusionMetadata { + bool included = 1; + exa.codeium_common_pb.PromptElementExclusionReason exclusion_reason = 2; +} + +message PromptStageLatency { + string name = 1; + uint64 latency_ms = 2; +} + +message CompletionResponse { + repeated exa.codeium_common_pb.Completion completions = 1; + uint64 max_tokens = 2; + double temperature = 3; + uint64 top_k = 4; + double top_p = 5; + repeated string stop_patterns = 6; + uint64 prompt_length = 7; + string prompt_id = 8; + string model_tag = 10; + optional exa.codeium_common_pb.CompletionProfile completion_profile = 11; +} + +message Completion { + string completion_id = 1; + string text = 2; + string stop = 4; + double score = 5; + repeated uint64 tokens = 6; + repeated string decoded_tokens = 7; + repeated double probabilities = 8; + repeated double adjusted_probabilities = 9; + repeated double logprobs = 16; + uint64 generated_length = 10; + exa.codeium_common_pb.StopReason stop_reason = 12; + repeated exa.codeium_common_pb.FilterReason filter_reasons = 13; + string original_text = 14; + repeated exa.codeium_common_pb.ChatToolCall tool_calls = 15; + string trace_id = 17; +} + +message StreamingCompletionInfo { + repeated string completion_ids = 1; + uint64 max_tokens = 2; + double temperature = 3; + uint64 top_k = 4; + double top_p = 5; + repeated string stop_patterns = 6; + uint64 prompt_length = 7; + string prompt_id = 9; + string model_tag = 8; + exa.codeium_common_pb.CompletionsRequest completions_request = 10; + exa.codeium_common_pb.StreamingEvalSuffixInfo eval_suffix_info = 11; +} + +message SingleModelCompletionProfile { + double total_prefill_pass_time = 1; + double avg_prefill_pass_time = 2; + uint64 num_prefill_passes = 3; + double total_spec_copy_pass_time = 7; + double avg_spec_copy_pass_time = 8; + uint64 num_spec_copy_passes = 9; + double total_generation_pass_time = 4; + double avg_generation_pass_time = 5; + uint64 num_generation_passes = 6; + double total_model_time = 10; +} + +message CompletionProfile { + exa.codeium_common_pb.SingleModelCompletionProfile model_profile = 1; + optional exa.codeium_common_pb.SingleModelCompletionProfile draft_model_profile = 2; + double time_to_first_prefill_pass = 3; + double time_to_first_token = 4; + double total_completion_time = 5; + optional exa.codeium_common_pb.ModelUsageStats model_usage = 6; +} + +message StreamingCompletion { + bytes decoded_token = 1; + uint64 token = 2; + double probability = 3; + double adjusted_probability = 4; + double logprob = 9; + bool completion_finished = 5; + string stop = 6; + exa.codeium_common_pb.StopReason stop_reason = 7; + map attribution_statuses = 8; +} + +message StreamingCompletionMap { + map completions = 1; +} + +message PackedStreamingCompletionMaps { + repeated exa.codeium_common_pb.StreamingCompletionMap completion_maps = 1; +} + +message StreamingEvalSuffixInfo { + repeated float per_token_log_likelihoods = 1; + bool is_greedy = 2; +} + +message StreamingCompletionResponse { + oneof payload { + exa.codeium_common_pb.StreamingCompletionInfo completion_info = 1; + exa.codeium_common_pb.StreamingCompletionMap completion_map = 2; + exa.codeium_common_pb.PackedStreamingCompletionMaps packed_completion_maps = 4; + } + optional exa.codeium_common_pb.CompletionProfile completion_profile = 5; +} + +message CompletionLatencyInfo { + uint64 api_server_latency_ms = 1; + uint64 language_server_latency_ms = 2; + uint64 network_latency_ms = 3; + uint64 api_server_first_byte_latency_ms = 4; + uint64 language_server_first_byte_latency_ms = 5; + uint64 network_first_byte_latency_ms = 6; + uint64 api_server_first_line_latency_ms = 7; + uint64 language_server_first_line_latency_ms = 8; + uint64 network_first_line_latency_ms = 9; +} + +message CompletionWithLatencyInfo { + exa.codeium_common_pb.Completion completion = 1; + exa.codeium_common_pb.CompletionLatencyInfo latency_info = 2; +} + +message EmbeddingsRequest { + repeated string prompts = 1; + exa.codeium_common_pb.EmbeddingPriority priority = 2; + exa.codeium_common_pb.EmbeddingPrefix prefix = 3; + exa.codeium_common_pb.Model model = 4; +} + +message Embedding { + repeated float values = 1; +} + +message EmbeddingResponse { + repeated exa.codeium_common_pb.Embedding embeddings = 1; + bool prompts_exceeded_context_length = 2; +} + +message RewardsRequest { + string prefix = 2; + repeated string items = 3; + bool has_instruct_tokens = 4; +} + +message RewardsResponse { + repeated float values = 1; + bool prompts_exceeded_context_length = 2; +} + +message Metadata { + string ide_name = 1; + string ide_version = 7; + string extension_name = 12; + string extension_version = 2; + string extension_path = 17; + string locale = 4; + string os = 5; + string hardware = 8; + string session_id = 10; + string device_fingerprint = 24; + string user_tier_id = 29; + google.protobuf.Timestamp ls_timestamp = 16; + string trigger_id = 25; + string id = 27; + string api_key = 3; + bool disable_telemetry = 6; + repeated string user_tags = 18; + string region_code = 30; +} + +message EditorOptions { + uint64 tab_size = 1; + bool insert_spaces = 2; + bool disable_autocomplete_in_comments = 3; +} + +message ErrorTrace { + string error_id = 1; + int64 timestamp_unix_ms = 2; + string stacktrace = 3; + bool recovered = 4; + string full_stderr = 5; + string ide_name = 6; + string ide_version = 7; + string os = 8; + bool is_dev = 9; +} + +message Event { + exa.codeium_common_pb.EventType event_type = 1; + string event_json = 2; + int64 timestamp_unix_ms = 3; +} + +message Citation { + int32 start_index = 1; + int32 end_index = 2; + string uri = 3; + string title = 4; + string license = 5; +} + +message CitationMetadata { + repeated exa.codeium_common_pb.Citation citations = 1; +} + +message Recitation { + exa.codeium_common_pb.Citation citation = 1; + string content = 2; +} + +message RecitationMetadata { + repeated exa.codeium_common_pb.Recitation recitations = 1; +} + +message SearchResultRecord { + string search_id = 1; + string result_id = 2; + string absolute_path = 3; + repeated exa.codeium_common_pb.WorkspacePath workspace_paths = 4; + string text = 5; + exa.codeium_common_pb.EmbeddingMetadata embedding_metadata = 6; + float similarity_score = 7; + int64 num_results_in_cluster = 8; + string representative_path = 9; + float mean_similarity_score = 10; + exa.codeium_common_pb.SearchResultType search_result_type = 11; +} + +message WorkspacePath { + string workspace_migrate_me_to_uri = 1; + string workspace_uri = 3; + string relative_path = 2; +} + +message EmbeddingMetadata { + string node_name = 1; + uint32 start_line = 2; + uint32 end_line = 3; + exa.codeium_common_pb.EmbedType embed_type = 4; +} + +message MockResponseData { + repeated exa.codeium_common_pb.Completion completions = 1; +} + +message WorkspaceIndexData { + string workspace_uri_for_telemetry = 1; + google.protobuf.Timestamp indexing_start = 2; + google.protobuf.Timestamp indexing_end = 3; + google.protobuf.Duration embedding_duration = 4; + int64 num_files_total = 5; + int64 num_files_to_embed = 6; + int64 num_nodes_total = 7; + int64 num_nodes_to_embed = 8; + int64 num_tokens = 9; + int64 num_high_priority_nodes_to_embed = 10; + string error = 11; +} + +message WorkspaceStats { + string workspace = 3; + map num_files = 1; + map num_bytes = 2; + bool initial_scan_completed = 4; +} + +message PartialIndexMetadata { + uint32 num_total_files = 1; + uint32 num_indexed_files = 2; + google.protobuf.Timestamp cutoff_timestamp = 3; +} + +message FunctionInfo { + string raw_source = 1; + string clean_function = 2; + string docstring = 3; + string node_name = 4; + string params = 5; + int32 definition_line = 6; + int32 start_line = 7; + int32 end_line = 8; + int32 start_col = 9; + int32 end_col = 10; + string leading_whitespace = 11; + exa.codeium_common_pb.Language language = 12; + int32 body_start_line = 13; + int32 body_start_col = 14; +} + +message ClassInfo { + string raw_source = 1; + int32 start_line = 2; + int32 end_line = 3; + int32 start_col = 4; + int32 end_col = 5; + string leading_whitespace = 6; + repeated string fields_and_constructors = 7; + string docstring = 8; + string node_name = 9; + repeated exa.codeium_common_pb.FunctionInfo methods = 10; + repeated string node_lineage = 11; + bool is_exported = 12; + exa.codeium_common_pb.Language language = 13; + int32 definition_line = 14; +} + +message TeamsFeaturesMetadata { + bool is_active = 1; + string stripe_subscription_id = 2; + bool has_access = 3; +} + +message QuotaInfo { + float remaining_fraction = 1; + google.protobuf.Timestamp reset_time = 2; +} + +message ClientModelConfig { + string label = 1; + exa.codeium_common_pb.ModelOrAlias model_or_alias = 2; + float credit_multiplier = 3; + exa.codeium_common_pb.ModelPricingType pricing_type = 13; + bool disabled = 4; + bool supports_images = 5; + bool supports_legacy = 6; + bool is_premium = 7; + string beta_warning_message = 8; + bool is_beta = 9; + exa.codeium_common_pb.ModelProvider provider = 10; + bool is_recommended = 11; + repeated exa.codeium_common_pb.TeamsTier allowed_tiers = 12; + string description = 14; + exa.codeium_common_pb.QuotaInfo quota_info = 15; + string tag_title = 16; + string tag_description = 17; + map supported_mime_types = 18; +} + +message DefaultOverrideModelConfig { + exa.codeium_common_pb.ModelOrAlias model_or_alias = 1; + string version_id = 2; +} + +message ClientModelSort { + string name = 1; + repeated exa.codeium_common_pb.ClientModelGroup groups = 2; +} + +message ClientModelGroup { + string group_name = 1; + repeated string model_labels = 2; +} + +message CascadeModelConfigData { + repeated exa.codeium_common_pb.ClientModelConfig client_model_configs = 1; + repeated exa.codeium_common_pb.ClientModelSort client_model_sorts = 2; + optional exa.codeium_common_pb.DefaultOverrideModelConfig default_override_model_config = 3; +} + +message AllowedModelConfig { + exa.codeium_common_pb.ModelOrAlias model_or_alias = 1; + float credit_multiplier = 2; +} + +message PlanInfo { + exa.codeium_common_pb.TeamsTier teams_tier = 1; + string plan_name = 2; + bool has_autocomplete_fast_mode = 3; + bool allow_sticky_premium_models = 4; + bool has_forge_access = 5; + bool disable_code_snippet_telemetry = 11; + bool allow_premium_command_models = 15; + bool has_tab_to_jump = 23; + int64 max_num_premium_chat_messages = 6; + int64 max_num_chat_input_tokens = 7; + int64 max_custom_chat_instruction_characters = 8; + int64 max_num_pinned_context_items = 9; + int64 max_local_index_size = 10; + int32 max_unclaimed_sites = 26; + int32 monthly_prompt_credits = 12; + int32 monthly_flow_credits = 13; + int32 monthly_flex_credit_purchase_amount = 14; + bool is_teams = 17; + bool is_enterprise = 16; + bool can_buy_more_credits = 18; + bool cascade_web_search_enabled = 19; + bool can_customize_app_icon = 20; + bool cascade_can_auto_run_commands = 22; + bool can_generate_commit_messages = 25; + bool knowledge_base_enabled = 27; + repeated exa.codeium_common_pb.AllowedModelConfig cascade_allowed_models_config = 21; + exa.codeium_common_pb.TeamConfig default_team_config = 24; + bool can_share_conversations = 28; + bool can_allow_cascade_in_background = 29; + map default_team_features = 30; + bool browser_enabled = 31; +} + +message TopUpStatus { + exa.codeium_common_pb.TransactionStatus top_up_transaction_status = 1; + bool top_up_enabled = 2; + int32 monthly_top_up_amount = 3; + int32 top_up_spent = 4; + int32 top_up_increment = 5; + bool top_up_criteria_met = 6; +} + +message PlanStatus { + exa.codeium_common_pb.PlanInfo plan_info = 1; + google.protobuf.Timestamp plan_start = 2; + google.protobuf.Timestamp plan_end = 3; + int32 available_prompt_credits = 8; + int32 available_flow_credits = 9; + int32 available_flex_credits = 4; + int32 used_flex_credits = 7; + int32 used_flow_credits = 5; + int32 used_prompt_credits = 6; + exa.codeium_common_pb.TopUpStatus top_up_status = 10; +} + +message UserStatus { + bool pro = 1; + bool disable_telemetry = 2; + string name = 3; + bool ignore_chat_telemetry_setting = 4; + string team_id = 5; + exa.codeium_common_pb.UserTeamStatus team_status = 6; + string email = 7; + repeated exa.codeium_common_pb.UserFeatures user_features = 9; + repeated exa.codeium_common_pb.TeamsFeatures teams_features = 8; + repeated exa.codeium_common_pb.Permission permissions = 11; + exa.codeium_common_pb.PlanInfo plan_info = 12; + exa.codeium_common_pb.PlanStatus plan_status = 13; + bool has_used_antigravity = 31; + int64 user_used_prompt_credits = 28; + int64 user_used_flow_credits = 29; + bool has_fingerprint_set = 30; + exa.codeium_common_pb.TeamConfig team_config = 32; + exa.codeium_common_pb.CascadeModelConfigData cascade_model_config_data = 33; + bool accepted_latest_terms_of_service = 34; + string g1_tier = 35; + google.internal.cloud.code.v1internal.UserTier user_tier = 36; + bool user_data_collection_force_disabled = 37; + string profile_picture_url = 38; +} + +message ScmWorkspaceInfo { + oneof info { + exa.codeium_common_pb.PerforceDepotInfo perforce_info = 1; + exa.codeium_common_pb.GitRepoInfo git_info = 2; + } +} + +message PerforceDepotInfo { + string depot_name = 1; + string version_alias = 2; + string base_p4d_url = 3; +} + +message GitRepoInfo { + string name = 1; + string owner = 2; + string repo_name = 5; + string commit = 3; + string version_alias = 4; + exa.codeium_common_pb.ScmProvider scm_provider = 6; + string base_git_url = 7; +} + +message CodeContextItem { + string absolute_path_migrate_me_to_uri = 1; + string absolute_uri = 16; + repeated exa.codeium_common_pb.WorkspacePath workspace_paths = 2; + string node_name = 3; + repeated string node_lineage = 4; + uint32 start_line = 5; + uint32 start_col = 12; + uint32 end_line = 6; + uint32 end_col = 13; + exa.codeium_common_pb.CodeContextType context_type = 7; + exa.codeium_common_pb.Language language = 10; + map snippet_by_type = 11; + exa.codeium_common_pb.GitRepoInfo repo_info = 14; + bytes file_content_hash = 15; +} + +message SnippetWithWordCount { + string snippet = 1; + map word_count_by_splitter = 2; +} + +message WordCount { + map word_count_map = 1; +} + +message Repository { + string computed_name = 1; + string git_origin_url = 2; + string git_upstream_url = 3; + string reported_name = 4; + string model_name = 5; + string submodule_url = 6; + string submodule_path = 7; +} + +message CaptureFileRequestData { + exa.codeium_common_pb.Metadata metadata = 1; + string prompt_id = 2; + string file_path = 3; + string original_file_content = 4; + string completion_text = 5; + uint64 start_offset = 6; + uint64 end_offset = 7; + uint64 cursor_line = 8; + uint64 cursor_column = 9; +} + +message CompletionStatistics { + uint32 num_acceptances = 1; + uint32 num_rejections = 2; + uint32 num_lines_accepted = 3; + uint32 num_bytes_accepted = 4; + uint32 num_users = 5; + uint32 active_developer_days = 6; + uint32 active_developer_hours = 7; +} + +message CompletionByDateEntry { + google.protobuf.Timestamp timestamp = 1; + exa.codeium_common_pb.CompletionStatistics completion_statistics = 2; +} + +message CompletionByLanguageEntry { + exa.codeium_common_pb.Language language = 1; + exa.codeium_common_pb.CompletionStatistics completion_statistics = 2; +} + +message ChatStats { + uint64 chats_sent = 1; + uint64 chats_received = 2; + uint64 chats_accepted = 3; + uint64 chats_inserted_at_cursor = 4; + uint64 chats_applied = 5; + uint64 chat_loc_used = 6; + uint64 chat_code_blocks_used = 7; + uint64 function_explain_count = 8; + uint64 function_docstring_count = 9; + uint64 function_refactor_count = 10; + uint64 code_block_explain_count = 11; + uint64 code_block_refactor_count = 12; + uint64 problem_explain_count = 13; + uint64 function_unit_tests_count = 14; + uint32 active_developer_days = 15; +} + +message ChatStatsByDateEntry { + google.protobuf.Timestamp timestamp = 1; + exa.codeium_common_pb.ChatStats chat_stats = 2; +} + +message ChatStatsByModelEntry { + exa.codeium_common_pb.Model model_id = 1; + exa.codeium_common_pb.ChatStats chat_stats = 2; +} + +message CommandStats { + uint64 num_commands = 1; + uint64 num_commands_accepted = 2; + uint64 num_commands_rejected = 3; + uint64 num_edits = 4; + uint64 num_generations = 5; + uint64 loc_added = 6; + uint64 loc_removed = 7; + uint64 bytes_added = 8; + uint64 bytes_removed = 9; + uint64 loc_selected = 10; + uint64 bytes_selected = 11; + map num_commands_by_source = 12; +} + +message CommandStatsByDateEntry { + google.protobuf.Timestamp timestamp = 1; + exa.codeium_common_pb.CommandStats command_stats = 2; +} + +message UserTableStats { + string name = 1; + string email = 2; + google.protobuf.Timestamp last_update_time = 3; + string api_key = 4; + bool disable_codeium = 5; + uint32 active_days = 6; + string role = 7; + google.protobuf.Timestamp signup_time = 8; + google.protobuf.Timestamp last_autocomplete_usage_time = 9; + google.protobuf.Timestamp last_chat_usage_time = 10; + google.protobuf.Timestamp last_command_usage_time = 11; + int64 prompt_credits_used = 12; +} + +message CascadeNUXState { + exa.codeium_common_pb.CascadeNUXEvent event = 1; + google.protobuf.Timestamp timestamp = 2; +} + +message UserNUXState { + exa.codeium_common_pb.UserNUXEvent event = 1; + google.protobuf.Timestamp timestamp = 2; +} + +message ConversationBrainConfig { + exa.codeium_common_pb.PlanMode plan_mode = 1; +} + +message FeatureUsageData { + bool has_used = 1; +} + +message CascadeNUXConfig { + uint32 uid = 1; + exa.codeium_common_pb.CascadeNUXLocation location = 2; + exa.codeium_common_pb.CascadeNUXTrigger trigger = 3; + string analytics_event_name = 4; + string learn_more_url = 7; + int32 priority = 8; + exa.codeium_common_pb.CascadeNUXIcon icon = 10; + bool requires_idle_cascade = 11; + string title = 12; + optional string body = 13; + optional string image_url = 14; + optional string video_url = 15; +} + +message UserSettings { + bool open_most_recent_chat_conversation = 1; + exa.codeium_common_pb.Model last_selected_model = 2; + exa.codeium_common_pb.ThemePreference theme_preference = 3; + exa.codeium_common_pb.RememberLastModelSelection remember_last_model_selection = 7; + exa.codeium_common_pb.AutocompleteSpeed autocomplete_speed = 6; + string last_selected_model_name = 8; + optional exa.codeium_common_pb.Model last_selected_cascade_model = 9; + optional exa.codeium_common_pb.ModelOrAlias last_selected_cascade_model_or_alias = 30; + optional exa.codeium_common_pb.ConversationalPlannerMode cascade_planner_mode = 13; + optional exa.codeium_common_pb.Model last_model_override = 46; + optional string last_model_default_override_version_id = 58; + repeated string cascade_allowed_commands = 14; + repeated string cascade_denied_commands = 15; + bool cascade_web_search_disabled = 18; + exa.codeium_common_pb.TabEnabled tab_enabled = 67; + bool disable_selection_popup = 21; + bool disable_explain_problem_inlay_hint = 22; + bool disable_inlay_hint_shortcuts = 23; + bool disable_open_cascade_on_reload = 24; + bool disable_auto_open_edited_files = 25; + bool disable_tab_to_jump = 26; + exa.codeium_common_pb.CascadeCommandsAutoExecution cascade_auto_execution_policy = 27; + optional string last_selected_cascade_id = 28; + bool explain_and_fix_in_current_conversation = 29; + bool allow_cascade_access_gitignore_files = 31; + bool allow_agent_access_non_workspace_files = 79; + bool disable_cascade_auto_fix_lints = 32; + exa.codeium_common_pb.DetectAndUseProxy detect_and_use_proxy = 34; + bool disable_tab_to_import = 35; + bool use_clipboard_for_completions = 36; + bool disable_highlight_after_accept = 37; + bool disable_auto_generate_memories = 39; + bool enable_sounds_for_special_events = 40; + bool enable_tab_sounds = 41; + bool allow_cascade_in_background = 42; + exa.codeium_common_pb.TabToJump tab_to_jump = 43; + exa.codeium_common_pb.CascadeWebSearchTool cascade_web_search = 44; + bool enable_terminal_completion = 45; + bool is_snoozed = 55; + bool disable_cascade_in_background = 48; + repeated string custom_workspace = 50; + exa.codeium_common_pb.PlanMode global_plan_mode_preference = 54; + repeated exa.codeium_common_pb.ClientModelConfig cached_cascade_model_configs = 52; + repeated exa.codeium_common_pb.ClientModelSort cached_cascade_model_sorts = 53; + exa.codeium_common_pb.CascadeRunExtensionCode cascade_run_extension_code = 56; + exa.codeium_common_pb.CascadeRunExtensionCodeAutoRun cascade_run_extension_code_auto_run = 57; + exa.codeium_common_pb.CascadeInputAutocomplete cascade_input_autocomplete = 65; + exa.codeium_common_pb.AutoContinueOnMaxGeneratorInvocations auto_continue_on_max_generator_invocations = 59; + repeated string recently_used_cascade_models = 61; + exa.codeium_common_pb.AnnotationsConfig annotations_config = 63; + repeated string relative_working_dir_paths = 66; + map custom_models = 68; + bool disable_code_snippet_telemetry = 69; + exa.codeium_common_pb.PlanningMode planning_mode = 70; + exa.codeium_common_pb.AgentBrowserTools agent_browser_tools = 71; + exa.codeium_common_pb.ArtifactReviewMode artifact_review_mode = 72; + bool allow_tab_access_gitignore_files = 75; + string browser_chrome_path = 76; + string browser_user_profile_path = 77; + int32 browser_cdp_port = 78; + bool demo_mode_enabled = 80; + exa.codeium_common_pb.BrowserJsExecutionPolicy browser_js_execution_policy = 81; + bool secure_mode_enabled = 82; +} + +message UserAccountSettings { + bool disable_code_snippet_telemetry = 1; +} + +message ModelFeatures { + bool supports_context_tokens = 2; + bool requires_instruct_tags = 3; + bool requires_fim_context = 4; + bool requires_context_snippet_prefix = 5; + bool requires_context_relevance_tags = 6; + bool requires_llama3_tokens = 7; + bool zero_shot_capable = 8; + bool requires_autocomplete_as_command = 9; + bool supports_cursor_aware_supercomplete = 10; + bool supports_images = 11; + bool supports_pdf = 22; + bool supports_video = 23; + map supported_mime_types = 28; + bool supports_tool_calls = 12; + bool does_not_support_tool_choice = 27; + bool supports_cumulative_context = 13; + bool tab_jump_print_line_range = 14; + bool supports_thinking = 15; + bool supports_adaptive_thinking = 29; + bool supports_raw_thinking = 21; + bool supports_estimate_token_counter = 17; + bool add_cursor_to_find_replace_target = 18; + bool supports_tab_jump_use_whole_document = 19; + bool supports_model_info_override = 24; + bool requires_lead_in_generation = 25; + bool requires_no_xml_tool_examples = 26; +} + +message ExternalModel { + bool is_internal = 1; + exa.codeium_common_pb.Model model_id = 2; + string model_name = 3; + string base_url = 4; + string api_key = 5; + string access_key = 6; + string secret_access_key = 7; + string region = 8; + string project_id = 9; + uint32 id = 10; + int32 max_completion_tokens = 11; + int32 max_input_tokens = 12; +} + +message ModelInfo { + exa.codeium_common_pb.Model model_id = 1; + bool is_internal = 2; + exa.codeium_common_pb.ModelType model_type = 3; + int32 max_tokens = 4; + string tokenizer_type = 5; + exa.codeium_common_pb.ModelFeatures model_features = 6; + exa.codeium_common_pb.APIProvider api_provider = 7; + string model_name = 8; + bool supports_context = 9; + int32 embed_dim = 10; + string base_url = 11; + string chat_model_name = 12; + int32 max_output_tokens = 13; + exa.codeium_common_pb.PromptTemplaterType prompt_templater_type = 14; + exa.codeium_common_pb.ToolFormatterType tool_formatter_type = 15; + int32 thinking_budget = 16; + int32 min_thinking_budget = 17; + bool use_ccpa_for_eval = 18; + int32 thinking_level = 19; + string display_name = 20; +} + +message ApiProviderRoutingConfig { + map model_map = 1; +} + +message ApiProviderConfigMap { + map provider_map = 1; +} + +message ApiProviderConfig { + uint32 weight = 1; + uint32 cache_ttl_minutes = 2; +} + +message ModelConfig { + exa.codeium_common_pb.ModelInfo generation_model = 1; + exa.codeium_common_pb.ModelInfo context_check_model = 2; +} + +message ModelStatusInfo { + exa.codeium_common_pb.Model model = 1; + string message = 2; + exa.codeium_common_pb.ModelStatus status = 3; +} + +message CompletionExample { + string uid = 1; + string completion_id = 2; + string file_path = 3; + string short_prefix = 4; + string completion_text = 5; + string short_suffix = 6; +} + +message CompletionExampleWithMetadata { + exa.codeium_common_pb.CompletionExample example = 1; + string name = 2; + google.protobuf.Timestamp time = 4; +} + +message CciWithSubrange { + exa.codeium_common_pb.CodeContextItem cci = 1; + exa.codeium_common_pb.ContextSubrange subrange = 2; +} + +message ContextSubrange { + exa.codeium_common_pb.ContextSnippetType snippet_type = 1; + int64 start_offset = 2; + int64 end_offset = 3; +} + +message PathScopeItem { + string absolute_path_migrate_me_to_uri = 1; + string absolute_uri = 5; + map workspace_relative_paths_migrate_me_to_workspace_uris = 2; + map workspace_uris_to_relative_paths = 6; + uint32 num_files = 3; + uint64 num_bytes = 4; +} + +message FileLineRange { + string absolute_uri = 1; + uint32 start_line = 2; + uint32 end_line = 3; +} + +message TextBlock { + string content = 1; + oneof identifier { + exa.codeium_common_pb.FileLineRange file_line_range = 2; + string label = 3; + } +} + +message RepositoryScopeItem { + exa.codeium_common_pb.GitRepoInfo repo_info = 1; +} + +message RepositoryPathScopeItem { + exa.codeium_common_pb.GitRepoInfo repo_info = 1; + string relative_path = 2; + bool is_dir = 3; +} + +message KnowledgeBaseScopeItem { + string document_id = 1; + exa.codeium_common_pb.IndexChoice index = 7; + exa.codeium_common_pb.DocumentType document_type = 8; + string display_name = 3; + string description = 4; + string display_source = 5; + string url = 6; +} + +message ConsoleLogLine { + string timestamp_str = 1; + string type = 2; + string output = 3; + string location = 4; +} + +message ConsoleLogScopeItem { + repeated exa.codeium_common_pb.ConsoleLogLine lines = 1; + string server_address = 2; +} + +message DOMElementScopeItem { + string tag_name = 1; + string outer_html = 2; + string id = 3; + string react_component_name = 4; + exa.codeium_common_pb.FileLineRange file_line_range = 5; +} + +message DOMNode { + message ElementNode { + string tag_name = 1; + string xpath = 2; + repeated string children = 3; + map attributes = 4; + bool is_interactive = 5; + bool is_top_element = 6; + int32 highlight_index = 7; + int32 central_x = 8; + int32 central_y = 9; + } + message TextNode { + string text = 1; + } + bool is_visible = 1; + oneof node_data { + exa.codeium_common_pb.DOMNode.ElementNode element = 2; + exa.codeium_common_pb.DOMNode.TextNode text = 3; + } +} + +message DOMTree { + string root_id = 1; + map map = 2; +} + +message Viewport { + int32 x = 1; + int32 y = 2; + int32 width = 3; + int32 height = 4; +} + +message RecipeScopeItem { + string recipe_id = 1; + string title = 2; + string description = 3; + string system_prompt = 4; + optional string uri = 5; +} + +message RuleScopeItem { + string rule_path = 1; + string rule_name = 2; + string description = 3; +} + +message McpResourceItem { + string uri = 1; + string name = 2; + optional string description = 3; + optional string mime_type = 4; + string server_name = 5; +} + +message McpResourceContent { + string uri = 1; + oneof data { + exa.codeium_common_pb.TextData text = 2; + exa.codeium_common_pb.ImageData image = 3; + exa.codeium_common_pb.Media media_content = 4; + } +} + +message McpPromptMessage { + string role = 1; + oneof content { + string text = 2; + exa.codeium_common_pb.Media media = 3; + exa.codeium_common_pb.McpResourceContent resource = 4; + } +} + +message McpPromptArgument { + string name = 1; + string description = 2; + bool required = 3; +} + +message McpPromptScopeItem { + string server_name = 1; + string name = 2; + string description = 3; + repeated exa.codeium_common_pb.McpPromptArgument arguments = 4; + map argument_values = 5; + repeated exa.codeium_common_pb.McpPromptMessage messages = 6; +} + +message BrowserPageScopeItem { + string url = 1; + string title = 2; + string visible_text_content = 3; + string page_id = 4; +} + +message BrowserCodeBlockScopeItem { + string url = 1; + string title = 2; + string code_content = 3; + exa.codeium_common_pb.Language language = 4; + optional string context_text = 5; + string page_id = 6; +} + +message BrowserTextScopeItem { + string url = 1; + string visible_text = 2; + string page_id = 3; +} + +message ConversationScopeItem { + string id = 1; + string title = 2; + google.protobuf.Timestamp last_modified_time = 3; +} + +message UserActivityScopeItem { + string id = 1; + string branch = 2; + bool current = 3; +} + +message TerminalScopeItem { + string process_id = 1; + string name = 2; + string last_command = 3; + optional string selectionContent = 4; +} + +message ContextScopeItem { + oneof scope_item { + exa.codeium_common_pb.PathScopeItem file = 1; + exa.codeium_common_pb.PathScopeItem directory = 2; + exa.codeium_common_pb.RepositoryScopeItem repository = 3; + exa.codeium_common_pb.CodeContextItem code_context = 4; + exa.codeium_common_pb.CciWithSubrange cci_with_subrange = 6; + exa.codeium_common_pb.RepositoryPathScopeItem repository_path = 7; + exa.codeium_common_pb.KnowledgeBaseScopeItem slack = 8; + exa.codeium_common_pb.KnowledgeBaseScopeItem github = 9; + exa.codeium_common_pb.FileLineRange file_line_range = 10; + exa.codeium_common_pb.TextBlock text_block = 11; + exa.codeium_common_pb.KnowledgeBaseScopeItem jira = 12; + exa.codeium_common_pb.KnowledgeBaseScopeItem google_drive = 13; + exa.codeium_common_pb.ConsoleLogScopeItem console_log = 14; + exa.codeium_common_pb.DOMElementScopeItem dom_element = 15; + exa.codeium_common_pb.RecipeScopeItem recipe = 16; + exa.codeium_common_pb.KnowledgeBaseScopeItem knowledge = 17; + exa.codeium_common_pb.RuleScopeItem rule = 18; + exa.codeium_common_pb.McpResourceItem mcp_resource = 19; + exa.codeium_common_pb.BrowserPageScopeItem browser_page = 20; + exa.codeium_common_pb.BrowserCodeBlockScopeItem browser_code_block = 21; + exa.codeium_common_pb.BrowserTextScopeItem browser_text = 22; + exa.codeium_common_pb.ConversationScopeItem conversation = 23; + exa.codeium_common_pb.UserActivityScopeItem user_activity = 24; + exa.codeium_common_pb.TerminalScopeItem terminal = 25; + exa.codeium_common_pb.McpPromptScopeItem mcp_prompt = 26; + } +} + +message ContextScope { + repeated exa.codeium_common_pb.ContextScopeItem items = 1; +} + +message NodeExecutionRecord { + string node_name = 1; + google.protobuf.Timestamp start_time = 2; + google.protobuf.Timestamp end_time = 3; + bytes graph_state_json = 5; + uint64 graph_state_json_num_bytes = 6; + exa.codeium_common_pb.GraphExecutionState subgraph_execution = 4; +} + +message GraphExecutionState { + exa.codeium_common_pb.NodeExecutionRecord current = 1; + repeated exa.codeium_common_pb.NodeExecutionRecord history = 2; +} + +message Guideline { + repeated exa.codeium_common_pb.GuidelineItem items = 1; +} + +message GuidelineItem { + string guideline = 1; +} + +message ChatNodeConfig { + exa.codeium_common_pb.Model model = 1; + uint32 max_input_tokens = 2; + float temperature = 3; + uint32 max_output_tokens = 4; + bool order_snippets_by_file = 5; +} + +message MQueryConfig { + bool should_batch_ccis = 1; + int64 max_tokens_per_subrange = 2; + int64 num_parser_workers = 3; + int64 num_workers_per_distributed_scorer = 4; + bool verbose = 5; + repeated string ignore_extensions = 6; + repeated string ignore_directory_stubs = 7; + uint32 min_token_space_for_context = 8; + uint32 max_target_files = 9; + uint32 top_cci_count = 10; +} + +message CompletionDelta { + string delta_text = 1; + string delta_raw_generation = 12; + uint32 delta_tokens = 2; + exa.codeium_common_pb.StopReason stop_reason = 3; + exa.codeium_common_pb.ModelUsageStats usage = 4; + repeated exa.codeium_common_pb.ChatToolCall delta_tool_calls = 5; + string delta_thinking = 6; + string delta_raw_thinking = 17; + bytes delta_signature = 7; + bool thinking_redacted = 8; + exa.codeium_common_pb.CitationMetadata citation_metadata = 11; + string trace_id = 13; + string stop_message = 14; + repeated google.internal.cloud.code.v1internal.Credits consumed_credits = 15; + string response_model = 16; +} + +message CompletionDeltaMap { + map deltas = 1; + string prompt = 2; + exa.codeium_common_pb.CompletionProfile completion_profile = 3; +} + +message ChatCompletionInfo { + string prompt = 1; + string inference_address = 2; + string serialized_prompt = 3; +} + +message ChatToolCall { + string id = 1; + string name = 2; + string arguments_json = 3; + string invalid_json_str = 4; + string invalid_json_err = 5; + string thought_signature = 6; + bytes thinking_signature = 7; + string original_arguments_json = 8; +} + +message Status { + exa.codeium_common_pb.StatusLevel level = 1; + string message = 2; +} + +message DocumentPosition { + uint64 row = 1; + uint64 col = 2; +} + +message Range { + uint64 start_offset = 1; + uint64 end_offset = 2; + exa.codeium_common_pb.DocumentPosition start_position = 3; + exa.codeium_common_pb.DocumentPosition end_position = 4; +} + +message Document { + string absolute_path_migrate_me_to_uri = 1; + string absolute_uri = 12; + string relative_path_migrate_me_to_workspace_uri = 2; + string workspace_uri = 13; + string text = 3; + string editor_language = 4; + exa.codeium_common_pb.Language language = 5; + uint64 cursor_offset = 6; + exa.codeium_common_pb.DocumentPosition cursor_position = 8; + string line_ending = 7; + exa.codeium_common_pb.Range visible_range = 9; + bool is_cutoff_start = 10; + bool is_cutoff_end = 11; + int32 lines_cutoff_start = 14; + int32 lines_cutoff_end = 15; + google.protobuf.Timestamp timestamp = 16; + bool is_dirty = 17; + bool is_synthetic = 18; +} + +message PromptComponents { + exa.codeium_common_pb.Document document = 1; + repeated exa.codeium_common_pb.Document other_documents = 2; + repeated exa.codeium_common_pb.CodeContextItem code_context_items = 3; +} + +message TextOrScopeItem { + oneof chunk { + string text = 1; + exa.codeium_common_pb.ContextScopeItem item = 2; + } +} + +message PinnedContextConfig { + string match_repo_name = 1; + string match_path = 2; + repeated exa.codeium_common_pb.PinnedContext pinned_contexts = 3; +} + +message PinnedContext { + oneof context_item { + exa.codeium_common_pb.RepositoryPath repository_path = 1; + } +} + +message RepositoryPath { + string remote_repo_name = 1; + string version = 2; + string relative_path = 3; +} + +message DefaultPinnedContextConfig { + repeated exa.codeium_common_pb.PinnedContextConfig pinned_context_configs = 1; +} + +message Rule { + string id = 1; + string prompt = 2; +} + +message RuleViolation { + string id = 1; + exa.codeium_common_pb.Rule rule = 2; + int32 start_line = 3; + int32 end_line = 4; +} + +message LanguageServerDiagnostics { + repeated string logs = 1; +} + +message IndexerStats { + exa.codeium_common_pb.IndexerDbStats database = 1; +} + +message IndexerDbStats { + oneof backend { + exa.codeium_common_pb.LocalSqliteFaissDbStats local_sqlite_faiss = 1; + exa.codeium_common_pb.PostgresDbStats postgres = 2; + } +} + +message LocalSqliteFaissDbStats { + repeated exa.codeium_common_pb.FaissStateStats faiss_state_stats = 1; + int64 total_item_count = 2; + bool quantized = 3; +} + +message FaissStateStats { + exa.codeium_common_pb.EmbeddingSource embedding_source = 1; + string workspace = 2; + int64 item_count = 3; +} + +message PostgresDbStats { +} + +message LastUpdateRecord { + google.protobuf.Timestamp time = 1; + exa.codeium_common_pb.LastUpdateType type = 2; +} + +message ModelUsageStats { + exa.codeium_common_pb.Model model = 1; + uint64 input_tokens = 2; + uint64 output_tokens = 3; + uint64 thinking_output_tokens = 9; + uint64 response_output_tokens = 10; + uint64 cache_read_tokens = 5; + exa.codeium_common_pb.APIProvider api_provider = 6; + string message_id = 7; + map response_header = 8; + string response_id = 11; + string provider_assigned_message_id = 12; + uint64 cache_write_tokens = 4; +} + +message SuperCompleteFilterReason { + string reason = 1; +} + +message CodeDiagnostic { + exa.codeium_common_pb.Range range = 1; + string message = 2; + string severity = 3; + string source = 4; + string uri = 5; + optional string id = 6; + exa.codeium_common_pb.Language language = 7; + int64 score = 8; +} + +message IntellisenseSuggestion { + exa.codeium_common_pb.Range range = 1; + string text = 2; + string label = 3; + string label_detail = 4; + string description = 5; + string detail = 6; + string documentation = 7; + string kind = 8; + bool selected = 9; +} + +message DocumentLinesElement { + exa.codeium_common_pb.DocumentQuery document_query = 1; + repeated exa.codeium_common_pb.CodeContextItem overlapped_code_context_items = 2; + uint32 first_element_suffix_overlap = 3; + uint32 last_element_prefix_overlap = 4; +} + +message DocumentQuery { + string text = 1; + int32 cursor_offset = 2; + uint32 start_line = 3; + uint32 end_line = 4; + bool use_character_position = 5; +} + +message DocumentOutlineElement { + oneof element { + exa.codeium_common_pb.CodeContextItem code_context_item = 1; + exa.codeium_common_pb.DocumentLinesElement document_lines_element = 2; + string text = 3; + } +} + +message DocumentOutline { + repeated exa.codeium_common_pb.DocumentOutlineElement elements = 1; + int64 start_index = 2; +} + +message ProductEvent { + string event_name = 1; + string api_key = 2; + string installation_id = 3; + string ide_name = 4; + string os = 5; + string codeium_version = 6; + string ide_version = 7; + uint64 duration_ms = 8; + map extra = 9; +} + +message KnowledgeBaseChunk { + oneof chunk_type { + string text = 1; + exa.codeium_common_pb.MarkdownChunk markdown_chunk = 3; + } + int32 position = 2; +} + +message KnowledgeBaseItem { + string document_id = 1; + string url = 3; + string title = 4; + google.protobuf.Timestamp timestamp = 5; + repeated exa.codeium_common_pb.KnowledgeBaseChunk chunks = 6; + string summary = 7; + exa.codeium_common_pb.DOMTree dom_tree = 9; + exa.codeium_common_pb.ImageData image = 8; + exa.codeium_common_pb.Media media = 10; + string text = 2; +} + +message KnowledgeBaseItemWithMetadata { + exa.codeium_common_pb.KnowledgeBaseItem knowledge_base_item = 1; + float score = 2; + string index_name = 3; + string document_source_name = 4; +} + +message KnowledgeBaseGroup { + string description = 1; + exa.codeium_common_pb.KnowledgeBaseItemWithMetadata item = 2; + repeated exa.codeium_common_pb.KnowledgeBaseGroup children = 3; +} + +message ImageData { + string base64_data = 1; + string mime_type = 2; + string caption = 3; + string uri = 4; +} + +message Blobref { + string blob_id = 1; +} + +message Media { + string mime_type = 1; + string description = 4; + oneof payload { + bytes inline_data = 2; + exa.codeium_common_pb.Blobref blobref = 3; + } + string uri = 5; + bytes thumbnail = 6; + float duration_seconds = 7; +} + +message TextData { + string text = 1; + string mime_type = 2; +} + +message MarkdownChunk { + message MarkdownHeader { + exa.codeium_common_pb.MarkdownNodeType type = 1; + string text = 2; + } + repeated exa.codeium_common_pb.MarkdownChunk.MarkdownHeader headers = 1; + string text = 2; +} + +message TerminalShellCommandHeader { + exa.codeium_common_pb.Metadata metadata = 7; + string terminal_id = 1; + uint32 shell_pid = 2; + string command_line = 3; + string cwd = 4; + google.protobuf.Timestamp start_time = 5; + exa.codeium_common_pb.TerminalShellCommandSource source = 6; +} + +message TerminalShellCommandData { + bytes raw_data = 1; +} + +message TerminalShellCommandTrailer { + optional int32 exit_code = 1; + google.protobuf.Timestamp end_time = 2; +} + +message TerminalShellCommandStreamChunk { + oneof value { + exa.codeium_common_pb.TerminalShellCommandHeader header = 1; + exa.codeium_common_pb.TerminalShellCommandData data = 2; + exa.codeium_common_pb.TerminalShellCommandTrailer trailer = 3; + } +} + +message TerminalShellCommand { + string id = 10; + uint32 shell_pid = 1; + string command_line = 2; + string cwd = 3; + bytes output = 4; + optional int32 exit_code = 5; + google.protobuf.Timestamp start_time = 6; + google.protobuf.Timestamp end_time = 7; + google.protobuf.Timestamp last_updated_time = 11; + exa.codeium_common_pb.TerminalShellCommandStatus status = 8; + exa.codeium_common_pb.TerminalShellCommandSource source = 9; +} + +message TerminalCommandData { + string terminal_id = 1; + string platform = 2; + string cwd = 3; + string shell_name = 4; +} + +message AntigravityProject { + string antigravity_project_id = 1; + string auth_uid = 2; + exa.codeium_common_pb.DeploymentProvider deployment_provider = 3; + string provider_project_id = 4; + string project_name = 5; + google.protobuf.Timestamp created_at = 6; + google.protobuf.Timestamp updated_at = 7; + string domain = 8; + string subdomain_name = 9; + google.protobuf.Timestamp expires_at = 10; + google.protobuf.Timestamp claimed_at = 11; + google.protobuf.Timestamp deprovisioned_at = 12; + string provider_team_id = 14; + string project_url = 13; +} + +message AntigravityDeployment { + string antigravity_deployment_id = 1; + string auth_uid = 2; + exa.codeium_common_pb.DeploymentProvider deployment_provider = 3; + string provider_deployment_id = 14; + string antigravity_project_id = 19; + string project_id = 4; + string project_name = 5; + string workspace_path = 6; + google.protobuf.Timestamp created_at = 7; + google.protobuf.Timestamp updated_at = 8; + string domain = 16; + string subdomain_name = 17; + string provider_team_id = 20; + google.protobuf.Timestamp expires_at = 11; + string deployment_url = 12; + google.protobuf.Timestamp claimed_at = 15; + google.protobuf.Timestamp deprovisioned_at = 13; + string build_status_url = 9; + string project_url = 10; +} + +message DeployTarget { + exa.codeium_common_pb.DeploymentProvider deployment_provider = 1; + bool is_sandbox = 2; + string provider_team_id = 3; + string provider_team_slug = 4; + string domain = 5; +} + +message WebDocsOption { + string label = 1; + oneof value { + string docs_url = 2; + string docs_search_domain = 3; + } + repeated string synonyms = 4; + bool is_featured = 5; +} + +message TeamConfig { + string team_id = 1; + int32 user_prompt_credit_cap = 2; + int32 user_flow_credit_cap = 3; + bool auto_provision_cascade_seat = 4; + bool allow_mcp_servers = 5; + bool allow_auto_run_commands = 7; + int32 max_unclaimed_sites = 9; + bool allow_app_deployments = 10; + bool allow_sandbox_app_deployments = 19; + bool allow_teams_app_deployments = 20; + int32 max_new_sites_per_day = 11; + bool allow_github_reviews = 12; + bool allow_github_description_edits = 13; + string pull_request_review_guidelines = 14; + string pull_request_description_guidelines = 16; + bool disable_tool_calls = 15; + bool allow_individual_level_analytics = 17; + optional bool allow_conversation_sharing = 18; + optional int32 pull_request_review_rate_limit = 21; + bool allow_attribution = 22; + repeated exa.codeium_common_pb.McpServerConfig allowed_mcp_servers = 23; + bool allow_github_auto_reviews = 24; + bool allow_browser_experimental_features = 25; + bool disable_tool_call_execution_outside_workspace = 26; +} + +message WebAppDeploymentConfig { + string project_id = 1; + string framework = 2; +} + +message McpServerTemplate { + string title = 1; + string id = 2; + string link = 3; + string description = 4; + map commands = 5; +} + +message McpServerCommand { + exa.codeium_common_pb.McpCommandTemplate template = 1; + repeated exa.codeium_common_pb.McpCommandVariable variables = 2; +} + +message McpCommandTemplate { + string command = 1; + repeated string args = 2; + map env = 3; +} + +message McpCommandVariable { + string name = 1; + string title = 2; + string description = 3; + string link = 4; +} + +message McpServerConfig { + string server_id = 1; + oneof configuration { + exa.codeium_common_pb.McpLocalServer local = 2; + exa.codeium_common_pb.McpRemoteServer remote = 3; + } +} + +message McpLocalServer { + string command = 1; + repeated string args = 2; + map env = 3; +} + +message McpRemoteServer { + string type = 1; + string url = 2; + map headers = 3; +} + +message UnleashContext { + string user_id = 1; + string session_id = 2; + map properties = 3; +} + +message BrowserStateSnapshot { + google.protobuf.Timestamp timestamp = 1; + string user_active_page_id = 2; + repeated exa.codeium_common_pb.BrowserPageMetadata pages = 3; +} + +message BrowserPageMetadata { + string url = 1; + string page_id = 2; + string page_title = 3; + uint32 viewport_width = 4; + uint32 viewport_height = 5; + uint32 page_height = 9; + string favicon_url = 6; + float device_pixel_ratio = 8; + google.protobuf.Timestamp last_visited_time = 7; +} + +message BrowserClickInteraction { + uint32 viewport_scroll_x = 1; + uint32 viewport_scroll_y = 2; + uint32 click_x = 3; + uint32 click_y = 4; + string target_element_tag_name = 5; + string target_element_x_path = 6; +} + +message BrowserScrollInteraction { + uint32 viewport_scroll_x = 1; + uint32 viewport_scroll_y = 2; +} + +message BrowserInteraction { + google.protobuf.Timestamp timestamp = 1; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 2; + oneof interaction { + exa.codeium_common_pb.BrowserClickInteraction click = 3; + exa.codeium_common_pb.BrowserScrollInteraction scroll = 4; + } +} + +message MetricsMetadata { + int32 version = 1; + string description = 2; + exa.codeium_common_pb.BetterDirection better_direction = 3; + bool is_bool = 4; + optional float null_default_value = 5; + exa.codeium_common_pb.MetricsScope scope = 6; +} + +message MetricsRecord { + string name = 1; + exa.codeium_common_pb.MetricsMetadata metadata = 9; + float value = 2; + map details = 3; + string error = 6; + string trajectory_id = 7; + bool lower_better = 4; + bool is_bool = 5; +} + +message StepLevelMetricsRecord { + repeated exa.codeium_common_pb.MetricsRecord metrics = 1; +} + +message ModelNotification { + exa.codeium_common_pb.Model model = 1; + string message = 2; +} + +message ModelNotificationExperimentPayload { + repeated exa.codeium_common_pb.ModelNotification model_notifications = 1; +} + +message LspReference { + string uri = 1; + exa.codeium_common_pb.Range range = 2; + optional string snippet = 3; +} + +message CascadeModelHeaderWarningExperimentPayload { + string text = 1; + string tooltip_text = 2; +} + +message TrajectoryDescription { + oneof description { + string cascade_conversation_title = 1; + string mainline_branch_name = 2; + } +} + +message ThirdPartyWebSearchConfig { + exa.codeium_common_pb.ThirdPartyWebSearchProvider provider = 1; +} + +message GRPCStatus { + int32 code = 1; + string message = 2; +} + +message WorkingDirectoryInfo { + string absolute_uri = 1; + string relative_path = 2; + exa.codeium_common_pb.WorkingDirectoryStatus status = 3; + string error = 4; +} + +message ArtifactFullFileTarget { + exa.codeium_common_pb.ImageData image = 1; + exa.codeium_common_pb.Media media = 2; +} + +message TextSelection { + string content = 1; + int32 start_line = 2; + int32 end_line = 3; +} + +message ArtifactImageSelection { + exa.codeium_common_pb.ImageData cropped_image = 1; + float x = 2; + float y = 3; + float width = 4; + float height = 5; + exa.codeium_common_pb.Media cropped_media = 6; +} + +message ArtifactSelection { + oneof selection { + exa.codeium_common_pb.TextSelection text_selection = 1; + exa.codeium_common_pb.ArtifactImageSelection image_selection = 2; + } +} + +message ArtifactSelectionTarget { + repeated exa.codeium_common_pb.ArtifactSelection selections = 1; +} + +message ArtifactComment { + string artifact_uri = 1; + oneof scope { + exa.codeium_common_pb.ArtifactFullFileTarget full_file = 5; + exa.codeium_common_pb.ArtifactSelectionTarget selections = 6; + } + string comment = 4; + exa.codeium_common_pb.ArtifactApprovalStatus approval_status = 7; +} + +message ArtifactMetadata { + exa.codeium_common_pb.ArtifactType artifact_type = 1; + string summary = 2; + google.protobuf.Timestamp created_at = 3; + google.protobuf.Timestamp updated_at = 4; + int64 version = 5; + bool request_feedback = 6; +} + +message DiffCommentInfo { + optional exa.codeium_common_pb.TextSelection original_selection = 1; + optional exa.codeium_common_pb.TextSelection modified_selection = 2; + string comment = 3; +} + +message FileDiffComment { + string file_uri = 1; + repeated exa.codeium_common_pb.DiffCommentInfo diff_comment_infos = 3; +} + +message FileCommentInfo { + string comment = 1; + exa.codeium_common_pb.TextSelection selection = 2; +} + +message FileComment { + string file_uri = 1; + repeated exa.codeium_common_pb.FileCommentInfo file_comment_infos = 2; +} + +message OnlineMetricsConfig { + exa.codeium_common_pb.UserStepJudgeConfig user_step_judge_config = 1; + exa.codeium_common_pb.PlanningModeJudgeConfig planning_mode_judge_config = 2; + exa.codeium_common_pb.PromptSectionJudgeConfig prompt_section_judge_config = 3; +} + +message MetricsSamplingConfig { + oneof sampling_strategy { + exa.codeium_common_pb.SamplingStrategyUniform uniform = 1; + exa.codeium_common_pb.SamplingStrategyGeneratorMetadataAware generator_metadata_aware = 2; + } + optional int64 random_seed = 3; +} + +message SamplingStrategyUniform { + float sampling_rate = 1; +} + +message SamplingStrategyGeneratorMetadataAware { + float target_sampling_rate = 1; + float baseline_sampling_rate = 2; + int32 start_generator_metadata_index = 3; + int32 end_generator_metadata_index = 4; +} + +message PromptSectionJudgeConfig { + bool enabled = 1; + optional exa.codeium_common_pb.MetricsSamplingConfig sampling_config = 2; + exa.codeium_common_pb.Model judge_model = 3; +} + +message UserStepJudgeConfig { + bool enabled = 1; + optional exa.codeium_common_pb.MetricsSamplingConfig sampling_config = 2; + exa.codeium_common_pb.Model judge_model = 3; + uint32 max_tokens = 4; +} + +message PlanningModeJudgeConfig { + optional bool enabled = 1; + optional exa.codeium_common_pb.MetricsSamplingConfig sampling_config = 2; + exa.codeium_common_pb.Model judge_model = 3; +} + +message Point2 { + int32 x = 1; + int32 y = 2; +} + +message JetskiTelemetryExtension { + string ide_name = 16; + string ide_version = 17; + string os = 18; + string arch = 19; + string user_tier_id = 22; + repeated string user_tags = 23; + bool is_redacted = 24; + oneof payload { + exa.codeium_common_pb.AnalyticsEventMetadata analytics_event_metadata = 6; + exa.codeium_common_pb.ErrorTraceMetadata error_trace_metadata = 15; + exa.codeium_common_pb.ObservabilityData observability_data = 26; + } +} + +message ExtraMetadata { + string key = 1; + string value = 2; +} + +message Experiment { + string key = 1; + bool enabled = 2; +} + +message AnalyticsEventMetadata { + string event_type = 1; + repeated exa.codeium_common_pb.ExtraMetadata extra = 2; + repeated exa.codeium_common_pb.Experiment experiments = 3; +} + +message ErrorTraceMetadata { + exa.codeium_common_pb.ErrorTrace error_trace = 1; +} + +message ObservabilityData { + string type = 1; + repeated exa.codeium_common_pb.ExtraMetadata non_sensitive_data = 2; + repeated exa.codeium_common_pb.ExtraMetadata sensitive_data = 3; +} + +message LogEvent { + int64 event_time_ms = 1; + bytes source_extension = 6; +} + +message ClientInfo { + int32 client_type = 1; +} + +message LogRequest { + exa.codeium_common_pb.ClientInfo client_info = 1; + int32 log_source = 2; + repeated exa.codeium_common_pb.LogEvent log_events = 3; + int64 request_time_ms = 4; +} + +message LogResponse { + int64 next_request_wait_millis = 1; +} diff --git a/proto/src/exa/context_module_pb/context_module.desc.bin b/proto/src/exa/context_module_pb/context_module.desc.bin new file mode 100644 index 00000000..0801aa14 Binary files /dev/null and b/proto/src/exa/context_module_pb/context_module.desc.bin differ diff --git a/proto/src/exa/context_module_pb/context_module.proto b/proto/src/exa/context_module_pb/context_module.proto new file mode 100644 index 00000000..23bfcb76 --- /dev/null +++ b/proto/src/exa/context_module_pb/context_module.proto @@ -0,0 +1,165 @@ +syntax = "proto3"; +package exa.context_module_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/context_module_pb"; + +import "exa/chat_pb/chat.proto"; +import "exa/codeium_common_pb/codeium_common.proto"; + +enum ContextChangeType { + CONTEXT_CHANGE_TYPE_UNSPECIFIED = 0; + CONTEXT_CHANGE_TYPE_ACTIVE_DOCUMENT = 1; + CONTEXT_CHANGE_TYPE_CURSOR_POSITION = 2; + CONTEXT_CHANGE_TYPE_CHAT_MESSAGE_RECEIVED = 3; + CONTEXT_CHANGE_TYPE_OPEN_DOCUMENTS = 4; + CONTEXT_CHANGE_TYPE_ORACLE_ITEMS = 5; + CONTEXT_CHANGE_TYPE_PINNED_CONTEXT = 6; + CONTEXT_CHANGE_TYPE_PINNED_GUIDELINE = 7; + CONTEXT_CHANGE_TYPE_ACTIVE_NODE = 9; +} + +enum ContextUseCase { + CONTEXT_USE_CASE_UNSPECIFIED = 0; + CONTEXT_USE_CASE_AUTOCOMPLETE = 1; + CONTEXT_USE_CASE_CHAT = 2; + CONTEXT_USE_CASE_CHAT_COMPLETION = 3; + CONTEXT_USE_CASE_CORTEX_RESEARCH = 4; + CONTEXT_USE_CASE_EVAL = 5; + CONTEXT_USE_CASE_CHAT_COMPLETION_GENERATE = 6; + CONTEXT_USE_CASE_SUPERCOMPLETE = 7; + CONTEXT_USE_CASE_FAST_APPLY = 8; + CONTEXT_USE_CASE_COMMAND_TERMINAL = 9; +} + +enum ContextRefreshReason { + CONTEXT_REFRESH_REASON_UNSPECIFIED = 0; + CONTEXT_REFRESH_REASON_AUTOCOMPLETE = 1; + CONTEXT_REFRESH_REASON_CHAT = 2; + CONTEXT_REFRESH_REASON_IDE_ACTION = 4; + CONTEXT_REFRESH_REASON_CHAT_COMPLETION = 5; +} + +message ContextChangeEvent { + oneof context_change_event { + exa.context_module_pb.ContextChangeActiveDocument context_change_active_document = 1; + exa.context_module_pb.ContextChangeCursorPosition context_change_cursor_position = 2; + exa.context_module_pb.ContextChangeChatMessageReceived context_change_chat_message_received = 3; + exa.context_module_pb.ContextChangeOpenDocuments context_change_open_documents = 4; + exa.context_module_pb.ContextChangeOracleItems context_change_oracle_items = 5; + exa.context_module_pb.ContextChangePinnedContext context_change_pinned_context = 7; + exa.context_module_pb.ContextChangePinnedGuideline context_change_pinned_guideline = 8; + exa.context_module_pb.ContextChangeActiveNode context_change_active_node = 10; + } + exa.context_module_pb.ContextRefreshReason context_refresh_reason = 6; +} + +message ContextChangeActiveDocument { + exa.codeium_common_pb.Document document = 1; +} + +message ContextChangeCursorPosition { + exa.codeium_common_pb.Document document = 2; +} + +message ContextChangeChatMessageReceived { + repeated exa.chat_pb.ChatMessage chat_messages = 1; +} + +message ContextChangeOpenDocuments { + repeated exa.codeium_common_pb.Document other_open_documents = 1; +} + +message ContextChangeOracleItems { + repeated exa.codeium_common_pb.CodeContextItem oracle_items = 1; +} + +message ContextChangePinnedContext { + oneof scope { + exa.codeium_common_pb.ContextScope pinned_scope = 1; + exa.codeium_common_pb.ContextScope mentioned_scope = 2; + } +} + +message ContextChangePinnedGuideline { + exa.codeium_common_pb.Guideline guideline = 1; +} + +message ContextChangeActiveNode { + exa.codeium_common_pb.CodeContextItem active_node = 1; + exa.codeium_common_pb.Document document = 2; + bool actual_node_change = 3; +} + +message RetrievedCodeContextItemMetadata { + repeated exa.codeium_common_pb.CodeContextSource context_sources = 1; + exa.codeium_common_pb.CodeContextType context_type = 2; + string scorer = 3; + float score = 4; + map provider_metadata = 5; + bool is_in_pinned_scope = 6; +} + +message CciWithSubrangeWithRetrievalMetadata { + exa.codeium_common_pb.CciWithSubrange cci_with_subrange = 1; + exa.context_module_pb.RetrievedCodeContextItemMetadata metadata = 2; +} + +message CodeContextItemWithRetrievalMetadata { + exa.codeium_common_pb.CodeContextItem code_context_item = 1; + exa.context_module_pb.RetrievedCodeContextItemMetadata metadata = 2; +} + +message FileNameWithRetrievalMetadata { + string absolute_uri = 1; + exa.context_module_pb.RetrievedCodeContextItemMetadata metadata = 2; +} + +message CodeContextProviderMetadata { + float relative_weight = 1; +} + +message ContextModuleStats { + exa.context_module_pb.ContextModuleStateStats context_module_state_stats = 1; + exa.context_module_pb.CodeContextItemIndexStats code_context_item_index_stats = 2; + int64 get_stats_latency_ms = 3; + int64 context_module_age_s = 4; +} + +message ContextModuleStateStats { + int64 cci_per_source_bytes = 1; + int64 active_document_bytes = 2; + int64 other_open_documents_bytes = 3; +} + +message CodeContextItemIndexStats { + int64 all_ccis_bytes = 1; + int64 num_ccis_tracked = 2; + int64 term_frequency_map_bytes = 3; + int64 num_terms_tracked = 4; + int64 file_to_cci_map_bytes = 5; + int64 num_files_tracked = 6; + int64 last_modified_bytes = 7; + int64 hash_map_bytes = 8; +} + +message PersistentContextModuleState { + exa.codeium_common_pb.Guideline pinned_guideline = 1; + exa.codeium_common_pb.ContextScope pinned_context_scope = 2; +} + +message ContextModuleResult { + repeated exa.context_module_pb.CciWithSubrangeWithRetrievalMetadata retrieved_cci_with_subranges = 1; + exa.codeium_common_pb.Document active_document = 2; + exa.codeium_common_pb.DocumentOutline active_document_outline = 5; + exa.context_module_pb.LocalNodeState local_node_state = 3; + exa.codeium_common_pb.Guideline guideline = 4; + repeated exa.codeium_common_pb.Document open_documents = 6; + repeated exa.codeium_common_pb.TerminalShellCommand running_terminal_commands = 8; + exa.codeium_common_pb.BrowserStateSnapshot browser_state_snapshot = 9; +} + +message LocalNodeState { + exa.codeium_common_pb.CodeContextItem current_node = 1; + exa.codeium_common_pb.CodeContextItem closest_above_node = 2; + exa.codeium_common_pb.CodeContextItem closest_below_node = 3; +} diff --git a/proto/src/exa/cortex_pb/cortex.desc.bin b/proto/src/exa/cortex_pb/cortex.desc.bin new file mode 100644 index 00000000..2dc1843d Binary files /dev/null and b/proto/src/exa/cortex_pb/cortex.desc.bin differ diff --git a/proto/src/exa/cortex_pb/cortex.proto b/proto/src/exa/cortex_pb/cortex.proto new file mode 100644 index 00000000..d299393b --- /dev/null +++ b/proto/src/exa/cortex_pb/cortex.proto @@ -0,0 +1,3789 @@ +syntax = "proto3"; +package exa.cortex_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/cortex_pb"; + +import "exa/browser_pb/browser.proto"; +import "exa/chat_client_server_pb/chat_client_server.proto"; +import "exa/chat_pb/chat.proto"; +import "exa/codeium_common_pb/codeium_common.proto"; +import "exa/context_module_pb/context_module.proto"; +import "exa/diff_action_pb/diff_action.proto"; +import "exa/google/internal/cloud/code/v1internal/model_configs.proto"; +import "exa/opensearch_clients_pb/opensearch_clients.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +enum InteractiveCascadeEditImportance { + INTERACTIVE_CASCADE_EDIT_IMPORTANCE_UNSPECIFIED = 0; + INTERACTIVE_CASCADE_EDIT_IMPORTANCE_LOW = 1; + INTERACTIVE_CASCADE_EDIT_IMPORTANCE_MEDIUM = 2; + INTERACTIVE_CASCADE_EDIT_IMPORTANCE_HIGH = 3; +} + +enum ActionStatus { + ACTION_STATUS_UNSPECIFIED = 0; + ACTION_STATUS_ERROR = 1; + ACTION_STATUS_INITIALIZED = 2; + ACTION_STATUS_PREPARING = 3; + ACTION_STATUS_PREPARED = 4; + ACTION_STATUS_APPLYING = 5; + ACTION_STATUS_APPLIED = 6; + ACTION_STATUS_REJECTED = 7; +} + +enum PlanStatus { + PLAN_STATUS_UNSPECIFIED = 0; + PLAN_STATUS_INITIALIZED = 1; + PLAN_STATUS_PLANNING = 2; + PLAN_STATUS_PLANNED = 3; + PLAN_STATUS_ERROR = 4; +} + +enum CortexRequestSource { + CORTEX_REQUEST_SOURCE_UNSPECIFIED = 0; + CORTEX_REQUEST_SOURCE_CASCADE = 1; + CORTEX_REQUEST_SOURCE_USER_IMPLICIT = 2; +} + +enum WorkspaceType { + WORKSPACE_TYPE_UNSPECIFIED = 0; + WORKSPACE_TYPE_GIT = 1; + WORKSPACE_TYPE_PIPER = 2; + WORKSPACE_TYPE_FIG = 3; + WORKSPACE_TYPE_JJ_PIPER = 4; + WORKSPACE_TYPE_JJ_GIT = 5; +} + +enum CortexTrajectorySource { + CORTEX_TRAJECTORY_SOURCE_UNSPECIFIED = 0; + CORTEX_TRAJECTORY_SOURCE_CASCADE_CLIENT = 1; + CORTEX_TRAJECTORY_SOURCE_EXPLAIN_PROBLEM = 2; + CORTEX_TRAJECTORY_SOURCE_REFACTOR_FUNCTION = 3; + CORTEX_TRAJECTORY_SOURCE_EVAL = 4; + CORTEX_TRAJECTORY_SOURCE_EVAL_TASK = 5; + CORTEX_TRAJECTORY_SOURCE_ASYNC_PRR = 6; + CORTEX_TRAJECTORY_SOURCE_ASYNC_CF = 7; + CORTEX_TRAJECTORY_SOURCE_ASYNC_SL = 8; + CORTEX_TRAJECTORY_SOURCE_ASYNC_PRD = 9; + CORTEX_TRAJECTORY_SOURCE_ASYNC_CM = 10; + CORTEX_TRAJECTORY_SOURCE_INTERACTIVE_CASCADE = 12; + CORTEX_TRAJECTORY_SOURCE_REPLAY = 13; + CORTEX_TRAJECTORY_SOURCE_SDK = 15; + CORTEX_TRAJECTORY_SOURCE_SUBAGENT = 16; + CORTEX_TRAJECTORY_SOURCE_CLI = 17; +} + +enum CortexTrajectoryType { + CORTEX_TRAJECTORY_TYPE_UNSPECIFIED = 0; + CORTEX_TRAJECTORY_TYPE_USER_MAINLINE = 1; + CORTEX_TRAJECTORY_TYPE_USER_GRANULAR = 2; + CORTEX_TRAJECTORY_TYPE_SUPERCOMPLETE = 3; + CORTEX_TRAJECTORY_TYPE_CASCADE = 4; + CORTEX_TRAJECTORY_TYPE_CHECKPOINT = 6; + CORTEX_TRAJECTORY_TYPE_APPLIER = 11; + CORTEX_TRAJECTORY_TYPE_TOOL_CALL_PROPOSAL = 12; + CORTEX_TRAJECTORY_TYPE_TRAJECTORY_CHOICE = 13; + CORTEX_TRAJECTORY_TYPE_LLM_JUDGE = 14; + CORTEX_TRAJECTORY_TYPE_INTERACTIVE_CASCADE = 17; + CORTEX_TRAJECTORY_TYPE_BRAIN_UPDATE = 16; + CORTEX_TRAJECTORY_TYPE_BROWSER = 20; + CORTEX_TRAJECTORY_TYPE_KNOWLEDGE_GENERATION = 21; +} + +enum CortexTrajectoryReferenceType { + CORTEX_TRAJECTORY_REFERENCE_TYPE_UNSPECIFIED = 0; + CORTEX_TRAJECTORY_REFERENCE_TYPE_PRUNE = 1; + CORTEX_TRAJECTORY_REFERENCE_TYPE_FORK = 2; +} + +enum RetryReason { + RETRY_REASON_UNSPECIFIED = 0; + RETRY_REASON_API_RETRYABLE = 1; + RETRY_REASON_MODEL_CORRECTABLE = 2; + RETRY_REASON_NON_RECOVERABLE = 3; +} + +enum TruncationReason { + TRUNCATION_REASON_UNSPECIFIED = 0; + TRUNCATION_REASON_PROMPT_CACHE_TTL_EXPIRED = 1; + TRUNCATION_REASON_MAX_TOKEN_LIMIT = 2; +} + +enum CortexStepSource { + CORTEX_STEP_SOURCE_UNSPECIFIED = 0; + CORTEX_STEP_SOURCE_MODEL = 2; + CORTEX_STEP_SOURCE_USER_IMPLICIT = 3; + CORTEX_STEP_SOURCE_USER_EXPLICIT = 4; + CORTEX_STEP_SOURCE_SYSTEM = 5; + CORTEX_STEP_SOURCE_SYSTEM_SDK = 6; +} + +enum CortexStepCreditReason { + CORTEX_STEP_CREDIT_REASON_UNSPECIFIED = 0; + CORTEX_STEP_CREDIT_REASON_LINT_FIXING_DISCOUNT = 1; +} + +enum ExecutionAsyncLevel { + EXECUTION_ASYNC_LEVEL_UNSPECIFIED = 0; + EXECUTION_ASYNC_LEVEL_INVOCATION_BLOCKING = 1; + EXECUTION_ASYNC_LEVEL_EXECUTOR_BLOCKING = 2; + EXECUTION_ASYNC_LEVEL_FULL_ASYNC = 3; +} + +enum CortexStepStatus { + CORTEX_STEP_STATUS_UNSPECIFIED = 0; + CORTEX_STEP_STATUS_GENERATING = 8; + CORTEX_STEP_STATUS_QUEUED = 11; + CORTEX_STEP_STATUS_PENDING = 1; + CORTEX_STEP_STATUS_RUNNING = 2; + CORTEX_STEP_STATUS_WAITING = 9; + CORTEX_STEP_STATUS_DONE = 3; + CORTEX_STEP_STATUS_INVALID = 4; + CORTEX_STEP_STATUS_CLEARED = 5; + CORTEX_STEP_STATUS_CANCELED = 6; + CORTEX_STEP_STATUS_ERROR = 7; + CORTEX_STEP_STATUS_INTERRUPTED = 12; +} + +enum CascadeRunStatus { + CASCADE_RUN_STATUS_UNSPECIFIED = 0; + CASCADE_RUN_STATUS_IDLE = 1; + CASCADE_RUN_STATUS_RUNNING = 2; + CASCADE_RUN_STATUS_CANCELING = 3; + CASCADE_RUN_STATUS_BUSY = 4; +} + +enum BrainFilterStrategy { + BRAIN_FILTER_STRATEGY_UNSPECIFIED = 0; + BRAIN_FILTER_STRATEGY_NO_SYSTEM_INJECTED_STEPS = 1; + BRAIN_FILTER_STRATEGY_NO_MEMORIES = 2; +} + +enum SectionOverrideMode { + SECTION_OVERRIDE_MODE_UNSPECIFIED = 0; + SECTION_OVERRIDE_MODE_OVERRIDE = 1; + SECTION_OVERRIDE_MODE_APPEND = 2; + SECTION_OVERRIDE_MODE_PREPEND = 3; +} + +enum AgentMode { + AGENT_MODE_UNSPECIFIED = 0; + AGENT_MODE_PLANNING = 1; + AGENT_MODE_EXECUTION = 2; + AGENT_MODE_VERIFICATION = 3; +} + +enum ReplaceToolVariant { + REPLACE_TOOL_VARIANT_UNSPECIFIED = 0; + REPLACE_TOOL_VARIANT_REPLACEMENT_CHUNK = 1; + REPLACE_TOOL_VARIANT_SEARCH_REPLACE = 2; + REPLACE_TOOL_VARIANT_APPLY_PATCH = 3; + REPLACE_TOOL_VARIANT_SINGLE_MULTI = 4; +} + +enum BrowserSubagentMode { + BROWSER_SUBAGENT_MODE_UNSPECIFIED = 0; + BROWSER_SUBAGENT_MODE_MAIN_AGENT_ONLY = 1; + BROWSER_SUBAGENT_MODE_SUBAGENT_PRIMARILY = 2; + BROWSER_SUBAGENT_MODE_BOTH_AGENTS = 3; + BROWSER_SUBAGENT_MODE_SUBAGENT_ONLY = 4; +} + +enum BrowserToolSetMode { + BROWSER_TOOL_SET_MODE_UNSPECIFIED = 0; + BROWSER_TOOL_SET_MODE_ALL_TOOLS = 1; + BROWSER_TOOL_SET_MODE_PIXEL_ONLY = 2; + BROWSER_TOOL_SET_MODE_ALL_INPUT_PIXEL_OUTPUT = 3; +} + +enum BrowserActionWaitingReason { + BROWSER_ACTION_WAITING_REASON_UNSPECIFIED = 0; + BROWSER_ACTION_WAITING_REASON_PAGE_ACCESS = 1; + BROWSER_ACTION_WAITING_REASON_ACTION_PERMISSION = 2; + BROWSER_ACTION_WAITING_REASON_PAGE_ACCESS_AND_ACTION_PERMISSION = 3; +} + +enum PermissionScope { + PERMISSION_SCOPE_UNSPECIFIED = 0; + PERMISSION_SCOPE_ONCE = 1; + PERMISSION_SCOPE_CONVERSATION = 2; +} + +enum CortexStepType { + CORTEX_STEP_TYPE_UNSPECIFIED = 0; + CORTEX_STEP_TYPE_DUMMY = 1; + CORTEX_STEP_TYPE_FINISH = 2; + CORTEX_STEP_TYPE_MQUERY = 4; + CORTEX_STEP_TYPE_CODE_ACTION = 5; + CORTEX_STEP_TYPE_GIT_COMMIT = 6; + CORTEX_STEP_TYPE_GREP_SEARCH = 7; + CORTEX_STEP_TYPE_COMPILE = 10; + CORTEX_STEP_TYPE_VIEW_CODE_ITEM = 13; + CORTEX_STEP_TYPE_ERROR_MESSAGE = 17; + CORTEX_STEP_TYPE_RUN_COMMAND = 21; + CORTEX_STEP_TYPE_FIND = 25; + CORTEX_STEP_TYPE_SUGGESTED_RESPONSES = 27; + CORTEX_STEP_TYPE_COMMAND_STATUS = 28; + CORTEX_STEP_TYPE_READ_URL_CONTENT = 31; + CORTEX_STEP_TYPE_VIEW_CONTENT_CHUNK = 32; + CORTEX_STEP_TYPE_SEARCH_WEB = 33; + CORTEX_STEP_TYPE_MCP_TOOL = 38; + CORTEX_STEP_TYPE_CLIPBOARD = 45; + CORTEX_STEP_TYPE_VIEW_FILE_OUTLINE = 47; + CORTEX_STEP_TYPE_LIST_RESOURCES = 51; + CORTEX_STEP_TYPE_READ_RESOURCE = 52; + CORTEX_STEP_TYPE_LINT_DIFF = 53; + CORTEX_STEP_TYPE_OPEN_BROWSER_URL = 56; + CORTEX_STEP_TYPE_RUN_EXTENSION_CODE = 57; + CORTEX_STEP_TYPE_TRAJECTORY_SEARCH = 60; + CORTEX_STEP_TYPE_EXECUTE_BROWSER_JAVASCRIPT = 61; + CORTEX_STEP_TYPE_LIST_BROWSER_PAGES = 62; + CORTEX_STEP_TYPE_CAPTURE_BROWSER_SCREENSHOT = 63; + CORTEX_STEP_TYPE_CLICK_BROWSER_PIXEL = 64; + CORTEX_STEP_TYPE_READ_TERMINAL = 65; + CORTEX_STEP_TYPE_CAPTURE_BROWSER_CONSOLE_LOGS = 66; + CORTEX_STEP_TYPE_READ_BROWSER_PAGE = 67; + CORTEX_STEP_TYPE_BROWSER_GET_DOM = 68; + CORTEX_STEP_TYPE_CODE_SEARCH = 73; + CORTEX_STEP_TYPE_BROWSER_INPUT = 74; + CORTEX_STEP_TYPE_BROWSER_MOVE_MOUSE = 75; + CORTEX_STEP_TYPE_BROWSER_SELECT_OPTION = 76; + CORTEX_STEP_TYPE_BROWSER_SCROLL_UP = 77; + CORTEX_STEP_TYPE_BROWSER_SCROLL_DOWN = 78; + CORTEX_STEP_TYPE_BROWSER_CLICK_ELEMENT = 79; + CORTEX_STEP_TYPE_BROWSER_LIST_NETWORK_REQUESTS = 123; + CORTEX_STEP_TYPE_BROWSER_GET_NETWORK_REQUEST = 124; + CORTEX_STEP_TYPE_BROWSER_PRESS_KEY = 80; + CORTEX_STEP_TYPE_TASK_BOUNDARY = 81; + CORTEX_STEP_TYPE_NOTIFY_USER = 82; + CORTEX_STEP_TYPE_CODE_ACKNOWLEDGEMENT = 83; + CORTEX_STEP_TYPE_INTERNAL_SEARCH = 84; + CORTEX_STEP_TYPE_BROWSER_SUBAGENT = 85; + CORTEX_STEP_TYPE_BROWSER_SCROLL = 88; + CORTEX_STEP_TYPE_KNOWLEDGE_GENERATION = 89; + CORTEX_STEP_TYPE_GENERATE_IMAGE = 91; + CORTEX_STEP_TYPE_BROWSER_RESIZE_WINDOW = 96; + CORTEX_STEP_TYPE_BROWSER_DRAG_PIXEL_TO_PIXEL = 97; + CORTEX_STEP_TYPE_BROWSER_MOUSE_WHEEL = 113; + CORTEX_STEP_TYPE_BROWSER_MOUSE_UP = 120; + CORTEX_STEP_TYPE_BROWSER_MOUSE_DOWN = 121; + CORTEX_STEP_TYPE_BROWSER_REFRESH_PAGE = 125; + CORTEX_STEP_TYPE_CONVERSATION_HISTORY = 98; + CORTEX_STEP_TYPE_KNOWLEDGE_ARTIFACTS = 99; + CORTEX_STEP_TYPE_SEND_COMMAND_INPUT = 100; + CORTEX_STEP_TYPE_SYSTEM_MESSAGE = 101; + CORTEX_STEP_TYPE_WAIT = 102; + CORTEX_STEP_TYPE_KI_INSERTION = 116; + CORTEX_STEP_TYPE_WORKSPACE_API = 122; + CORTEX_STEP_TYPE_INVOKE_SUBAGENT = 127; + CORTEX_STEP_TYPE_GENERIC = 132; + CORTEX_STEP_TYPE_RPC_ACTION = 136; + CORTEX_STEP_TYPE_USER_INPUT = 14; + CORTEX_STEP_TYPE_PLANNER_RESPONSE = 15; + CORTEX_STEP_TYPE_VIEW_FILE = 8; + CORTEX_STEP_TYPE_LIST_DIRECTORY = 9; + CORTEX_STEP_TYPE_CHECKPOINT = 23; + CORTEX_STEP_TYPE_FILE_CHANGE = 86; + CORTEX_STEP_TYPE_DELETE_DIRECTORY = 92; + CORTEX_STEP_TYPE_MOVE = 87; + CORTEX_STEP_TYPE_EPHEMERAL_MESSAGE = 90; + CORTEX_STEP_TYPE_COMPILE_APPLET = 93; + CORTEX_STEP_TYPE_INSTALL_APPLET_DEPENDENCIES = 94; + CORTEX_STEP_TYPE_INSTALL_APPLET_PACKAGE = 95; + CORTEX_STEP_TYPE_RESTART_DEV_SERVER = 110; + CORTEX_STEP_TYPE_SHELL_EXEC = 112; + CORTEX_STEP_TYPE_LINT_APPLET = 114; + CORTEX_STEP_TYPE_WRITE_BLOB = 128; + CORTEX_STEP_TYPE_SET_UP_FIREBASE = 108; + CORTEX_STEP_TYPE_DEPLOY_FIREBASE = 111; + CORTEX_STEP_TYPE_SET_UP_CLOUD_SQL = 133; + CORTEX_STEP_TYPE_CLOUD_SQL_UPDATE_SCHEMA = 135; + CORTEX_STEP_TYPE_CLOUD_SQL_EXECUTE_SQL = 137; + CORTEX_STEP_TYPE_AGENCY_TOOL_CALL = 103; + CORTEX_STEP_TYPE_PLAN_INPUT = 3; + CORTEX_STEP_TYPE_PROPOSE_CODE = 24; + CORTEX_STEP_TYPE_MANAGER_FEEDBACK = 39; + CORTEX_STEP_TYPE_TOOL_CALL_PROPOSAL = 40; + CORTEX_STEP_TYPE_TOOL_CALL_CHOICE = 41; + CORTEX_STEP_TYPE_TRAJECTORY_CHOICE = 42; + CORTEX_STEP_TYPE_POST_PR_REVIEW = 49; + CORTEX_STEP_TYPE_FIND_ALL_REFERENCES = 54; + CORTEX_STEP_TYPE_BRAIN_UPDATE = 55; + CORTEX_STEP_TYPE_PROPOSAL_FEEDBACK = 59; + CORTEX_STEP_TYPE_RETRIEVE_MEMORY = 34; + CORTEX_STEP_TYPE_MEMORY = 29; +} + +enum CheckpointType { + CHECKPOINT_TYPE_UNSPECIFIED = 0; +} + +enum SemanticCodebaseSearchType { + SEMANTIC_CODEBASE_SEARCH_TYPE_UNSPECIFIED = 0; + SEMANTIC_CODEBASE_SEARCH_TYPE_MQUERY = 1; + SEMANTIC_CODEBASE_SEARCH_TYPE_VECTOR_INDEX = 2; +} + +enum AcknowledgementType { + ACKNOWLEDGEMENT_TYPE_UNSPECIFIED = 0; + ACKNOWLEDGEMENT_TYPE_ACCEPT = 1; + ACKNOWLEDGEMENT_TYPE_REJECT = 2; + ACKNOWLEDGEMENT_TYPE_STALE = 3; + ACKNOWLEDGEMENT_TYPE_CLEARED = 4; +} + +enum CodeHeuristicFailure { + CODE_HEURISTIC_FAILURE_UNSPECIFIED = 0; + CODE_HEURISTIC_FAILURE_LAZY_COMMENT = 1; + CODE_HEURISTIC_FAILURE_DELETED_LINES = 2; +} + +enum FileChangeType { + FILE_CHANGE_TYPE_UNSPECIFIED = 0; + FILE_CHANGE_TYPE_CREATE = 1; + FILE_CHANGE_TYPE_EDIT = 2; + FILE_CHANGE_TYPE_DELETE = 3; +} + +enum FindResultType { + FIND_RESULT_TYPE_UNSPECIFIED = 0; + FIND_RESULT_TYPE_FILE = 1; + FIND_RESULT_TYPE_DIRECTORY = 2; + FIND_RESULT_TYPE_ANY = 3; +} + +enum CortexStepCompileTool { + CORTEX_STEP_COMPILE_TOOL_UNSPECIFIED = 0; + CORTEX_STEP_COMPILE_TOOL_PYLINT = 1; +} + +enum SetUpFirebaseErrorCode { + ERROR_CODE_OK = 0; + ERROR_CODE_CANCELLED = 1; + ERROR_CODE_UNKNOWN = 2; + ERROR_CODE_INVALID_ARGUMENT = 3; + ERROR_CODE_DEADLINE_EXCEEDED = 4; + ERROR_CODE_NOT_FOUND = 5; + ERROR_CODE_ALREADY_EXISTS = 6; + ERROR_CODE_PERMISSION_DENIED = 7; + ERROR_CODE_UNAUTHENTICATED = 16; + ERROR_CODE_RESOURCE_EXHAUSTED = 8; + ERROR_CODE_FAILED_PRECONDITION = 9; + ERROR_CODE_ABORTED = 10; + ERROR_CODE_OUT_OF_RANGE = 11; + ERROR_CODE_UNIMPLEMENTED = 12; + ERROR_CODE_INTERNAL = 13; + ERROR_CODE_UNAVAILABLE = 14; + ERROR_CODE_DATA_LOSS = 15; +} + +enum SetUpFirebaseRequest { + SET_UP_FIREBASE_REQUEST_UNSPECIFIED = 0; + SET_UP_FIREBASE_REQUEST_FORCE_SHOW_SET_UP_UI = 1; + SET_UP_FIREBASE_REQUEST_PROVISION = 2; +} + +enum SetUpFirebaseResult { + SET_UP_FIREBASE_RESULT_UNSPECIFIED = 0; + SET_UP_FIREBASE_RESULT_SHOW_SET_UP_UI = 1; + SET_UP_FIREBASE_RESULT_IMPLEMENT_FIREBASE = 2; + SET_UP_FIREBASE_RESULT_TOS_ERROR = 3; + SET_UP_FIREBASE_RESULT_PROVISIONING_ERROR = 4; +} + +enum SetUpCloudSqlErrorCode { + SET_UP_CLOUD_SQL_ERROR_CODE_OK = 0; + SET_UP_CLOUD_SQL_ERROR_CODE_CANCELLED = 1; + SET_UP_CLOUD_SQL_ERROR_CODE_UNKNOWN = 2; + SET_UP_CLOUD_SQL_ERROR_CODE_INVALID_ARGUMENT = 3; + SET_UP_CLOUD_SQL_ERROR_CODE_DEADLINE_EXCEEDED = 4; + SET_UP_CLOUD_SQL_ERROR_CODE_NOT_FOUND = 5; + SET_UP_CLOUD_SQL_ERROR_CODE_ALREADY_EXISTS = 6; + SET_UP_CLOUD_SQL_ERROR_CODE_PERMISSION_DENIED = 7; + SET_UP_CLOUD_SQL_ERROR_CODE_UNAUTHENTICATED = 16; + SET_UP_CLOUD_SQL_ERROR_CODE_RESOURCE_EXHAUSTED = 8; + SET_UP_CLOUD_SQL_ERROR_CODE_FAILED_PRECONDITION = 9; + SET_UP_CLOUD_SQL_ERROR_CODE_ABORTED = 10; + SET_UP_CLOUD_SQL_ERROR_CODE_OUT_OF_RANGE = 11; + SET_UP_CLOUD_SQL_ERROR_CODE_UNIMPLEMENTED = 12; + SET_UP_CLOUD_SQL_ERROR_CODE_INTERNAL = 13; + SET_UP_CLOUD_SQL_ERROR_CODE_UNAVAILABLE = 14; + SET_UP_CLOUD_SQL_ERROR_CODE_DATA_LOSS = 15; +} + +enum SetUpCloudSqlResult { + SET_UP_CLOUD_SQL_RESULT_UNSPECIFIED = 0; + SET_UP_CLOUD_SQL_RESULT_IMPLEMENT_CLOUDSQL = 1; + SET_UP_CLOUD_SQL_RESULT_PROVISIONING_ERROR = 2; +} + +enum CloudSQLUpdateSchemaErrorCode { + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_OK = 0; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_CANCELLED = 1; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_UNKNOWN = 2; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_INVALID_ARGUMENT = 3; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_DEADLINE_EXCEEDED = 4; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_NOT_FOUND = 5; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_ALREADY_EXISTS = 6; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_PERMISSION_DENIED = 7; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_UNAUTHENTICATED = 16; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_RESOURCE_EXHAUSTED = 8; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_FAILED_PRECONDITION = 9; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_ABORTED = 10; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_OUT_OF_RANGE = 11; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_UNIMPLEMENTED = 12; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_INTERNAL = 13; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_UNAVAILABLE = 14; + CLOUD_SQL_UPDATE_SCHEMA_ERROR_CODE_DATA_LOSS = 15; +} + +enum CloudSQLUpdateSchemaResult { + CLOUD_SQL_UPDATE_SCHEMA_RESULT_UNSPECIFIED = 0; + CLOUD_SQL_UPDATE_SCHEMA_RESULT_SUCCESS = 1; + CLOUD_SQL_UPDATE_SCHEMA_RESULT_ERROR = 2; +} + +enum EditNotebookOperation { + EDIT_NOTEBOOK_OPERATION_UNSPECIFIED = 0; + EDIT_NOTEBOOK_OPERATION_INSERT_AFTER = 1; + EDIT_NOTEBOOK_OPERATION_INSERT_BEFORE = 2; + EDIT_NOTEBOOK_OPERATION_REPLACE_CELLS = 3; + EDIT_NOTEBOOK_OPERATION_DELETE_CELLS = 4; + EDIT_NOTEBOOK_OPERATION_OVERWRITE_NOTEBOOK = 5; +} + +enum AutoRunDecision { + AUTO_RUN_DECISION_UNSPECIFIED = 0; + AUTO_RUN_DECISION_USER_ALLOW = 1; + AUTO_RUN_DECISION_USER_DENY = 2; + AUTO_RUN_DECISION_SYSTEM_ALLOW = 3; + AUTO_RUN_DECISION_SYSTEM_DENY = 4; + AUTO_RUN_DECISION_MODEL_ALLOW = 5; + AUTO_RUN_DECISION_MODEL_DENY = 6; + AUTO_RUN_DECISION_DEFAULT_ALLOW = 7; + AUTO_RUN_DECISION_DEFAULT_DENY = 8; +} + +enum SearchWebType { + SEARCH_WEB_TYPE_UNSPECIFIED = 0; + SEARCH_WEB_TYPE_WEB = 1; + SEARCH_WEB_TYPE_IMAGE = 2; +} + +enum DeployWebAppFileUploadStatus { + DEPLOY_WEB_APP_FILE_UPLOAD_STATUS_UNSPECIFIED = 0; + DEPLOY_WEB_APP_FILE_UPLOAD_STATUS_PENDING = 1; + DEPLOY_WEB_APP_FILE_UPLOAD_STATUS_IN_PROGRESS = 2; + DEPLOY_WEB_APP_FILE_UPLOAD_STATUS_SUCCESS = 3; + DEPLOY_WEB_APP_FILE_UPLOAD_STATUS_FAILURE = 4; +} + +enum ExecutorTerminationReason { + EXECUTOR_TERMINATION_REASON_UNSPECIFIED = 0; + EXECUTOR_TERMINATION_REASON_ERROR = 1; + EXECUTOR_TERMINATION_REASON_USER_CANCELED = 2; + EXECUTOR_TERMINATION_REASON_MAX_INVOCATIONS = 3; + EXECUTOR_TERMINATION_REASON_NO_TOOL_CALL = 4; + EXECUTOR_TERMINATION_REASON_MAX_FORCED_INVOCATIONS = 6; + EXECUTOR_TERMINATION_REASON_EARLY_CONTINUE = 7; + EXECUTOR_TERMINATION_REASON_TERMINAL_STEP_TYPE = 8; + EXECUTOR_TERMINATION_REASON_TERMINAL_CUSTOM_HOOK = 9; + EXECUTOR_TERMINATION_REASON_INJECTED_RESPONSE = 10; +} + +enum LintDiffType { + LINT_DIFF_TYPE_UNSPECIFIED = 0; + LINT_DIFF_TYPE_DELETE = 1; + LINT_DIFF_TYPE_INSERT = 2; + LINT_DIFF_TYPE_UNCHANGED = 3; +} + +enum BrainEntryType { + BRAIN_ENTRY_TYPE_UNSPECIFIED = 0; + BRAIN_ENTRY_TYPE_PLAN = 1; + BRAIN_ENTRY_TYPE_TASK = 2; +} + +enum TaskStatus { + TASK_STATUS_UNSPECIFIED = 0; + TASK_STATUS_TODO = 1; + TASK_STATUS_IN_PROGRESS = 2; + TASK_STATUS_DONE = 3; +} + +enum TaskDeltaType { + TASK_DELTA_TYPE_UNSPECIFIED = 0; + TASK_DELTA_TYPE_ADD = 1; + TASK_DELTA_TYPE_PRUNE = 2; + TASK_DELTA_TYPE_DELETE = 3; + TASK_DELTA_TYPE_UPDATE = 4; + TASK_DELTA_TYPE_MOVE = 5; +} + +enum BrainUpdateTrigger { + BRAIN_UPDATE_TRIGGER_UNSPECIFIED = 0; + BRAIN_UPDATE_TRIGGER_SYSTEM_FORCED = 1; + BRAIN_UPDATE_TRIGGER_USER_REQUESTED = 2; + BRAIN_UPDATE_TRIGGER_USER_NEW_INFO = 3; + BRAIN_UPDATE_TRIGGER_RESEARCH_NEW_INFO = 4; +} + +enum RecordingGenerationStatus { + RECORDING_GENERATION_STATUS_UNSPECIFIED = 0; + RECORDING_GENERATION_STATUS_GENERATING = 1; + RECORDING_GENERATION_STATUS_ERROR = 2; + RECORDING_GENERATION_STATUS_COMPLETED = 3; +} + +enum CommandOutputPriority { + COMMAND_OUTPUT_PRIORITY_UNSPECIFIED = 0; + COMMAND_OUTPUT_PRIORITY_TOP = 1; + COMMAND_OUTPUT_PRIORITY_BOTTOM = 2; + COMMAND_OUTPUT_PRIORITY_SPLIT = 3; +} + +enum CortexMemorySource { + CORTEX_MEMORY_SOURCE_UNSPECIFIED = 0; + CORTEX_MEMORY_SOURCE_USER = 1; + CORTEX_MEMORY_SOURCE_CASCADE = 2; +} + +enum CortexMemoryTrigger { + CORTEX_MEMORY_TRIGGER_UNSPECIFIED = 0; + CORTEX_MEMORY_TRIGGER_ALWAYS_ON = 1; + CORTEX_MEMORY_TRIGGER_MODEL_DECISION = 2; + CORTEX_MEMORY_TRIGGER_MANUAL = 3; + CORTEX_MEMORY_TRIGGER_GLOB = 4; +} + +enum MemoryActionType { + MEMORY_ACTION_TYPE_UNSPECIFIED = 0; + MEMORY_ACTION_TYPE_CREATE = 1; + MEMORY_ACTION_TYPE_UPDATE = 2; + MEMORY_ACTION_TYPE_DELETE = 3; +} + +enum McpAuthProviderType { + MCP_AUTH_PROVIDER_TYPE_UNSPECIFIED = 0; + MCP_AUTH_PROVIDER_TYPE_GOOGLE_CREDENTIALS = 1; +} + +enum McpToolBackgroundMode { + MCP_TOOL_BACKGROUND_MODE_UNSPECIFIED = 0; + MCP_TOOL_BACKGROUND_MODE_OFF = 1; + MCP_TOOL_BACKGROUND_MODE_ALWAYS = 2; +} + +enum CortexStepManagerFeedbackStatus { + CORTEX_STEP_MANAGER_FEEDBACK_STATUS_UNSPECIFIED = 0; + CORTEX_STEP_MANAGER_FEEDBACK_STATUS_APPROVED = 1; + CORTEX_STEP_MANAGER_FEEDBACK_STATUS_DENIED = 2; + CORTEX_STEP_MANAGER_FEEDBACK_STATUS_ERROR = 3; +} + +enum McpServerStatus { + MCP_SERVER_STATUS_UNSPECIFIED = 0; + MCP_SERVER_STATUS_PENDING = 1; + MCP_SERVER_STATUS_READY = 2; + MCP_SERVER_STATUS_ERROR = 3; +} + +enum EphemeralMessagePersistenceLevel { + EPHEMERAL_MESSAGE_PERSISTENCE_LEVEL_UNSPECIFIED = 0; + EPHEMERAL_MESSAGE_PERSISTENCE_LEVEL_ALL = 1; + EPHEMERAL_MESSAGE_PERSISTENCE_LEVEL_LATEST_ONLY = 2; +} + +enum BrowserEphemeralOption { + BROWSER_EPHEMERAL_OPTION_UNSPECIFIED = 0; + BROWSER_EPHEMERAL_OPTION_SCREENSHOT = 1; + BROWSER_EPHEMERAL_OPTION_DOM = 2; +} + +enum TrajectoryShareStatus { + TRAJECTORY_SHARE_STATUS_UNSPECIFIED = 0; + TRAJECTORY_SHARE_STATUS_TEAM = 1; +} + +enum RunExtensionCodeAutoRunDecision { + RUN_EXTENSION_CODE_AUTO_RUN_DECISION_UNSPECIFIED = 0; + RUN_EXTENSION_CODE_AUTO_RUN_DECISION_ALLOWED = 1; + RUN_EXTENSION_CODE_AUTO_RUN_DECISION_DENIED = 2; + RUN_EXTENSION_CODE_AUTO_RUN_DECISION_MODEL_ALLOWED = 3; + RUN_EXTENSION_CODE_AUTO_RUN_DECISION_MODEL_DENIED = 4; +} + +enum TrajectorySearchIdType { + TRAJECTORY_SEARCH_ID_TYPE_UNSPECIFIED = 0; + TRAJECTORY_SEARCH_ID_TYPE_CASCADE_ID = 1; + TRAJECTORY_SEARCH_ID_TYPE_MAINLINE = 2; +} + +enum CodeAcknowledgementScope { + CODE_ACKNOWLEDGEMENT_SCOPE_UNSPECIFIED = 0; + CODE_ACKNOWLEDGEMENT_SCOPE_FILE = 1; + CODE_ACKNOWLEDGEMENT_SCOPE_ALL = 2; + CODE_ACKNOWLEDGEMENT_SCOPE_HUNK = 3; +} + +enum ArtifactReviewStatus { + ARTIFACT_REVIEW_STATUS_UNSPECIFIED = 0; + ARTIFACT_REVIEW_STATUS_PENDING_REVIEW = 1; + ARTIFACT_REVIEW_STATUS_REVIEWED = 2; + ARTIFACT_REVIEW_STATUS_MODIFIED = 3; +} + +enum MessagePriority { + MESSAGE_PRIORITY_UNSPECIFIED = 0; + MESSAGE_PRIORITY_LOW = 1; + MESSAGE_PRIORITY_NORMAL = 2; + MESSAGE_PRIORITY_HIGH = 3; +} + +enum TokenType { + TOKEN_TYPE_UNSPECIFIED = 0; + TOKEN_TYPE_SYSTEM_PROMPT = 1; + TOKEN_TYPE_TOOLS = 2; + TOKEN_TYPE_RULES = 3; + TOKEN_TYPE_MCP_TOOLS = 4; + TOKEN_TYPE_SKILLS = 5; + TOKEN_TYPE_SUBAGENTS = 6; + TOKEN_TYPE_CHAT_MESSAGES = 7; + TOKEN_TYPE_WORKFLOWS = 8; + TOKEN_TYPE_PLUGINS = 9; +} + +enum TokenSource { + TOKEN_SOURCE_UNSPECIFIED = 0; + TOKEN_SOURCE_SYSTEM = 1; + TOKEN_SOURCE_USER = 2; +} + +message WorkflowSpec { + string path = 1; + string name = 2; + string description = 3; + string content = 4; + bool turbo = 5; + bool is_builtin = 6; + exa.cortex_pb.CortexMemoryScope scope = 7; + string base_dir = 8; +} + +message CortexPlanSummaryComponent { + oneof component { + string text = 1; + exa.codeium_common_pb.ContextScopeItem citation = 2; + } +} + +message CodingStepState { + string plan_id = 1; + string goal = 2; + repeated exa.cortex_pb.ActionState action_states = 3; + repeated exa.cortex_pb.CortexStepOutline outlines = 7; + repeated exa.cortex_pb.CortexPlanSummaryComponent summary_components = 8; + string post_summary_text = 9; + bool plan_fully_generated = 4; + bool plan_finished = 5; + exa.cortex_pb.PlanDebugInfo debug_info = 6; + bool plan_summary_confirmed = 10; + bool plan_summary_fully_generated = 11; + repeated exa.context_module_pb.CciWithSubrangeWithRetrievalMetadata cci_list = 12; +} + +message CortexPlanState { + repeated exa.cortex_pb.CortexStepState steps = 1; + repeated exa.cortex_pb.CortexStepOutline outlines = 2; + uint32 current_step_index = 3; + exa.cortex_pb.PlanDebugInfo debug_info = 4; +} + +message CortexStepOutline { + uint32 step_number = 1; + string action_name = 2; + string json_args = 3; + repeated uint32 parent_step_numbers = 4; +} + +message CortexStepState { + oneof step { + exa.cortex_pb.CodingStepState coding = 1; + } +} + +message CortexResearchState { + uint32 total_retrieved_count = 1; + repeated exa.codeium_common_pb.CciWithSubrange top_retrieved_items = 2; + exa.cortex_pb.ResearchDebugInfo debug_info = 3; + repeated exa.codeium_common_pb.CciWithSubrange full_cci_list = 4; +} + +message ResearchDebugInfo { + string query = 1; + repeated string files_scanned = 2; +} + +message CortexWorkflowState { + exa.cortex_pb.CortexRequestSource request_source = 6; + string goal = 1; + exa.cortex_pb.PlanInput plan_input = 2; + exa.cortex_pb.CortexResearchState research_state = 3; + exa.cortex_pb.CortexPlanState plan_state = 4; + string error = 5; +} + +message CortexRunState { + exa.cortex_pb.CortexWorkflowState workflow_state = 1; + exa.codeium_common_pb.GraphExecutionState execution_state = 2; + bool done = 3; +} + +message PlanInput { + string goal = 1; + repeated string next_steps = 5; + repeated string target_directories = 2; + repeated string target_files = 3; + repeated exa.codeium_common_pb.ContextScopeItem scope_items = 4; +} + +message ActionSpec { + oneof spec { + exa.cortex_pb.ActionSpecCommand command = 1; + exa.cortex_pb.ActionSpecCreateFile create_file = 2; + exa.cortex_pb.ActionSpecDeleteFile delete_file = 4; + exa.cortex_pb.ActionSpecSed sed = 5; + } + repeated uint32 parent_step_indices = 3; +} + +message ActionSpecCreateFile { + string instruction = 1; + exa.codeium_common_pb.PathScopeItem path = 2; + repeated exa.codeium_common_pb.CodeContextItem reference_ccis = 3; + bool overwrite = 4; +} + +message ActionSpecDeleteFile { + exa.codeium_common_pb.PathScopeItem path = 1; +} + +message ActionSpecSed { + repeated string expressions = 1; + exa.codeium_common_pb.PathScopeItem path = 3; + map file_content = 2; +} + +message LineRangeTarget { + string absolute_uri = 1; + uint32 start_line = 2; + uint32 end_line = 3; +} + +message CommandContentTarget { + string content = 1; + string absolute_uri = 2; +} + +message ReplacementChunk { + string target_content = 1; + string replacement_content = 2; + bool allow_multiple = 3; + bool target_has_carriage_return = 4; + repeated string context_lines = 5; + int32 start_line = 6; + int32 end_line = 7; + exa.cortex_pb.AcknowledgementType acknowledgement_type = 11; + int32 index = 12; +} + +message ActionSpecCommand { + string instruction = 1; + repeated exa.cortex_pb.ReplacementChunk replacement_chunks = 9; + bool is_edit = 2; + bool use_fast_apply = 8; + oneof target { + exa.codeium_common_pb.CodeContextItem code_context = 3; + exa.codeium_common_pb.PathScopeItem file = 4; + exa.codeium_common_pb.CciWithSubrange cci_with_subrange = 6; + exa.cortex_pb.LineRangeTarget line_range = 7; + exa.cortex_pb.CommandContentTarget content_target = 10; + } + repeated exa.codeium_common_pb.CodeContextItem reference_ccis = 5; + string classification = 11; + exa.cortex_pb.InteractiveCascadeEditImportance importance = 12; +} + +message ActionState { + string step_id = 5; + exa.cortex_pb.ActionStatus status = 1; + exa.cortex_pb.ActionSpec spec = 2; + exa.cortex_pb.ActionResult result = 3; + string error = 4; + uint32 step_version = 6; + uint32 plan_version = 7; +} + +message ActionResult { + oneof result { + exa.cortex_pb.ActionResultEdit edit = 1; + } + bool apply_existing_result = 2; +} + +message ActionDebugInfo { + message DebugInfoEntry { + string key = 1; + string value = 2; + } + repeated exa.cortex_pb.ActionDebugInfo.DebugInfoEntry entries = 1; +} + +message ActionResultEdit { + string absolute_path_migrate_me_to_uri = 1; + exa.diff_action_pb.DiffBlock diff = 2; + string context_prefix = 3; + string context_suffix = 4; + exa.cortex_pb.ActionDebugInfo debug_info = 5; + string prompt_id = 12; + string completion_id = 6; + string file_content_hash = 7; + string absolute_uri = 8; + repeated exa.codeium_common_pb.CodeContextItem result_ccis = 9; + string original_content = 10; + bool create_file = 11; +} + +message RetrievalStatus { + uint32 total_retrieved_count = 1; + repeated exa.codeium_common_pb.CciWithSubrange top_retrieved_items = 2; +} + +message PlanState { + exa.cortex_pb.PlanStatus status = 4; + string plan_id = 1; + exa.cortex_pb.PlanInput plan_input = 2; + repeated exa.cortex_pb.ActionState actions = 3; + exa.cortex_pb.RetrievalStatus retrieval_status = 6; + string error = 5; + exa.cortex_pb.PlanDebugInfo debug_info = 7; +} + +message PlanDebugInfo { + string raw_response = 1; + uint32 plan_tokens = 2; + float plan_cost = 3; + string system_prompt = 4; + repeated exa.chat_pb.ChatMessagePrompt message_prompts = 5; +} + +message CortexPlanConfig { + exa.codeium_common_pb.ChatNodeConfig model_config = 1; + uint32 max_nominal_continuations = 2; + uint32 max_error_continuations = 3; +} + +message CortexConfig { + bool record_telemetry = 11; + bool add_distill_node = 6; + exa.codeium_common_pb.ChatNodeConfig distill_config = 10; + exa.codeium_common_pb.MQueryConfig m_query_config = 8; + string m_query_model_name = 12; + bool use_macro_planner = 1; + exa.cortex_pb.CortexPlanConfig macro_plan_config = 4; + exa.cortex_pb.PlanConfig plan_config = 9; + exa.cortex_pb.CortexPlanConfig code_plan_config = 5; + bool auto_prepare_apply = 2; + uint32 num_prepare_retries = 3; +} + +message PlanConfig { + string plan_model_name = 1; + uint32 max_tokens_per_plan = 2; + float max_token_fraction = 3; + float chat_temperature = 4; + uint64 chat_completion_max_tokens = 5; + bool augment_command = 9; + exa.codeium_common_pb.ExperimentConfig experiment_config = 7; + exa.codeium_common_pb.MQueryConfig m_query_config = 8; +} + +message CortexPlanSummary { + string cortex_id = 1; + exa.cortex_pb.PlanInput plan_input = 2; + google.protobuf.Timestamp created_at = 3; + bool done = 4; +} + +message WorkspaceInitializationData { + exa.cortex_pb.WorkspaceType workspace_type = 1; + oneof data { + exa.cortex_pb.WorkspaceInitializationDataGit git = 2; + exa.cortex_pb.WorkspaceInitializationDataPiper piper = 3; + } +} + +message WorkspaceInitializationDataGit { + exa.cortex_pb.CortexWorkspaceMetadata metadata = 1; + string merge_base_commit_hash = 2; + optional string merge_base_head_patch_string = 3; + optional string head_working_patch_string = 4; + exa.codeium_common_pb.WorkspaceStats workspace_stats = 5; + bool repo_is_public = 6; +} + +message WorkspaceInitializationDataPiper { + string workspace_folder_absolute_uri = 1; + int64 base_cl = 2; + oneof base_state { + int64 base_changelist = 5; + int64 citc_snapshot_id = 4; + } + repeated exa.cortex_pb.FileDiff file_diffs = 3; +} + +message FileDiff { + string depot_path = 1; + oneof file_op { + exa.cortex_pb.FileDiffAdd add = 2; + exa.cortex_pb.FileDiffRemove remove = 3; + exa.cortex_pb.FileDiffModify modify = 4; + } +} + +message FileDiffAdd { + string content = 1; +} + +message FileDiffRemove { +} + +message FileDiffModify { + string diff = 1; +} + +message StateInitializationData { + google.protobuf.Timestamp timestamp = 1; + string state_id = 2; + repeated exa.cortex_pb.WorkspaceInitializationData workspaces = 3; + exa.cortex_pb.AritfactInitializationData artifacts = 4; +} + +message AritfactInitializationData { + string artifact_dir_uri = 1; + string artifact_base_dir_uri = 2; + map compressed_artifact_files = 3; +} + +message CortexWorkspaceMetadata { + string workspace_folder_absolute_uri = 1; + string git_root_absolute_uri = 2; + exa.codeium_common_pb.Repository repository = 3; + string branch_name = 4; +} + +message AgentScriptCommandSpec { + string command = 1; + repeated string args = 2; +} + +message AgentScriptPythonSpec { + string main_py_path_uri = 1; + string requirements_txt_path_uri = 2; + string relative_path_to_main_py = 3; + string relative_path_to_requirements_txt = 4; +} + +message AgentScriptConfigPath { + oneof config_path { + string config_path_uri = 1; + string relative_path_to_config = 2; + } +} + +message AgentCustomization { + string path = 1; + exa.cortex_pb.AgentScriptItem agent = 2; + bool is_global = 3; +} + +message PluginCustomization { + string path = 1; + exa.cortex_pb.PluginItem plugin = 2; + bool is_global = 3; +} + +message PluginItem { + string name = 1; + string description = 2; + bool disabled = 3; +} + +message AgentScriptItem { + string name = 1; + string description = 8; + bool disabled = 9; + bool hidden = 10; + oneof source { + exa.cortex_pb.AgentScriptCommandSpec command_spec = 3; + exa.cortex_pb.AgentScriptPythonSpec python_spec = 4; + exa.cortex_pb.AgentScriptConfigPath config_path = 6; + exa.cortex_pb.CustomAgentSpec config = 7; + exa.cortex_pb.CascadeConfig cascade_config = 11; + } +} + +message CortexTrajectoryMetadata { + repeated exa.cortex_pb.CortexWorkspaceMetadata workspaces = 1; + google.protobuf.Timestamp created_at = 2; + string initialization_state_id = 3; + exa.cortex_pb.AgentScriptItem agent_script = 4; + string parent_conversation_id = 5; + string root_conversation_id = 6; + repeated string workspace_uris = 7; + exa.cortex_pb.SubagentSpec subagent_spec = 8; +} + +message CortexTrajectoryReference { + string trajectory_id = 1; + exa.cortex_pb.CortexTrajectoryType trajectory_type = 3; + int32 step_index = 2; + exa.cortex_pb.CortexStepType step_type = 4; + exa.cortex_pb.CortexTrajectoryReferenceType reference_type = 5; +} + +message ImplicitTrajectoryDescription { + string trajectory_id = 1; + exa.cortex_pb.TrajectoryScope trajectory_scope = 2; + bool current = 3; +} + +message InjectedResponseMetadata { +} + +message CortexStepGeneratorMetadata { + repeated uint32 step_indices = 2; + oneof metadata { + exa.cortex_pb.ChatModelMetadata chat_model = 1; + exa.cortex_pb.InjectedResponseMetadata injected = 7; + } + exa.cortex_pb.CascadePlannerConfig planner_config = 3; + string execution_id = 4; + string error = 5; +} + +message MessagePromptMetadata { + uint32 message_index = 1; + uint32 segment_index = 2; +} + +message SectionJudgeCriteria { + string name = 1; + string description = 2; + optional uint32 weight = 3; +} + +message PromptSectionMetadata { + enum PromptSectionSourceType { + PROMPT_SECTION_SOURCE_TYPE_UNSPECIFIED = 0; + PROMPT_SECTION_SOURCE_TYPE_RAW = 1; + PROMPT_SECTION_SOURCE_TYPE_TEMPLATE = 2; + PROMPT_SECTION_SOURCE_TYPE_INLINE_TEMPLATE = 3; + } + exa.cortex_pb.PromptSectionMetadata.PromptSectionSourceType source_type = 1; + string template_key = 2; + bool is_internal = 3; +} + +message PromptSection { + string title = 1; + string content = 2; + repeated exa.cortex_pb.SectionJudgeCriteria criteria = 3; + exa.cortex_pb.PromptSectionMetadata metadata = 4; + string dynamic_content = 5; + exa.cortex_pb.TokenType token_type = 6; + exa.cortex_pb.TokenSource token_source = 7; + string templated_content = 8; + string templated_dynamic_content = 9; +} + +message RetryInfo { + string sherlog_link = 1; + exa.codeium_common_pb.ModelUsageStats usage = 2; + string error = 3; + string trace_id = 4; + exa.cortex_pb.RetryReason retry_reason = 5; + repeated google.internal.cloud.code.v1internal.Credits consumed_credits = 6; +} + +message ChatModelMetadata { + string system_prompt = 1; + repeated exa.chat_pb.ChatMessagePrompt message_prompts = 2; + repeated exa.cortex_pb.MessagePromptMetadata message_metadata = 10; + exa.codeium_common_pb.Model model = 3; + exa.codeium_common_pb.ModelUsageStats usage = 4; + float model_cost = 5; + uint32 last_cache_index = 6; + exa.chat_pb.ChatToolChoice tool_choice = 7; + repeated exa.chat_pb.ChatToolDefinition tools = 8; + exa.cortex_pb.ChatStartMetadata chat_start_metadata = 9; + google.protobuf.Duration time_to_first_token = 11; + google.protobuf.Duration streaming_duration = 12; + int32 credit_cost = 13; + uint32 retries = 14; + exa.codeium_common_pb.CompletionConfiguration completion_config = 15; + repeated exa.cortex_pb.PromptSection prompt_sections = 16; + repeated exa.cortex_pb.RetryInfo retry_infos = 17; + repeated google.internal.cloud.code.v1internal.Credits consumed_credits = 18; + string response_model = 19; +} + +message ContextWindowMetadata { + int32 estimated_tokens_used = 1; + exa.cortex_pb.TruncationReason truncation_reason = 2; + exa.cortex_pb.TokenBreakdown token_breakdown = 3; +} + +message CacheBreakpointMetadata { + uint32 index = 1; + exa.chat_pb.PromptCacheOptions options = 2; + string content_checksum = 3; +} + +message ChatStartMetadata { + google.protobuf.Timestamp created_at = 4; + uint32 start_step_index = 1; + int32 checkpoint_index = 2; + repeated uint32 steps_covered_by_checkpoint = 3; + int32 latest_stable_message_index = 5; + repeated exa.cortex_pb.CacheBreakpointMetadata cache_breakpoints = 6; + exa.cortex_pb.CacheBreakpointMetadata system_prompt_cache = 7; + google.protobuf.Duration time_since_last_invocation = 8; + exa.cortex_pb.CacheRequestOptions cache_request = 9; + exa.cortex_pb.ContextWindowMetadata context_window_metadata = 10; +} + +message CacheRequestOptions { + bool enabled = 1; + repeated uint32 cache_breakpoint_indices = 2; +} + +message SnapshotMetadata { + string user = 1; + string workspace_id = 2; + uint32 snapshot_version = 3; + exa.cortex_pb.WorkspaceType workspace_type = 4; +} + +message StatusTransition { + exa.cortex_pb.CortexStepStatus updated_status = 1; + google.protobuf.Timestamp timestamp = 2; +} + +message CortexStepInternalMetadata { + repeated exa.cortex_pb.StatusTransition status_transitions = 1; +} + +message CortexStepMetadata { + uint32 step_generation_version = 21; + google.protobuf.Timestamp created_at = 1; + google.protobuf.Timestamp viewable_at = 6; + google.protobuf.Timestamp finished_generating_at = 7; + google.protobuf.Timestamp last_completed_chunk_at = 22; + google.protobuf.Timestamp completed_at = 8; + exa.cortex_pb.CortexStepSource source = 3; + exa.codeium_common_pb.ChatToolCall tool_call = 4; + exa.codeium_common_pb.ChatToolCall modified_tool_call = 29; + repeated string arguments_order = 5; + exa.codeium_common_pb.ModelUsageStats model_usage = 9; + repeated exa.cortex_pb.RetryInfo retry_infos = 28; + float model_cost = 10; + exa.codeium_common_pb.Model generator_model = 11; + exa.codeium_common_pb.ModelOrAlias requested_model = 13; + exa.codeium_common_pb.ModelInfo model_info = 24; + string execution_id = 12; + int32 flow_credits_used = 14; + int32 prompt_credits_used = 15; + repeated exa.cortex_pb.CortexStepCreditReason non_standard_credit_reasons = 18; + repeated exa.codeium_common_pb.ChatToolCall tool_call_choices = 16; + string tool_call_choice_reason = 17; + exa.cortex_pb.CortexRequestSource cortex_request_source = 19; + int32 tool_call_output_tokens = 23; + exa.cortex_pb.SourceTrajectoryStepInfo source_trajectory_step_info = 20; + exa.cortex_pb.SnapshotMetadata snapshot_metadata = 25; + exa.cortex_pb.CortexStepInternalMetadata internal_metadata = 26; + bool wait_for_previous_tools = 27; + string tool_summary = 30; + string tool_action = 31; +} + +message FileAccessPermission { + string path = 1; + bool is_directory = 2; + bool allow = 3; + exa.cortex_pb.PermissionScope scope = 4; + bool from_current_step = 5; +} + +message TrajectoryPermissions { + repeated exa.cortex_pb.FileAccessPermission file_access_permissions = 1; +} + +message SourceTrajectoryStepInfo { + string trajectory_id = 1; + uint32 step_index = 2; + uint32 metadata_index = 3; + string cascade_id = 4; +} + +message StructuredErrorPart { + oneof part { + string text = 1; + string file_uri = 2; + string directory_uri = 3; + string url = 4; + string code_text = 5; + } +} + +message CortexErrorDetails { + string user_error_message = 1; + string model_error_message = 9; + repeated exa.cortex_pb.StructuredErrorPart structured_error_parts = 8; + string short_error = 2; + string full_error = 3; + bool is_benign = 4; + uint32 error_code = 7; + string details = 5; + string error_id = 6; + repeated string rpc_error_details = 10; +} + +message UserStepSnapshot { + string name = 1; +} + +message UserStepAnnotations { + exa.cortex_pb.UserStepSnapshot snapshot = 1; +} + +message TrajectoryScope { + string workspace_uri = 1; + string git_root_uri = 2; + string branch_name = 3; +} + +message CascadeExecutorConfig { + optional bool disable_async = 1; + int32 max_generator_invocations = 2; + repeated exa.cortex_pb.CortexStepType terminal_step_types = 3; + optional bool hold_for_valid_checkpoint = 5; + int32 hold_for_valid_checkpoint_timeout = 6; + bool research_only = 7; + optional bool use_aggressive_snapshotting = 8; + optional bool require_finish_tool = 9; + optional int32 max_forced_invocations = 10; + optional bool queue_all_steps = 11; + optional bool store_gen_svc_request = 12; + optional bool enable_tasks = 13; + optional bool disable_empty_output_continuation = 14; +} + +message ForcedBrainUpdateConfig { + optional float update_sample_rate = 1; +} + +message DynamicBrainUpdateConfig { + bool use_aggressive_prompt = 1; +} + +message BrainUpdateStrategy { + oneof strategy { + google.protobuf.Empty executor_forced = 2; + exa.cortex_pb.ForcedBrainUpdateConfig invocation_forced = 3; + exa.cortex_pb.DynamicBrainUpdateConfig dynamic_update = 6; + google.protobuf.Empty executor_forced_and_with_discretion = 5; + } +} + +message LogArtifactsConfig { + optional bool enabled = 1; + optional bool hide_nominal_tool_steps = 2; + optional bool hide_planner_response_text = 3; + int32 max_bytes_per_step = 4; + int32 max_bytes_per_tool_arg = 5; + optional bool hide_system_steps = 6; + optional bool hide_user_implicit_steps = 7; +} + +message MessageConfig { + optional bool enabled = 1; +} + +message CascadeConfig { + exa.cortex_pb.CascadePlannerConfig planner_config = 1; + exa.cortex_pb.CheckpointConfig checkpoint_config = 2; + exa.cortex_pb.CascadeExecutorConfig executor_config = 3; + exa.cortex_pb.TrajectoryConversionConfig trajectory_conversion_config = 4; + optional bool apply_model_default_override = 6; + exa.cortex_pb.ConversationHistoryConfig conversation_history_config = 7; + optional bool split_dynamic_prompt_sections = 8; + exa.cortex_pb.MessageConfig message_config = 9; + optional bool use_db_trajectory = 10; +} + +message TrajectoryConversionConfig { + optional bool group_tools_with_planner_response = 3; + optional bool wrap_tool_responses = 5; + exa.cortex_pb.LogArtifactsConfig log_artifacts_config = 6; + optional bool append_ephemeral_to_previous_tool_result = 7; + optional bool disable_step_id = 8; + optional bool enable_tool_timestamp = 10; + optional bool use_raw_user_message = 9; +} + +message CascadeConversationalPlannerConfig { + exa.codeium_common_pb.ConversationalPlannerMode planner_mode = 4; + optional bool eval_mode = 5; + optional bool agentic_mode = 14; + optional string prompt_combination_name = 15; + exa.cortex_pb.ConversationHistoryConfig conversation_history_config = 16; + optional string override_workspace_dir_experimental_use_only = 17; + optional string override_cascade_id_for_prompt = 20; +} + +message SectionOverrideConfig { + optional exa.cortex_pb.SectionOverrideMode mode = 1; + optional string content = 2; +} + +message MqueryToolConfig { + exa.codeium_common_pb.MQueryConfig m_query_config = 1; + exa.codeium_common_pb.Model m_query_model = 2; + uint32 max_tokens_per_m_query = 3; + optional int32 num_items_full_source = 4; + int32 max_lines_per_snippet = 5; + optional bool enable_search_in_file_tool = 6; + optional bool allow_access_gitignore = 7; + optional bool disable_semantic_codebase_search = 8; + optional bool force_disable = 9; + exa.cortex_pb.EnterpriseToolConfig enterprise_config = 10; +} + +message NotifyUserConfig { + exa.codeium_common_pb.ArtifactReviewMode artifact_review_mode = 1; +} + +message GrepToolConfig { + uint32 max_grep_results = 1; + optional bool include_cci_in_result = 2; + uint32 num_full_source_ccis = 3; + uint32 max_bytes_per_cci = 4; + exa.cortex_pb.EnterpriseToolConfig enterprise_config = 5; + optional bool allow_access_gitignore = 6; + optional bool use_code_search = 7; + optional bool disable_fallback_to_local_execution = 8; +} + +message FindToolConfig { + uint32 max_find_results = 1; + string fd_path = 2; + optional bool use_code_search = 3; + optional bool disable_fallback_to_local_execution = 4; + optional bool force_disable = 5; +} + +message CodeSearchToolConfig { + string cs_path = 1; + optional bool use_eval_tag = 2; +} + +message GenerateImageToolConfig { + optional bool force_disable = 1; +} + +message InternalSearchToolConfig { + int32 max_results = 1; + int32 max_content_length = 2; +} + +message ClusterQueryToolConfig { + uint32 max_cluster_query_results = 1; +} + +message InspectClusterToolConfig { + uint32 max_tokens_per_inspect_cluster = 1; +} + +message AutoCommandConfig { + optional bool enable_model_auto_run = 1; + repeated string user_allowlist = 2; + repeated string user_denylist = 3; + repeated string system_allowlist = 4; + repeated string system_denylist = 5; + repeated string system_nooplist = 7; + exa.codeium_common_pb.CascadeCommandsAutoExecution auto_execution_policy = 6; +} + +message ListDirToolConfig { + exa.cortex_pb.EnterpriseToolConfig enterprise_config = 1; +} + +message RunCommandToolConfig { + uint32 max_chars_command_stdout = 1; + optional bool force_disable = 2; + exa.cortex_pb.AutoCommandConfig auto_command_config = 3; + optional bool enable_ide_terminal_execution = 4; + optional bool force_go_terminal_execution = 12; + string shell_name = 5; + string shell_path = 6; + uint32 max_timeout_ms = 7; + exa.cortex_pb.EnterpriseToolConfig enterprise_config = 9; + string shell_setup_script = 10; + optional bool forbid_search_commands = 11; + optional bool enable_pty = 13; + optional bool enable_persistent_mode = 14; + optional bool enable_midterm_output_processor = 8; +} + +message KnowledgeBaseSearchToolConfig { + uint32 max_tokens_per_knowledge_base_search = 1; + optional double prompt_fraction = 2; +} + +message FastApplyFallbackConfig { + optional bool enabled = 1; + uint32 prompt_unchanged_threshold = 2; + uint32 content_view_radius_lines = 3; + uint32 content_edit_radius_lines = 4; + exa.codeium_common_pb.Model fast_apply_model = 5; + optional bool repair_replace_blocks = 6; +} + +message ReplaceContentToolConfig { + float max_fuzzy_edit_distance_fraction = 1; + bool allow_partial_replacement_success = 2; + uint32 view_file_recency_max_distance = 3; + bool enable_fuzzy_sandwich_match = 4; + exa.cortex_pb.FastApplyFallbackConfig fast_apply_fallback_config = 5; + exa.cortex_pb.ReplaceToolVariant tool_variant = 6; + optional bool show_triggered_memories = 8; + optional bool disable_allow_multiple = 9; + optional bool use_line_range = 10; +} + +message CodeToolConfig { + repeated string disable_extensions = 1; + optional bool allow_edit_gitignore = 6; + exa.cortex_pb.EnterpriseToolConfig enterprise_config = 7; + repeated string file_allowlist = 12; + repeated string dir_allowlist = 17; + optional bool apply_edits = 2; + optional bool only_show_incremental_diff_zone = 11; + optional bool skip_await_lint_errors = 15; + exa.cortex_pb.AutoFixLintsConfig auto_fix_lints_config = 5; + exa.cortex_pb.ReplaceContentToolConfig replace_content_tool_config = 4; + optional bool classify_edit = 13; + optional bool provide_importance = 16; + optional bool skip_replace_content_validation = 9; + optional bool override_allow_action_on_unsaved_file = 8; + optional bool use_sed_edit = 18; + optional bool use_replace_content_edit_tool = 3; + optional bool use_replace_content_propose_code = 10; + optional bool run_proposal_extension_verifier = 14; +} + +message IntentToolConfig { + exa.codeium_common_pb.Model intent_model = 1; + uint32 max_context_tokens = 2; +} + +message ViewFileToolConfig { + optional bool allow_view_gitignore = 7; + optional bool split_outline_tool = 8; + optional bool show_triggered_memories = 13; + exa.cortex_pb.EnterpriseToolConfig enterprise_config = 12; + optional uint32 max_lines_per_view = 14; + optional bool include_line_numbers = 15; + repeated string dir_allowlist = 16; + uint32 max_total_outline_bytes = 9; + uint32 max_bytes_per_outline_item = 11; + optional uint32 show_full_file_bytes = 10; +} + +message SuggestedResponseConfig { + optional bool force_disable = 1; +} + +message SearchWebToolConfig { + optional bool force_disable = 1; + optional exa.codeium_common_pb.ThirdPartyWebSearchConfig third_party_config = 2; +} + +message MemoryToolConfig { + optional bool force_disable = 1; + optional bool disable_auto_generate_memories = 2; +} + +message McpToolConfig { + optional bool force_disable = 1; + uint32 max_output_bytes = 2; +} + +message InvokeSubagentToolConfig { + optional bool enabled = 1; +} + +message AutoFixLintsConfig { + optional bool enabled = 1; + optional string notifying_prompt = 2; +} + +message CaptureBrowserScreenshotToolConfig { + optional bool enable_saving = 1; +} + +message DOMExtractionConfig { + optional bool include_coordinates = 1; +} + +message BrowserSubagentContextConfig { + enum ContextType { + CONTEXT_TYPE_UNSPECIFIED = 0; + CONTEXT_TYPE_WITH_MARKDOWN_TRAJECTORY_SUMMARY = 1; + CONTEXT_TYPE_TASK_ONLY = 2; + } + optional exa.cortex_pb.BrowserSubagentContextConfig.ContextType type = 1; + optional int32 max_chars = 2; +} + +message BrowserSubagentToolConfig { + optional exa.cortex_pb.BrowserSubagentMode mode = 1; + exa.codeium_common_pb.Model browser_subagent_model = 2; + optional bool use_detailed_converter = 3; + int32 suggested_max_tool_calls = 4; + optional bool disable_onboarding = 5; + exa.cortex_pb.SubagentReminderMode subagent_reminder_mode = 6; + optional int32 max_context_tokens = 7; + optional exa.cortex_pb.BrowserSubagentContextConfig context_config = 8; + optional exa.cortex_pb.DOMExtractionConfig dom_extraction_config = 9; + optional bool disable_screenshot = 10; + optional exa.cortex_pb.LowLevelToolsConfig low_level_tools_config = 11; + optional bool enable_scratchpad = 12; + optional bool include_ci_prompt = 13; +} + +message SubagentReminderMode { + oneof mode { + exa.cortex_pb.BrowserVerifyScreenshotsMode verify_screenshots = 1; + exa.cortex_pb.BrowserVerifyCompletenessMode verify_completeness = 2; + exa.cortex_pb.BrowserCustomReminderMode custom = 3; + } +} + +message BrowserVerifyScreenshotsMode { +} + +message BrowserVerifyCompletenessMode { +} + +message BrowserCustomReminderMode { + string reminder = 1; +} + +message ClickFeedbackConfig { + enum FeedbackType { + FEEDBACK_TYPE_UNSPECIFIED = 0; + FEEDBACK_TYPE_DOT = 1; + FEEDBACK_TYPE_MOUSE_POINTER = 2; + } + optional bool enabled = 12; + optional int32 red = 7; + optional int32 green = 8; + optional int32 blue = 9; + optional int32 alpha = 10; + string display_color = 5; + optional int32 radius = 11; + optional exa.cortex_pb.ClickFeedbackConfig.FeedbackType feedback_type = 13; +} + +message ClickBrowserPixelToolConfig { + exa.cortex_pb.ClickFeedbackConfig click_feedback = 1; +} + +message BrowserStateDiffingConfig { + optional bool capture_agent_action_diffs = 1; + optional bool include_dom_tree_in_diffs = 2; +} + +message BrowserGetNetworkRequestToolConfig { + optional bool enabled = 1; +} + +message LowLevelToolsConfig { + optional bool enable_low_level_tools_instructions = 1; + optional bool enable_mouse_tools = 2; +} + +message BrowserWindowSize { + int32 width_px = 1; + int32 height_px = 2; +} + +message BrowserListNetworkRequestsToolConfig { + optional bool enabled = 1; +} + +message AntigravityBrowserToolConfig { + optional bool enabled = 1; + exa.cortex_pb.AutoRunDecision auto_run_decision = 2; + exa.cortex_pb.CaptureBrowserScreenshotToolConfig capture_browser_screenshot = 3; + exa.cortex_pb.BrowserSubagentToolConfig browser_subagent = 4; + exa.cortex_pb.ClickBrowserPixelToolConfig click_browser_pixel = 5; + exa.cortex_pb.BrowserStateDiffingConfig browser_state_diffing_config = 10; + exa.cortex_pb.BrowserListNetworkRequestsToolConfig browser_list_network_requests_tool_config = 18; + exa.cortex_pb.BrowserGetNetworkRequestToolConfig browser_get_network_request_tool_config = 19; + optional exa.cortex_pb.BrowserToolSetMode tool_set_mode = 6; + optional bool disable_open_url = 7; + optional bool is_eval_mode = 9; + exa.codeium_common_pb.BrowserJsExecutionPolicy browser_js_execution_policy = 11; + optional bool disable_actuation_overlay = 12; + optional bool variable_wait_tool = 13; + exa.codeium_common_pb.BrowserJsAutoRunPolicy browser_js_auto_run_policy = 8; + optional exa.cortex_pb.BrowserWindowSize initial_browser_window_size = 14; + optional exa.cortex_pb.DOMExtractionConfig dom_extraction_config = 15; + optional bool disable_workspace_api = 16; + optional bool open_page_in_background = 17; + optional bool use_antigravity_as_browser_prompting = 20; + optional bool enable_refresh_tool = 21; + optional bool disable_read_browser_page = 22; + optional bool use_extended_timeout = 23; + optional bool log_timeout_errors_instead_of_sentry = 24; + optional bool skip_permission_checks = 25; + optional bool display_on_crd = 26; +} + +message TrajectorySearchToolConfig { + optional bool force_disable = 1; + optional bool conversations_enabled = 2; + optional bool user_activities_enabled = 3; + uint32 max_scored_chunks = 4; +} + +message EnterpriseToolConfig { + optional bool enforce_workspace_validation = 1; + repeated string custom_workspace = 2; +} + +message ViewCodeItemToolConfig { + optional uint32 max_num_items = 1; + optional uint32 max_bytes_per_item = 2; + optional bool allow_access_gitignore = 3; + exa.cortex_pb.EnterpriseToolConfig enterprise_config = 4; +} + +message CommandStatusToolConfig { + optional bool use_delta = 1; + optional int32 max_output_characters = 2; + optional int32 min_output_characters = 3; + optional int32 max_wait_duration_seconds = 4; + optional int32 output_stabilization_duration_seconds = 5; + optional bool enable_input_detection = 6; + exa.codeium_common_pb.Model input_detection_model = 7; +} + +message ReadKnowledgeBaseItemToolConfig { + optional bool enabled = 1; + repeated exa.codeium_common_pb.KnowledgeBaseItem knowledge_base_items = 2; +} + +message ToolOverrideConfig { + optional string name_override = 1; + map argument_name_overrides = 2; + exa.cortex_pb.SectionOverrideConfig description_override = 3; + map argument_description_overrides = 4; +} + +message ToolDescriptionOverrideMap { + map descriptions = 1; + map tool_overrides = 2; +} + +message TaskBoundaryToolConfig { + int32 minimum_predicted_task_size = 1; + int32 target_status_update_frequency = 2; + int32 no_active_task_soft_reminder_tool_threshold = 3; + int32 no_active_task_strict_reminder_tool_threshold = 4; +} + +message FinishToolConfig { + string result_json_schema_string = 1; +} + +message WorkspaceAPIToolConfig { + optional bool read_only = 1; +} + +message NotebookEditToolConfig { + optional bool enabled = 1; +} + +message CascadeToolConfig { + exa.cortex_pb.MqueryToolConfig mquery = 1; + exa.cortex_pb.CodeToolConfig code = 2; + exa.cortex_pb.IntentToolConfig intent = 3; + exa.cortex_pb.GrepToolConfig grep = 4; + exa.cortex_pb.FindToolConfig find = 5; + exa.cortex_pb.RunCommandToolConfig run_command = 8; + exa.cortex_pb.KnowledgeBaseSearchToolConfig knowledge_base_search = 9; + exa.cortex_pb.ViewFileToolConfig view_file = 10; + exa.cortex_pb.SuggestedResponseConfig suggested_response = 11; + exa.cortex_pb.SearchWebToolConfig search_web = 13; + exa.cortex_pb.MemoryToolConfig memory = 14; + exa.cortex_pb.McpToolConfig mcp = 16; + exa.cortex_pb.ListDirToolConfig list_dir = 19; + exa.cortex_pb.ViewCodeItemToolConfig view_code_item = 20; + exa.cortex_pb.ReadKnowledgeBaseItemToolConfig read_knowledge_base_item = 21; + exa.cortex_pb.CommandStatusToolConfig command_status = 23; + exa.cortex_pb.AntigravityBrowserToolConfig antigravity_browser = 25; + exa.cortex_pb.TrajectorySearchToolConfig trajectory_search = 28; + exa.cortex_pb.CodeSearchToolConfig code_search = 31; + exa.cortex_pb.InternalSearchToolConfig internal_search = 32; + exa.cortex_pb.NotifyUserConfig notify_user = 33; + exa.cortex_pb.BrowserSubagentToolConfig browser_subagent = 34; + exa.cortex_pb.TaskBoundaryToolConfig task_boundary = 35; + exa.cortex_pb.FinishToolConfig finish = 36; + exa.cortex_pb.WorkspaceAPIToolConfig workspace_api = 37; + exa.cortex_pb.NotebookEditToolConfig notebook_edit = 38; + exa.cortex_pb.InvokeSubagentToolConfig invoke_subagent = 39; + exa.cortex_pb.GenerateImageToolConfig generate_image = 40; + exa.cortex_pb.ToolDescriptionOverrideMap description_override_map = 22; + optional bool disable_simple_research_tools = 29; +} + +message ModelOutputRetryConfig { + uint32 max_retries = 1; + oneof last_retry_option { + bool forbid_tool_use = 3; + string force_tool_name = 4; + } +} + +message ModelAPIRetryConfig { + uint32 max_retries = 1; + uint32 initial_sleep_duration_ms = 2; + double exponential_multiplier = 3; + optional bool include_error_feedback = 4; + optional double range = 5; +} + +message PlannerRetryConfig { + exa.cortex_pb.ModelOutputRetryConfig model_output_retry = 1; + exa.cortex_pb.ModelAPIRetryConfig api_retry = 2; +} + +message CodeAcknowledgementConverterConfig { + bool show_to_model_on_written_feedback = 1; + bool show_to_model_on_rejection = 2; +} + +message StepStringConverterConfig { + exa.cortex_pb.CodeAcknowledgementConverterConfig code_acknowledgement = 1; +} + +message AgenticModeConfig { + map inject_artifact_reminder_threshold_map = 1; + optional bool disable_artifact_reminders = 2; +} + +message CustomAgentSystemPromptConfig { + repeated string include_sections = 5; +} + +message CustomizationPath { + oneof path { + string agent_relative = 1; + string workspace_relative = 2; + string absolute = 3; + } +} + +message SkillSet { + exa.cortex_pb.CustomizationPath skills_path = 6; + repeated string skill_names = 2; +} + +message SkillsConfig { + bool inherit_user = 2; + repeated exa.cortex_pb.CustomizationPath skills_paths = 3; +} + +message AgentDiscoveryConfig { + bool inherit_user = 1; + repeated string builtin_agent_names = 2; + repeated exa.cortex_pb.AgentScriptItem agents = 3; +} + +message CustomizationDiscoveryConfig { + exa.cortex_pb.SkillsConfig skills = 1; + exa.cortex_pb.AgentDiscoveryConfig agents = 2; +} + +message CustomAgentConfig { + repeated exa.cortex_pb.PromptSection system_prompt_sections = 1; + repeated string tool_names = 2; + exa.cortex_pb.CustomAgentSystemPromptConfig system_prompt_config = 6; +} + +message CodingAgentConfig { + bool google_mode = 1; + bool agentic_mode = 2; +} + +message SdkToolOverride { + string old_tool_name = 1; + string tool_class_name = 2; + string name = 3; + string description = 4; + string parameters = 5; + map param_mapping = 6; +} + +message SdkCustomizationConfig { + string workspace_root = 1; + repeated exa.cortex_pb.SdkToolOverride tool_overrides = 2; + bool use_only_override_tools = 3; + map extra_config = 4; +} + +message CustomAgentSpec { + oneof config { + exa.cortex_pb.CustomAgentConfig custom_agent = 1; + exa.cortex_pb.CodingAgentConfig coding_agent = 2; + } + repeated exa.cortex_pb.McpServerSpec mcp_servers = 4; + repeated exa.cortex_pb.McpServerSpec launched_mcp_servers = 16; + string command_execution_policy = 5; + oneof workspace { + bool user_active_workspaces = 6; + exa.cortex_pb.WorkspacePaths workspace_paths = 7; + } + bool enforced_workspace_validation = 8; + exa.cortex_pb.PromptSectionCustomizationConfig prompt_section_customization = 9; + bool skip_mcp_prefixes = 10; + exa.cortex_pb.CascadeConfig cascade_config = 11; + repeated string custom_tools = 13; + exa.cortex_pb.SkillsConfig skills = 14; + exa.cortex_pb.AgentDiscoveryConfig agents = 15; +} + +message CustomPromptSection { + exa.cortex_pb.PromptSection prompt_section = 1; + oneof placement { + string insert_after_section = 2; + string insert_before_section = 3; + } +} + +message PromptSectionCustomizationConfig { + repeated string remove_prompt_sections = 1; + repeated exa.cortex_pb.CustomPromptSection add_prompt_sections = 2; + repeated exa.cortex_pb.PromptSection append_prompt_sections = 3; + repeated exa.cortex_pb.PromptSection replace_prompt_sections = 4; +} + +message WorkspacePaths { + repeated string absolute_paths = 1; +} + +message CustomizationConfig { + string customization_server_url = 1; + repeated string tool_names = 2; + repeated string pre_invocation_hook_names = 3; + repeated string post_invocation_hook_names = 4; + repeated exa.cortex_pb.McpServerSpec mcp_servers = 5; + string trajectory_to_chat_message_override = 6; + repeated string pre_tool_hook_names = 8; + repeated string post_tool_hook_names = 9; + oneof workspace { + bool user_active_workspaces = 10; + exa.cortex_pb.WorkspacePaths workspace_paths = 11; + } + bool skip_tool_name_prefix = 12; + bool skip_tool_description_prefix = 13; + repeated string stop_hook_names = 14; + exa.cortex_pb.CustomizationDiscoveryConfig customization_discovery_config = 15; + string agent_path = 16; + optional bool enable_json_hooks = 17; +} + +message Experiments { + map values = 1; +} + +message ExperimentValue { + oneof value { + bool bool_value = 1; + string string_value = 2; + double number_value = 3; + } +} + +message CascadePlannerConfig { + oneof planner_type_config { + exa.cortex_pb.CascadeConversationalPlannerConfig conversational = 2; + exa.cortex_pb.CascadeConversationalPlannerConfig google = 26; + exa.cortex_pb.CascadeConversationalPlannerConfig cider = 36; + exa.cortex_pb.CustomAgentConfig custom_agent = 39; + string custom_agent_config_absolute_uri = 40; + exa.cortex_pb.CascadeConversationalPlannerConfig google_minimal = 44; + } + exa.cortex_pb.CustomizationConfig customization_config = 42; + exa.cortex_pb.PromptSectionCustomizationConfig prompt_section_customization_config = 41; + exa.cortex_pb.CascadeToolConfig tool_config = 13; + exa.cortex_pb.StepStringConverterConfig step_string_converter_config = 31; + exa.codeium_common_pb.Model plan_model = 1; + exa.codeium_common_pb.ModelOrAlias requested_model = 15; + string model_name = 28; + exa.codeium_common_pb.ModelInfo custom_model_info_override = 27; + uint32 max_output_tokens = 6; + optional bool no_tool_explanation = 7; + optional bool no_tool_summary = 33; + int32 truncation_threshold_tokens = 14; + exa.cortex_pb.EphemeralMessagesConfig ephemeral_messages_config = 21; + bool show_all_errors = 25; + exa.cortex_pb.PlannerRetryConfig retry_config = 30; + exa.cortex_pb.KnowledgeConfig knowledge_config = 32; + exa.cortex_pb.AgenticModeConfig agentic_mode_config = 35; + optional bool no_wait_for_previous_tools = 37; + exa.cortex_pb.Experiments experiments = 43; +} + +message DeploymentInteractionPayload { + string subdomain = 1; +} + +message CascadeDeployInteraction { + bool cancel = 1; + exa.codeium_common_pb.DeployTarget deploy_target = 2; + string subdomain = 3; +} + +message CascadeRunCommandInteraction { + bool confirm = 1; + string proposed_command_line = 2; + string submitted_command_line = 3; + bool sandbox_override = 4; +} + +message CascadeOpenBrowserUrlInteraction { + bool confirm = 1; +} + +message CascadeRunExtensionCodeInteraction { + bool confirm = 1; +} + +message CascadeExecuteBrowserJavaScriptInteraction { + bool confirm = 1; +} + +message CascadeCaptureBrowserScreenshotInteraction { + bool confirm = 1; +} + +message CascadeClickBrowserPixelInteraction { + bool confirm = 1; +} + +message CascadeTaskResolutionInteraction { + bool confirm = 1; + exa.cortex_pb.TaskResolution resolution = 2; +} + +message CascadeBrowserActionInteraction { + bool confirm = 1; +} + +message CascadeOpenBrowserSetupInteraction { + bool confirm = 1; +} + +message CascadeConfirmBrowserSetupInteraction { + bool confirm = 1; +} + +message CascadeSendCommandInputInteraction { + bool confirm = 1; +} + +message CascadeReadUrlContentInteraction { + bool confirm = 1; +} + +message CascadeMcpInteraction { + bool confirm = 1; +} + +message FilePermissionInteraction { + bool allow = 1; + exa.cortex_pb.PermissionScope scope = 2; + string absolute_path_uri = 3; +} + +message CascadeDeployInteractionSpec { + repeated exa.codeium_common_pb.DeployTarget deploy_target_options = 1; +} + +message CascadeRunCommandInteractionSpec { +} + +message CascadeOpenBrowserUrlInteractionSpec { +} + +message CascadeRunExtensionCodeInteractionSpec { +} + +message CascadeExecuteBrowserJavaScriptInteractionSpec { +} + +message CascadeCaptureBrowserScreenshotInteractionSpec { +} + +message CascadeClickBrowserPixelInteractionSpec { +} + +message CascadeTaskResolutionInteractionSpec { + string title = 1; + string description = 2; +} + +message CascadeSendCommandInputInteractionSpec { +} + +message CascadeReadUrlContentInteractionSpec { +} + +message CascadeMcpInteractionSpec { +} + +message FilePermissionInteractionSpec { + enum BlockReason { + BLOCK_REASON_UNSPECIFIED = 0; + BLOCK_REASON_OUTSIDE_WORKSPACE = 1; + BLOCK_REASON_GITIGNORED = 2; + } + string absolute_path_uri = 1; + bool is_directory = 2; + exa.cortex_pb.FilePermissionInteractionSpec.BlockReason block_reason = 3; +} + +message ElicitationInteractionSpec { + string server_name = 1; + string mode = 2; + string message = 3; + string requested_schema_json = 4; + string url = 5; +} + +message ElicitationInteraction { + string action = 1; + string content_json = 2; +} + +message RequestedInteraction { + oneof interaction { + exa.cortex_pb.CascadeDeployInteractionSpec deploy = 2; + exa.cortex_pb.CascadeRunCommandInteractionSpec run_command = 3; + exa.cortex_pb.CascadeOpenBrowserUrlInteractionSpec open_browser_url = 4; + exa.cortex_pb.CascadeRunExtensionCodeInteractionSpec run_extension_code = 5; + exa.cortex_pb.CascadeExecuteBrowserJavaScriptInteractionSpec execute_browser_javascript = 7; + exa.cortex_pb.CascadeCaptureBrowserScreenshotInteractionSpec capture_browser_screenshot = 8; + exa.cortex_pb.CascadeClickBrowserPixelInteractionSpec click_browser_pixel = 9; + exa.cortex_pb.CascadeBrowserActionInteraction browser_action = 13; + exa.cortex_pb.CascadeOpenBrowserSetupInteraction open_browser_setup = 14; + exa.cortex_pb.CascadeConfirmBrowserSetupInteraction confirm_browser_setup = 15; + exa.cortex_pb.CascadeSendCommandInputInteractionSpec send_command_input = 16; + exa.cortex_pb.CascadeReadUrlContentInteractionSpec read_url_content = 17; + exa.cortex_pb.CascadeMcpInteractionSpec mcp = 18; + exa.cortex_pb.FilePermissionInteractionSpec file_permission = 19; + exa.cortex_pb.ElicitationInteractionSpec elicitation = 20; + } +} + +message CascadeUserInteraction { + string trajectory_id = 1; + uint32 step_index = 2; + oneof interaction { + exa.cortex_pb.CascadeDeployInteraction deploy = 4; + exa.cortex_pb.CascadeRunCommandInteraction run_command = 5; + exa.cortex_pb.CascadeOpenBrowserUrlInteraction open_browser_url = 6; + exa.cortex_pb.CascadeRunExtensionCodeInteraction run_extension_code = 7; + exa.cortex_pb.CascadeExecuteBrowserJavaScriptInteraction execute_browser_javascript = 8; + exa.cortex_pb.CascadeCaptureBrowserScreenshotInteraction capture_browser_screenshot = 9; + exa.cortex_pb.CascadeClickBrowserPixelInteraction click_browser_pixel = 10; + exa.cortex_pb.CascadeBrowserActionInteraction browser_action = 13; + exa.cortex_pb.CascadeOpenBrowserSetupInteraction open_browser_setup = 14; + exa.cortex_pb.CascadeConfirmBrowserSetupInteraction confirm_browser_setup = 15; + exa.cortex_pb.CascadeSendCommandInputInteraction send_command_input = 16; + exa.cortex_pb.CascadeReadUrlContentInteraction read_url_content = 17; + exa.cortex_pb.CascadeMcpInteraction mcp = 18; + exa.cortex_pb.FilePermissionInteraction file_permission = 19; + exa.cortex_pb.ElicitationInteraction elicitation = 20; + } +} + +message CompletedInteraction { + exa.cortex_pb.RequestedInteraction request = 1; + exa.cortex_pb.CascadeUserInteraction response = 2; +} + +message KnowledgeReference { + oneof reference { + string file_path = 1; + string conversation_id = 2; + string url = 3; + } +} + +message KnowledgeReferences { + repeated exa.cortex_pb.KnowledgeReference references = 1; +} + +message CortexStepKIInsertion { + map ki_references = 1; +} + +message CortexStepDummy { + uint32 input = 1; + uint32 output = 2; +} + +message CortexStepFinish { + map output = 1; + string output_string = 2; +} + +message CortexStepPlanInput { + exa.cortex_pb.PlanInput plan_input = 1; + bool user_provided = 2; +} + +message ArtifactSnapshot { + string artifact_name = 1; + string content = 2; + string artifact_absolute_uri = 3; + google.protobuf.Timestamp last_edited = 4; + exa.cortex_pb.ArtifactReviewState review_state = 5; +} + +message SubagentSnapshot { + exa.cortex_pb.SubagentSpec spec = 4; + exa.cortex_pb.SubagentResult result = 5; +} + +message TaskSnapshot { + string task_id = 1; + string tool_name = 2; + string tool_summary = 3; + string description = 4; + google.protobuf.Timestamp start_time = 5; + uint32 step_index = 6; +} + +message CortexStepCheckpoint { + uint32 checkpoint_index = 1; + bool intent_only = 9; + uint32 included_step_index_start = 11; + uint32 included_step_index_end = 12; + string conversation_title = 10; + string user_intent = 4; + string session_summary = 5; + string code_change_summary = 6; + bool model_summarization_failed = 16; + bool used_fallback_summary = 17; + repeated exa.cortex_pb.ArtifactSnapshot artifact_snapshots = 14; + repeated string conversation_log_uris = 15; + repeated exa.cortex_pb.TrajectoryFileDiff trajectory_file_diffs = 18; + repeated string user_requests = 19; + repeated exa.cortex_pb.SubagentSnapshot subagent_snapshots = 20; + repeated exa.cortex_pb.TaskSnapshot running_task_snapshots = 21; + map edited_file_map = 7; + repeated uint32 included_step_indices = 3; + string memory_summary = 8; +} + +message CheckpointConfig { + uint32 token_threshold = 1; + float max_overhead_ratio = 3; + uint32 moving_window_size = 4; + uint32 max_token_limit = 5; + uint32 max_output_tokens = 11; + exa.codeium_common_pb.Model checkpoint_model = 7; + optional bool enabled = 6; + optional bool full_async = 13; + int32 max_user_requests = 16; + int32 max_user_request_bytes = 17; + int32 max_subagent_snapshots = 18; + exa.cortex_pb.ModelAPIRetryConfig retry_config = 14; + optional bool enable_fallback = 15; +} + +message CortexStepMquery { + exa.cortex_pb.PlanInput input = 1; + repeated exa.context_module_pb.CciWithSubrangeWithRetrievalMetadata ccis = 2; + uint32 num_tokens_processed = 3; + uint32 num_items_scored = 4; + exa.cortex_pb.SemanticCodebaseSearchType search_type = 5; +} + +message ReplacementChunkInfo { + exa.cortex_pb.ReplacementChunk original_chunk = 1; + string fuzzy_match = 2; + int32 edit_distance = 3; + float rel_edit_distance = 4; + uint32 num_matches = 5; + bool is_non_exact = 7; + bool boundary_lines_match = 8; + bool error = 6; + string error_str = 9; + bool fast_apply_fixable = 10; + bool use_global_match = 11; + bool repair_fixable = 12; + bool repaired = 13; +} + +message FastApplyFallbackInfo { + bool fallback_attempted = 1; + string fallback_error = 2; + exa.cortex_pb.ActionResult fast_apply_result = 3; + exa.cortex_pb.CodeHeuristicFailure heuristic_failure = 4; + string fast_apply_prompt = 5; + uint32 num_fast_apply_edits_masked = 6; + bool fallback_match_had_no_diff = 7; + bool used_repair_fallback = 8; +} + +message CortexStepCodeAction { + exa.cortex_pb.ActionSpec action_spec = 1; + exa.cortex_pb.ActionResult action_result = 2; + bool use_fast_apply = 4; + exa.cortex_pb.AcknowledgementType acknowledgement_type = 5; + exa.cortex_pb.CodeHeuristicFailure heuristic_failure = 7; + string code_instruction = 8; + repeated exa.codeium_common_pb.CodeDiagnostic lint_errors = 11; + repeated exa.codeium_common_pb.CodeDiagnostic persistent_lint_errors = 12; + repeated exa.cortex_pb.ReplacementChunkInfo replacement_infos = 13; + repeated string lint_error_ids_aiming_to_fix = 14; + exa.cortex_pb.FastApplyFallbackInfo fast_apply_fallback_info = 15; + bool target_file_has_carriage_returns = 16; + bool target_file_has_all_carriage_returns = 17; + repeated exa.cortex_pb.CortexStepCompileDiagnostic introduced_errors = 18; + string triggered_memories = 19; + bool is_artifact_file = 21; + int32 artifact_version = 22; + exa.codeium_common_pb.ArtifactMetadata artifact_metadata = 23; + bool is_knowledge_file = 24; + exa.cortex_pb.FilePermissionInteractionSpec file_permission_request = 25; + string description = 26; + string markdown_validation_error = 27; +} + +message CortexStepFileChange { + string absolute_path_uri = 1; + exa.cortex_pb.FileChangeType file_change_type = 2; + repeated exa.cortex_pb.ReplacementChunk replacement_chunks = 3; + string instruction = 5; + exa.diff_action_pb.DiffBlock diff = 4; + repeated exa.cortex_pb.ReplacementChunkInfo replacement_infos = 6; + exa.cortex_pb.FastApplyFallbackInfo fast_apply_fallback_info = 7; + bool overwrite = 8; +} + +message CortexStepMove { + string src_absolute_path_uri = 1; + string dst_absolute_path_uri = 2; +} + +message CortexStepEphemeralMessage { + string content = 1; + repeated exa.codeium_common_pb.Media media = 2; + repeated string triggered_heuristics = 3; + repeated exa.codeium_common_pb.Media attachments = 4; + string dom_tree_uri = 5; +} + +message CortexStepConversationHistory { + string content = 1; +} + +message CortexStepKnowledgeArtifacts { + string content = 1; +} + +message CortexStepProposeCode { + exa.cortex_pb.ActionSpec action_spec = 1; + exa.cortex_pb.ActionResult action_result = 2; + string code_instruction = 3; + string markdown_language = 4; +} + +message CortexStepGitCommit { + exa.cortex_pb.PlanInput input = 1; + string commit_message = 2; + string commit_hash = 3; +} + +message GrepSearchResult { + string relative_path = 1; + uint32 line_number = 2; + string content = 3; + string absolute_path = 4; + exa.codeium_common_pb.CodeContextItem cci = 5; +} + +message DiffBasedCommandEvalConfig { + uint32 num_samples_per_commit = 1; +} + +message CortexStepGrepSearch { + string search_path_uri = 11; + string query = 1; + bool match_per_line = 8; + repeated string includes = 2; + bool case_insensitive = 9; + bool allow_access_gitignore = 13; + bool is_regex = 14; + repeated exa.cortex_pb.GrepSearchResult results = 4; + uint32 total_results = 7; + string raw_output = 3; + string command_run = 10; + bool no_files_searched = 12; + bool timed_out = 15; + exa.cortex_pb.FilePermissionInteractionSpec file_permission_request = 16; + string grep_error = 5; +} + +message CortexStepFind { + string search_directory = 10; + string pattern = 1; + repeated string excludes = 3; + exa.cortex_pb.FindResultType type = 4; + int32 max_depth = 5; + repeated string extensions = 12; + bool full_path = 13; + string truncated_output = 14; + uint32 truncated_total_results = 15; + uint32 total_results = 7; + string raw_output = 11; + string command_run = 9; + repeated string includes = 2; + string find_error = 8; +} + +message CortexStepViewFile { + string absolute_path_uri = 1; + uint32 start_line = 2; + uint32 end_line = 3; + string content = 4; + bool is_skill_file = 17; + exa.cortex_pb.SkillMetadata skill_metadata = 18; + string raw_content = 9; + exa.codeium_common_pb.ImageData binary_data = 14; + exa.codeium_common_pb.Media media_data = 15; + string triggered_memories = 10; + uint32 num_lines = 11; + uint32 num_bytes = 12; + bool is_injected_reminder = 13; + exa.cortex_pb.FilePermissionInteractionSpec file_permission_request = 16; +} + +message SkillMetadata { + string name = 1; + string description = 2; +} + +message ListDirectoryResult { + string name = 1; + bool is_dir = 2; + optional uint32 num_children = 3; + uint64 size_bytes = 4; +} + +message CortexStepListDirectory { + string directory_path_uri = 1; + repeated string children = 2; + repeated exa.cortex_pb.ListDirectoryResult results = 3; + bool dir_not_found = 4; + exa.cortex_pb.FilePermissionInteractionSpec file_permission_request = 5; +} + +message CortexStepDeleteDirectory { + string directory_path_uri = 1; + bool force = 2; +} + +message CortexStepCompileDiagnostic { + string message = 1; + string path = 2; + uint32 line = 3; + uint32 column = 4; + string symbol = 5; +} + +message CortexStepCompile { + exa.cortex_pb.CortexStepCompileTool tool = 1; + string input_spec = 2; + map options = 3; + string target = 4; + string artifact_path = 5; + bool artifact_is_executable = 6; + repeated exa.cortex_pb.CortexStepCompileDiagnostic errors = 7; + repeated exa.cortex_pb.CortexStepCompileDiagnostic warnings = 8; +} + +message CortexStepCompileApplet { + string error_message = 1; + string logs = 3; +} + +message CortexStepInstallAppletDependencies { + string error_message = 1; + string logs = 2; +} + +message CortexStepInstallAppletPackage { + string package_name = 1; + string error_message = 2; + string logs = 3; + bool is_dev_dependency = 4; + repeated string package_names = 5; +} + +message CortexStepSetUpFirebase { + string error_message = 1; + exa.cortex_pb.SetUpFirebaseErrorCode rpc_error_code = 6; + optional string firebase_project_id = 7; + exa.cortex_pb.SetUpFirebaseRequest request = 2; + exa.cortex_pb.SetUpFirebaseResult result = 3; + exa.cortex_pb.SetUpFirebaseAppConfig app_config = 4; + optional string firestore_region = 8; + optional string database_id = 9; +} + +message SetUpFirebaseAppConfig { + string firebase_project_id = 1; +} + +message SetUpCloudSqlAppConfig { + string instance_name = 1; + string project_id = 2; +} + +message CortexStepSetUpCloudSql { + string error_message = 1; + exa.cortex_pb.SetUpCloudSqlErrorCode rpc_error_code = 2; + exa.cortex_pb.SetUpCloudSqlResult result = 3; + exa.cortex_pb.SetUpCloudSqlAppConfig app_config = 4; +} + +message CortexStepCloudSQLSchemaUpdate { + string error_message = 1; + exa.cortex_pb.CloudSQLUpdateSchemaErrorCode rpc_error_code = 2; + exa.cortex_pb.CloudSQLUpdateSchemaResult result = 3; + string output = 4; +} + +message CortexStepRPCAction { + string service_name = 1; + string method_name = 2; + google.protobuf.Struct arguments = 3; + string error_message = 4; + google.protobuf.Struct result = 5; +} + +message CortexStepEditNotebook { + message Cell { + string kind = 1; + string content = 2; + } + message Args { + string absolute_path_uri = 1; + exa.cortex_pb.EditNotebookOperation operation = 2; + string anchor_cell_id = 3; + int32 anchor_cell_index = 4; + repeated exa.cortex_pb.CortexStepEditNotebook.Cell cells = 5; + int32 delete_count = 6; + } + message ModifiedCell { + string cell_id = 1; + string kind = 2; + string content = 3; + int32 index = 4; + } + message Reply { + repeated exa.cortex_pb.CortexStepEditNotebook.ModifiedCell modified_cells = 1; + int32 total_cell_count = 2; + } + string tool_name = 1; + exa.cortex_pb.CortexStepEditNotebook.Args args = 2; + exa.cortex_pb.CortexStepEditNotebook.Reply reply = 3; +} + +message CortexStepReadNotebook { + message Args { + string absolute_path_uri = 1; + repeated int32 cell_indices = 2; + repeated string cell_ids = 3; + } + message Reply { + string flattened_content = 1; + int32 read_cell_count = 2; + } + string tool_name = 1; + exa.cortex_pb.CortexStepReadNotebook.Args args = 2; + exa.cortex_pb.CortexStepReadNotebook.Reply reply = 3; +} + +message CortexStepExecuteNotebook { + enum CellStatus { + CELL_STATUS_UNSPECIFIED = 0; + CELL_STATUS_SUCCESS = 1; + CELL_STATUS_FAILURE = 2; + } + enum ExecutionStatus { + EXECUTION_STATUS_UNSPECIFIED = 0; + EXECUTION_STATUS_SUCCESS = 1; + EXECUTION_STATUS_FAILURE = 2; + EXECUTION_STATUS_PARTIAL_SUCCESS = 3; + } + message Args { + string absolute_path_uri = 1; + repeated string cell_ids = 2; + repeated int32 cell_indices = 3; + bool stop_on_error = 4; + bool restart_kernel = 5; + } + message CellOutput { + string cell_id = 1; + int32 cell_index = 2; + exa.cortex_pb.CortexStepExecuteNotebook.CellStatus status = 3; + string output_text = 4; + bool output_text_truncated = 5; + bool generated_images = 6; + string error_trace = 7; + } + message Reply { + exa.cortex_pb.CortexStepExecuteNotebook.ExecutionStatus status = 1; + int32 executed_cells_count = 2; + repeated exa.cortex_pb.CortexStepExecuteNotebook.CellOutput cell_outputs = 3; + string error_trace = 4; + } + string tool_name = 1; + exa.cortex_pb.CortexStepExecuteNotebook.Args args = 2; + exa.cortex_pb.CortexStepExecuteNotebook.Reply reply = 3; +} + +message CortexStepCloudSQLExecuteSQL { + string project_id = 1; + string instance_name = 2; + string sql_statement = 3; + string error_message = 4; + string output = 5; +} + +message CortexStepRestartDevServer { + string error_message = 1; +} + +message CortexStepDeployFirebase { + string error_message = 1; +} + +message CortexStepShellExec { + string command = 1; + int32 exit_code = 2; + string output = 3; + string error_message = 4; +} + +message CortexStepLintApplet { + int32 exit_code = 1; + string output = 2; + string error_message = 3; +} + +message CortexStepWriteBlob { + string blob_id = 1; + string target_path = 2; + string error_message = 3; + int64 bytes_written = 4; +} + +message CortexTrajectoryToPromptConfig { + float prompt_fraction = 1; +} + +message CortexStepUserInput { + repeated exa.codeium_common_pb.TextOrScopeItem items = 3; + string user_response = 2; + exa.context_module_pb.ContextModuleResult active_user_state = 4; + repeated exa.codeium_common_pb.ArtifactComment artifact_comments = 7; + repeated exa.codeium_common_pb.FileDiffComment file_diff_comments = 10; + repeated exa.codeium_common_pb.FileComment file_comments = 11; + bool is_queued_message = 6; + exa.chat_client_server_pb.ChatClientRequestStreamClientType client_type = 8; + exa.cortex_pb.CascadeConfig user_config = 12; + exa.cortex_pb.CascadeConfig last_user_config = 13; + string query = 1; + repeated exa.codeium_common_pb.ImageData images = 5; + repeated exa.codeium_common_pb.Media media = 9; +} + +message ActiveUserState { + exa.codeium_common_pb.Document active_document = 1; + repeated exa.codeium_common_pb.Document open_documents = 2; + exa.codeium_common_pb.CodeContextItem active_node = 3; +} + +message CortexStepPlannerResponse { + string response = 1; + string modified_response = 8; + string thinking = 3; + string raw_thinking = 16; + string signature = 4; + bytes thinking_signature = 14; + bool thinking_redacted = 5; + string message_id = 6; + string provider_assigned_message_id = 15; + repeated exa.codeium_common_pb.ChatToolCall tool_calls = 7; + repeated exa.codeium_common_pb.KnowledgeBaseItemWithMetadata knowledge_base_items = 2; + google.protobuf.Duration thinking_duration = 11; + exa.codeium_common_pb.StopReason stop_reason = 12; + exa.codeium_common_pb.RecitationMetadata recitation_metadata = 13; +} + +message CortexStepFileBreakdown { + string absolute_path = 1; + exa.codeium_common_pb.DocumentOutline document_outline = 2; +} + +message CortexStepViewCodeItem { + string absolute_uri = 1; + repeated string node_paths = 4; + repeated exa.codeium_common_pb.CodeContextItem ccis = 5; + exa.cortex_pb.FilePermissionInteractionSpec file_permission_request = 6; +} + +message CortexStepWriteToFile { + string target_file_uri = 1; + repeated string code_content = 2; + exa.diff_action_pb.DiffBlock diff = 3; + bool file_created = 4; + exa.cortex_pb.AcknowledgementType acknowledgement_type = 5; +} + +message CortexStepSearchKnowledgeBase { + repeated string queries = 1; + exa.opensearch_clients_pb.TimeRange time_range = 3; + repeated exa.opensearch_clients_pb.ConnectorType connector_types = 4; + repeated string aggregate_ids = 7; + repeated exa.codeium_common_pb.KnowledgeBaseGroup knowledge_base_groups = 2; +} + +message CortexStepLookupKnowledgeBase { + repeated string urls = 1; + repeated string document_ids = 2; + repeated exa.codeium_common_pb.KnowledgeBaseItemWithMetadata knowledge_base_items = 3; +} + +message CortexStepSuggestedResponses { + repeated string suggestions = 1; +} + +message CortexStepErrorMessage { + exa.cortex_pb.CortexErrorDetails error = 3; + bool should_show_user = 5; + bool should_show_model = 4; +} + +message RunCommandOutput { + string full = 1; + string truncated = 2; + uint32 num_lines_above = 3; +} + +message CortexStepRunCommand { + string command_line = 23; + string proposed_command_line = 25; + string cwd = 2; + uint64 wait_ms_before_async = 12; + bool should_auto_run = 15; + string requested_terminal_id = 17; + bool sandbox_override = 27; + bool run_persistent = 28; + bool blocking = 11; + string command_id = 13; + optional int32 exit_code = 6; + bool user_rejected = 14; + exa.cortex_pb.AutoRunDecision auto_run_decision = 16; + string terminal_id = 18; + exa.cortex_pb.RunCommandOutput combined_output = 21; + exa.cortex_pb.RunCommandOutput combined_output_snapshot = 26; + bool used_ide_terminal = 22; + string raw_debug_output = 24; + string command = 1; + repeated string args = 3; + string stdout = 4; + string stderr = 5; + string stdout_buffer = 7; + string stderr_buffer = 8; + uint32 stdout_lines_above = 9; + uint32 stderr_lines_above = 10; + exa.cortex_pb.RunCommandOutput stdout_output = 19; + exa.cortex_pb.RunCommandOutput stderr_output = 20; +} + +message CortexStepReadUrlContent { + string url = 1; + exa.codeium_common_pb.KnowledgeBaseItem web_document = 2; + string resolved_url = 3; + uint32 latency_ms = 4; + bool user_rejected = 5; + string content_path = 6; +} + +message CortexStepReadKnowledgeBaseItem { + string identifier = 1; + exa.codeium_common_pb.KnowledgeBaseItem knowledge_base_item = 2; + exa.opensearch_clients_pb.ConnectorType connector_type = 3; +} + +message CortexStepSendCommandInput { + string command_id = 1; + string input = 2; + bool should_auto_run = 3; + bool terminate = 6; + int64 wait_ms = 7; + bool user_rejected = 4; + exa.cortex_pb.AutoRunDecision auto_run_decision = 5; + exa.cortex_pb.RunCommandOutput output = 8; + bool running = 9; + optional int32 exit_code = 10; +} + +message CortexStepViewContentChunk { + string document_id = 5; + int32 position = 2; + exa.codeium_common_pb.KnowledgeBaseItem cropped_item = 4; +} + +message CortexStepSearchWeb { + string query = 1; + string domain = 3; + repeated exa.codeium_common_pb.KnowledgeBaseItem web_documents = 2; + string web_search_url = 4; + string summary = 5; + exa.codeium_common_pb.ThirdPartyWebSearchConfig third_party_config = 6; + exa.cortex_pb.SearchWebType search_type = 7; +} + +message CortexStepReadDeploymentConfig { + string project_path = 1; + string deployment_config_uri = 2; + exa.codeium_common_pb.WebAppDeploymentConfig deployment_config = 3; + repeated string missing_file_uris = 4; + bool will_upload_node_modules = 5; + bool will_upload_dist = 6; + repeated string ignore_file_uris = 7; + uint32 num_files_to_upload = 8; + repeated string env_file_uris = 9; +} + +message CortexStepDeployWebApp { + string project_path = 1; + string subdomain = 2; + string project_id = 11; + string framework = 3; + bool user_confirmed = 4; + map file_upload_status = 5; + exa.codeium_common_pb.AntigravityDeployment deployment = 6; + string deployment_config_uri = 7; + exa.codeium_common_pb.WebAppDeploymentConfig deployment_config_output = 8; + string subdomain_for_project_id = 12; + string subdomain_user_specified = 13; + string subdomain_used = 9; + exa.codeium_common_pb.DeployTarget deploy_target_for_project_id = 15; + exa.codeium_common_pb.DeployTarget deploy_target_user_specified = 16; + exa.codeium_common_pb.DeployTarget deploy_target_used = 17; + string project_id_used = 14; + string claim_url = 10; +} + +message CortexStepCheckDeployStatus { + string antigravity_deployment_id = 1; + exa.codeium_common_pb.AntigravityDeployment deployment = 2; + exa.codeium_common_pb.DeploymentBuildStatus build_status = 3; + string build_error = 4; + string build_logs = 5; + bool is_claimed = 6; + string claim_url = 7; +} + +message CortexStepClipboard { + string content = 1; +} + +message ExecutorMetadata { + exa.cortex_pb.ExecutorTerminationReason termination_reason = 1; + int32 num_generator_invocations = 2; + int32 last_step_idx = 3; + bool proceeded_with_auto_continue = 4; + int32 num_forced_invocations = 5; + repeated exa.codeium_common_pb.MetricsRecord segment_records = 6; + repeated exa.codeium_common_pb.MetricsRecord trajectory_records = 7; + google.protobuf.Any gen_svc_request = 8; + string execution_id = 9; + exa.cortex_pb.CascadeConfig cascade_config = 10; +} + +message TrajectoryFileDiff { + string uri = 1; + string original_content = 2; + string modified_content = 3; + bool is_artifact_file = 4; + bool is_knowledge_file = 5; + google.protobuf.Timestamp last_modified_at = 6; + bool has_model_edited = 7; +} + +message BackgroundCommand { + string command_line = 1; + uint32 step_index = 2; +} + +message CortexStepLintDiff { + exa.cortex_pb.LintDiffType type = 1; + exa.codeium_common_pb.CodeDiagnostic lint = 2; +} + +message BrainEntry { + string id = 1; + exa.cortex_pb.BrainEntryType type = 2; + string content = 3; +} + +message PlanEntryDeltaSummary { + repeated string items_added = 1; + repeated string items_completed = 2; +} + +message BrainEntryDeltaSummary { + oneof summary { + exa.cortex_pb.PlanEntryDeltaSummary plan = 1; + exa.cortex_pb.TaskEntryDeltaSummary task = 2; + } +} + +message BrainEntryDelta { + exa.cortex_pb.BrainEntry before = 1; + exa.cortex_pb.BrainEntry after = 2; + string absolute_path_uri = 3; + exa.cortex_pb.BrainEntryDeltaSummary summary = 4; +} + +message TaskItem { + string id = 1; + string content = 2; + exa.cortex_pb.TaskStatus status = 3; + string parent_id = 4; + string prev_sibling_id = 5; +} + +message TaskDelta { + exa.cortex_pb.TaskDeltaType type = 1; + string id = 2; + string content = 3; + exa.cortex_pb.TaskStatus status = 4; + string parent_id = 5; + string prev_sibling_id = 6; + string from_parent = 7; + string from_prev_sibling = 8; +} + +message TaskEntryDeltaSummary { + repeated exa.cortex_pb.TaskDelta deltas = 1; + int32 items_added = 2; + int32 items_pruned = 3; + int32 items_deleted = 4; + int32 items_updated = 5; + int32 items_moved = 6; +} + +message CortexStepBrainUpdate { + oneof target { + exa.cortex_pb.BrainEntryType entry_type = 1; + } + exa.cortex_pb.BrainUpdateTrigger trigger = 3; + repeated exa.cortex_pb.BrainEntryDelta deltas = 2; +} + +message CortexStepBrowserSubagent { + string task = 1; + string reused_subagent_id = 9; + string recording_name = 7; + repeated exa.codeium_common_pb.Media media = 11; + string result = 2; + string task_name = 3; + string task_summary = 13; + string recording_path = 4; + exa.cortex_pb.RecordingGenerationStatus recording_generation_status = 6; + string subagent_id = 8; + bool skipped = 10; + string scratchpad_path = 12; +} + +message KnowledgeConfig { + optional bool enabled = 1; + exa.codeium_common_pb.Model model = 2; + uint32 max_context_tokens = 3; + uint32 max_invocations = 4; + uint32 min_turns_between_knowledge_generation = 5; + uint32 max_knowledge_items = 6; + uint32 max_artifacts_per_ki = 7; + uint32 max_title_length = 8; + uint32 max_summary_length = 9; + optional bool enable_ki_insertion = 10; +} + +message CortexStepKnowledgeGeneration { +} + +message CortexStepOpenBrowserUrl { + string url = 1; + string page_id_to_replace = 8; + exa.cortex_pb.AutoRunDecision auto_run_decision = 2; + bool user_rejected = 3; + string page_id = 4; + exa.codeium_common_pb.KnowledgeBaseItem web_document = 5; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 6; + exa.codeium_common_pb.ImageData screenshot = 7; + exa.codeium_common_pb.Media media_screenshot = 10; + string browser_state_diff = 9; +} + +message CortexStepExecuteBrowserJavaScript { + string title = 9; + string page_id = 1; + string javascript_source = 2; + string javascript_description = 3; + bool should_auto_run = 10; + exa.cortex_pb.BrowserActionWaitingReason waiting_reason = 13; + bool user_rejected = 4; + exa.codeium_common_pb.ImageData screenshot_end = 5; + exa.codeium_common_pb.Media media_screenshot_end = 12; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 6; + uint64 execution_duration_ms = 7; + string javascript_result = 8; + string browser_state_diff = 11; +} + +message CortexStepReadBrowserPage { + string page_id = 1; + exa.codeium_common_pb.KnowledgeBaseItem web_document = 2; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 3; +} + +message CortexStepBrowserGetDom { + string page_id = 1; + exa.codeium_common_pb.DOMTree dom_tree = 2; + string serialized_dom_tree = 3; + string serialized_dom_tree_uri = 5; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 4; +} + +message CortexStepListBrowserPages { + repeated exa.codeium_common_pb.BrowserPageMetadata pages = 1; +} + +message CortexStepCaptureBrowserScreenshot { + string page_id = 1; + bool save_screenshot = 7; + string screenshot_name = 10; + bool capture_by_element_index = 8; + int32 element_index = 9; + bool capture_beyond_viewport = 12; + bool user_rejected = 2; + exa.codeium_common_pb.ImageData screenshot = 3; + exa.codeium_common_pb.Media media_screenshot = 11; + exa.codeium_common_pb.Viewport screenshot_viewport = 13; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 4; + exa.cortex_pb.AutoRunDecision auto_run_decision = 5; +} + +message CortexStepClickBrowserPixel { + string page_id = 1; + int32 x = 2; + int32 y = 3; + exa.browser_pb.ClickType click_type = 7; + bool user_rejected = 4; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 5; + optional exa.codeium_common_pb.Media screenshot_with_click_feedback = 6; + string browser_state_diff = 8; +} + +message CortexStepCaptureBrowserConsoleLogs { + string page_id = 1; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 2; + exa.codeium_common_pb.ConsoleLogScopeItem console_logs = 3; +} + +message CascadePanelState { + exa.codeium_common_pb.PlanStatus plan_status = 1; + exa.codeium_common_pb.UserSettings user_settings = 2; +} + +message CortexStepCommandStatus { + string command_id = 1; + uint32 output_character_count = 8; + uint32 wait_duration_seconds = 10; + exa.cortex_pb.CortexStepStatus status = 2; + string combined = 9; + optional string delta = 12; + optional int32 exit_code = 5; + exa.cortex_pb.CortexErrorDetails error = 6; + uint32 waited_duration_seconds = 11; + string stdout = 3; + string stderr = 4; + exa.cortex_pb.CommandOutputPriority output_priority = 7; +} + +message CortexMemory { + string memory_id = 1; + string title = 6; + exa.cortex_pb.CortexMemoryMetadata metadata = 2; + exa.cortex_pb.CortexMemorySource source = 3; + exa.cortex_pb.CortexMemoryScope scope = 4; + oneof memory { + exa.cortex_pb.CortexMemoryText text_memory = 5; + } +} + +message CortexMemoryMetadata { + google.protobuf.Timestamp created_at = 1; + google.protobuf.Timestamp last_modified = 2; + google.protobuf.Timestamp last_accessed = 3; + repeated string tags = 4; + bool user_triggered = 5; +} + +message CortexMemoryText { + string content = 1; +} + +message CortexMemoryScope { + oneof scope { + exa.cortex_pb.CortexMemoryGlobalScope global_scope = 1; + exa.cortex_pb.CortexMemoryLocalScope local_scope = 2; + exa.cortex_pb.CortexMemoryAllScope all_scope = 3; + exa.cortex_pb.CortexMemoryProjectScope project_scope = 4; + } +} + +message CortexMemoryGlobalScope { +} + +message CortexMemoryLocalScope { + repeated string corpus_names = 2; + repeated string base_dir_uris = 3; + string repo_base_dir_uri = 1; +} + +message CortexMemoryAllScope { +} + +message CortexMemoryProjectScope { + string file_path = 1; + string absolute_file_path = 7; + repeated string base_dir_uris = 2; + repeated string corpus_names = 3; + exa.cortex_pb.CortexMemoryTrigger trigger = 4; + string description = 5; + repeated string globs = 6; + int32 priority = 8; +} + +message CortexStepMemory { + string memory_id = 1; + exa.cortex_pb.CortexMemory memory = 2; + exa.cortex_pb.CortexMemory prev_memory = 4; + exa.cortex_pb.MemoryActionType action = 3; +} + +message CortexStepRetrieveMemory { + bool run_subagent = 1; + bool add_user_memories = 8; + string cascade_memory_summary = 2; + string user_memory_summary = 3; + string reason = 4; + bool show_reason = 5; + repeated exa.cortex_pb.CortexMemory retrieved_memories = 6; + bool blocking = 7; +} + +message MemoryConfig { + exa.codeium_common_pb.Model memory_model = 1; + uint32 num_checkpoints_for_context = 5; + int32 num_memories_to_consider = 3; + int32 max_global_cascade_memories = 4; + optional bool condense_input_trajectory = 6; + optional bool add_user_memories_to_system_prompt = 7; + optional bool enabled = 2; +} + +message ViewedFileTrackerConfig { + optional uint32 max_steps_per_checkpoint = 1; + uint32 max_files_in_prompt = 2; + uint32 max_lines_per_file_in_prompt = 3; +} + +message CodeStepCreationOptions { + int64 diff_block_separation_threshold = 1; + bool handle_deletions = 2; + bool handle_creations = 3; + optional bool include_original_content = 4; +} + +message BrainUpdateStepCreationOptions { + string entry_id_prefix = 1; +} + +message ViewFileStepCreationOptions { + bool condition_on_edit_step = 1; + optional bool include_raw_content = 2; +} + +message UserGrepStepCreationOptions { + uint32 num_search_events = 1; +} + +message RunCommandStepCreationOptions { + uint32 max_commands = 1; + google.protobuf.Duration max_command_age = 2; + uint32 per_command_max_bytes_output = 3; + uint32 total_max_bytes_output = 4; + optional bool include_running = 5; +} + +message LintDiffStepCreationOptions { + uint32 max_lint_inserts = 1; + uint32 min_required_lint_duration = 2; +} + +message BrowserStepCreationOptions { + uint32 max_browser_interactions = 1; +} + +message SnapshotToStepsOptions { + exa.cortex_pb.CodeStepCreationOptions code_step_creation_options = 1; + exa.cortex_pb.ViewFileStepCreationOptions view_file_step_creation_options = 2; + exa.cortex_pb.ViewedFileTrackerConfig viewed_file_tracker_config = 3; + repeated exa.cortex_pb.CortexStepType step_type_allow_list = 4; + exa.cortex_pb.UserGrepStepCreationOptions user_grep_step_creation_options = 5; + exa.cortex_pb.RunCommandStepCreationOptions run_command_step_creation_options = 6; + exa.cortex_pb.LintDiffStepCreationOptions lint_diff_step_creation_options = 7; + exa.cortex_pb.BrowserStepCreationOptions browser_step_creation_options = 9; +} + +message CortexStepPostPrReview { + string body = 1; + string commit_id = 2; + string path = 3; + string side = 4; + int32 start_line = 5; + int32 end_line = 6; + string category = 7; +} + +message McpServerSpec { + string server_name = 1; + string command = 2; + repeated string args = 3; + map env = 4; + string server_url = 6; + bool disabled = 7; + repeated string disabled_tools = 8; + repeated string enabled_tools = 10; + map headers = 9; + string cwd = 13; + uint32 server_index = 5; + bool skip_tool_name_prefix = 11; + bool skip_tool_description_prefix = 12; + map tool_config = 14; + exa.cortex_pb.McpOAuthConfig oauth = 15; + exa.cortex_pb.McpAuthProviderType auth_provider_type = 16; +} + +message McpServerToolConfig { + exa.cortex_pb.McpToolBackgroundMode background = 1; +} + +message McpOAuthConfig { + string client_id = 1; + string client_secret = 2; +} + +message McpServerInfo { + string name = 1; + string version = 2; +} + +message CnsSandboxMount { + string cns_source_tar = 1; + string destination_dir = 2; +} + +message McpHttpServerLaunchSpec { + string server_name = 1; + string command = 2; + repeated string args = 3; + map env = 4; + bool dont_add_mcp_suffix_to_url = 5; + repeated exa.cortex_pb.CnsSandboxMount cns_sandbox_mounts = 6; +} + +message StepRenderInfo { + string title = 1; + string markdown = 2; + bool hidden = 4; +} + +message CortexStepMcpTool { + string server_name = 1; + exa.codeium_common_pb.ChatToolCall tool_call = 2; + exa.cortex_pb.McpServerInfo server_info = 4; + oneof result { + string result_string = 3; + string result_uri = 8; + } + repeated exa.codeium_common_pb.ImageData images = 5; + repeated exa.codeium_common_pb.Media media = 6; + bool user_rejected = 7; + exa.cortex_pb.StepRenderInfo render_info = 9; + string progress_message = 10; + double progress = 11; + double progress_total = 12; + map metadata = 13; +} + +message McpResource { + string uri = 1; + string name = 2; + string description = 3; + string mime_type = 4; +} + +message McpPromptSpec { + string server_name = 1; + string name = 2; + string title = 3; + string description = 4; + repeated exa.codeium_common_pb.McpPromptArgument arguments = 5; +} + +message CortexStepListResources { + string server_name = 1; + optional string cursor = 2; + repeated exa.cortex_pb.McpResource resources = 3; + string next_cursor = 4; +} + +message CortexStepReadResource { + string server_name = 1; + string uri = 2; + repeated exa.codeium_common_pb.McpResourceContent contents = 3; + bool skipped_non_image_binary_content = 4; +} + +message CortexStepArtifactSummary { + string summary = 1; +} + +message CortexStepManagerFeedback { + exa.cortex_pb.CortexStepManagerFeedbackStatus status = 1; + string feedback = 2; +} + +message CortexStepToolCallProposal { + exa.codeium_common_pb.ChatToolCall tool_call = 1; +} + +message CortexStepToolCallChoice { + repeated exa.codeium_common_pb.ChatToolCall proposal_tool_calls = 1; + uint32 choice = 2; + string reason = 3; +} + +message CortexStepTrajectoryChoice { + repeated string proposal_trajectory_ids = 1; + int32 choice = 2; + string reason = 3; +} + +message McpServerState { + exa.cortex_pb.McpServerSpec spec = 1; + exa.cortex_pb.McpServerStatus status = 2; + string error = 3; + repeated exa.chat_pb.ChatToolDefinition tools = 4; + repeated string tool_errors = 7; + exa.cortex_pb.McpServerInfo server_info = 5; + string instructions = 6; + string auth_url = 8; + bool has_auth_token = 9; +} + +message TrajectoryJudgeConfig { + int32 max_steps_to_judge = 1; +} + +message CortexStepViewFileOutline { + string absolute_path_uri = 1; + uint32 cci_offset = 2; + repeated exa.codeium_common_pb.CodeContextItem ccis = 3; + repeated string outline_items = 9; + uint32 num_items_scanned = 10; + uint32 total_cci_count = 4; + uint32 num_lines = 5; + uint32 num_bytes = 6; + string contents = 7; + uint32 content_lines_truncated = 8; + string triggered_memories = 11; + string raw_content = 12; + exa.cortex_pb.FilePermissionInteractionSpec file_permission_request = 13; +} + +message EphemeralMessagesConfig { + optional bool enabled = 1; + exa.cortex_pb.EphemeralMessagePersistenceLevel persistence_level = 4; + repeated exa.cortex_pb.BrowserEphemeralOption browser_ephemeral_options = 5; + optional bool exclude_unleash_browser_ephemeral_options = 6; + repeated string disabled_heuristics = 7; + uint32 num_steps = 2; + repeated exa.cortex_pb.HeuristicPrompt heuristic_prompts = 3; +} + +message HeuristicPrompt { + string heuristic = 1; + string prompt = 2; +} + +message RevertMetadata { + repeated string reverted_uris = 4; +} + +message TrajectoryPrefixMetadata { + uint32 length = 1; + uint32 tokens = 2; + uint32 num_skipped = 3; + uint32 num_truncated = 4; +} + +message CortexStepFindAllReferences { + string absolute_uri = 1; + string symbol = 2; + uint32 line = 3; + uint32 occurrence_index = 4; + repeated exa.codeium_common_pb.LspReference references = 5; +} + +message CortexStepRunExtensionCode { + string code = 1; + string language = 2; + bool model_wants_auto_run = 6; + string user_facing_explanation = 7; + string output = 3; + bool user_rejected = 4; + exa.cortex_pb.RunExtensionCodeAutoRunDecision auto_run_decision = 5; +} + +message CortexStepProposalFeedback { + exa.cortex_pb.AcknowledgementType acknowledgement_type = 1; + uint32 target_step_index = 2; + oneof target { + exa.cortex_pb.ReplacementChunk replacement_chunk = 3; + } +} + +message TrajectoryDescription { + oneof description { + string cascade_conversation_title = 1; + string mainline_branch_name = 2; + } +} + +message CortexStepTrajectorySearch { + string id = 1; + string query = 2; + exa.cortex_pb.TrajectorySearchIdType id_type = 3; + repeated exa.context_module_pb.CciWithSubrangeWithRetrievalMetadata chunks = 4; + exa.cortex_pb.TrajectoryDescription trajectory_description = 5; + uint32 total_chunks = 6; +} + +message CortexStepReadTerminal { + string process_id = 1; + string name = 2; + string contents = 3; +} + +message TaskResolutionOpenPr { + string pr_title = 1; + string pr_body = 2; + string pr_url = 3; + bool existed_previously = 4; +} + +message TaskResolution { + oneof resolution { + exa.cortex_pb.TaskResolutionOpenPr open_pr = 1; + } +} + +message CortexStepResolveTask { + string absolute_uri = 1; + string title = 2; + string description = 3; + bool user_rejected = 4; + exa.cortex_pb.TaskResolution resolution = 5; +} + +message CodeSearchMatch { + string snippet = 1; + int32 line_number = 2; +} + +message CodeSearchResults { + string path = 1; + repeated exa.cortex_pb.CodeSearchMatch matches = 4; + string changelist = 5; +} + +message CortexStepCodeSearch { + string query = 1; + bool only_paths = 6; + bool allow_dirs = 7; + repeated exa.cortex_pb.CodeSearchResults results = 5; +} + +message CortexStepBrowserInput { + string page_id = 1; + int32 index = 2; + string text = 3; + bool press_enter = 4; + bool clear_text = 5; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 6; + string browser_state_diff = 7; +} + +message CortexStepBrowserMoveMouse { + string page_id = 1; + int32 x = 2; + int32 y = 3; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 6; + string browser_state_diff = 7; +} + +message CortexStepBrowserSelectOption { + string page_id = 1; + int32 index = 2; + string value = 3; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 6; + string browser_state_diff = 7; +} + +message CortexStepBrowserScroll { + string page_id = 1; + exa.browser_pb.ScrollDirection direction = 2; + bool scroll_to_end = 3; + bool scroll_by_element_index = 4; + int32 element_index = 5; + int32 pixels_scrolled_x = 6; + int32 pixels_scrolled_y = 7; + string browser_state_diff = 8; +} + +message CortexStepBrowserScrollUp { + string page_id = 1; + bool scroll_to_end = 2; + bool scroll_by_element_index = 3; + int32 element_index = 4; + string browser_state_diff = 5; +} + +message CortexStepBrowserScrollDown { + string page_id = 1; + bool scroll_to_end = 2; + bool scroll_by_element_index = 3; + int32 element_index = 4; + string browser_state_diff = 5; +} + +message CortexStepBrowserClickElement { + string page_id = 1; + int32 index = 2; + string description = 3; + exa.browser_pb.ClickType click_type = 5; + bool user_rejected = 4; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 6; + string browser_state_diff = 7; +} + +message CortexStepBrowserListNetworkRequests { + string page_id = 1; + bool include_preserved_requests = 2; + repeated string resource_types = 3; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 4; + string network_requests = 5; +} + +message CortexStepBrowserGetNetworkRequest { + string page_id = 1; + string request_id = 2; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 3; + string network_request_details = 4; +} + +message ModelAliasResolutionPayload { + exa.codeium_common_pb.Model model = 1; + exa.codeium_common_pb.ModelInfo model_info_override = 2; +} + +message CortexStepBrowserMouseWheel { + string page_id = 1; + int32 x = 2; + int32 y = 3; + int32 dx = 4; + int32 dy = 5; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 6; + string browser_state_diff = 7; +} + +message CortexStepBrowserMouseUp { + string page_id = 1; + string button = 2; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 3; + string browser_state_diff = 4; +} + +message CortexStepBrowserMouseDown { + string page_id = 1; + string button = 2; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 3; + string browser_state_diff = 4; +} + +message CortexStepBrowserRefreshPage { + string page_id = 1; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 2; + string browser_state_diff = 3; +} + +message CortexStepBrowserPressKey { + string page_id = 1; + string key = 2; + string text = 3; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 5; + string browser_state_diff = 4; +} + +message CortexStepGenerateImage { + string prompt = 1; + repeated string image_paths = 2; + string image_name = 4; + exa.codeium_common_pb.ImageData generated_image = 3; + string model_name = 5; + exa.codeium_common_pb.Media generated_media = 6; +} + +message CortexStepBrowserResizeWindow { + string page_id = 1; + int32 width = 2; + int32 height = 3; + exa.browser_pb.WindowState window_state = 6; + bool user_rejected = 4; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 5; + string browser_state_diff = 7; +} + +message CortexStepBrowserDragPixelToPixel { + string page_id = 1; + repeated exa.codeium_common_pb.Point2 waypoints = 2; + bool user_rejected = 6; + exa.codeium_common_pb.BrowserPageMetadata page_metadata = 7; + repeated exa.codeium_common_pb.Media screenshots_with_drag_feedback = 8; +} + +message CortexStepTaskBoundary { + string task_name = 1; + string task_status = 2; + string task_summary = 3; + string task_summary_with_citations = 4; + string delta_summary = 6; + string delta_summary_with_citations = 7; + exa.cortex_pb.AgentMode mode = 5; +} + +message CortexStepNotifyUser { + repeated string review_absolute_uris = 1; + string notification_content = 2; + bool is_blocking = 3; + float confidence_score = 4; + string confidence_justification = 5; + bool should_auto_proceed = 8; + string diffs_uri = 6; + bool ask_for_user_feedback = 7; +} + +message CodeAcknowledgementInfo { + string uri_path = 1; + repeated uint32 step_indices = 2; + exa.diff_action_pb.UnifiedDiff diff = 3; +} + +message CortexStepCodeAcknowledgement { + bool is_accept = 3; + string written_feedback = 4; + exa.cortex_pb.CodeAcknowledgementScope acknowledgement_scope = 5; + repeated exa.cortex_pb.CodeAcknowledgementInfo code_acknowledgement_infos = 7; +} + +message InternalSearchResults { + string url = 1; + string title = 2; + string content = 3; +} + +message CortexStepInternalSearch { + string query = 1; + repeated exa.cortex_pb.InternalSearchResults results = 2; +} + +message ArtifactReviewState { + string artifact_uri = 1; + exa.cortex_pb.ArtifactReviewStatus status = 2; + google.protobuf.Timestamp last_reviewed_time = 3; + string last_reviewed_content = 4; +} + +message ConversationHistoryConfig { + optional bool enabled = 1; + int32 max_conversations = 2; + int32 max_title_chars = 3; + int32 max_user_intent_chars = 4; + int32 max_conversation_logs_chars = 5; + int32 max_artifact_summary_chars = 6; +} + +message CortexStepSystemMessage { + string message = 1; + exa.cortex_pb.StepRenderInfo render_info = 2; + string event_type = 3; +} + +message CortexStepWait { + int64 duration_ms = 1; +} + +message CortexStepAgencyToolCall { + string agent_name = 1; + string function_name = 2; + repeated google.protobuf.Any request_messages = 3; + repeated google.protobuf.Any response_messages = 4; +} + +message CortexStepWorkspaceAPI { + string url = 1; + string http_method = 2; + string body = 3; + string description = 4; + int32 status_code = 5; + string response = 6; +} + +message GenericStepResult { + string result = 1; + repeated exa.codeium_common_pb.Media media = 4; + map metadata = 2; + exa.cortex_pb.StepRenderInfo step_render_info = 3; +} + +message SubagentSpec { + string type_name = 1; + string role = 2; + string initial_prompt = 3; + oneof workspace { + bool inherit = 4; + string branch = 5; + string workspace_uri = 6; + } +} + +message SubagentResult { + string conversation_id = 1; + string log_absolute_uri = 2; +} + +message CortexStepInvokeSubagent { + repeated exa.cortex_pb.SubagentSpec subagents = 9; + repeated exa.cortex_pb.SubagentResult results = 10; + string subagent_name = 1; + string prompt = 2; + string conversation_id = 5; +} + +message CortexStepGeneric { + map args = 1; + exa.cortex_pb.GenericStepResult result = 2; +} + +message MessageRenderDetails { + string message_title = 1; +} + +message AgentMessage { + string id = 1; + string recipient = 2; + string sender = 3; + exa.cortex_pb.MessagePriority priority = 5; + google.protobuf.Timestamp timestamp = 6; + exa.cortex_pb.MessageRenderDetails render_details = 10; + bool hide_from_user = 11; + oneof payload { + string content = 4; + bytes step_payload = 9; + } +} + +message TopLevelTokenGroup { + string name = 1; + exa.cortex_pb.TokenType type = 2; + exa.cortex_pb.TokenSource source = 3; + int32 num_tokens = 4; + repeated exa.cortex_pb.TokenGroup children = 5; +} + +message TokenGroup { + string name = 1; + repeated exa.cortex_pb.TokenGroup children = 2; + int32 num_tokens = 3; +} + +message TokenBreakdown { + repeated exa.cortex_pb.TopLevelTokenGroup groups = 1; + int32 total_tokens = 2; +} diff --git a/proto/src/exa/diff_action_pb/diff_action.desc.bin b/proto/src/exa/diff_action_pb/diff_action.desc.bin new file mode 100644 index 00000000..f389bb23 Binary files /dev/null and b/proto/src/exa/diff_action_pb/diff_action.desc.bin differ diff --git a/proto/src/exa/diff_action_pb/diff_action.proto b/proto/src/exa/diff_action_pb/diff_action.proto new file mode 100644 index 00000000..69aea5c9 --- /dev/null +++ b/proto/src/exa/diff_action_pb/diff_action.proto @@ -0,0 +1,70 @@ +syntax = "proto3"; +package exa.diff_action_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/diff_action_pb"; + +enum UnifiedDiffLineType { + UNIFIED_DIFF_LINE_TYPE_UNSPECIFIED = 0; + UNIFIED_DIFF_LINE_TYPE_INSERT = 1; + UNIFIED_DIFF_LINE_TYPE_DELETE = 2; + UNIFIED_DIFF_LINE_TYPE_UNCHANGED = 3; +} + +enum DiffChangeType { + DIFF_CHANGE_TYPE_UNSPECIFIED = 0; + DIFF_CHANGE_TYPE_INSERT = 1; + DIFF_CHANGE_TYPE_DELETE = 2; + DIFF_CHANGE_TYPE_UNCHANGED = 3; +} + +enum DiffType { + DIFF_TYPE_UNSPECIFIED = 0; + DIFF_TYPE_UNIFIED = 1; + DIFF_TYPE_CHARACTER = 2; + DIFF_TYPE_COMBO = 3; + DIFF_TYPE_TMP_SUPERCOMPLETE = 4; + DIFF_TYPE_TMP_TAB_JUMP = 5; +} + +message UnifiedDiff { + message UnifiedDiffLine { + string text = 1; + exa.diff_action_pb.UnifiedDiffLineType type = 2; + } + repeated exa.diff_action_pb.UnifiedDiff.UnifiedDiffLine lines = 3; +} + +message DiffBlock { + int32 start_line = 1; + int32 end_line = 2; + exa.diff_action_pb.UnifiedDiff unified_diff = 3; +} + +message CharacterDiffChange { + string text = 1; + exa.diff_action_pb.DiffChangeType type = 2; +} + +message CharacterDiff { + repeated exa.diff_action_pb.CharacterDiffChange changes = 1; +} + +message ComboDiffLine { + string text = 1; + exa.diff_action_pb.DiffChangeType type = 2; + exa.diff_action_pb.CharacterDiff character_diff = 3; +} + +message ComboDiff { + repeated exa.diff_action_pb.ComboDiffLine lines = 1; +} + +message DiffSet { + exa.diff_action_pb.UnifiedDiff unified_diff = 1; + exa.diff_action_pb.CharacterDiff character_diff = 2; + exa.diff_action_pb.ComboDiff combo_diff = 3; +} + +message DiffList { + repeated exa.diff_action_pb.DiffBlock diffs = 2; +} diff --git a/proto/src/exa/extension_server_pb/extension_server.desc.bin b/proto/src/exa/extension_server_pb/extension_server.desc.bin new file mode 100644 index 00000000..53b3162b Binary files /dev/null and b/proto/src/exa/extension_server_pb/extension_server.desc.bin differ diff --git a/proto/src/exa/extension_server_pb/extension_server.proto b/proto/src/exa/extension_server_pb/extension_server.proto new file mode 100644 index 00000000..0c8b84a1 --- /dev/null +++ b/proto/src/exa/extension_server_pb/extension_server.proto @@ -0,0 +1,585 @@ +syntax = "proto3"; +package exa.extension_server_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/extension_server_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; +import "exa/gemini_coder/proto/trajectory.proto"; +import "exa/jetski_cortex_pb/jetski_cortex.proto"; +import "exa/language_server_pb/language_server.proto"; +import "exa/unified_state_sync_pb/unified_state_sync.proto"; + +enum ActiveEditorType { + ACTIVE_EDITOR_TYPE_UNSPECIFIED = 0; + ACTIVE_EDITOR_TYPE_TEXT_EDITOR = 1; + ACTIVE_EDITOR_TYPE_TERMINAL = 2; +} + +enum SoundType { + SOUND_TYPE_UNSPECIFIED = 0; + SOUND_TYPE_CASCADE_DONE = 1; +} + +enum EditNotebookOperation { + EDIT_NOTEBOOK_OPERATION_UNSPECIFIED = 0; + EDIT_NOTEBOOK_OPERATION_INSERT_AFTER = 1; + EDIT_NOTEBOOK_OPERATION_INSERT_BEFORE = 2; + EDIT_NOTEBOOK_OPERATION_REPLACE_CELLS = 3; + EDIT_NOTEBOOK_OPERATION_DELETE_CELLS = 4; + EDIT_NOTEBOOK_OPERATION_OVERWRITE_NOTEBOOK = 5; +} + +message IsAgentManagerEnabledRequest { +} + +message IsAgentManagerEnabledResponse { + bool enabled = 1; +} + +message ConversationPickerRequest { + exa.jetski_cortex_pb.CascadeTrajectorySummaries summaries = 1; + string current_cascade_id = 2; + string current_workspace_normalized_path = 3; + string current_workspace_uri = 4; +} + +message ConversationPickerResponse { + optional string chat_message = 1; + optional string selected_cascade_id = 2; + repeated string deleted_cascade_ids = 3; +} + +message StartAudioRecordingRequest { +} + +message EndAudioRecordingRequest { +} + +message EndAudioRecordingResponse { + string transcription = 1; +} + +message StartAudioRecordingResponse { +} + +message GetCurrentAudioRecordingRequest { +} + +message GetCurrentAudioRecordingResponse { + float average_volume = 2; +} + +message LanguageServerStartedRequest { + int32 https_port = 1; + int32 lsp_port = 2; + string csrf_token = 4; + int32 http_port = 5; +} + +message LanguageServerStartedResponse { +} + +message OpenSettingRequest { + string setting_id = 1; +} + +message OpenSettingResponse { +} + +message OpenFilePointerRequest { + string file_uri = 1; + int32 start_line = 2; + int32 start_col = 3; + int32 end_line = 4; + int32 end_col = 5; + bool is_cascade_diff = 6; +} + +message OpenFilePointerResponse { +} + +message InsertCodeAtCursorRequest { + string text = 1; + exa.extension_server_pb.ActiveEditorType editor_type = 2; +} + +message InsertCodeAtCursorResponse { +} + +message EventMetadataRecord { + string key = 1; + string value = 2; +} + +message LogEventRequest { + exa.codeium_common_pb.ProductEventType event = 1; + string event_string = 3; + repeated exa.extension_server_pb.EventMetadataRecord metadata = 2; +} + +message LogEventResponse { +} + +message CheckTerminalShellSupportRequest { +} + +message CheckTerminalShellSupportResponse { + bool has_shell_integration = 1; + string shell_name = 2; + string shell_path = 3; +} + +message ExecuteCommandRequest { + string command_line = 5; + string cwd = 3; + string terminal_id = 4; + bool sandbox_override = 6; + optional string conversation_id = 7; +} + +message ShowTerminalRequest { + string terminal_id = 1; +} + +message ShowTerminalResponse { +} + +message OpenVirtualFileRequest { + string text = 1; + bool show_markdown_preview = 2; +} + +message OpenVirtualFileResponse { +} + +message SaveDocumentRequest { + string uri = 1; + optional string conversation_id = 2; +} + +message SaveDocumentResponse { +} + +message ReadTerminalRequest { + string process_id = 1; + optional string conversation_id = 2; +} + +message ReadTerminalResponse { + string contents = 1; +} + +message OpenTerminalRequest { + string process_id = 1; +} + +message OpenTerminalResponse { +} + +message SendTerminalInputRequest { + string terminal_id = 1; + string input = 2; + optional string conversation_id = 3; +} + +message SendTerminalInputResponse { + bool success = 1; + optional string error = 2; +} + +message TerminateCommandRequest { + string terminal_id = 1; + optional string conversation_id = 2; +} + +message TerminateCommandResponse { +} + +message GetLintErrorsRequest { + message AwaitNewLintsConfig { + string acknowledger_id = 1; + int32 timeout_ms = 2; + int32 grace_period_ms = 3; + bool include_saved = 4; + } + optional exa.extension_server_pb.GetLintErrorsRequest.AwaitNewLintsConfig await_new_lints_config = 1; + optional string conversation_id = 5; +} + +message GetLintErrorsResponse { + repeated exa.codeium_common_pb.CodeDiagnostic lint_errors = 1; + repeated exa.codeium_common_pb.CodeDiagnostic persistent_lint_errors = 2; +} + +message OpenDiffZonesRequest { + string cascade_id = 1; + repeated exa.language_server_pb.ValidationState validation_states = 2; + bool write_new_state = 3; + repeated uint32 step_indices = 4; + optional string trace_id = 5; +} + +message OpenDiffZonesResponse { +} + +message OpenExternalUrlRequest { + string url = 1; + bool use_ide_browser = 2; +} + +message OpenExternalUrlResponse { +} + +message HandleAsyncPostMessageRequest { + string message_type = 1; + string message_content = 2; +} + +message HandleAsyncPostMessageResponse { + string response_content = 1; +} + +message PlaySoundRequest { + exa.extension_server_pb.SoundType sound_type = 1; +} + +message PlaySoundResponse { +} + +message OpenAntigravityRulesFileRequest { + bool is_workspace_rules = 1; +} + +message OpenAntigravityRulesFileResponse { +} + +message OpenPluginPageRequest { + string plugin_id = 4; +} + +message OpenPluginPageResponse { +} + +message OpenPluginConfigModalRequest { + string plugin_id = 3; +} + +message OpenPluginConfigModalResponse { +} + +message TerminalResearchResultRequest { + gemini_coder.Step last_step = 1; +} + +message TerminalResearchResultResponse { +} + +message OpenConfigurePluginsPageRequest { +} + +message OpenConfigurePluginsPageResponse { +} + +message WriteCascadeEditRequest { + string uri = 1; + string target_content = 2; +} + +message WriteCascadeEditResponse { +} + +message EditNotebookRequest { + message Cell { + string kind = 1; + string content = 2; + } + string absolute_path_uri = 1; + exa.extension_server_pb.EditNotebookOperation operation = 2; + string anchor_cell_id = 3; + int32 anchor_cell_index = 4; + repeated exa.extension_server_pb.EditNotebookRequest.Cell cells = 5; + int32 delete_count = 6; +} + +message EditNotebookResponse { + message ModifiedCell { + string cell_id = 1; + string kind = 2; + string content = 3; + int32 index = 4; + } + repeated exa.extension_server_pb.EditNotebookResponse.ModifiedCell modified_cells = 1; + int32 total_cell_count = 2; +} + +message ReadNotebookRequest { + string absolute_path_uri = 1; + repeated int32 cell_indices = 2; + repeated string cell_ids = 3; +} + +message ReadNotebookResponse { + string flattened_content = 1; + int32 read_cell_count = 2; +} + +message ExecuteNotebookRequest { + string absolute_path_uri = 1; + repeated string cell_ids = 2; + repeated int32 cell_indices = 3; + bool stop_on_error = 4; + bool restart_kernel = 5; +} + +message ExecuteNotebookResponse { + enum CellStatus { + CELL_STATUS_UNSPECIFIED = 0; + CELL_STATUS_SUCCESS = 1; + CELL_STATUS_FAILURE = 2; + } + enum ExecutionStatus { + EXECUTION_STATUS_UNSPECIFIED = 0; + EXECUTION_STATUS_SUCCESS = 1; + EXECUTION_STATUS_FAILURE = 2; + EXECUTION_STATUS_PARTIAL_SUCCESS = 3; + } + message CellOutput { + string cell_id = 1; + int32 cell_index = 2; + exa.extension_server_pb.ExecuteNotebookResponse.CellStatus status = 3; + string output_text = 4; + bool output_text_truncated = 5; + bool generated_images = 6; + string error_trace = 7; + } + exa.extension_server_pb.ExecuteNotebookResponse.ExecutionStatus status = 1; + int32 executed_cells_count = 2; + repeated exa.extension_server_pb.ExecuteNotebookResponse.CellOutput cell_outputs = 3; + string error_trace = 4; +} + +message OpenConversationWorkspaceQuickPickRequest { + string cascade_id = 1; + repeated string workspace_uris = 2; +} + +message OpenConversationWorkspaceQuickPickResponse { + bool open_in_current_window = 1; +} + +message FindAllReferencesRequest { + string file_uri = 1; + string symbol = 2; + uint32 line = 3; + uint32 occurrence_index = 4; +} + +message FindAllReferencesResponse { + repeated exa.codeium_common_pb.LspReference references = 1; +} + +message GetDefinitionRequest { + repeated exa.extension_server_pb.GetDefinitionRequestItem request = 1; +} + +message GetDefinitionRequestItem { + string file_uri = 1; + exa.codeium_common_pb.DocumentPosition position = 2; + string line_content = 3; +} + +message GetDefinitionResponse { + repeated exa.extension_server_pb.GetDefinitionResponseItem response = 1; +} + +message GetDefinitionResponseItem { + repeated exa.codeium_common_pb.LspReference definitions = 1; + optional exa.codeium_common_pb.GRPCStatus status = 2; +} + +message HandleProposeCodeExtensionVerificationRequest { + gemini_coder.Step step = 1; +} + +message HandleProposeCodeExtensionVerificationResponse { +} + +message UpdateCascadeTrajectorySummariesRequest { + exa.jetski_cortex_pb.CascadeTrajectorySummaries summaries = 1; +} + +message UpdateCascadeTrajectorySummariesResponse { +} + +message RunExtensionCodeRequest { + string code = 1; +} + +message RunExtensionCodeResponse { + string output = 1; +} + +message UpdateDetailedViewWithCascadeInputRequest { + exa.language_server_pb.HandleStreamingCommandRequest request = 1; + exa.language_server_pb.HandleStreamingCommandResponse response = 2; +} + +message UpdateDetailedViewWithCascadeInputResponse { +} + +message GetSecretValueRequest { + string key = 1; +} + +message GetSecretValueResponse { + string value = 1; +} + +message StoreSecretValueRequest { + string key = 1; + string value = 2; +} + +message StoreSecretValueResponse { +} + +message GetBrowserOnboardingPortRequest { +} + +message GetBrowserOnboardingPortResponse { + uint32 port = 1; +} + +message GetChromeDevtoolsMcpUrlRequest { +} + +message GetChromeDevtoolsMcpUrlResponse { + string url = 1; +} + +message FocusManagerWindow { + optional string cascade_id = 1; +} + +message FocusEditorWindow { + optional string cascade_id = 1; +} + +message FocusIDEWindowRequest { + oneof window_type { + exa.extension_server_pb.FocusEditorWindow editor = 1; + exa.extension_server_pb.FocusManagerWindow manager = 2; + } +} + +message FocusIDEWindowResponse { +} + +message LaunchBrowserRequest { + string extension_path = 1; + bool launch_in_foreground = 2; +} + +message LaunchBrowserResponse { + string cdp_address = 1; +} + +message RestartUserStatusUpdaterRequest { +} + +message RestartUserStatusUpdaterResponse { +} + +message RecordErrorRequest { + exa.codeium_common_pb.ErrorTrace error_trace = 1; +} + +message RecordErrorResponse { +} + +message SubscribeToUnifiedStateSyncTopicRequest { + string topic = 1; +} + +message UnifiedStateSyncUpdate { + oneof update_type { + exa.unified_state_sync_pb.Topic initial_state = 1; + exa.unified_state_sync_pb.AppliedUpdate applied_update = 2; + } +} + +message PushUnifiedStateSyncUpdateRequest { + exa.unified_state_sync_pb.UpdateRequest update = 1; +} + +message PushUnifiedStateSyncUpdateResponse { +} + +message BroadcastConversationDeletionRequest { + string deleted_cascade_id = 1; +} + +message BroadcastConversationDeletionResponse { +} + +message HeartbeatRequest { +} + +message HeartbeatResponse { +} + +service ExtensionServerService { + rpc LanguageServerStarted(exa.extension_server_pb.LanguageServerStartedRequest) returns (exa.extension_server_pb.LanguageServerStartedResponse); + rpc OpenSetting(exa.extension_server_pb.OpenSettingRequest) returns (exa.extension_server_pb.OpenSettingResponse); + rpc OpenFilePointer(exa.extension_server_pb.OpenFilePointerRequest) returns (exa.extension_server_pb.OpenFilePointerResponse); + rpc InsertCodeAtCursor(exa.extension_server_pb.InsertCodeAtCursorRequest) returns (exa.extension_server_pb.InsertCodeAtCursorResponse); + rpc LogEvent(exa.extension_server_pb.LogEventRequest) returns (exa.extension_server_pb.LogEventResponse); + rpc CheckTerminalShellSupport(exa.extension_server_pb.CheckTerminalShellSupportRequest) returns (exa.extension_server_pb.CheckTerminalShellSupportResponse); + rpc ExecuteCommand(exa.extension_server_pb.ExecuteCommandRequest) returns (stream exa.codeium_common_pb.TerminalShellCommandStreamChunk); + rpc ShowTerminal(exa.extension_server_pb.ShowTerminalRequest) returns (exa.extension_server_pb.ShowTerminalResponse); + rpc SendTerminalInput(exa.extension_server_pb.SendTerminalInputRequest) returns (exa.extension_server_pb.SendTerminalInputResponse); + rpc TerminateCommand(exa.extension_server_pb.TerminateCommandRequest) returns (exa.extension_server_pb.TerminateCommandResponse); + rpc OpenVirtualFile(exa.extension_server_pb.OpenVirtualFileRequest) returns (exa.extension_server_pb.OpenVirtualFileResponse); + rpc SaveDocument(exa.extension_server_pb.SaveDocumentRequest) returns (exa.extension_server_pb.SaveDocumentResponse); + rpc ReadTerminal(exa.extension_server_pb.ReadTerminalRequest) returns (exa.extension_server_pb.ReadTerminalResponse); + rpc OpenTerminal(exa.extension_server_pb.OpenTerminalRequest) returns (exa.extension_server_pb.OpenTerminalResponse); + rpc GetLintErrors(exa.extension_server_pb.GetLintErrorsRequest) returns (exa.extension_server_pb.GetLintErrorsResponse); + rpc OpenDiffZones(exa.extension_server_pb.OpenDiffZonesRequest) returns (exa.extension_server_pb.OpenDiffZonesResponse); + rpc OpenExternalUrl(exa.extension_server_pb.OpenExternalUrlRequest) returns (exa.extension_server_pb.OpenExternalUrlResponse); + rpc HandleAsyncPostMessage(exa.extension_server_pb.HandleAsyncPostMessageRequest) returns (exa.extension_server_pb.HandleAsyncPostMessageResponse); + rpc PlaySound(exa.extension_server_pb.PlaySoundRequest) returns (exa.extension_server_pb.PlaySoundResponse); + rpc OpenAntigravityRulesFile(exa.extension_server_pb.OpenAntigravityRulesFileRequest) returns (exa.extension_server_pb.OpenAntigravityRulesFileResponse); + rpc OpenPluginPage(exa.extension_server_pb.OpenPluginPageRequest) returns (exa.extension_server_pb.OpenPluginPageResponse); + rpc OpenPluginConfigModal(exa.extension_server_pb.OpenPluginConfigModalRequest) returns (exa.extension_server_pb.OpenPluginConfigModalResponse); + rpc OpenConfigurePluginsPage(exa.extension_server_pb.OpenConfigurePluginsPageRequest) returns (exa.extension_server_pb.OpenConfigurePluginsPageResponse); + rpc OpenConversationWorkspaceQuickPick(exa.extension_server_pb.OpenConversationWorkspaceQuickPickRequest) returns (exa.extension_server_pb.OpenConversationWorkspaceQuickPickResponse); + rpc FindAllReferences(exa.extension_server_pb.FindAllReferencesRequest) returns (exa.extension_server_pb.FindAllReferencesResponse); + rpc GetDefinition(exa.extension_server_pb.GetDefinitionRequest) returns (exa.extension_server_pb.GetDefinitionResponse); + rpc TerminalResearchResult(exa.extension_server_pb.TerminalResearchResultRequest) returns (exa.extension_server_pb.TerminalResearchResultResponse); + rpc WriteCascadeEdit(exa.extension_server_pb.WriteCascadeEditRequest) returns (exa.extension_server_pb.WriteCascadeEditResponse); + rpc EditNotebook(exa.extension_server_pb.EditNotebookRequest) returns (exa.extension_server_pb.EditNotebookResponse); + rpc ReadNotebook(exa.extension_server_pb.ReadNotebookRequest) returns (exa.extension_server_pb.ReadNotebookResponse); + rpc ExecuteNotebook(exa.extension_server_pb.ExecuteNotebookRequest) returns (exa.extension_server_pb.ExecuteNotebookResponse); + rpc StartAudioRecording(exa.extension_server_pb.StartAudioRecordingRequest) returns (exa.extension_server_pb.StartAudioRecordingResponse); + rpc EndAudioRecording(exa.extension_server_pb.EndAudioRecordingRequest) returns (exa.extension_server_pb.EndAudioRecordingResponse); + rpc GetCurrentAudioRecording(exa.extension_server_pb.GetCurrentAudioRecordingRequest) returns (exa.extension_server_pb.GetCurrentAudioRecordingResponse); + rpc HandleProposeCodeExtensionVerification(exa.extension_server_pb.HandleProposeCodeExtensionVerificationRequest) returns (exa.extension_server_pb.HandleProposeCodeExtensionVerificationResponse); + rpc UpdateCascadeTrajectorySummaries(exa.extension_server_pb.UpdateCascadeTrajectorySummariesRequest) returns (exa.extension_server_pb.UpdateCascadeTrajectorySummariesResponse); + rpc RunExtensionCode(exa.extension_server_pb.RunExtensionCodeRequest) returns (exa.extension_server_pb.RunExtensionCodeResponse); + rpc UpdateDetailedViewWithCascadeInput(exa.extension_server_pb.UpdateDetailedViewWithCascadeInputRequest) returns (exa.extension_server_pb.UpdateDetailedViewWithCascadeInputResponse); + rpc GetSecretValue(exa.extension_server_pb.GetSecretValueRequest) returns (exa.extension_server_pb.GetSecretValueResponse); + rpc StoreSecretValue(exa.extension_server_pb.StoreSecretValueRequest) returns (exa.extension_server_pb.StoreSecretValueResponse); + rpc LaunchBrowser(exa.extension_server_pb.LaunchBrowserRequest) returns (exa.extension_server_pb.LaunchBrowserResponse); + rpc RestartUserStatusUpdater(exa.extension_server_pb.RestartUserStatusUpdaterRequest) returns (exa.extension_server_pb.RestartUserStatusUpdaterResponse); + rpc ShowConversationPicker(exa.extension_server_pb.ConversationPickerRequest) returns (exa.extension_server_pb.ConversationPickerResponse); + rpc GetBrowserOnboardingPort(exa.extension_server_pb.GetBrowserOnboardingPortRequest) returns (exa.extension_server_pb.GetBrowserOnboardingPortResponse); + rpc GetChromeDevtoolsMcpUrl(exa.extension_server_pb.GetChromeDevtoolsMcpUrlRequest) returns (exa.extension_server_pb.GetChromeDevtoolsMcpUrlResponse); + rpc FocusIDEWindow(exa.extension_server_pb.FocusIDEWindowRequest) returns (exa.extension_server_pb.FocusIDEWindowResponse); + rpc SmartFocusConversation(exa.language_server_pb.SmartFocusConversationRequest) returns (exa.language_server_pb.SmartFocusConversationResponse); + rpc IsAgentManagerEnabled(exa.extension_server_pb.IsAgentManagerEnabledRequest) returns (exa.extension_server_pb.IsAgentManagerEnabledResponse); + rpc RecordError(exa.extension_server_pb.RecordErrorRequest) returns (exa.extension_server_pb.RecordErrorResponse); + rpc SubscribeToUnifiedStateSyncTopic(exa.extension_server_pb.SubscribeToUnifiedStateSyncTopicRequest) returns (stream exa.extension_server_pb.UnifiedStateSyncUpdate); + rpc PushUnifiedStateSyncUpdate(exa.extension_server_pb.PushUnifiedStateSyncUpdateRequest) returns (exa.extension_server_pb.PushUnifiedStateSyncUpdateResponse); + rpc BroadcastConversationDeletion(exa.extension_server_pb.BroadcastConversationDeletionRequest) returns (exa.extension_server_pb.BroadcastConversationDeletionResponse); + rpc Heartbeat(exa.extension_server_pb.HeartbeatRequest) returns (exa.extension_server_pb.HeartbeatResponse); +} \ No newline at end of file diff --git a/proto/src/exa/gemini_coder/proto/trajectory.desc.bin b/proto/src/exa/gemini_coder/proto/trajectory.desc.bin new file mode 100644 index 00000000..48c1a11b Binary files /dev/null and b/proto/src/exa/gemini_coder/proto/trajectory.desc.bin differ diff --git a/proto/src/exa/gemini_coder/proto/trajectory.proto b/proto/src/exa/gemini_coder/proto/trajectory.proto new file mode 100644 index 00000000..222647b6 --- /dev/null +++ b/proto/src/exa/gemini_coder/proto/trajectory.proto @@ -0,0 +1,169 @@ +syntax = "proto3"; +package gemini_coder; + +option go_package = "github.com/user/antigravity-client/gen/gemini_coder"; + +import "exa/cortex_pb/cortex.proto"; + +enum ExecutionStatus { + EXECUTION_STATUS_UNSPECIFIED = 0; + EXECUTION_STATUS_IDLE = 1; + EXECUTION_STATUS_RUNNING = 2; + EXECUTION_STATUS_CANCELING = 3; +} + +message Conversation { + string conversation_id = 1; + gemini_coder.Trajectory trajectory = 2; + gemini_coder.ConversationState state = 3; +} + +message ConversationState { + string trajectory_id = 1; + gemini_coder.ExecutionStatus status = 2; + repeated gemini_coder.Step staged_steps = 3; + exa.cortex_pb.CascadeConfig execute_config = 4; +} + +message Trajectory { + string trajectory_id = 1; + string cascade_id = 6; + exa.cortex_pb.CortexTrajectoryType trajectory_type = 4; + repeated gemini_coder.Step steps = 2; + repeated exa.cortex_pb.CortexTrajectoryReference parent_references = 5; + repeated exa.cortex_pb.CortexStepGeneratorMetadata generator_metadata = 3; + repeated exa.cortex_pb.ExecutorMetadata executor_metadatas = 9; + exa.cortex_pb.CortexTrajectorySource source = 8; + exa.cortex_pb.CortexTrajectoryMetadata metadata = 7; +} + +message TaskDetails { + string id = 1; + string log_uri = 2; + string progress = 3; + string description = 4; +} + +message Step { + exa.cortex_pb.CortexStepType type = 1; + exa.cortex_pb.CortexStepStatus status = 4; + exa.cortex_pb.CortexStepMetadata metadata = 5; + exa.cortex_pb.CortexErrorDetails error = 31; + exa.cortex_pb.TrajectoryPermissions permissions = 133; + gemini_coder.TaskDetails task_details = 148; + oneof step { + exa.cortex_pb.CortexStepGeneric generic = 140; + exa.cortex_pb.CortexStepFinish finish = 12; + exa.cortex_pb.CortexStepMquery mquery = 9; + exa.cortex_pb.CortexStepCodeAction code_action = 10; + exa.cortex_pb.CortexStepGitCommit git_commit = 11; + exa.cortex_pb.CortexStepGrepSearch grep_search = 13; + exa.cortex_pb.CortexStepCompile compile = 16; + exa.cortex_pb.CortexStepViewCodeItem view_code_item = 22; + exa.cortex_pb.CortexStepErrorMessage error_message = 24; + exa.cortex_pb.CortexStepRunCommand run_command = 28; + exa.cortex_pb.CortexStepFind find = 34; + exa.cortex_pb.CortexStepSuggestedResponses suggested_responses = 36; + exa.cortex_pb.CortexStepCommandStatus command_status = 37; + exa.cortex_pb.CortexStepReadUrlContent read_url_content = 40; + exa.cortex_pb.CortexStepViewContentChunk view_content_chunk = 41; + exa.cortex_pb.CortexStepSearchWeb search_web = 42; + exa.cortex_pb.CortexStepMcpTool mcp_tool = 47; + exa.cortex_pb.CortexStepClipboard clipboard = 55; + exa.cortex_pb.CortexStepViewFileOutline view_file_outline = 58; + exa.cortex_pb.CortexStepListResources list_resources = 62; + exa.cortex_pb.CortexStepReadResource read_resource = 63; + exa.cortex_pb.CortexStepLintDiff lint_diff = 64; + exa.cortex_pb.CortexStepOpenBrowserUrl open_browser_url = 67; + exa.cortex_pb.CortexStepTrajectorySearch trajectory_search = 72; + exa.cortex_pb.CortexStepExecuteBrowserJavaScript execute_browser_javascript = 73; + exa.cortex_pb.CortexStepListBrowserPages list_browser_pages = 74; + exa.cortex_pb.CortexStepCaptureBrowserScreenshot capture_browser_screenshot = 75; + exa.cortex_pb.CortexStepClickBrowserPixel click_browser_pixel = 76; + exa.cortex_pb.CortexStepCaptureBrowserConsoleLogs capture_browser_console_logs = 78; + exa.cortex_pb.CortexStepReadBrowserPage read_browser_page = 79; + exa.cortex_pb.CortexStepBrowserGetDom browser_get_dom = 80; + exa.cortex_pb.CortexStepCodeSearch code_search = 85; + exa.cortex_pb.CortexStepBrowserInput browser_input = 86; + exa.cortex_pb.CortexStepBrowserMoveMouse browser_move_mouse = 87; + exa.cortex_pb.CortexStepBrowserSelectOption browser_select_option = 88; + exa.cortex_pb.CortexStepBrowserScrollUp browser_scroll_up = 89; + exa.cortex_pb.CortexStepBrowserScrollDown browser_scroll_down = 90; + exa.cortex_pb.CortexStepBrowserClickElement browser_click_element = 91; + exa.cortex_pb.CortexStepBrowserListNetworkRequests browser_list_network_requests = 137; + exa.cortex_pb.CortexStepBrowserGetNetworkRequest browser_get_network_request = 138; + exa.cortex_pb.CortexStepBrowserPressKey browser_press_key = 92; + exa.cortex_pb.CortexStepTaskBoundary task_boundary = 93; + exa.cortex_pb.CortexStepNotifyUser notify_user = 94; + exa.cortex_pb.CortexStepCodeAcknowledgement code_acknowledgement = 95; + exa.cortex_pb.CortexStepInternalSearch internal_search = 96; + exa.cortex_pb.CortexStepBrowserSubagent browser_subagent = 97; + exa.cortex_pb.CortexStepKnowledgeGeneration knowledge_generation = 102; + exa.cortex_pb.CortexStepGenerateImage generate_image = 104; + exa.cortex_pb.CortexStepBrowserScroll browser_scroll = 101; + exa.cortex_pb.CortexStepBrowserResizeWindow browser_resize_window = 109; + exa.cortex_pb.CortexStepBrowserDragPixelToPixel browser_drag_pixel_to_pixel = 110; + exa.cortex_pb.CortexStepBrowserMouseWheel browser_mouse_wheel = 125; + exa.cortex_pb.CortexStepBrowserMouseUp browser_mouse_up = 134; + exa.cortex_pb.CortexStepBrowserMouseDown browser_mouse_down = 135; + exa.cortex_pb.CortexStepBrowserRefreshPage browser_refresh_page = 139; + exa.cortex_pb.CortexStepConversationHistory conversation_history = 111; + exa.cortex_pb.CortexStepKnowledgeArtifacts knowledge_artifacts = 112; + exa.cortex_pb.CortexStepSendCommandInput send_command_input = 113; + exa.cortex_pb.CortexStepSystemMessage system_message = 114; + exa.cortex_pb.CortexStepWait wait = 115; + exa.cortex_pb.CortexStepKIInsertion ki_insertion = 129; + exa.cortex_pb.CortexStepWorkspaceAPI workspace_api = 136; + exa.cortex_pb.CortexStepInvokeSubagent invoke_subagent = 143; + exa.cortex_pb.CortexStepRPCAction rpc_action = 152; + exa.cortex_pb.CortexStepExecuteNotebook execute_notebook = 150; + exa.cortex_pb.CortexStepReadNotebook read_notebook = 144; + exa.cortex_pb.CortexStepEditNotebook edit_notebook = 141; + exa.cortex_pb.CortexStepCompileApplet compile_applet = 106; + exa.cortex_pb.CortexStepInstallAppletDependencies install_applet_dependencies = 107; + exa.cortex_pb.CortexStepInstallAppletPackage install_applet_package = 108; + exa.cortex_pb.CortexStepRestartDevServer restart_dev_server = 123; + exa.cortex_pb.CortexStepLintApplet lint_applet = 126; + exa.cortex_pb.CortexStepShellExec shell_exec = 127; + exa.cortex_pb.CortexStepWriteBlob write_blob = 142; + exa.cortex_pb.CortexStepSetUpFirebase set_up_firebase = 121; + exa.cortex_pb.CortexStepDeployFirebase deploy_firebase = 124; + exa.cortex_pb.CortexStepSetUpCloudSql set_up_cloudsql = 149; + exa.cortex_pb.CortexStepCloudSQLSchemaUpdate cloudsql_update_schema = 151; + exa.cortex_pb.CortexStepCloudSQLExecuteSQL cloudsql_execute_sql = 153; + exa.cortex_pb.CortexStepAgencyToolCall agency_tool_call = 116; + exa.cortex_pb.CortexStepUserInput user_input = 19; + exa.cortex_pb.CortexStepPlannerResponse planner_response = 20; + exa.cortex_pb.CortexStepViewFile view_file = 14; + exa.cortex_pb.CortexStepListDirectory list_directory = 15; + exa.cortex_pb.CortexStepDeleteDirectory delete_directory = 105; + exa.cortex_pb.CortexStepCheckpoint checkpoint = 30; + exa.cortex_pb.CortexStepFileChange file_change = 98; + exa.cortex_pb.CortexStepMove move = 100; + exa.cortex_pb.CortexStepEphemeralMessage ephemeral_message = 103; + exa.cortex_pb.CortexStepDummy dummy = 7; + exa.cortex_pb.CortexStepPlanInput plan_input = 8; + exa.cortex_pb.CortexStepFileBreakdown file_breakdown = 21; + exa.cortex_pb.CortexStepWriteToFile write_to_file = 23; + exa.cortex_pb.CortexStepProposeCode propose_code = 32; + exa.cortex_pb.CortexStepSearchKnowledgeBase search_knowledge_base = 35; + exa.cortex_pb.CortexStepLookupKnowledgeBase lookup_knowledge_base = 39; + exa.cortex_pb.CortexStepManagerFeedback manager_feedback = 48; + exa.cortex_pb.CortexStepToolCallProposal tool_call_proposal = 49; + exa.cortex_pb.CortexStepToolCallChoice tool_call_choice = 50; + exa.cortex_pb.CortexStepTrajectoryChoice trajectory_choice = 52; + exa.cortex_pb.CortexStepCheckDeployStatus check_deploy_status = 59; + exa.cortex_pb.CortexStepPostPrReview post_pr_review = 60; + exa.cortex_pb.CortexStepFindAllReferences find_all_references = 65; + exa.cortex_pb.CortexStepBrainUpdate brain_update = 66; + exa.cortex_pb.CortexStepReadTerminal read_terminal = 77; + exa.cortex_pb.CortexStepRunExtensionCode run_extension_code = 68; + exa.cortex_pb.CortexStepProposalFeedback proposal_feedback = 71; + exa.cortex_pb.CortexStepRetrieveMemory retrieve_memory = 43; + exa.cortex_pb.CortexStepMemory memory = 38; + } + exa.cortex_pb.RequestedInteraction requested_interaction = 56; + repeated exa.cortex_pb.CompletedInteraction completed_interactions = 147; + exa.cortex_pb.UserStepAnnotations user_annotations = 69; + gemini_coder.Trajectory subtrajectory = 6; +} diff --git a/proto/src/exa/google/internal/cloud/code/v1internal/model_configs.desc.bin b/proto/src/exa/google/internal/cloud/code/v1internal/model_configs.desc.bin new file mode 100644 index 00000000..794afe3f --- /dev/null +++ b/proto/src/exa/google/internal/cloud/code/v1internal/model_configs.desc.bin @@ -0,0 +1,81 @@ + +=exa/google/internal/cloud/code/v1internal/model_configs.proto%google.internal.cloud.code.v1internal". +FetchAvailableModelsRequest +project ( "W + QuotaInfo +remaining_fraction (. + +reset_time ( 2.google.protobuf.Timestamp" + + ModelDetails + display_name (  +supports_images ( +supports_thinking ( +thinking_budget ( +min_thinking_budget ( + recommended ( + +max_tokens ( +max_output_tokens ( +tokenizer_type ( D + +quota_info + ( 20.google.internal.cloud.code.v1internal.QuotaInfo +beta_warning_message (  +beta ( +disabled ( + description ( + +model (2.exa.codeium_common_pb.Model8 + api_provider (2".exa.codeium_common_pb.APIProvider< +model_provider (2$.exa.codeium_common_pb.ModelProvider# +supports_cumulative_context (! +tab_jump_print_line_range (' +supports_estimate_token_counter ( + is_internal () +!add_cursor_to_find_replace_target (I +prompt_templater_type (2*.exa.codeium_common_pb.PromptTemplaterTypeE +tool_formatter_type (2(.exa.codeium_common_pb.ToolFormatterType +supports_raw_thinking ( +supports_video ( + supports_pdf (# +requires_lead_in_generation ( + tag_title (  +tag_description ( % +requires_no_xml_tool_examples (i +supported_mime_types ( 2K.google.internal.cloud.code.v1internal.ModelDetails.SupportedMimeTypesEntry8 +0requires_image_output_outside_function_responses! ( +preview" ( +thinking_level# (9 +SupportedMimeTypesEntry +key (  +value (:8"d + ModelSort + display_name ( A +groups ( 21.google.internal.cloud.code.v1internal.ModelGroup"5 + +ModelGroup + display_name (  + model_ids ( " +DeprecatedModelReroutingInfo + new_model_id ( 4 +old_model_enum (2.exa.codeium_common_pb.Model4 +new_model_enum (2.exa.codeium_common_pb.Model" +FetchAvailableModelsResponse_ +models ( 2O.google.internal.cloud.code.v1internal.FetchAvailableModelsResponse.ModelsEntry +default_agent_model_id ( K +agent_model_sorts ( 20.google.internal.cloud.code.v1internal.ModelSort +command_model_ids (  + tab_model_ids ( " +image_generation_model_ids (  +mquery_model_ids (  +web_search_model_ids (  +commit_message_model_ids + ( y +deprecated_model_ids ( 2[.google.internal.cloud.code.v1internal.FetchAvailableModelsResponse.DeprecatedModelIdsEntryb + ModelsEntry +key ( B +value ( 23.google.internal.cloud.code.v1internal.ModelDetails:8~ +DeprecatedModelIdsEntry +key ( R +value ( 2C.google.internal.cloud.code.v1internal.DeprecatedModelReroutingInfo:8B@ +)com.google.internal.cloud.code.v1internalBModelConfigsProtoPbproto3 \ No newline at end of file diff --git a/proto/src/exa/google/internal/cloud/code/v1internal/model_configs.proto b/proto/src/exa/google/internal/cloud/code/v1internal/model_configs.proto new file mode 100644 index 00000000..20e9eae8 --- /dev/null +++ b/proto/src/exa/google/internal/cloud/code/v1internal/model_configs.proto @@ -0,0 +1,83 @@ +syntax = "proto3"; +package google.internal.cloud.code.v1internal; + +option go_package = "github.com/user/antigravity-client/gen/google/internal/cloud/code/v1internal"; + +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +message FetchAvailableModelsRequest { + string project = 1; +} + +message QuotaInfo { + float remaining_fraction = 1; + google.protobuf.Timestamp reset_time = 2; +} + +message ModelDetails { + string display_name = 1; + bool supports_images = 2; + bool supports_thinking = 3; + int32 thinking_budget = 4; + int32 min_thinking_budget = 5; + bool recommended = 6; + int32 max_tokens = 7; + int32 max_output_tokens = 8; + string tokenizer_type = 9; + google.internal.cloud.code.v1internal.QuotaInfo quota_info = 10; + string beta_warning_message = 11; + bool beta = 12; + bool disabled = 13; + string description = 14; + exa.codeium_common_pb.Model model = 15; + exa.codeium_common_pb.APIProvider api_provider = 16; + exa.codeium_common_pb.ModelProvider model_provider = 17; + bool supports_cumulative_context = 18; + bool tab_jump_print_line_range = 19; + bool supports_estimate_token_counter = 20; + bool is_internal = 21; + bool add_cursor_to_find_replace_target = 22; + exa.codeium_common_pb.PromptTemplaterType prompt_templater_type = 23; + exa.codeium_common_pb.ToolFormatterType tool_formatter_type = 24; + bool supports_raw_thinking = 25; + bool supports_video = 26; + bool supports_pdf = 27; + bool requires_lead_in_generation = 28; + string tag_title = 29; + string tag_description = 30; + bool requires_no_xml_tool_examples = 31; + map supported_mime_types = 32; + bool requires_image_output_outside_function_responses = 33; + bool preview = 34; + int32 thinking_level = 35; +} + +message ModelSort { + string display_name = 1; + repeated google.internal.cloud.code.v1internal.ModelGroup groups = 2; +} + +message ModelGroup { + string display_name = 1; + repeated string model_ids = 2; +} + +message DeprecatedModelReroutingInfo { + string new_model_id = 1; + exa.codeium_common_pb.Model old_model_enum = 2; + exa.codeium_common_pb.Model new_model_enum = 3; +} + +message FetchAvailableModelsResponse { + map models = 1; + string default_agent_model_id = 2; + repeated google.internal.cloud.code.v1internal.ModelSort agent_model_sorts = 3; + repeated string command_model_ids = 4; + repeated string tab_model_ids = 5; + repeated string image_generation_model_ids = 6; + repeated string mquery_model_ids = 7; + repeated string web_search_model_ids = 8; + repeated string commit_message_model_ids = 10; + map deprecated_model_ids = 9; +} diff --git a/proto/src/exa/index_pb/index.desc.bin b/proto/src/exa/index_pb/index.desc.bin new file mode 100644 index 00000000..a7d9772f Binary files /dev/null and b/proto/src/exa/index_pb/index.desc.bin differ diff --git a/proto/src/exa/index_pb/index.proto b/proto/src/exa/index_pb/index.proto new file mode 100644 index 00000000..b3993fb2 --- /dev/null +++ b/proto/src/exa/index_pb/index.proto @@ -0,0 +1,449 @@ +syntax = "proto3"; +package exa.index_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/index_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +enum IndexMode { + INDEX_MODE_UNSPECIFIED = 0; + INDEX_MODE_HALFVEC = 1; + INDEX_MODE_BINARY = 2; + INDEX_MODE_BINARY_WITH_RERANK = 3; + INDEX_MODE_BRUTE_FORCE = 4; + INDEX_MODE_RANDOM_SEARCH = 5; +} + +enum IndexingStatus { + INDEXING_STATUS_UNSPECIFIED = 0; + INDEXING_STATUS_ERROR = 1; + INDEXING_STATUS_QUEUED = 2; + INDEXING_STATUS_CLONING_REPO = 3; + INDEXING_STATUS_SCANNING_REPO = 4; + INDEXING_STATUS_GENERATING_EMBEDDINGS = 5; + INDEXING_STATUS_VECTOR_INDEXING = 6; + INDEXING_STATUS_DONE = 7; + INDEXING_STATUS_CANCELING = 8; + INDEXING_STATUS_CANCELED = 9; +} + +message IndexDbVersion { + int32 version = 1; + int32 enterprise_version = 2; +} + +message IndexBuildConfig { + exa.index_pb.IndexDbVersion db_version = 2; + int32 cci_timeout_secs = 3; + exa.index_pb.IndexMode index_mode = 4; +} + +message RepositoryConfig { + message AutoIndexConfig { + string branch_name = 1; + google.protobuf.Duration interval = 2; + int32 max_num_auto_indexes = 3; + } + string git_url = 1; + exa.codeium_common_pb.ScmProvider scm_provider = 2; + exa.index_pb.RepositoryConfig.AutoIndexConfig auto_index_config = 3; + bool store_snippets = 4; + repeated string whitelisted_groups = 5; + bool use_github_app = 6; + string auth_uid = 7; + string email = 9; + string service_key_id = 8; +} + +message IndexConfig { + google.protobuf.Timestamp prune_time = 1; + google.protobuf.Duration prune_interval = 2; + bool enable_prune = 3; + bool enable_smallest_repo_first = 4; + bool enable_round_robin = 5; +} + +message VectorIndexStats { + int64 num_embeddings = 1; + int64 index_bytes_count = 2; +} + +message ProgressBar { + float progress = 1; + string text = 2; + google.protobuf.Duration remaining_time = 3; +} + +message Index { + message RepoStats { + int64 size = 1; + int64 file_count = 2; + int64 size_no_ignore = 3; + int64 file_count_no_ignore = 4; + } + string id = 1; + string repo_name = 2; + string workspace = 3; + exa.codeium_common_pb.GitRepoInfo repo_info = 4; + google.protobuf.Timestamp created_at = 5; + google.protobuf.Timestamp updated_at = 6; + google.protobuf.Timestamp scheduled_at = 13; + exa.index_pb.IndexingStatus status = 7; + string status_detail = 8; + bool auto_indexed = 9; + bool has_snippets = 12; + string auth_uid = 15; + string email = 16; + exa.index_pb.Index.RepoStats repo_stats = 14; + map indexing_progress = 10; + exa.index_pb.VectorIndexStats index_stats = 11; +} + +message Repository { + string repo_name = 1; + exa.index_pb.RepositoryConfig config = 2; + google.protobuf.Timestamp created_at = 4; + google.protobuf.Timestamp updated_at = 5; + google.protobuf.Timestamp last_used_at = 6; + exa.index_pb.Index latest_index = 3; +} + +message RequestIndexVersion { + oneof version { + string commit = 1; + string branch = 2; + } + string version_alias = 3; +} + +message ManagementMetadata { + string auth_token = 1; + string auth_uid = 2; + string service_key = 3; + bool force_target_public_index = 4; + string force_team_id = 5; + string service_key_id = 6; +} + +message AddRepositoryRequest { + exa.index_pb.ManagementMetadata metadata = 1; + exa.index_pb.RepositoryConfig config = 2; + exa.index_pb.RequestIndexVersion initial_index = 3; +} + +message AddRepositoryResponse { + string repo_name = 1; + string index_id = 2; +} + +message EnableIndexingRequest { + exa.index_pb.ManagementMetadata metadata = 1; + exa.index_pb.IndexBuildConfig config = 2; +} + +message EnableIndexingResponse { +} + +message DisableIndexingRequest { + exa.index_pb.ManagementMetadata metadata = 1; +} + +message DisableIndexingResponse { +} + +message EditRepositoryRequest { + exa.index_pb.ManagementMetadata metadata = 1; + string repo_name = 2; + exa.index_pb.RepositoryConfig config = 3; +} + +message EditRepositoryResponse { +} + +message DeleteRepositoryRequest { + exa.index_pb.ManagementMetadata metadata = 1; + string repo_name = 2; + repeated string repo_names = 3; +} + +message DeleteRepositoryResponse { +} + +message GetRepositoriesFilter { + string repo_name = 1; + string group_id = 2; +} + +message GetRepositoriesRequest { + exa.index_pb.ManagementMetadata metadata = 1; + exa.index_pb.GetRepositoriesFilter filter = 2; +} + +message GetRepositoriesResponse { + repeated exa.index_pb.Repository repositories = 1; +} + +message GetIndexesRequest { + exa.index_pb.ManagementMetadata metadata = 1; + string repo_name = 2; +} + +message GetIndexesResponse { + repeated exa.index_pb.Index indexes = 1; +} + +message GetIndexRequest { + exa.index_pb.ManagementMetadata metadata = 1; + string index_id = 2; +} + +message GetIndexResponse { + exa.index_pb.Index index = 1; + exa.index_pb.Repository repository = 2; +} + +message RemoteIndexStats { + string index_id = 1; + int64 cci_count = 2; + int64 snippet_count = 3; + int64 embedding_count = 4; +} + +message GetRemoteIndexStatsRequest { + exa.index_pb.ManagementMetadata metadata = 1; + repeated string index_ids = 2; +} + +message GetRemoteIndexStatsResponse { + repeated exa.index_pb.RemoteIndexStats index_stats = 1; +} + +message AddIndexRequest { + exa.index_pb.ManagementMetadata metadata = 1; + string repo_name = 2; + exa.index_pb.RequestIndexVersion version = 3; +} + +message AddIndexResponse { + string index_id = 1; +} + +message CancelIndexingRequest { + exa.index_pb.ManagementMetadata metadata = 1; + string index_id = 2; + repeated string index_ids = 3; +} + +message CancelIndexingResponse { +} + +message RetryIndexingRequest { + exa.index_pb.ManagementMetadata metadata = 1; + string index_id = 2; + repeated string index_ids = 3; +} + +message RetryIndexingResponse { +} + +message DeleteIndexRequest { + exa.index_pb.ManagementMetadata metadata = 1; + string index_id = 2; + repeated string index_ids = 3; +} + +message DeleteIndexResponse { +} + +message PruneDatabaseRequest { + exa.index_pb.ManagementMetadata metadata = 1; +} + +message PruneDatabaseResponse { +} + +message GetDatabaseStatsRequest { + exa.index_pb.ManagementMetadata metadata = 1; +} + +message GetDatabaseStatsResponse { + int64 database_total_bytes_count = 1; + int64 table_total_bytes_count = 2; + int64 index_total_bytes_count = 3; + int64 estimate_prunable_bytes = 4; + bool is_pruning = 5; + string last_prune_error = 6; + int64 all_tables_bytes_count = 7; +} + +message SetIndexConfigRequest { + exa.index_pb.ManagementMetadata metadata = 1; + exa.index_pb.IndexConfig index_config = 2; +} + +message SetIndexConfigResponse { +} + +message GetIndexConfigRequest { + exa.index_pb.ManagementMetadata metadata = 1; +} + +message GetIndexConfigResponse { + exa.index_pb.IndexConfig index_config = 1; +} + +message GetNumberConnectionsRequest { + exa.index_pb.ManagementMetadata metadata = 1; +} + +message GetNumberConnectionsResponse { + map connections_map = 1; +} + +message GetConnectionsDebugInfoRequest { + exa.index_pb.ManagementMetadata metadata = 1; +} + +message GetConnectionsDebugInfoResponse { + string debug_info = 1; +} + +message GetIndexedRepositoriesRequest { + exa.codeium_common_pb.Metadata metadata = 1; + bool include_incomplete = 2; + repeated string group_ids_filter = 3; +} + +message GetIndexedRepositoriesResponse { + repeated exa.codeium_common_pb.GitRepoInfo repositories = 1; + repeated exa.index_pb.Index indexes = 2; +} + +message RepositoryFilter { + exa.codeium_common_pb.GitRepoInfo repository = 1; + repeated string excluded_files = 2; + repeated string filter_paths = 3; +} + +message GetMatchingFilePathsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.GitRepoInfo repository = 2; + string query = 3; + uint32 max_items = 4; + repeated string group_ids_filter = 5; +} + +message GetMatchingFilePathsResponse { + repeated string relative_file_paths = 1; +} + +message GetNearestCCIsFromEmbeddingRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.Embedding embedding = 2; + repeated exa.index_pb.RepositoryFilter repository_filters = 3; + int64 max_results = 4; + repeated string group_ids_filter = 5; +} + +message ScoredContextItem { + exa.codeium_common_pb.CodeContextItem code_context_item = 1; + float score = 2; +} + +message GetNearestCCIsFromEmbeddingResponse { + repeated exa.index_pb.ScoredContextItem scored_context_items = 1; +} + +message GetEmbeddingsForCodeContextItemsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.codeium_common_pb.CodeContextItem code_context_items = 2; + exa.codeium_common_pb.ContextSnippetType snippet_type = 3; +} + +message GetEmbeddingsForCodeContextItemsResponse { + repeated exa.codeium_common_pb.Embedding embeddings = 1; +} + +message IndexStats { + string repository_name = 1; + int64 file_count = 2; + int64 code_context_item_count = 3; +} + +message IndexerEvent { + message Deletion { + string absolute_uri = 1; + } + message Untrack { + string absolute_uri = 1; + repeated exa.codeium_common_pb.WorkspacePath paths = 2; + string workspace_uri = 3; + } + message Update { + message AddWorkspaceInfo { + uint64 add_workspace_uid = 1; + uint64 add_workspace_queue_uid = 2; + } + string absolute_uri = 1; + repeated exa.codeium_common_pb.WorkspacePath paths = 2; + google.protobuf.Timestamp mod_time = 3; + exa.index_pb.IndexerEvent.Update.AddWorkspaceInfo add_workspace_info = 4; + } + message AddWorkspace { + uint64 add_workspace_uid = 1; + uint64 add_workspace_queue_uid = 2; + string workspace_uri = 3; + int64 num_files = 4; + int64 size = 5; + } + message RemoveWorkspace { + string workspace_uri = 1; + } + message IgnoreWorkspace { + string workspace_uri = 1; + } + message AddCommit { + string sha = 1; + } + uint64 uid = 1; + oneof event_oneof { + exa.index_pb.IndexerEvent.Deletion deletion = 2; + exa.index_pb.IndexerEvent.Untrack untrack = 3; + exa.index_pb.IndexerEvent.Update update = 4; + exa.index_pb.IndexerEvent.AddWorkspace add_workspace = 5; + exa.index_pb.IndexerEvent.RemoveWorkspace remove_workspace = 6; + exa.index_pb.IndexerEvent.IgnoreWorkspace ignore_workspace = 7; + exa.index_pb.IndexerEvent.AddCommit add_commit = 8; + } +} + +service IndexManagementService { + rpc EnableIndexing(exa.index_pb.EnableIndexingRequest) returns (exa.index_pb.EnableIndexingResponse); + rpc DisableIndexing(exa.index_pb.DisableIndexingRequest) returns (exa.index_pb.DisableIndexingResponse); + rpc AddRepository(exa.index_pb.AddRepositoryRequest) returns (exa.index_pb.AddRepositoryResponse); + rpc EditRepository(exa.index_pb.EditRepositoryRequest) returns (exa.index_pb.EditRepositoryResponse); + rpc DeleteRepository(exa.index_pb.DeleteRepositoryRequest) returns (exa.index_pb.DeleteRepositoryResponse); + rpc GetRepositories(exa.index_pb.GetRepositoriesRequest) returns (exa.index_pb.GetRepositoriesResponse); + rpc AddIndex(exa.index_pb.AddIndexRequest) returns (exa.index_pb.AddIndexResponse); + rpc CancelIndexing(exa.index_pb.CancelIndexingRequest) returns (exa.index_pb.CancelIndexingResponse); + rpc RetryIndexing(exa.index_pb.RetryIndexingRequest) returns (exa.index_pb.RetryIndexingResponse); + rpc DeleteIndex(exa.index_pb.DeleteIndexRequest) returns (exa.index_pb.DeleteIndexResponse); + rpc GetIndexes(exa.index_pb.GetIndexesRequest) returns (exa.index_pb.GetIndexesResponse); + rpc GetIndex(exa.index_pb.GetIndexRequest) returns (exa.index_pb.GetIndexResponse); + rpc GetRemoteIndexStats(exa.index_pb.GetRemoteIndexStatsRequest) returns (exa.index_pb.GetRemoteIndexStatsResponse); + rpc PruneDatabase(exa.index_pb.PruneDatabaseRequest) returns (exa.index_pb.PruneDatabaseResponse); + rpc GetDatabaseStats(exa.index_pb.GetDatabaseStatsRequest) returns (exa.index_pb.GetDatabaseStatsResponse); + rpc SetIndexConfig(exa.index_pb.SetIndexConfigRequest) returns (exa.index_pb.SetIndexConfigResponse); + rpc GetIndexConfig(exa.index_pb.GetIndexConfigRequest) returns (exa.index_pb.GetIndexConfigResponse); + rpc GetNumberConnections(exa.index_pb.GetNumberConnectionsRequest) returns (exa.index_pb.GetNumberConnectionsResponse); + rpc GetConnectionsDebugInfo(exa.index_pb.GetConnectionsDebugInfoRequest) returns (exa.index_pb.GetConnectionsDebugInfoResponse); +} +service IndexService { + rpc GetIndexedRepositories(exa.index_pb.GetIndexedRepositoriesRequest) returns (exa.index_pb.GetIndexedRepositoriesResponse); + rpc GetNearestCCIsFromEmbedding(exa.index_pb.GetNearestCCIsFromEmbeddingRequest) returns (exa.index_pb.GetNearestCCIsFromEmbeddingResponse); + rpc GetEmbeddingsForCodeContextItems(exa.index_pb.GetEmbeddingsForCodeContextItemsRequest) returns (exa.index_pb.GetEmbeddingsForCodeContextItemsResponse); + rpc GetMatchingFilePaths(exa.index_pb.GetMatchingFilePathsRequest) returns (exa.index_pb.GetMatchingFilePathsResponse); +} \ No newline at end of file diff --git a/proto/src/exa/jetbox_state_pb/jetbox_state.desc.bin b/proto/src/exa/jetbox_state_pb/jetbox_state.desc.bin new file mode 100644 index 00000000..dd84c149 Binary files /dev/null and b/proto/src/exa/jetbox_state_pb/jetbox_state.desc.bin differ diff --git a/proto/src/exa/jetbox_state_pb/jetbox_state.proto b/proto/src/exa/jetbox_state_pb/jetbox_state.proto new file mode 100644 index 00000000..86ecfe87 --- /dev/null +++ b/proto/src/exa/jetbox_state_pb/jetbox_state.proto @@ -0,0 +1,39 @@ +syntax = "proto3"; +package jetbox_state_pb; + +option go_package = "github.com/user/antigravity-client/gen/jetbox_state_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; + +enum PostOnboardingStepType { + POST_ONBOARDING_STEP_TYPE_UNSPECIFIED = 0; + POST_ONBOARDING_STEP_TYPE_MANAGER_WELCOME = 1; + POST_ONBOARDING_STEP_TYPE_USAGE_MODE = 2; + POST_ONBOARDING_STEP_TYPE_AGENT_CONFIGURATION = 3; + POST_ONBOARDING_STEP_TYPE_ADD_WORKSPACE = 4; +} + +message PostOnboardingState { + repeated jetbox_state_pb.PostOnboardingStepType completed_steps = 1; +} + +message UserSettings { + exa.codeium_common_pb.CascadeCommandsAutoExecution auto_execution_policy = 1; + exa.codeium_common_pb.ArtifactReviewMode artifact_review_mode = 2; + optional bool allow_agent_access_non_workspace_files = 3; + repeated string allowed_commands = 4; + repeated string denied_commands = 5; + exa.codeium_common_pb.PlanningMode planning_mode = 6; +} + +message SidebarWorkspaceInfo { + optional bool is_collapsed = 1; + optional bool is_hidden = 2; +} + +message State { + jetbox_state_pb.PostOnboardingState post_onboarding = 1; + jetbox_state_pb.UserSettings user_settings = 2; + map sidebar_workspaces = 3; + exa.codeium_common_pb.Model last_selected_agent_model = 4; +} diff --git a/proto/src/exa/jetski_cortex_pb/jetski_cortex.desc.bin b/proto/src/exa/jetski_cortex_pb/jetski_cortex.desc.bin new file mode 100644 index 00000000..07cbafd5 Binary files /dev/null and b/proto/src/exa/jetski_cortex_pb/jetski_cortex.desc.bin differ diff --git a/proto/src/exa/jetski_cortex_pb/jetski_cortex.proto b/proto/src/exa/jetski_cortex_pb/jetski_cortex.proto new file mode 100644 index 00000000..e277ef18 --- /dev/null +++ b/proto/src/exa/jetski_cortex_pb/jetski_cortex.proto @@ -0,0 +1,243 @@ +syntax = "proto3"; +package exa.jetski_cortex_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/jetski_cortex_pb"; + +import "exa/cortex_pb/cortex.proto"; +import "exa/gemini_coder/proto/trajectory.proto"; +import "exa/google/internal/cloud/code/v1internal/model_configs.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +enum ClientTrajectoryVerbosity { + CLIENT_TRAJECTORY_VERBOSITY_UNSPECIFIED = 0; + CLIENT_TRAJECTORY_VERBOSITY_DEBUG = 1; + CLIENT_TRAJECTORY_VERBOSITY_PROD_UI = 2; + CLIENT_TRAJECTORY_VERBOSITY_FULL = 3; +} + +message CascadeState { + string cascade_id = 1; + gemini_coder.Trajectory trajectory = 2; + exa.cortex_pb.CascadeRunStatus status = 3; + exa.cortex_pb.CascadeRunStatus executable_status = 7; + exa.cortex_pb.CascadeRunStatus executor_loop_status = 8; + exa.cortex_pb.ExecutorMetadata executor_metadata = 4; + repeated gemini_coder.Step queued_steps = 5; + repeated exa.cortex_pb.ArtifactSnapshot artifact_snapshots = 6; + repeated exa.cortex_pb.TrajectoryFileDiff trajectory_file_diffs = 9; + repeated exa.cortex_pb.BackgroundCommand background_commands = 10; + bool has_active_children = 11; + exa.jetski_cortex_pb.CreditUsageSummary credit_usage_summary = 12; +} + +message AgentStateUpdate { + string conversation_id = 1; + string trajectory_id = 2; + exa.cortex_pb.CascadeRunStatus status = 3; + exa.cortex_pb.CascadeRunStatus executable_status = 4; + exa.cortex_pb.CascadeRunStatus executor_loop_status = 5; + exa.cortex_pb.ExecutorMetadata executor_metadata = 6; + exa.jetski_cortex_pb.TrajectoryUpdate main_trajectory_update = 7; + map subtrajectory_updates = 8; + map step_scoped_subtrajectory_updates = 13; + exa.jetski_cortex_pb.QueuedStepsUpdate queued_steps_update = 9; + exa.jetski_cortex_pb.ArtifactSnapshotsUpdate artifact_snapshots_update = 10; + exa.jetski_cortex_pb.TrajectoryFileDiffsUpdate trajectory_file_diffs_update = 11; + exa.jetski_cortex_pb.BackgroundCommandsUpdate background_commands_update = 12; + bool has_active_children = 14; + exa.jetski_cortex_pb.CreditUsageSummary credit_usage_summary = 15; + exa.jetski_cortex_pb.ConversationCostSummary cost_summary = 16; +} + +message ModelPricingInfo { + float input_price_per_million_tokens = 1; + float output_price_per_million_tokens = 2; + float cache_read_price_per_million_tokens = 3; + string model_name = 4; +} + +message CostCategory { + int64 tokens = 1; + float estimated_cost_usd = 2; +} + +message CostDisplaySection { + exa.jetski_cortex_pb.CostCategory input = 1; + exa.jetski_cortex_pb.CostCategory cache_read = 2; + exa.jetski_cortex_pb.CostCategory output = 3; + exa.jetski_cortex_pb.CostCategory thinking = 4; + exa.jetski_cortex_pb.CostCategory response = 5; + exa.jetski_cortex_pb.CostCategory tools = 6; + map tool_breakdown = 7; + int32 generation_count = 8; + float estimated_cost_usd = 9; +} + +message TurnCostSummary { + exa.jetski_cortex_pb.CostDisplaySection turn = 1; + exa.jetski_cortex_pb.CostDisplaySection subagent = 2; + exa.jetski_cortex_pb.CostDisplaySection cumulative_total = 3; +} + +message ConversationCostSummary { + map turn_costs = 1; + exa.jetski_cortex_pb.TurnCostSummary total = 2; + exa.jetski_cortex_pb.ModelPricingInfo pricing = 3; + map subagent_costs = 4; +} + +message TrajectoryUpdate { + exa.jetski_cortex_pb.StepsUpdate steps_update = 1; + exa.jetski_cortex_pb.GeneratorMetadatasUpdate generator_metadatas_update = 2; + exa.jetski_cortex_pb.ExecutorMetadatasUpdate executor_metadatas_update = 3; + optional exa.cortex_pb.CortexTrajectoryType trajectory_type = 4; + exa.cortex_pb.CortexTrajectoryMetadata metadata = 5; + exa.cortex_pb.CascadeRunStatus status = 6; + exa.cortex_pb.CortexErrorDetails last_step_error = 7; + exa.cortex_pb.CortexStepType last_step_type = 8; + repeated exa.jetski_cortex_pb.CortexTrajectoryStepWithIndex waiting_steps = 9; +} + +message StepsUpdate { + repeated uint32 indices = 1; + repeated gemini_coder.Step steps = 2; + uint32 total_length = 3; + exa.jetski_cortex_pb.Slice page_bounds = 4; +} + +message GeneratorMetadatasUpdate { + repeated uint32 indices = 1; + repeated exa.cortex_pb.CortexStepGeneratorMetadata generator_metadatas = 2; + uint32 total_length = 3; + exa.jetski_cortex_pb.Slice page_bounds = 4; +} + +message ExecutorMetadatasUpdate { + repeated uint32 indices = 1; + repeated exa.cortex_pb.ExecutorMetadata executor_metadatas = 2; + uint32 total_length = 3; + exa.jetski_cortex_pb.Slice page_bounds = 4; +} + +message QueuedStepsUpdate { + repeated uint32 indices = 1; + repeated gemini_coder.Step queued_steps = 2; + uint32 total_length = 3; +} + +message ArtifactSnapshotsUpdate { + repeated uint32 indices = 1; + repeated exa.cortex_pb.ArtifactSnapshot artifact_snapshots = 2; + uint32 total_length = 3; +} + +message TrajectoryFileDiffsUpdate { + repeated uint32 indices = 1; + repeated exa.cortex_pb.TrajectoryFileDiff trajectory_file_diffs = 2; + uint32 total_length = 3; +} + +message BackgroundCommandsUpdate { + repeated uint32 indices = 1; + repeated exa.cortex_pb.BackgroundCommand background_commands = 2; + uint32 total_length = 3; +} + +message ConsumedCredits { + repeated google.internal.cloud.code.v1internal.Credits credits = 1; + uint32 first_step_index = 2; + uint32 last_step_index = 3; +} + +message CreditUsageSummary { + repeated exa.jetski_cortex_pb.ConsumedCredits consumed_credits = 1; +} + +message ImplicitTrajectory { + gemini_coder.Trajectory trajectory = 1; + exa.cortex_pb.TrajectoryScope trajectory_scope = 5; +} + +message BaseTrajectoryIdentifier { + oneof identifier { + string cascade_id = 1; + string implicit_trajectory_file_uri = 2; + bool last_active_doc = 3; + gemini_coder.Trajectory trajectory = 4; + } +} + +message CortexTrajectoryStepWithIndex { + gemini_coder.Step step = 1; + uint32 step_index = 2; +} + +message ConversationAnnotations { + optional string title = 1; + repeated string tags = 3; + optional bool archived = 4; + google.protobuf.Timestamp archival_status_timestamp = 5; + optional bool starred = 6; + google.protobuf.Timestamp last_user_view_time = 7; + optional bool marked_as_unread = 8; +} + +message CascadeTrajectorySummary { + string summary = 1; + uint32 step_count = 2; + google.protobuf.Timestamp last_modified_time = 3; + string trajectory_id = 4; + exa.cortex_pb.CascadeRunStatus status = 5; + google.protobuf.Timestamp created_time = 7; + repeated exa.jetski_cortex_pb.CortexTrajectoryStepWithIndex waiting_steps = 8; + repeated exa.cortex_pb.CortexWorkspaceMetadata workspaces = 9; + google.protobuf.Timestamp last_user_input_time = 10; + optional uint32 last_user_input_step_index = 16; + exa.jetski_cortex_pb.CortexTrajectoryStepWithIndex latest_notify_user_step = 12; + exa.jetski_cortex_pb.CortexTrajectoryStepWithIndex latest_task_boundary_step = 14; + exa.jetski_cortex_pb.ConversationAnnotations annotations = 15; + exa.cortex_pb.CortexTrajectoryMetadata trajectory_metadata = 17; + bool has_active_children = 18; +} + +message CascadeTrajectorySummaries { + map summaries = 1; +} + +message CortexStepUpdate { + uint32 step_index = 1; + oneof update { + gemini_coder.Step step = 2; + exa.cortex_pb.CortexStepStatus status = 3; + } +} + +message Slice { + int32 start_index = 1; + optional int32 end_index_exclusive = 2; +} + +message StreamAgentStateUpdatesRequest { + string conversation_id = 1; + string subscriber_id = 2; + exa.jetski_cortex_pb.Slice initial_steps_page_bounds = 3; + exa.jetski_cortex_pb.ClientTrajectoryVerbosity trajectory_verbosity = 4; + exa.jetski_cortex_pb.Slice initial_generator_metadatas_page_bounds = 5; + exa.jetski_cortex_pb.Slice initial_executor_metadatas_page_bounds = 6; +} + +message StreamAgentStateUpdatesResponse { + exa.jetski_cortex_pb.AgentStateUpdate update = 1; +} + +message AgentStatePageUpdateRequest { + string conversation_id = 1; + string subscriber_id = 2; + exa.jetski_cortex_pb.Slice step_page_bounds = 3; + exa.jetski_cortex_pb.Slice generator_metadatas_page_bounds = 4; + exa.jetski_cortex_pb.Slice executor_metadatas_page_bounds = 5; +} + +message AgentStatePageUpdateResponse { +} diff --git a/proto/src/exa/language_server_pb/language_server.desc.bin b/proto/src/exa/language_server_pb/language_server.desc.bin new file mode 100644 index 00000000..ecfd3104 Binary files /dev/null and b/proto/src/exa/language_server_pb/language_server.desc.bin differ diff --git a/proto/src/exa/language_server_pb/language_server.proto b/proto/src/exa/language_server_pb/language_server.proto new file mode 100644 index 00000000..996cccd9 --- /dev/null +++ b/proto/src/exa/language_server_pb/language_server.proto @@ -0,0 +1,2246 @@ +syntax = "proto3"; +package exa.language_server_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/language_server_pb"; + +import "exa/cascade_plugins_pb/cascade_plugins.proto"; +import "exa/chat_client_server_pb/chat_client_server.proto"; +import "exa/chat_pb/chat.proto"; +import "exa/code_edit/code_edit_pb/code_edit.proto"; +import "exa/codeium_common_pb/codeium_common.proto"; +import "exa/cortex_pb/cortex.proto"; +import "exa/diff_action_pb/diff_action.proto"; +import "exa/gemini_coder/proto/trajectory.proto"; +import "exa/jetbox_state_pb/jetbox_state.proto"; +import "exa/jetski_cortex_pb/jetski_cortex.proto"; +import "exa/reactive_component_pb/reactive_component.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +enum IdeAction { + IDE_ACTION_UNSPECIFIED = 0; + IDE_ACTION_SAVE = 1; + IDE_ACTION_SELECTION_CHANGED = 2; + IDE_ACTION_VISIBLE_RANGES_CHANGED = 3; + IDE_ACTION_ACTIVE_EDITOR_CHANGED = 4; + IDE_ACTION_STARTUP = 5; +} + +enum CodeiumState { + CODEIUM_STATE_UNSPECIFIED = 0; + CODEIUM_STATE_INACTIVE = 1; + CODEIUM_STATE_PROCESSING = 2; + CODEIUM_STATE_SUCCESS = 3; + CODEIUM_STATE_WARNING = 4; + CODEIUM_STATE_ERROR = 5; +} + +enum CompletionPartType { + COMPLETION_PART_TYPE_UNSPECIFIED = 0; + COMPLETION_PART_TYPE_INLINE = 1; + COMPLETION_PART_TYPE_BLOCK = 2; + COMPLETION_PART_TYPE_INLINE_MASK = 3; +} + +enum UnifiedDiffChangeType { + UNIFIED_DIFF_CHANGE_TYPE_UNSPECIFIED = 0; + UNIFIED_DIFF_CHANGE_TYPE_INSERT = 1; + UNIFIED_DIFF_CHANGE_TYPE_DELETE = 2; + UNIFIED_DIFF_CHANGE_TYPE_UNCHANGED = 3; +} + +enum EditorThemeType { + EDITOR_THEME_TYPE_UNSPECIFIED = 0; + EDITOR_THEME_TYPE_LIGHT = 1; + EDITOR_THEME_TYPE_DARK = 2; + EDITOR_THEME_TYPE_HIGH_CONTRAST = 3; + EDITOR_THEME_TYPE_HIGH_CONTRAST_LIGHT = 4; +} + +enum ClientTrajectoryVerbosity { + CLIENT_TRAJECTORY_VERBOSITY_UNSPECIFIED = 0; + CLIENT_TRAJECTORY_VERBOSITY_DEBUG = 1; + CLIENT_TRAJECTORY_VERBOSITY_PROD_UI = 2; + CLIENT_TRAJECTORY_VERBOSITY_FULL = 3; +} + +enum AgentMessageOrigin { + AGENT_MESSAGE_ORIGIN_UNSPECIFIED = 0; + AGENT_MESSAGE_ORIGIN_IDE = 1; + AGENT_MESSAGE_ORIGIN_SDK_EXECUTABLE = 2; + AGENT_MESSAGE_ORIGIN_SUBAGENT = 3; +} + +enum CodeRevertActionType { + CODE_REVERT_ACTION_TYPE_UNSPECIFIED = 0; + CODE_REVERT_ACTION_TYPE_MODIFY = 1; + CODE_REVERT_ACTION_TYPE_CREATE = 2; + CODE_REVERT_ACTION_TYPE_DELETE = 3; +} + +enum CustomizationFileType { + CUSTOMIZATION_FILE_TYPE_UNSPECIFIED = 0; + CUSTOMIZATION_FILE_TYPE_RULES = 1; + CUSTOMIZATION_FILE_TYPE_WORKFLOWS = 2; + CUSTOMIZATION_FILE_TYPE_GLOBAL_WORKFLOWS = 3; + CUSTOMIZATION_FILE_TYPE_SKILLS = 4; + CUSTOMIZATION_FILE_TYPE_GLOBAL_SKILLS = 5; + CUSTOMIZATION_FILE_TYPE_AGENT = 6; + CUSTOMIZATION_FILE_TYPE_GLOBAL_AGENT = 7; + CUSTOMIZATION_FILE_TYPE_PLUGIN = 8; + CUSTOMIZATION_FILE_TYPE_GLOBAL_PLUGIN = 9; + CUSTOMIZATION_FILE_TYPE_HOOKS = 10; +} + +enum FileType { + FILE_TYPE_UNSPECIFIED = 0; + FILE_TYPE_FILE = 1; + FILE_TYPE_DIRECTORY = 2; + FILE_TYPE_SYMLINK = 3; +} + +enum CustomizationPathsOperation { + CUSTOMIZATION_PATHS_OPERATION_UNSPECIFIED = 0; + CUSTOMIZATION_PATHS_OPERATION_ADD = 1; + CUSTOMIZATION_PATHS_OPERATION_REMOVE = 2; + CUSTOMIZATION_PATHS_OPERATION_SET = 3; +} + +message HandleStreamingCommandRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.Document document = 2; + exa.codeium_common_pb.EditorOptions editor_options = 3; + exa.codeium_common_pb.Model requested_model_id = 4; + uint64 selection_start_line = 6; + uint64 selection_end_line = 7; + string command_text = 8; + exa.codeium_common_pb.CommandRequestSource request_source = 9; + exa.codeium_common_pb.ContextScope mentioned_scope = 10; + exa.codeium_common_pb.ActionPointer action_pointer = 11; + string parent_completion_id = 12; + exa.diff_action_pb.DiffType diff_type = 13; + repeated exa.codeium_common_pb.CodeDiagnostic diagnostics = 14; + exa.codeium_common_pb.SupercompleteTriggerCondition supercomplete_trigger_condition = 15; + exa.codeium_common_pb.TerminalCommandData terminal_command_data = 16; + exa.codeium_common_pb.ExperimentConfig experiment_config = 5; + bool ignore_supercomplete_debounce = 17; + string clipboard_entry = 18; + repeated exa.codeium_common_pb.IntellisenseSuggestion intellisense_suggestions = 19; +} + +message HandleStreamingCommandResponse { + string completion_id = 1; + string prompt_id = 2; + exa.diff_action_pb.UnifiedDiff diff = 3; + exa.language_server_pb.LatencyInfo latency_info = 4; + uint64 selection_start_line = 5; + uint64 selection_end_line = 6; + double score = 7; + exa.diff_action_pb.CharacterDiff character_diff = 8; + exa.diff_action_pb.ComboDiff combo_diff = 9; + exa.codeium_common_pb.SuperCompleteFilterReason filter_reason = 10; + optional exa.codeium_common_pb.DocumentPosition jump_position = 14; + exa.language_server_pb.RequestInfo request_info = 12; + exa.codeium_common_pb.StopReason stop_reason = 13; + gemini_coder.Trajectory trajectory = 15; + string raw_text = 16; + string trace_id = 17; + optional uint64 closest_changed_line = 11; +} + +message MultilineConfig { + float threshold = 1; +} + +message GetCompletionsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.Document document = 2; + exa.codeium_common_pb.EditorOptions editor_options = 3; + repeated exa.codeium_common_pb.Document other_documents = 5; + exa.codeium_common_pb.MockResponseData mock_response_data = 6; + bool disable_cache = 8; + repeated exa.codeium_common_pb.CodeContextItem oracle_items = 9; + string model_name = 10; + exa.codeium_common_pb.Model requested_model_id = 12; + exa.language_server_pb.MultilineConfig multiline_config = 13; + exa.codeium_common_pb.ExperimentConfig experiment_config = 7; +} + +message GetCompletionsResponse { + exa.language_server_pb.State state = 1; + repeated exa.language_server_pb.CompletionItem completion_items = 2; + repeated exa.language_server_pb.CompletionItem filtered_completion_items = 7; + exa.language_server_pb.RequestInfo request_info = 3; + exa.language_server_pb.LatencyInfo latency_info = 4; + string model_tag = 5; + string prompt_id = 6; + repeated exa.language_server_pb.CodeRange code_ranges = 8; +} + +message ProvideCompletionFeedbackRequest { + exa.codeium_common_pb.Metadata metadata = 1; + bool is_accepted = 2; + int64 feedback_delay_ms = 3; + string completion_id = 4; + string prompt_id = 5; + exa.language_server_pb.LatencyInfo latency_info = 6; + exa.codeium_common_pb.ProviderSource source = 7; + exa.codeium_common_pb.Document document = 8; + uint64 view_columns_open = 10; + bool is_intentional_reject = 11; + bool is_partial = 12; + string midstream_autocomplete_text = 13; + bool has_active_vim_extension = 14; + string trace_id = 15; + int64 accepted_lines = 16; + int64 removed_lines = 17; + exa.codeium_common_pb.ExperimentConfig experiment_config = 9; +} + +message ProvideCompletionFeedbackResponse { +} + +message HeartbeatRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.codeium_common_pb.ErrorTrace previous_error_traces = 2; + exa.codeium_common_pb.ExperimentConfig experiment_config = 3; +} + +message HeartbeatResponse { + google.protobuf.Timestamp last_extension_heartbeat = 1; +} + +message ReconnectExtensionServerRequest { + int32 extension_server_port = 1; + string extension_server_csrf_token = 2; +} + +message ReconnectExtensionServerResponse { +} + +message GetStatusRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetStatusResponse { + exa.codeium_common_pb.Status status = 1; +} + +message GetCascadeModelConfigsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + optional bool filter = 2; +} + +message GetCascadeModelConfigsResponse { + repeated exa.codeium_common_pb.ClientModelConfig client_model_configs = 1; + repeated exa.codeium_common_pb.ClientModelSort client_model_sorts = 2; + optional exa.codeium_common_pb.DefaultOverrideModelConfig default_override_model_config = 3; +} + +message TeamOrganizationalControls { + string team_id = 1; + repeated string cascade_model_labels = 2; + repeated string command_model_labels = 3; + google.protobuf.Timestamp created_at = 4; + google.protobuf.Timestamp updated_at = 5; + repeated string extension_model_labels = 6; +} + +message GetTeamOrganizationalControlsRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetTeamOrganizationalControlsResponse { + exa.codeium_common_pb.TeamOrganizationalControls controls = 1; +} + +message GetMcpServerTemplatesRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetMcpServerTemplatesResponse { + repeated exa.codeium_common_pb.McpServerTemplate templates = 1; +} + +message GetCommandModelConfigsRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetCommandModelConfigsResponse { + repeated exa.codeium_common_pb.ClientModelConfig client_model_configs = 1; +} + +message RecordEventRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.Event event = 2; +} + +message RecordEventResponse { +} + +message CancelRequestRequest { + exa.codeium_common_pb.Metadata metadata = 1; + uint64 request_id = 2; +} + +message CancelRequestResponse { +} + +message EditConfigurationRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.CompletionConfiguration completion_configuration = 2; +} + +message EditConfigurationResponse { + exa.codeium_common_pb.CompletionConfiguration completion_configuration = 1; +} + +message GetTranscriptionRequest { + exa.codeium_common_pb.Metadata metadata = 1; + bytes audio_data = 2; +} + +message GetTranscriptionResponse { + string transcribed_text = 1; +} + +message RegisterGdmUserRequest { +} + +message RegisterGdmUserResponse { + bool created = 1; + string name = 2; + string email = 3; + string api_key = 4; +} + +message MigrateApiKeyRequest { + string api_key = 1; +} + +message MigrateApiKeyResponse { + string session_token = 1; +} + +message WellSupportedLanguagesRequest { +} + +message WellSupportedLanguagesResponse { + repeated exa.codeium_common_pb.Language languages = 1; +} + +message RecordSearchDocOpenRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string result_id = 2; +} + +message RecordSearchDocOpenResponse { +} + +message RecordSearchResultsViewRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string cluster_search_id = 2; + string exact_search_id = 3; + repeated string search_result_ids = 4; +} + +message RecordSearchResultsViewResponse { +} + +message ContextInfoRequest { +} + +message ContextInfoResponse { + repeated string active_workspaces = 1; + repeated string ignored_workspaces = 2; +} + +message RefreshContextForIdeActionRequest { + exa.codeium_common_pb.Metadata metadata = 8; + exa.codeium_common_pb.Document active_document = 1; + repeated string open_document_filepaths_migrate_me_to_uri = 2; + repeated string open_document_uris = 6; + repeated exa.codeium_common_pb.Document other_documents = 5; + repeated string workspace_paths_migrate_me_to_uri = 3; + repeated string workspace_uris = 7; + bool blocking = 4; + exa.codeium_common_pb.ExperimentConfig experiment_config = 9; + exa.language_server_pb.IdeAction ide_action = 10; +} + +message RefreshContextForIdeActionResponse { +} + +message RecordChatFeedbackRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string message_id = 2; + exa.chat_pb.ChatFeedbackType feedback = 3; + string reason = 4; + google.protobuf.Timestamp timestamp = 5; +} + +message RecordChatFeedbackResponse { +} + +message RecordChatPanelSessionRequest { + exa.codeium_common_pb.Metadata metadata = 1; + google.protobuf.Timestamp start_timestamp = 2; + google.protobuf.Timestamp end_timestamp = 3; +} + +message RecordChatPanelSessionResponse { +} + +message GetUserAnalyticsSummaryRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string time_zone = 2; + google.protobuf.Timestamp start_timestamp = 3; + google.protobuf.Timestamp end_timestamp = 4; +} + +message GetUserAnalyticsSummaryResponse { + exa.codeium_common_pb.CompletionStatistics completion_statistics = 1; + repeated exa.codeium_common_pb.CompletionByDateEntry completions_by_day = 2; + repeated exa.codeium_common_pb.CompletionByLanguageEntry completions_by_language = 3; + repeated exa.codeium_common_pb.ChatStatsByModelEntry chats_by_model = 4; +} + +message GetUserStatusRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetUserStatusResponse { + exa.codeium_common_pb.UserStatus user_status = 1; + exa.codeium_common_pb.PlanInfo plan_info = 2; +} + +message GetProfileDataRequest { + string api_key = 1; +} + +message GetProfileDataResponse { + string profile_picture_url = 1; +} + +message GetChangelogRequest { + string version = 1; +} + +message GetChangelogResponse { + string path = 1; +} + +message ExitRequest { +} + +message ExitResponse { +} + +message RestartRequest { +} + +message RestartResponse { +} + +message State { + exa.language_server_pb.CodeiumState state = 1; + string message = 2; +} + +message RequestInfo { + string prompt_id = 1; + exa.codeium_common_pb.CompletionsRequest completions_request = 4; + string typing_as_suggested_prompt_suffix = 5; + exa.codeium_common_pb.CompletionType completion_type = 6; +} + +message LatencyInfo { + uint64 client_latency_ms = 1; + uint64 prompt_latency_ms = 2; + repeated exa.codeium_common_pb.PromptStageLatency prompt_stage_latencies = 3; + uint64 debounce_latency_ms = 4; + uint64 rpc_latency_ms = 5; + uint64 network_latency_ms = 6; +} + +message Suffix { + string text = 1; + int64 delta_cursor_offset = 2; +} + +message CompletionPart { + string text = 1; + uint64 offset = 2; + exa.language_server_pb.CompletionPartType type = 3; + string prefix = 4; + uint64 line = 5; +} + +message CompletionItem { + exa.codeium_common_pb.Completion completion = 1; + exa.language_server_pb.Suffix suffix = 5; + exa.codeium_common_pb.Range range = 2; + exa.codeium_common_pb.CompletionSource source = 3; + repeated exa.language_server_pb.CompletionPart completion_parts = 8; +} + +message AddTrackedWorkspaceRequest { + string workspace = 1; + bool do_not_watch_files = 2; + bool is_passive_workspace = 3; +} + +message AddTrackedWorkspaceResponse { +} + +message RemoveTrackedWorkspaceRequest { + string workspace = 1; + bool is_passive_workspace = 2; +} + +message RemoveTrackedWorkspaceResponse { +} + +message GetWorkspaceEditStateRequest { +} + +message WorkspaceEditState { + string repo_root = 1; + uint64 num_additions = 2; + uint64 num_deletions = 3; + repeated exa.cortex_pb.ActionResultEdit edits = 4; +} + +message GetWorkspaceEditStateResponse { + repeated exa.language_server_pb.WorkspaceEditState workspace_edits = 1; +} + +message BranchInfo { + string name = 1; + bool is_current_branch = 2; +} + +message RepoInfo { + string name = 1; + string repo_path = 2; + repeated exa.language_server_pb.BranchInfo branches = 3; + exa.codeium_common_pb.ScmType scm_type = 4; +} + +message GetRepoInfosRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated string repo_uris = 2; +} + +message GetRepoInfosResponse { + repeated exa.language_server_pb.RepoInfo repos = 1; +} + +message GetWorkspaceInfosRequest { +} + +message WorkspaceInfo { + string workspace_uri = 1; + string git_root_uri = 2; +} + +message GetWorkspaceInfosResponse { + string home_dir_path = 1; + repeated exa.language_server_pb.WorkspaceInfo workspace_infos = 2; + string home_dir_uri = 3; +} + +message SetWorkingDirectoriesRequest { + repeated string directory_uris = 1; +} + +message SetWorkingDirectoriesResponse { +} + +message GetWorkingDirectoriesRequest { +} + +message GetWorkingDirectoriesResponse { + repeated exa.codeium_common_pb.WorkingDirectoryInfo directories = 1; +} + +message CreateWorktreeRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string repo_path = 2; + string base_branch_name = 3; + exa.codeium_common_pb.PlanInfo plan_info = 4; + repeated exa.codeium_common_pb.TextOrScopeItem items = 5; + repeated exa.codeium_common_pb.ImageData images = 6; + repeated exa.codeium_common_pb.Media media = 7; +} + +message CreateWorktreeResponse { + string worktree_dir_uri = 1; + string worktree_name = 2; +} + +message DeleteWorktreeRequest { + string worktree_dir_uri = 1; + string repo_uri = 2; +} + +message DeleteWorktreeResponse { + bool success = 1; + string error_message = 2; +} + +message CheckoutWorktreeRequest { + string worktree_dir_uri = 1; + string target_workspace_uri = 2; + bool delete_worktree_after_checkout = 3; +} + +message CheckoutWorktreeResponse { + bool success = 1; + string error_message = 2; + exa.language_server_pb.CheckoutSummary summary = 3; + string diff_patch = 4; +} + +message CheckoutSummary { + int32 files_changed = 1; + int32 additions = 2; + int32 deletions = 3; +} + +message GetWorktreeDiffRequest { + string worktree_dir_uri = 1; + string target_workspace_uri = 2; +} + +message GetWorktreeDiffResponse { + string diff_patch = 1; + exa.language_server_pb.CheckoutSummary summary = 2; +} + +message CreateCitcWorkspaceRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.codeium_common_pb.TextOrScopeItem items = 2; + repeated exa.codeium_common_pb.Media media = 3; + bool clone_current_workspace = 4; + string source_workspace_uri = 5; +} + +message CreateCitcWorkspaceResponse { + string workspace_dir_uri = 1; + string workspace_name = 2; +} + +message GenerateCommitMessageRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.PlanInfo plan_info = 2; + string repo_root = 3; +} + +message CommitMessageData { + string repo_root = 1; + string commit_message_summary = 2; + string commit_message_description = 3; + repeated string changed_files_migrate_me_to_uri = 4; + repeated string changed_file_uris = 5; +} + +message GenerateCommitMessageResponse { + exa.language_server_pb.CommitMessageData commit_message = 2; +} + +message RecordCommitMessageSaveRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string repo_root = 2; + string branch_name = 3; + string commit_hash = 4; + string commit_message = 5; + google.protobuf.Timestamp commit_timestamp = 6; + string parent_commit_hash = 7; + string author_name = 8; + string author_email = 9; +} + +message RecordCommitMessageSaveResponse { +} + +message UpdatePRForWorktreeRequest { + string worktree_fs_path = 1; + string commit_message = 2; + string title = 3; + string body = 4; +} + +message UpdatePRForWorktreeResponse { + string pr_url = 1; +} + +message GetUserSettingsRequest { +} + +message GetUserSettingsResponse { + exa.codeium_common_pb.UserSettings user_settings = 1; +} + +message SetUserSettingsRequest { + exa.codeium_common_pb.UserSettings user_settings = 1; +} + +message SetUserSettingsResponse { + exa.codeium_common_pb.UserSettings user_settings = 1; +} + +message GetDebugDiagnosticsRequest { +} + +message GetDebugDiagnosticsResponse { + exa.codeium_common_pb.LanguageServerDiagnostics language_server_diagnostics = 1; +} + +message CodeRange { + exa.codeium_common_pb.CodeSource source = 1; + uint64 start_offset = 2; + uint64 end_offset = 3; + bool modified = 4; + string completion_id = 5; + exa.codeium_common_pb.CompletionType completion_type = 6; + exa.codeium_common_pb.ProviderSource provider_source = 7; +} + +message CodeTrackerState { + string absolute_path_migrate_me_to_uri = 1; + string absolute_uri = 6; + string text = 2; + repeated exa.language_server_pb.CodeRange ranges = 3; + string commit = 4; + string repo_root_migrate_me_to_uri = 5; + string repo_root_uri = 7; +} + +message GetMatchingContextScopeItemsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated exa.codeium_common_pb.ContextScopeType allowed_types = 2; + repeated exa.codeium_common_pb.CodeContextType allowed_context_types = 7; + string query = 3; + bool fuzzy_match = 4; + int32 max_items = 5; + bool case_insensitive = 6; + string repo_filter = 8; + uint64 cancel_token = 9; +} + +message GetMatchingContextScopeItemsResponse { + repeated exa.codeium_common_pb.ContextScopeItem items = 1; +} + +message SetupUniversitySandboxRequest { +} + +message SetupUniversitySandboxResponse { + string base_directory = 1; +} + +message UnifiedDiffChange { + string text = 1; + exa.language_server_pb.UnifiedDiffChangeType type = 2; +} + +message UnifiedDiff { + repeated exa.language_server_pb.UnifiedDiffChange changes = 1; +} + +message CodeTheme { + string background = 1; + string text = 2; + string whitespace = 3; + string other = 4; + string literal = 5; + string literal_string = 6; + string number = 7; + string operator = 8; + string punctuation = 9; + string generic = 10; + string name = 11; + string keyword = 12; + string comment = 13; + string error = 14; +} + +message OnboardingItemState { + exa.codeium_common_pb.OnboardingActionType action_type = 1; + bool completed = 2; +} + +message OnboardingState { + bool has_skipped = 1; + repeated exa.language_server_pb.OnboardingItemState items = 2; +} + +message ResetOnboardingRequest { + bool clear_history = 1; +} + +message ResetOnboardingResponse { +} + +message SkipOnboardingRequest { +} + +message SkipOnboardingResponse { +} + +message GetUserTrajectoryDebugRequest { + bool include_all_trajectories = 1; +} + +message GetUserTrajectoryDebugResponse { + repeated exa.jetski_cortex_pb.ImplicitTrajectory mainline = 1; + gemini_coder.Trajectory granular = 2; + exa.language_server_pb.SupercompletePromptTrajectory supercomplete = 3; +} + +message SupercompletePromptTrajectory { + gemini_coder.Trajectory trajectory = 1; + repeated int32 included_steps = 2; +} + +message GetUserTrajectoryDescriptionsRequest { +} + +message GetUserTrajectoryDescriptionsResponse { + repeated exa.cortex_pb.ImplicitTrajectoryDescription trajectories = 1; +} + +message ForceBackgroundResearchRefreshRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string mainline_trajectory_id = 2; + bool blocking = 3; + bool full_refresh = 4; +} + +message ForceBackgroundResearchRefreshResponse { +} + +message ReplayGroundTruthTrajectoryRequest { + exa.codeium_common_pb.Metadata metadata = 1; + repeated gemini_coder.Step replay_steps = 2; + string cascade_id = 3; + exa.cortex_pb.CascadeConfig cascade_config = 4; +} + +message ReplayGroundTruthTrajectoryResponse { + gemini_coder.Trajectory trajectory = 1; +} + +message InitializeCascadePanelStateRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.UserStatus user_status = 2; +} + +message InitializeCascadePanelStateResponse { +} + +message StartCascadeRequest { + exa.jetski_cortex_pb.BaseTrajectoryIdentifier base_trajectory_identifier = 3; + exa.cortex_pb.CortexTrajectorySource source = 4; + exa.cortex_pb.CortexTrajectoryType trajectory_type = 5; + exa.cortex_pb.AgentScriptItem agent_script_item = 6; + optional string cascade_id = 7; + repeated string workspace_uris = 8; + repeated string override_workspace_uris = 9; + exa.codeium_common_pb.Metadata metadata = 1; + exa.codeium_common_pb.ExperimentConfig experiment_config = 2; +} + +message StartCascadeResponse { + string cascade_id = 1; +} + +message GetCascadeTrajectoryRequest { + string cascade_id = 1; + exa.language_server_pb.ClientTrajectoryVerbosity verbosity = 2; + exa.jetski_cortex_pb.ClientTrajectoryVerbosity trajectory_verbosity = 3; +} + +message GetCascadeTrajectoryResponse { + gemini_coder.Trajectory trajectory = 1; + exa.cortex_pb.CascadeRunStatus status = 2; + uint32 num_total_steps = 3; + uint32 num_total_generator_metadata = 4; +} + +message GetArtifactSnapshotsRequest { + string cascade_id = 1; +} + +message GetArtifactSnapshotsResponse { + repeated exa.cortex_pb.ArtifactSnapshot artifact_snapshots = 1; +} + +message GetUserTrajectoryRequest { + string trajectory_id = 1; +} + +message GetUserTrajectoryResponse { + gemini_coder.Trajectory trajectory = 1; +} + +message GetCascadeTrajectoryStepsRequest { + string cascade_id = 1; + uint32 step_offset = 2; + exa.language_server_pb.ClientTrajectoryVerbosity verbosity = 3; + exa.jetski_cortex_pb.ClientTrajectoryVerbosity trajectory_verbosity = 4; +} + +message GetCascadeTrajectoryStepsResponse { + repeated gemini_coder.Step steps = 1; +} + +message GetCascadeTrajectoryGeneratorMetadataRequest { + string cascade_id = 1; + uint32 generator_metadata_offset = 2; + bool include_messages = 3; +} + +message GetCascadeTrajectoryGeneratorMetadataResponse { + repeated exa.cortex_pb.CortexStepGeneratorMetadata generator_metadata = 1; +} + +message GetAllCascadeTrajectoriesRequest { + bool exclude_subtrajectories = 1; +} + +message GetAllCascadeTrajectoriesResponse { + map trajectory_summaries = 1; +} + +message CancelCascadeInvocationRequest { + string cascade_id = 1; + bool kill_background_tasks = 2; +} + +message CancelCascadeInvocationResponse { +} + +message ForceStopCascadeTreeRequest { + string conversation_id = 1; +} + +message ForceStopCascadeTreeResponse { + repeated string stopped_conversation_ids = 1; +} + +message CancelCascadeStepsRequest { + string cascade_id = 1; + repeated uint32 step_indices = 2; +} + +message CancelCascadeStepsResponse { +} + +message SendStepsToBackgroundRequest { + string conversation_id = 1; + repeated uint32 step_indices = 2; +} + +message SendStepsToBackgroundResponse { +} + +message SkipBrowserSubagentRequest { + string cascade_id = 1; + int32 step_index = 2; +} + +message SkipBrowserSubagentResponse { +} + +message SendUserCascadeMessageRequest { + exa.codeium_common_pb.Metadata metadata = 3; + string cascade_id = 1; + repeated exa.codeium_common_pb.TextOrScopeItem items = 2; + repeated exa.codeium_common_pb.ImageData images = 6; + repeated exa.codeium_common_pb.ArtifactComment artifact_comments = 10; + repeated exa.codeium_common_pb.FileDiffComment file_diff_comments = 12; + repeated exa.codeium_common_pb.FileComment file_comments = 13; + repeated exa.codeium_common_pb.Media media = 14; + exa.cortex_pb.CascadeConfig cascade_config = 5; + exa.codeium_common_pb.ExperimentConfig experiment_config = 4; + bool blocking = 8; + repeated gemini_coder.Step additional_steps = 9; + exa.chat_client_server_pb.ChatClientRequestStreamClientType client_type = 11; + bool propagate_error = 16; + exa.cortex_pb.CortexStepPlannerResponse planner_response = 17; + exa.language_server_pb.AgentMessageOrigin message_origin = 18; +} + +message SendUserCascadeMessageResponse { + bool queued = 1; +} + +message SignalExecutableIdleRequest { + string conversation_id = 1; +} + +message SignalExecutableIdleResponse { +} + +message SendAllQueuedMessagesRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string cascade_id = 2; + exa.cortex_pb.CascadeConfig cascade_config = 3; +} + +message SendAllQueuedMessagesResponse { +} + +message DeleteQueuedUserInputStepRequest { + string cascade_id = 1; + int32 step_index = 2; +} + +message DeleteQueuedUserInputStepResponse { +} + +message SaveMediaAsArtifactRequest { + exa.codeium_common_pb.Media media = 1; +} + +message SaveMediaAsArtifactResponse { + string uri = 1; +} + +message DeleteMediaArtifactRequest { + string uri = 1; +} + +message DeleteMediaArtifactResponse { + bool success = 1; + string error_message = 2; +} + +message RevertToCascadeStepRequest { + exa.codeium_common_pb.Metadata metadata = 3; + string cascade_id = 1; + int32 step_index = 2; + exa.codeium_common_pb.ExperimentConfig experiment_config = 4; + exa.cortex_pb.CascadeConfig override_config = 5; +} + +message RevertToCascadeStepResponse { + exa.cortex_pb.RevertMetadata metadata = 1; +} + +message CodeEditRevertPreview { + string file_uri = 1; + exa.diff_action_pb.UnifiedDiff diff = 2; + exa.language_server_pb.CodeRevertActionType action_type = 3; +} + +message GetRevertPreviewRequest { + string cascade_id = 1; + int32 step_index = 2; + exa.codeium_common_pb.Metadata metadata = 3; + exa.cortex_pb.CascadeConfig override_config = 4; +} + +message GetRevertPreviewResponse { + repeated exa.language_server_pb.CodeEditRevertPreview code_edit_previews = 1; +} + +message RecordUserStepSnapshotRequest { + string cascade_id = 1; + int32 step_index = 2; + exa.cortex_pb.UserStepSnapshot snapshot = 3; +} + +message RecordUserStepSnapshotResponse { +} + +message HandleCascadeUserInteractionRequest { + string cascade_id = 1; + exa.cortex_pb.CascadeUserInteraction interaction = 2; +} + +message HandleCascadeUserInteractionResponse { +} + +message AcknowledgeCascadeCodeEditRequest { + exa.codeium_common_pb.Metadata metadata = 4; + string cascade_id = 1; + repeated string absolute_uri = 2; + repeated string contents = 5; + bool accept = 3; +} + +message AcknowledgeCascadeCodeEditResponse { +} + +message CodeAcknowledgementRequestInfo { + string uri_path = 1; + repeated uint32 step_indices = 2; + string pre_code_actions_state = 3; + string post_code_actions_state = 4; +} + +message AcknowledgeCodeActionStepRequest { + string cascade_id = 1; + bool accept = 3; + string written_feedback = 4; + exa.cortex_pb.CodeAcknowledgementScope acknowledgement_scope = 5; + repeated exa.language_server_pb.CodeAcknowledgementRequestInfo code_acknowledgement_request_infos = 7; +} + +message AcknowledgeCodeActionStepResponse { +} + +message GetCodeValidationStatesRequest { + string cascade_id = 1; +} + +message GetCodeValidationStatesResponse { + repeated exa.language_server_pb.ValidationState states = 1; +} + +message ValidationState { + string uri = 1; + string last_acknowledged_state = 2; + string current_state = 3; + bool last_state_file_nonexistent = 4; +} + +message DeleteCascadeTrajectoryRequest { + string cascade_id = 1; +} + +message DeleteCascadeTrajectoryResponse { +} + +message ResolveOutstandingStepsRequest { + string cascade_id = 1; +} + +message ResolveOutstandingStepsResponse { +} + +message StreamTerminalShellCommandResponse { +} + +message GetWebDocsOptionsRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetWebDocsOptionsResponse { + repeated exa.codeium_common_pb.WebDocsOption options = 1; +} + +message UpdateDevExperimentsRequest { + exa.codeium_common_pb.ExperimentConfig experiment_config = 1; +} + +message UpdateDevExperimentsResponse { +} + +message SetBaseExperimentsRequest { + exa.codeium_common_pb.ExperimentConfig experiment_config = 1; +} + +message SetBaseExperimentsResponse { +} + +message GetCascadeModelConfigDataRequest { +} + +message GetCascadeMemoriesRequest { +} + +message GetCascadeMemoriesResponse { + repeated exa.cortex_pb.CortexMemory memories = 1; +} + +message GetModelStatusesRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetModelStatusesResponse { + repeated exa.codeium_common_pb.ModelStatusInfo model_status_infos = 1; +} + +message DeleteCascadeMemoryRequest { + string memory_id = 1; +} + +message DeleteCascadeMemoryResponse { +} + +message UpdateCascadeMemoryRequest { + string memory_id = 1; + string title = 2; + string content = 3; + repeated string tags = 4; +} + +message UpdateCascadeMemoryResponse { +} + +message GetUserMemoriesRequest { +} + +message GetUserMemoriesResponse { + repeated exa.cortex_pb.CortexMemory memories = 1; +} + +message GetConversationTagsRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetConversationTagsResponse { + map conversation_tags = 1; +} + +message ConversationTagList { + repeated string tags = 1; +} + +message UpdateConversationTagsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string cascade_id = 2; + repeated string tags = 3; +} + +message UpdateConversationTagsResponse { +} + +message UpdateConversationAnnotationsRequest { + string cascade_id = 1; + exa.jetski_cortex_pb.ConversationAnnotations annotations = 2; + bool merge_annotations = 3; +} + +message UpdateConversationAnnotationsResponse { +} + +message RefreshMcpServersRequest { + bool shallow = 1; + optional string server_name = 2; +} + +message RefreshMcpServersResponse { +} + +message GetMcpServerStatesRequest { +} + +message GetMcpServerStatesResponse { + repeated exa.cortex_pb.McpServerState states = 1; + bool is_loading = 2; +} + +message CompleteMcpOAuthRequest { + string server_name = 1; + string authorization_code = 2; +} + +message CompleteMcpOAuthResponse { +} + +message DisconnectMcpOAuthRequest { + string server_name = 1; +} + +message DisconnectMcpOAuthResponse { +} + +message GetAllWorkflowsRequest { + repeated string workspace_uris = 1; +} + +message GetAllWorkflowsResponse { + repeated exa.cortex_pb.WorkflowSpec workflows = 2; +} + +message GetAllCustomAgentConfigsRequest { +} + +message GetAllCustomAgentConfigsResponse { + map config_map = 1; +} + +message CopyBuiltinWorkflowToWorkspaceRequest { + exa.cortex_pb.WorkflowSpec workflow = 1; + exa.codeium_common_pb.Metadata metadata = 2; +} + +message CopyBuiltinWorkflowToWorkspaceResponse { + exa.cortex_pb.WorkflowSpec workflow = 1; +} + +message GetAllRulesRequest { + repeated string workspace_uris = 1; +} + +message GetAllRulesResponse { + repeated exa.cortex_pb.CortexMemory memories = 2; +} + +message GetAllSkillsRequest { + repeated string workspace_uris = 1; +} + +message GetAllSkillsResponse { + repeated exa.cortex_pb.WorkflowSpec skills = 1; +} + +message GetSkillMarketplaceLinkRequest { + string skill_path = 1; +} + +message GetSkillMarketplaceLinkResponse { + string marketplace_url = 1; +} + +message ScanSkillsConfigFileRequest { + string config_file_path = 1; + string workspace_uri = 2; +} + +message ScanSkillsConfigFileResponse { + repeated exa.cortex_pb.WorkflowSpec skills = 1; +} + +message ListMcpResourcesRequest { + optional string server_name = 1; + optional string query = 2; +} + +message ListMcpResourcesResponse { + repeated exa.codeium_common_pb.McpResourceItem resources = 1; +} + +message ListMcpPromptsRequest { +} + +message ListMcpPromptsResponse { + repeated exa.cortex_pb.McpPromptSpec prompts = 1; +} + +message GetMcpPromptRequest { + string server_name = 1; + string name = 2; + map arguments = 3; +} + +message GetMcpPromptResponse { + string description = 1; + repeated exa.codeium_common_pb.McpPromptMessage messages = 2; +} + +message UpdateEnterpriseExperimentsFromUrlRequest { + string portal_url = 1; +} + +message UpdateEnterpriseExperimentsFromUrlResponse { + bool success = 1; + string error_message = 2; + exa.codeium_common_pb.ExperimentConfig experiment_config = 3; +} + +message ImportFromCursorRequest { + string source_path = 1; +} + +message ImportFromCursorResponse { + repeated string copied_files = 1; + repeated string duplicate_files = 2; + repeated string problem_files = 3; +} + +message CreateCustomizationFileRequest { + exa.language_server_pb.CustomizationFileType file_type = 1; + string file_name = 2; + string workspace_uri = 3; +} + +message CreateCustomizationFileResponse { + string file_path = 1; +} + +message SendActionToChatPanelRequest { + string action_type = 1; + repeated bytes payload = 2; +} + +message SendActionToChatPanelResponse { +} + +message RecordUserGrepRequest { + string query = 1; + repeated exa.cortex_pb.GrepSearchResult results = 2; + google.protobuf.Timestamp timestamp = 3; +} + +message RecordUserGrepResponse { +} + +message GetUnleashDataRequest { + exa.codeium_common_pb.Metadata metadata = 1; + map properties = 2; +} + +message GetUnleashDataResponse { + exa.codeium_common_pb.UnleashContext context = 1; + exa.codeium_common_pb.ExperimentConfig experiment_config = 2; +} + +message ShouldEnableUnleashRequest { +} + +message ShouldEnableUnleashResponse { + bool should_enable = 1; +} + +message GetPatchAndCodeChangeRequest { + string intent = 1; + exa.codeium_common_pb.GitRepoInfo base_state_repo_info = 2; + string repo_path = 3; +} + +message GetPatchAndCodeChangeResponse { + string patch_string = 1; + exa.code_edit.code_edit_pb.CodeChangeWithContext code_change_with_context = 2; +} + +message ConvertTrajectoryToMarkdownRequest { + gemini_coder.Trajectory trajectory = 1; + string conversation_id = 2; +} + +message ConvertTrajectoryToMarkdownResponse { + string markdown = 1; +} + +message LoadTrajectoryRequest { + string cascade_id = 1; +} + +message LoadTrajectoryResponse { +} + +message CreateTrajectoryShareRequest { + exa.codeium_common_pb.Metadata metadata = 1; + exa.cortex_pb.TrajectoryShareStatus share_status = 3; + string cascade_id = 4; +} + +message CreateTrajectoryShareResponse { + string url = 1; +} + +message GetAvailableCascadePluginsRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string os = 2; + optional string search_query = 3; +} + +message GetAvailableCascadePluginsResponse { + repeated exa.cascade_plugins_pb.CascadePluginTemplate plugins = 1; +} + +message InstallCascadePluginRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string plugin_id = 2; +} + +message InstallCascadePluginResponse { + int64 installation_count = 1; +} + +message GetCascadePluginByIdRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string os = 2; + string plugin_id = 3; +} + +message GetCascadePluginByIdResponse { + exa.cascade_plugins_pb.CascadePluginTemplate plugin = 1; +} + +message RecordLintsRequest { + exa.codeium_common_pb.Language current_language = 1; + repeated exa.codeium_common_pb.CodeDiagnostic lints = 2; + google.protobuf.Timestamp timestamp = 3; +} + +message RecordLintsResponse { +} + +message StatUriRequest { + string uri = 1; +} + +message StatUriResponse { + exa.language_server_pb.FileType file_type = 1; + google.protobuf.Timestamp mod_time = 2; +} + +message ReadFileRequest { + string uri = 1; +} + +message ReadFileResponse { + bytes content = 1; + exa.codeium_common_pb.Language language = 2; +} + +message WriteFileRequest { + string uri = 1; + bytes content = 2; + bool overwrite = 3; +} + +message WriteFileResponse { +} + +message ReadDirRequest { + string uri = 1; +} + +message ReadDirEntry { + string uri = 1; + exa.language_server_pb.FileType file_type = 2; +} + +message ReadDirResponse { + repeated exa.language_server_pb.ReadDirEntry entries = 1; +} + +message DeleteFileOrDirectoryRequest { + string uri = 1; +} + +message DeleteFileOrDirectoryResponse { +} + +message WatchDirectoryRequest { + string uri = 1; + bool recursive = 2; +} + +message WatchDirectoryResponse { + repeated string uri = 1; +} + +message SetBrowserOpenConversationRequest { + string cascade_id = 1; + optional google.protobuf.Timestamp expires_at = 2; +} + +message SetBrowserOpenConversationResponse { +} + +message GetBrowserOpenConversationRequest { +} + +message GetBrowserOpenConversationResponse { + optional string cascade_id = 1; +} + +message RecordInteractiveCascadeFeedbackRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string cascade_id = 2; + int32 step_index = 3; + int32 chunk_index = 4; + exa.cortex_pb.AcknowledgementType acknowledgement_type = 5; +} + +message RecordInteractiveCascadeFeedbackResponse { +} + +message GetCascadeNuxesRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetCascadeNuxesResponse { + repeated exa.codeium_common_pb.CascadeNUXConfig nuxes = 1; +} + +message GetStaticExperimentStatusRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetStaticExperimentStatusResponse { + repeated exa.chat_pb.ChatExperimentStatus status = 1; +} + +message RecordAnalyticsEventRequest { + string event_name = 1; + exa.codeium_common_pb.Metadata metadata = 2; + map extra = 3; + map experiments = 4; +} + +message RecordAnalyticsEventResponse { +} + +message RecordErrorRequest { + exa.codeium_common_pb.ErrorTrace error_trace = 1; + bool should_upload_immediately = 2; +} + +message RecordErrorResponse { +} + +message RecordObservabilityDataRequest { + string datatype = 1; + map extra = 2; + map sensitive_data = 3; +} + +message RecordObservabilityDataResponse { +} + +message GetTermsOfServiceRequest { + exa.codeium_common_pb.Metadata metadata = 1; +} + +message GetTermsOfServiceResponse { + string terms_of_service_text = 1; + string version = 2; +} + +message AcceptTermsOfServiceRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string version = 2; +} + +message AcceptTermsOfServiceResponse { +} + +message DumpFlightRecorderRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string trace_file_path = 2; +} + +message DumpFlightRecorderResponse { +} + +message DumpPprofRequest { + exa.codeium_common_pb.Metadata metadata = 1; + string heap_file_path = 2; + string goroutine_file_path = 3; + string mutex_file_path = 4; +} + +message DumpPprofResponse { +} + +message OAuthTokenInfo { + string access_token = 1; + string token_type = 2; + string refresh_token = 3; + google.protobuf.Timestamp expiry = 4; + bool is_gcp_tos = 6; +} + +message SaveOAuthTokenInfoRequest { + exa.language_server_pb.OAuthTokenInfo token_info = 1; +} + +message SaveOAuthTokenInfoResponse { +} + +message RemoveOAuthTokenInfoRequest { +} + +message RemoveOAuthTokenInfoResponse { +} + +message CreateReplayWorkspaceRequest { + string trajectory_id = 1; + optional int32 step_index = 2; + string workspace_name = 3; + string target_user = 4; +} + +message CreateReplayWorkspaceResponse { +} + +message LoadReplayConversationRequest { + string workspace_name = 1; + string user = 2; + string cascade_id = 3; +} + +message LoadReplayConversationResponse { +} + +message ListPagesRequest { +} + +message ListPagesResponse { + repeated exa.codeium_common_pb.BrowserPageMetadata pages = 1; +} + +message BrowserValidateCascadeOrCancelOverlayRequest { + string cascade_id = 1; +} + +message BrowserValidateCascadeOrCancelOverlayResponse { +} + +message SmartFocusConversationRequest { + string cascade_id = 1; +} + +message SmartFocusConversationResponse { +} + +message OpenUrlRequest { + string url = 1; +} + +message OpenUrlResponse { +} + +message FocusUserPageRequest { + string page_id = 1; +} + +message FocusUserPageResponse { +} + +message AddToBrowserWhitelistRequest { + string hostname = 1; + repeated string hostnames = 2; +} + +message AddToBrowserWhitelistResponse { +} + +message CaptureConsoleLogsRequest { + string page_id = 1; +} + +message CaptureConsoleLogsResponse { + exa.codeium_common_pb.ConsoleLogScopeItem console_logs = 1; +} + +message StartScreenRecordingRequest { + string cascade_id = 1; + bool onboarded = 2; +} + +message StartScreenRecordingResponse { +} + +message SaveScreenRecordingRequest { + bytes video_data = 1; + string filename = 2; + string cascade_id = 3; +} + +message SaveScreenRecordingResponse { + string file_path = 1; +} + +message GetBrowserWhitelistFilePathRequest { +} + +message GetBrowserWhitelistFilePathResponse { + string path = 1; +} + +message GetAllBrowserWhitelistedUrlsRequest { +} + +message GetAllBrowserWhitelistedUrlsResponse { + repeated string whitelisted_urls = 1; +} + +message CaptureScreenshotRequest { + string page_id = 1; +} + +message CaptureScreenshotResponse { + exa.codeium_common_pb.ImageData screenshot = 2; + exa.codeium_common_pb.Media media_screenshot = 3; +} + +message SmartOpenBrowserRequest { + string url = 1; + bool is_onboarded = 2; +} + +message SmartOpenBrowserResponse { +} + +message SimulateSegFaultRequest { +} + +message SimulateSegFaultResponse { +} + +message HandleScreenRecordingRequest { + string cascade_id = 1; +} + +message HandleScreenRecordingResponse { + bytes video_data = 1; +} + +message PatchStats { + int32 num_files_changed = 1; + int32 num_line_additions = 2; + int32 num_line_deletions = 3; +} + +message GetRevisionArtifactRequest { + string repo_path_uri = 1; + optional string base_commit = 2; +} + +message GetRevisionArtifactResponse { + exa.language_server_pb.PatchStats stats = 1; + string patch = 2; +} + +message GetModelResponseRequest { + string prompt = 1; + exa.codeium_common_pb.Model model = 2; +} + +message GetModelResponseResponse { + string response = 1; +} + +message GetAgentScriptsRequest { + repeated string workspace_uris = 1; +} + +message GetAgentScriptsResponse { + repeated exa.cortex_pb.AgentScriptItem agent_scripts = 1; + repeated exa.cortex_pb.AgentCustomization agent_customizations = 2; +} + +message SaveAgentScriptCommandSpecRequest { + string name = 1; + bool save_to_workspace = 2; + bool overwrite = 3; + exa.cortex_pb.AgentScriptCommandSpec command_spec = 4; +} + +message SaveAgentScriptCommandSpecResponse { + bool created = 1; + exa.cortex_pb.AgentScriptItem agent_script = 2; +} + +message ListCustomizationPathsByFileRequest { + exa.codeium_common_pb.RefreshCustomizationType type = 1; + bool is_global = 2; +} + +message ListCustomizationPathsByFileResponse { + map paths_files = 1; +} + +message CustomizationPathsList { + repeated string paths = 1; +} + +message UpdateCustomizationPathsFileRequest { + string file_path = 1; + repeated string paths = 2; + exa.language_server_pb.CustomizationPathsOperation operation = 3; +} + +message UpdateCustomizationPathsFileResponse { +} + +message UpdateCustomizationRequest { + string path = 1; + exa.language_server_pb.CustomizationPathsOperation operation = 2; + oneof customization { + exa.cortex_pb.AgentScriptItem agent = 3; + exa.cortex_pb.PluginItem plugin = 4; + } +} + +message UpdateCustomizationResponse { +} + +message GetAllPluginsRequest { + repeated string workspace_uris = 1; +} + +message Plugin { + string name = 1; + string path = 2; + bool is_global = 3; + repeated exa.cortex_pb.WorkflowSpec skills = 4; + repeated exa.cortex_pb.AgentCustomization agents = 5; + repeated exa.cortex_pb.McpServerSpec mcp_servers = 6; +} + +message GetAllPluginsResponse { + repeated exa.language_server_pb.Plugin plugins = 1; +} + +message GetTokenBaseRequest { + exa.cortex_pb.CascadeConfig cascade_config = 1; + repeated string workspace_uris = 2; +} + +message GetTokenBaseResponse { + exa.cortex_pb.TokenBreakdown customization_token_base = 3; + int32 remaining_budget = 4; + int32 customization_budget = 5; + exa.cortex_pb.TokenBreakdown token_base = 1; + int32 max_token_base = 2; +} + +message RunCommandRequest { + string command = 1; + repeated string args = 2; + string cwd = 3; +} + +message RunCommandResponse { + string stdout = 1; + string stderr = 2; + int32 exit_code = 3; +} + +message JetboxWriteStateRequest { + jetbox_state_pb.State state = 1; +} + +message JetboxWriteStateResponse { +} + +message JetboxSubscribeToStateRequest { +} + +message JetboxSubscribeToStateResponse { + jetbox_state_pb.State state = 1; +} + +message JetboxWriteSummaryRequest { + string cascade_id = 1; + exa.jetski_cortex_pb.CascadeTrajectorySummary summary = 2; +} + +message JetboxWriteSummaryResponse { +} + +message JetboxDeleteSummaryRequest { + string cascade_id = 1; +} + +message JetboxDeleteSummaryResponse { +} + +message JetboxSubscribeToSummariesRequest { +} + +message JetboxSubscribeToSummariesResponse { + map updates = 1; + repeated string deletes = 2; +} + +message GcertStatus { + bool valid = 1; + string error = 2; + google.protobuf.Timestamp expires_at = 3; +} + +message OAuthStatus { + bool valid = 1; + string error = 2; +} + +message JetboxSubscribeToGcertStateRequest { +} + +message JetboxSubscribeToGcertStateResponse { + exa.language_server_pb.GcertStatus gcert_status = 1; +} + +message JetboxSubscribeToOAuthStateRequest { +} + +message JetboxSubscribeToOAuthStateResponse { + exa.language_server_pb.OAuthStatus oauth_status = 1; +} + +message SearchFilesRequest { + string query = 1; + string workspace_uri = 2; + int32 max_results = 3; + bool include_directories = 4; + uint64 cancel_token = 5; +} + +message SearchFilesResponse { + repeated exa.codeium_common_pb.PathScopeItem results = 1; +} + +message SearchCodeRequest { + string query = 1; + string workspace_uri = 2; + int32 max_results = 3; + int32 lines_context = 4; + uint64 cancel_token = 5; +} + +message SearchCodeResponse { + repeated exa.language_server_pb.SearchCodeResult results = 1; +} + +message SearchCodeResult { + string absolute_uri = 1; + map workspace_uris_to_relative_paths = 2; + int32 line_number = 3; + string snippet = 4; + int32 match_start_col = 5; + int32 match_end_col = 6; +} + +message GenerateSkillInstallationCLRequest { + repeated string skill_paths = 1; + string ldap = 2; +} + +message GenerateSkillInstallationCLResponse { + int64 cl_number = 1; + string cl_url = 2; +} + +message JetboxGetLatestVersionRequest { +} + +message JetboxGetLatestVersionResponse { + string latest_version = 1; +} + +message GetAgentTeamMetadataRequest { + string project_dir_uri = 1; +} + +message AgentInstance { + string name = 1; + string log_file_path = 2; +} + +message AgentTeamTask { + string id = 1; + bool is_completed = 2; + string task_file_uri = 3; +} + +message GetAgentTeamMetadataResponse { + repeated exa.language_server_pb.AgentInstance agents = 1; + repeated exa.language_server_pb.AgentTeamTask tasks = 2; +} + +message GetCodeFrequencyForRepoRequest { + string repo_uri = 1; + string branch = 2; + int32 minutes_per_bucket = 3; +} + +message CodeFrequencyRecord { + int32 num_commits = 1; + int32 lines_added = 2; + int32 lines_deleted = 3; + google.protobuf.Timestamp record_start_time = 4; + google.protobuf.Timestamp record_end_time = 5; +} + +message GetCodeFrequencyForRepoResponse { + repeated exa.language_server_pb.CodeFrequencyRecord code_frequency = 1; +} + +service LanguageServerService { + rpc ProvideCompletionFeedback(exa.language_server_pb.ProvideCompletionFeedbackRequest) returns (exa.language_server_pb.ProvideCompletionFeedbackResponse); + rpc Heartbeat(exa.language_server_pb.HeartbeatRequest) returns (exa.language_server_pb.HeartbeatResponse); + rpc GetStatus(exa.language_server_pb.GetStatusRequest) returns (exa.language_server_pb.GetStatusResponse); + rpc GetCommandModelConfigs(exa.language_server_pb.GetCommandModelConfigsRequest) returns (exa.language_server_pb.GetCommandModelConfigsResponse); + rpc GetCascadeModelConfigs(exa.language_server_pb.GetCascadeModelConfigsRequest) returns (exa.language_server_pb.GetCascadeModelConfigsResponse); + rpc RecordEvent(exa.language_server_pb.RecordEventRequest) returns (exa.language_server_pb.RecordEventResponse); + rpc RegisterGdmUser(exa.language_server_pb.RegisterGdmUserRequest) returns (exa.language_server_pb.RegisterGdmUserResponse); + rpc MigrateApiKey(exa.language_server_pb.MigrateApiKeyRequest) returns (exa.language_server_pb.MigrateApiKeyResponse); + rpc WellSupportedLanguages(exa.language_server_pb.WellSupportedLanguagesRequest) returns (exa.language_server_pb.WellSupportedLanguagesResponse); + rpc RecordSearchDocOpen(exa.language_server_pb.RecordSearchDocOpenRequest) returns (exa.language_server_pb.RecordSearchDocOpenResponse); + rpc RecordSearchResultsView(exa.language_server_pb.RecordSearchResultsViewRequest) returns (exa.language_server_pb.RecordSearchResultsViewResponse); + rpc HandleStreamingCommand(exa.language_server_pb.HandleStreamingCommandRequest) returns (stream exa.language_server_pb.HandleStreamingCommandResponse); + rpc GetMcpServerTemplates(exa.language_server_pb.GetMcpServerTemplatesRequest) returns (exa.language_server_pb.GetMcpServerTemplatesResponse); + rpc AddTrackedWorkspace(exa.language_server_pb.AddTrackedWorkspaceRequest) returns (exa.language_server_pb.AddTrackedWorkspaceResponse); + rpc RemoveTrackedWorkspace(exa.language_server_pb.RemoveTrackedWorkspaceRequest) returns (exa.language_server_pb.RemoveTrackedWorkspaceResponse); + rpc SmartFocusConversation(exa.language_server_pb.SmartFocusConversationRequest) returns (exa.language_server_pb.SmartFocusConversationResponse); + rpc StatUri(exa.language_server_pb.StatUriRequest) returns (exa.language_server_pb.StatUriResponse); + rpc ReadFile(exa.language_server_pb.ReadFileRequest) returns (exa.language_server_pb.ReadFileResponse); + rpc WriteFile(exa.language_server_pb.WriteFileRequest) returns (exa.language_server_pb.WriteFileResponse); + rpc ReadDir(exa.language_server_pb.ReadDirRequest) returns (exa.language_server_pb.ReadDirResponse); + rpc DeleteFileOrDirectory(exa.language_server_pb.DeleteFileOrDirectoryRequest) returns (exa.language_server_pb.DeleteFileOrDirectoryResponse); + rpc WatchDirectory(exa.language_server_pb.WatchDirectoryRequest) returns (stream exa.language_server_pb.WatchDirectoryResponse); + rpc SetBrowserOpenConversation(exa.language_server_pb.SetBrowserOpenConversationRequest) returns (exa.language_server_pb.SetBrowserOpenConversationResponse); + rpc GetBrowserOpenConversation(exa.language_server_pb.GetBrowserOpenConversationRequest) returns (exa.language_server_pb.GetBrowserOpenConversationResponse); + rpc RefreshContextForIdeAction(exa.language_server_pb.RefreshContextForIdeActionRequest) returns (exa.language_server_pb.RefreshContextForIdeActionResponse); + rpc GetMatchingContextScopeItems(exa.language_server_pb.GetMatchingContextScopeItemsRequest) returns (exa.language_server_pb.GetMatchingContextScopeItemsResponse); + rpc RecordChatFeedback(exa.language_server_pb.RecordChatFeedbackRequest) returns (exa.language_server_pb.RecordChatFeedbackResponse); + rpc RecordChatPanelSession(exa.language_server_pb.RecordChatPanelSessionRequest) returns (exa.language_server_pb.RecordChatPanelSessionResponse); + rpc ShouldEnableUnleash(exa.language_server_pb.ShouldEnableUnleashRequest) returns (exa.language_server_pb.ShouldEnableUnleashResponse); + rpc GetWorkspaceEditState(exa.language_server_pb.GetWorkspaceEditStateRequest) returns (exa.language_server_pb.GetWorkspaceEditStateResponse); + rpc GetRepoInfos(exa.language_server_pb.GetRepoInfosRequest) returns (exa.language_server_pb.GetRepoInfosResponse); + rpc GetWorkspaceInfos(exa.language_server_pb.GetWorkspaceInfosRequest) returns (exa.language_server_pb.GetWorkspaceInfosResponse); + rpc CreateWorktree(exa.language_server_pb.CreateWorktreeRequest) returns (exa.language_server_pb.CreateWorktreeResponse); + rpc DeleteWorktree(exa.language_server_pb.DeleteWorktreeRequest) returns (exa.language_server_pb.DeleteWorktreeResponse); + rpc CheckoutWorktree(exa.language_server_pb.CheckoutWorktreeRequest) returns (exa.language_server_pb.CheckoutWorktreeResponse); + rpc GetWorktreeDiff(exa.language_server_pb.GetWorktreeDiffRequest) returns (exa.language_server_pb.GetWorktreeDiffResponse); + rpc CreateCitcWorkspace(exa.language_server_pb.CreateCitcWorkspaceRequest) returns (exa.language_server_pb.CreateCitcWorkspaceResponse); + rpc SetWorkingDirectories(exa.language_server_pb.SetWorkingDirectoriesRequest) returns (exa.language_server_pb.SetWorkingDirectoriesResponse); + rpc GetWorkingDirectories(exa.language_server_pb.GetWorkingDirectoriesRequest) returns (exa.language_server_pb.GetWorkingDirectoriesResponse); + rpc GetRevisionArtifact(exa.language_server_pb.GetRevisionArtifactRequest) returns (exa.language_server_pb.GetRevisionArtifactResponse); + rpc GenerateCommitMessage(exa.language_server_pb.GenerateCommitMessageRequest) returns (exa.language_server_pb.GenerateCommitMessageResponse); + rpc RecordCommitMessageSave(exa.language_server_pb.RecordCommitMessageSaveRequest) returns (exa.language_server_pb.RecordCommitMessageSaveResponse); + rpc UpdatePRForWorktree(exa.language_server_pb.UpdatePRForWorktreeRequest) returns (exa.language_server_pb.UpdatePRForWorktreeResponse); + rpc SendActionToChatPanel(exa.language_server_pb.SendActionToChatPanelRequest) returns (exa.language_server_pb.SendActionToChatPanelResponse); + rpc GetUserSettings(exa.language_server_pb.GetUserSettingsRequest) returns (exa.language_server_pb.GetUserSettingsResponse); + rpc SetUserSettings(exa.language_server_pb.SetUserSettingsRequest) returns (exa.language_server_pb.SetUserSettingsResponse); + rpc GetDebugDiagnostics(exa.language_server_pb.GetDebugDiagnosticsRequest) returns (exa.language_server_pb.GetDebugDiagnosticsResponse); + rpc DumpFlightRecorder(exa.language_server_pb.DumpFlightRecorderRequest) returns (exa.language_server_pb.DumpFlightRecorderResponse); + rpc DumpPprof(exa.language_server_pb.DumpPprofRequest) returns (exa.language_server_pb.DumpPprofResponse); + rpc GetUserAnalyticsSummary(exa.language_server_pb.GetUserAnalyticsSummaryRequest) returns (exa.language_server_pb.GetUserAnalyticsSummaryResponse); + rpc GetUserStatus(exa.language_server_pb.GetUserStatusRequest) returns (exa.language_server_pb.GetUserStatusResponse); + rpc GetProfileData(exa.language_server_pb.GetProfileDataRequest) returns (exa.language_server_pb.GetProfileDataResponse); + rpc GetChangelog(exa.language_server_pb.GetChangelogRequest) returns (exa.language_server_pb.GetChangelogResponse); + rpc SetupUniversitySandbox(exa.language_server_pb.SetupUniversitySandboxRequest) returns (exa.language_server_pb.SetupUniversitySandboxResponse); + rpc Exit(exa.language_server_pb.ExitRequest) returns (exa.language_server_pb.ExitResponse); + rpc Restart(exa.language_server_pb.RestartRequest) returns (exa.language_server_pb.RestartResponse); + rpc ResetOnboarding(exa.language_server_pb.ResetOnboardingRequest) returns (exa.language_server_pb.ResetOnboardingResponse); + rpc SkipOnboarding(exa.language_server_pb.SkipOnboardingRequest) returns (exa.language_server_pb.SkipOnboardingResponse); + rpc GetTermsOfService(exa.language_server_pb.GetTermsOfServiceRequest) returns (exa.language_server_pb.GetTermsOfServiceResponse); + rpc AcceptTermsOfService(exa.language_server_pb.AcceptTermsOfServiceRequest) returns (exa.language_server_pb.AcceptTermsOfServiceResponse); + rpc GetUserTrajectoryDebug(exa.language_server_pb.GetUserTrajectoryDebugRequest) returns (exa.language_server_pb.GetUserTrajectoryDebugResponse); + rpc GetUserTrajectoryDescriptions(exa.language_server_pb.GetUserTrajectoryDescriptionsRequest) returns (exa.language_server_pb.GetUserTrajectoryDescriptionsResponse); + rpc StreamUserTrajectoryReactiveUpdates(exa.reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream exa.reactive_component_pb.StreamReactiveUpdatesResponse); + rpc GetCascadeMemories(exa.language_server_pb.GetCascadeMemoriesRequest) returns (exa.language_server_pb.GetCascadeMemoriesResponse); + rpc DeleteCascadeMemory(exa.language_server_pb.DeleteCascadeMemoryRequest) returns (exa.language_server_pb.DeleteCascadeMemoryResponse); + rpc UpdateCascadeMemory(exa.language_server_pb.UpdateCascadeMemoryRequest) returns (exa.language_server_pb.UpdateCascadeMemoryResponse); + rpc GetUserMemories(exa.language_server_pb.GetUserMemoriesRequest) returns (exa.language_server_pb.GetUserMemoriesResponse); + rpc UpdateConversationAnnotations(exa.language_server_pb.UpdateConversationAnnotationsRequest) returns (exa.language_server_pb.UpdateConversationAnnotationsResponse); + rpc StartCascade(exa.language_server_pb.StartCascadeRequest) returns (exa.language_server_pb.StartCascadeResponse); + rpc CancelCascadeInvocation(exa.language_server_pb.CancelCascadeInvocationRequest) returns (exa.language_server_pb.CancelCascadeInvocationResponse); + rpc ForceStopCascadeTree(exa.language_server_pb.ForceStopCascadeTreeRequest) returns (exa.language_server_pb.ForceStopCascadeTreeResponse); + rpc CancelCascadeSteps(exa.language_server_pb.CancelCascadeStepsRequest) returns (exa.language_server_pb.CancelCascadeStepsResponse); + rpc SendStepsToBackground(exa.language_server_pb.SendStepsToBackgroundRequest) returns (exa.language_server_pb.SendStepsToBackgroundResponse); + rpc SkipBrowserSubagent(exa.language_server_pb.SkipBrowserSubagentRequest) returns (exa.language_server_pb.SkipBrowserSubagentResponse); + rpc GetCascadeModelConfigData(exa.language_server_pb.GetCascadeModelConfigDataRequest) returns (exa.codeium_common_pb.CascadeModelConfigData); + rpc SendUserCascadeMessage(exa.language_server_pb.SendUserCascadeMessageRequest) returns (exa.language_server_pb.SendUserCascadeMessageResponse); + rpc SignalExecutableIdle(exa.language_server_pb.SignalExecutableIdleRequest) returns (exa.language_server_pb.SignalExecutableIdleResponse); + rpc SendAllQueuedMessages(exa.language_server_pb.SendAllQueuedMessagesRequest) returns (exa.language_server_pb.SendAllQueuedMessagesResponse); + rpc DeleteQueuedUserInputStep(exa.language_server_pb.DeleteQueuedUserInputStepRequest) returns (exa.language_server_pb.DeleteQueuedUserInputStepResponse); + rpc RevertToCascadeStep(exa.language_server_pb.RevertToCascadeStepRequest) returns (exa.language_server_pb.RevertToCascadeStepResponse); + rpc GetRevertPreview(exa.language_server_pb.GetRevertPreviewRequest) returns (exa.language_server_pb.GetRevertPreviewResponse); + rpc RecordUserStepSnapshot(exa.language_server_pb.RecordUserStepSnapshotRequest) returns (exa.language_server_pb.RecordUserStepSnapshotResponse); + rpc GetAllCascadeTrajectories(exa.language_server_pb.GetAllCascadeTrajectoriesRequest) returns (exa.language_server_pb.GetAllCascadeTrajectoriesResponse); + rpc HandleCascadeUserInteraction(exa.language_server_pb.HandleCascadeUserInteractionRequest) returns (exa.language_server_pb.HandleCascadeUserInteractionResponse); + rpc AcknowledgeCascadeCodeEdit(exa.language_server_pb.AcknowledgeCascadeCodeEditRequest) returns (exa.language_server_pb.AcknowledgeCascadeCodeEditResponse); + rpc AcknowledgeCodeActionStep(exa.language_server_pb.AcknowledgeCodeActionStepRequest) returns (exa.language_server_pb.AcknowledgeCodeActionStepResponse); + rpc GetCodeValidationStates(exa.language_server_pb.GetCodeValidationStatesRequest) returns (exa.language_server_pb.GetCodeValidationStatesResponse); + rpc DeleteCascadeTrajectory(exa.language_server_pb.DeleteCascadeTrajectoryRequest) returns (exa.language_server_pb.DeleteCascadeTrajectoryResponse); + rpc InitializeCascadePanelState(exa.language_server_pb.InitializeCascadePanelStateRequest) returns (exa.language_server_pb.InitializeCascadePanelStateResponse); + rpc StreamCascadePanelReactiveUpdates(exa.reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream exa.reactive_component_pb.StreamReactiveUpdatesResponse); + rpc StreamCascadeReactiveUpdates(exa.reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream exa.reactive_component_pb.StreamReactiveUpdatesResponse); + rpc StreamCascadeSummariesReactiveUpdates(exa.reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream exa.reactive_component_pb.StreamReactiveUpdatesResponse); + rpc StreamAgentStateUpdates(exa.jetski_cortex_pb.StreamAgentStateUpdatesRequest) returns (stream exa.jetski_cortex_pb.StreamAgentStateUpdatesResponse); + rpc RequestAgentStatePageUpdate(exa.jetski_cortex_pb.AgentStatePageUpdateRequest) returns (exa.jetski_cortex_pb.AgentStatePageUpdateResponse); + rpc ForceBackgroundResearchRefresh(exa.language_server_pb.ForceBackgroundResearchRefreshRequest) returns (exa.language_server_pb.ForceBackgroundResearchRefreshResponse); + rpc ResolveOutstandingSteps(exa.language_server_pb.ResolveOutstandingStepsRequest) returns (exa.language_server_pb.ResolveOutstandingStepsResponse); + rpc RefreshMcpServers(exa.language_server_pb.RefreshMcpServersRequest) returns (exa.language_server_pb.RefreshMcpServersResponse); + rpc GetMcpServerStates(exa.language_server_pb.GetMcpServerStatesRequest) returns (exa.language_server_pb.GetMcpServerStatesResponse); + rpc CompleteMcpOAuth(exa.language_server_pb.CompleteMcpOAuthRequest) returns (exa.language_server_pb.CompleteMcpOAuthResponse); + rpc DisconnectMcpOAuth(exa.language_server_pb.DisconnectMcpOAuthRequest) returns (exa.language_server_pb.DisconnectMcpOAuthResponse); + rpc StreamTerminalShellCommand(stream exa.codeium_common_pb.TerminalShellCommandStreamChunk) returns (exa.language_server_pb.StreamTerminalShellCommandResponse); + rpc GetModelResponse(exa.language_server_pb.GetModelResponseRequest) returns (exa.language_server_pb.GetModelResponseResponse); + rpc SaveMediaAsArtifact(exa.language_server_pb.SaveMediaAsArtifactRequest) returns (exa.language_server_pb.SaveMediaAsArtifactResponse); + rpc DeleteMediaArtifact(exa.language_server_pb.DeleteMediaArtifactRequest) returns (exa.language_server_pb.DeleteMediaArtifactResponse); + rpc GetWebDocsOptions(exa.language_server_pb.GetWebDocsOptionsRequest) returns (exa.language_server_pb.GetWebDocsOptionsResponse); + rpc UpdateDevExperiments(exa.language_server_pb.UpdateDevExperimentsRequest) returns (exa.language_server_pb.UpdateDevExperimentsResponse); + rpc SetBaseExperiments(exa.language_server_pb.SetBaseExperimentsRequest) returns (exa.language_server_pb.SetBaseExperimentsResponse); + rpc GetUnleashData(exa.language_server_pb.GetUnleashDataRequest) returns (exa.language_server_pb.GetUnleashDataResponse); + rpc GetModelStatuses(exa.language_server_pb.GetModelStatusesRequest) returns (exa.language_server_pb.GetModelStatusesResponse); + rpc GetAllWorkflows(exa.language_server_pb.GetAllWorkflowsRequest) returns (exa.language_server_pb.GetAllWorkflowsResponse); + rpc GetAllCustomAgentConfigs(exa.language_server_pb.GetAllCustomAgentConfigsRequest) returns (exa.language_server_pb.GetAllCustomAgentConfigsResponse); + rpc CopyBuiltinWorkflowToWorkspace(exa.language_server_pb.CopyBuiltinWorkflowToWorkspaceRequest) returns (exa.language_server_pb.CopyBuiltinWorkflowToWorkspaceResponse); + rpc GetAllRules(exa.language_server_pb.GetAllRulesRequest) returns (exa.language_server_pb.GetAllRulesResponse); + rpc GetAllSkills(exa.language_server_pb.GetAllSkillsRequest) returns (exa.language_server_pb.GetAllSkillsResponse); + rpc GetSkillMarketplaceLink(exa.language_server_pb.GetSkillMarketplaceLinkRequest) returns (exa.language_server_pb.GetSkillMarketplaceLinkResponse); + rpc GenerateSkillInstallationCL(exa.language_server_pb.GenerateSkillInstallationCLRequest) returns (exa.language_server_pb.GenerateSkillInstallationCLResponse); + rpc ScanSkillsConfigFile(exa.language_server_pb.ScanSkillsConfigFileRequest) returns (exa.language_server_pb.ScanSkillsConfigFileResponse); + rpc ListMcpResources(exa.language_server_pb.ListMcpResourcesRequest) returns (exa.language_server_pb.ListMcpResourcesResponse); + rpc ListMcpPrompts(exa.language_server_pb.ListMcpPromptsRequest) returns (exa.language_server_pb.ListMcpPromptsResponse); + rpc GetMcpPrompt(exa.language_server_pb.GetMcpPromptRequest) returns (exa.language_server_pb.GetMcpPromptResponse); + rpc UpdateEnterpriseExperimentsFromUrl(exa.language_server_pb.UpdateEnterpriseExperimentsFromUrlRequest) returns (exa.language_server_pb.UpdateEnterpriseExperimentsFromUrlResponse); + rpc ImportFromCursor(exa.language_server_pb.ImportFromCursorRequest) returns (exa.language_server_pb.ImportFromCursorResponse); + rpc CreateCustomizationFile(exa.language_server_pb.CreateCustomizationFileRequest) returns (exa.language_server_pb.CreateCustomizationFileResponse); + rpc ListCustomizationPathsByFile(exa.language_server_pb.ListCustomizationPathsByFileRequest) returns (exa.language_server_pb.ListCustomizationPathsByFileResponse); + rpc UpdateCustomizationPathsFile(exa.language_server_pb.UpdateCustomizationPathsFileRequest) returns (exa.language_server_pb.UpdateCustomizationPathsFileResponse); + rpc GetTeamOrganizationalControls(exa.language_server_pb.GetTeamOrganizationalControlsRequest) returns (exa.language_server_pb.GetTeamOrganizationalControlsResponse); + rpc RecordUserGrep(exa.language_server_pb.RecordUserGrepRequest) returns (exa.language_server_pb.RecordUserGrepResponse); + rpc CreateTrajectoryShare(exa.language_server_pb.CreateTrajectoryShareRequest) returns (exa.language_server_pb.CreateTrajectoryShareResponse); + rpc GetCascadeTrajectory(exa.language_server_pb.GetCascadeTrajectoryRequest) returns (exa.language_server_pb.GetCascadeTrajectoryResponse); + rpc GetArtifactSnapshots(exa.language_server_pb.GetArtifactSnapshotsRequest) returns (exa.language_server_pb.GetArtifactSnapshotsResponse); + rpc GetUserTrajectory(exa.language_server_pb.GetUserTrajectoryRequest) returns (exa.language_server_pb.GetUserTrajectoryResponse); + rpc GetCascadeTrajectorySteps(exa.language_server_pb.GetCascadeTrajectoryStepsRequest) returns (exa.language_server_pb.GetCascadeTrajectoryStepsResponse); + rpc GetCascadeTrajectoryGeneratorMetadata(exa.language_server_pb.GetCascadeTrajectoryGeneratorMetadataRequest) returns (exa.language_server_pb.GetCascadeTrajectoryGeneratorMetadataResponse); + rpc GetPatchAndCodeChange(exa.language_server_pb.GetPatchAndCodeChangeRequest) returns (exa.language_server_pb.GetPatchAndCodeChangeResponse); + rpc ConvertTrajectoryToMarkdown(exa.language_server_pb.ConvertTrajectoryToMarkdownRequest) returns (exa.language_server_pb.ConvertTrajectoryToMarkdownResponse); + rpc LoadTrajectory(exa.language_server_pb.LoadTrajectoryRequest) returns (exa.language_server_pb.LoadTrajectoryResponse); + rpc GetAvailableCascadePlugins(exa.language_server_pb.GetAvailableCascadePluginsRequest) returns (exa.language_server_pb.GetAvailableCascadePluginsResponse); + rpc InstallCascadePlugin(exa.language_server_pb.InstallCascadePluginRequest) returns (exa.language_server_pb.InstallCascadePluginResponse); + rpc GetCascadePluginById(exa.language_server_pb.GetCascadePluginByIdRequest) returns (exa.language_server_pb.GetCascadePluginByIdResponse); + rpc GetAllPlugins(exa.language_server_pb.GetAllPluginsRequest) returns (exa.language_server_pb.GetAllPluginsResponse); + rpc UpdateCustomization(exa.language_server_pb.UpdateCustomizationRequest) returns (exa.language_server_pb.UpdateCustomizationResponse); + rpc GetAgentScripts(exa.language_server_pb.GetAgentScriptsRequest) returns (exa.language_server_pb.GetAgentScriptsResponse); + rpc SaveAgentScriptCommandSpec(exa.language_server_pb.SaveAgentScriptCommandSpecRequest) returns (exa.language_server_pb.SaveAgentScriptCommandSpecResponse); + rpc RecordLints(exa.language_server_pb.RecordLintsRequest) returns (exa.language_server_pb.RecordLintsResponse); + rpc ReplayGroundTruthTrajectory(exa.language_server_pb.ReplayGroundTruthTrajectoryRequest) returns (exa.language_server_pb.ReplayGroundTruthTrajectoryResponse); + rpc CreateReplayWorkspace(exa.language_server_pb.CreateReplayWorkspaceRequest) returns (exa.language_server_pb.CreateReplayWorkspaceResponse); + rpc LoadReplayConversation(exa.language_server_pb.LoadReplayConversationRequest) returns (exa.language_server_pb.LoadReplayConversationResponse); + rpc RecordInteractiveCascadeFeedback(exa.language_server_pb.RecordInteractiveCascadeFeedbackRequest) returns (exa.language_server_pb.RecordInteractiveCascadeFeedbackResponse); + rpc GetCascadeNuxes(exa.language_server_pb.GetCascadeNuxesRequest) returns (exa.language_server_pb.GetCascadeNuxesResponse); + rpc GetTranscription(exa.language_server_pb.GetTranscriptionRequest) returns (exa.language_server_pb.GetTranscriptionResponse); + rpc GetStaticExperimentStatus(exa.language_server_pb.GetStaticExperimentStatusRequest) returns (exa.language_server_pb.GetStaticExperimentStatusResponse); + rpc RecordAnalyticsEvent(exa.language_server_pb.RecordAnalyticsEventRequest) returns (exa.language_server_pb.RecordAnalyticsEventResponse); + rpc RecordError(exa.language_server_pb.RecordErrorRequest) returns (exa.language_server_pb.RecordErrorResponse); + rpc RecordObservabilityData(exa.language_server_pb.RecordObservabilityDataRequest) returns (exa.language_server_pb.RecordObservabilityDataResponse); + rpc ListPages(exa.language_server_pb.ListPagesRequest) returns (exa.language_server_pb.ListPagesResponse); + rpc BrowserValidateCascadeOrCancelOverlay(exa.language_server_pb.BrowserValidateCascadeOrCancelOverlayRequest) returns (exa.language_server_pb.BrowserValidateCascadeOrCancelOverlayResponse); + rpc OpenUrl(exa.language_server_pb.OpenUrlRequest) returns (exa.language_server_pb.OpenUrlResponse); + rpc FocusUserPage(exa.language_server_pb.FocusUserPageRequest) returns (exa.language_server_pb.FocusUserPageResponse); + rpc AddToBrowserWhitelist(exa.language_server_pb.AddToBrowserWhitelistRequest) returns (exa.language_server_pb.AddToBrowserWhitelistResponse); + rpc CaptureConsoleLogs(exa.language_server_pb.CaptureConsoleLogsRequest) returns (exa.language_server_pb.CaptureConsoleLogsResponse); + rpc StartScreenRecording(exa.language_server_pb.StartScreenRecordingRequest) returns (exa.language_server_pb.StartScreenRecordingResponse); + rpc SaveScreenRecording(exa.language_server_pb.SaveScreenRecordingRequest) returns (exa.language_server_pb.SaveScreenRecordingResponse); + rpc GetBrowserWhitelistFilePath(exa.language_server_pb.GetBrowserWhitelistFilePathRequest) returns (exa.language_server_pb.GetBrowserWhitelistFilePathResponse); + rpc HandleScreenRecording(exa.language_server_pb.HandleScreenRecordingRequest) returns (exa.language_server_pb.HandleScreenRecordingResponse); + rpc GetAllBrowserWhitelistedUrls(exa.language_server_pb.GetAllBrowserWhitelistedUrlsRequest) returns (exa.language_server_pb.GetAllBrowserWhitelistedUrlsResponse); + rpc CaptureScreenshot(exa.language_server_pb.CaptureScreenshotRequest) returns (exa.language_server_pb.CaptureScreenshotResponse); + rpc SmartOpenBrowser(exa.language_server_pb.SmartOpenBrowserRequest) returns (exa.language_server_pb.SmartOpenBrowserResponse); + rpc SimulateSegFault(exa.language_server_pb.SimulateSegFaultRequest) returns (exa.language_server_pb.SimulateSegFaultResponse); + rpc ReconnectExtensionServer(exa.language_server_pb.ReconnectExtensionServerRequest) returns (exa.language_server_pb.ReconnectExtensionServerResponse); + rpc GetTokenBase(exa.language_server_pb.GetTokenBaseRequest) returns (exa.language_server_pb.GetTokenBaseResponse); + rpc RunCommand(exa.language_server_pb.RunCommandRequest) returns (exa.language_server_pb.RunCommandResponse); + rpc JetboxWriteState(exa.language_server_pb.JetboxWriteStateRequest) returns (exa.language_server_pb.JetboxWriteStateResponse); + rpc JetboxSubscribeToState(exa.language_server_pb.JetboxSubscribeToStateRequest) returns (stream exa.language_server_pb.JetboxSubscribeToStateResponse); + rpc JetboxWriteSummary(exa.language_server_pb.JetboxWriteSummaryRequest) returns (exa.language_server_pb.JetboxWriteSummaryResponse); + rpc JetboxDeleteSummary(exa.language_server_pb.JetboxDeleteSummaryRequest) returns (exa.language_server_pb.JetboxDeleteSummaryResponse); + rpc JetboxSubscribeToSummaries(exa.language_server_pb.JetboxSubscribeToSummariesRequest) returns (stream exa.language_server_pb.JetboxSubscribeToSummariesResponse); + rpc JetboxSubscribeToGcertState(exa.language_server_pb.JetboxSubscribeToGcertStateRequest) returns (stream exa.language_server_pb.JetboxSubscribeToGcertStateResponse); + rpc JetboxSubscribeToOAuthState(exa.language_server_pb.JetboxSubscribeToOAuthStateRequest) returns (stream exa.language_server_pb.JetboxSubscribeToOAuthStateResponse); + rpc SearchFiles(exa.language_server_pb.SearchFilesRequest) returns (exa.language_server_pb.SearchFilesResponse); + rpc SearchCode(exa.language_server_pb.SearchCodeRequest) returns (exa.language_server_pb.SearchCodeResponse); + rpc JetboxGetLatestVersion(exa.language_server_pb.JetboxGetLatestVersionRequest) returns (exa.language_server_pb.JetboxGetLatestVersionResponse); + rpc GetAgentTeamMetadata(exa.language_server_pb.GetAgentTeamMetadataRequest) returns (exa.language_server_pb.GetAgentTeamMetadataResponse); + rpc GetCodeFrequencyForRepo(exa.language_server_pb.GetCodeFrequencyForRepoRequest) returns (exa.language_server_pb.GetCodeFrequencyForRepoResponse); +} \ No newline at end of file diff --git a/proto/src/exa/opensearch_clients_pb/opensearch_clients.desc.bin b/proto/src/exa/opensearch_clients_pb/opensearch_clients.desc.bin new file mode 100644 index 00000000..b9e98b0b Binary files /dev/null and b/proto/src/exa/opensearch_clients_pb/opensearch_clients.desc.bin differ diff --git a/proto/src/exa/opensearch_clients_pb/opensearch_clients.proto b/proto/src/exa/opensearch_clients_pb/opensearch_clients.proto new file mode 100644 index 00000000..db90de23 --- /dev/null +++ b/proto/src/exa/opensearch_clients_pb/opensearch_clients.proto @@ -0,0 +1,465 @@ +syntax = "proto3"; +package exa.opensearch_clients_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/opensearch_clients_pb"; + +import "exa/chat_pb/chat.proto"; +import "exa/codeium_common_pb/codeium_common.proto"; +import "exa/index_pb/index.proto"; +import "google/protobuf/source_context.proto"; +import "google/protobuf/timestamp.proto"; + +enum SearchMode { + SEARCH_MODE_UNSPECIFIED = 0; + SEARCH_MODE_HYBRID = 1; + SEARCH_MODE_KEYWORD = 2; + SEARCH_MODE_APPROXIMATE_KNN = 3; + SEARCH_MODE_BRUTE_FORCE_KNN = 4; +} + +enum ForwardStatus { + FORWARD_STATUS_UNSPECIFIED = 0; + FORWARD_STATUS_FAILURE = 1; + FORWARD_STATUS_SAVED = 2; + FORWARD_STATUS_SUCCESS = 3; +} + +enum ConnectorType { + CONNECTOR_TYPE_UNSPECIFIED = 0; + CONNECTOR_TYPE_GITHUB = 1; + CONNECTOR_TYPE_SLACK = 2; + CONNECTOR_TYPE_GOOGLE_DRIVE = 3; + CONNECTOR_TYPE_JIRA = 4; + CONNECTOR_TYPE_CODEIUM = 5; + CONNECTOR_TYPE_EMAIL = 6; + CONNECTOR_TYPE_GITHUB_OAUTH = 7; +} + +enum JobStatus { + JOB_STATUS_UNSPECIFIED = 0; + JOB_STATUS_QUEUED = 1; + JOB_STATUS_RUNNING = 2; + JOB_STATUS_COMPLETED = 3; + JOB_STATUS_CANCELLED = 4; + JOB_STATUS_CANCELLING = 5; + JOB_STATUS_ERRORED = 6; + JOB_STATUS_RETRYABLE = 7; +} + +message TimeRange { + google.protobuf.Timestamp start = 1; + google.protobuf.Timestamp end = 2; +} + +message GithubUser { + string auth_uid = 1; + string username = 2; +} + +message AddGithubUsersRequest { + repeated exa.opensearch_clients_pb.GithubUser users = 1; +} + +message AddGithubUsersResponse { +} + +message UserInfo { + string auth_uid = 1; + string email = 2; + string name = 3; + string photo_url = 4; +} + +message AddUsersRequest { + repeated exa.opensearch_clients_pb.UserInfo users = 1; +} + +message AddUsersResponse { +} + +message KnowledgeBaseSearchRequest { + int64 max_results = 2; + repeated string queries = 3; + exa.codeium_common_pb.Metadata metadata = 4; + repeated string urls = 12; + repeated string document_ids = 13; + repeated string aggregate_ids = 5; + repeated exa.chat_pb.ChatMessagePrompt chat_message_prompts = 6; + exa.opensearch_clients_pb.TimeRange time_range = 7; + repeated exa.codeium_common_pb.DocumentType document_types = 14; + exa.opensearch_clients_pb.SearchMode search_mode = 9; + bool disable_reranking = 10; + bool disable_contextual_lookup = 11; + repeated exa.codeium_common_pb.IndexChoice index_choices = 8; + string query = 1; +} + +message KnowledgeBaseSearchResponse { + repeated exa.codeium_common_pb.KnowledgeBaseGroup knowledge_base_groups = 1; +} + +message GetKnowledgeBaseScopeItemsRequest { + string query = 1; + exa.codeium_common_pb.Metadata metadata = 3; + repeated exa.codeium_common_pb.DocumentType document_types = 5; + repeated exa.codeium_common_pb.IndexChoice index_choices = 4; + repeated string index_names = 2; +} + +message GetKnowledgeBaseScopeItemsResponse { + repeated exa.codeium_common_pb.KnowledgeBaseScopeItem scope_items = 1; +} + +message GetKnowledgeBaseItemsFromScopeItemsRequest { + exa.codeium_common_pb.Metadata metadata = 2; + repeated exa.codeium_common_pb.KnowledgeBaseScopeItem scope_items = 3; +} + +message GetKnowledgeBaseItemsFromScopeItemsResponse { + repeated exa.codeium_common_pb.KnowledgeBaseItemWithMetadata knowledge_base_items_with_metadata = 1; +} + +message IngestSlackDataRequest { + exa.index_pb.ManagementMetadata metadata = 1; + repeated string channel_ids = 2; +} + +message IngestSlackDataResponse { +} + +message IngestGithubDataRequest { + exa.index_pb.ManagementMetadata metadata = 3; + string organization = 1; + string repository = 2; +} + +message IngestGithubDataResponse { +} + +message IngestGoogleDriveDataRequest { + exa.index_pb.ManagementMetadata metadata = 2; + repeated string folder_ids = 3; +} + +message IngestGoogleDriveDataResponse { +} + +message IngestJiraDataRequest { + exa.index_pb.ManagementMetadata metadata = 4; +} + +message IngestJiraDataResponse { +} + +message IngestJiraPayloadRequest { + string body = 3; +} + +message IngestJiraPayloadResponse { +} + +message ForwardResult { + exa.opensearch_clients_pb.ForwardStatus status = 1; + optional string error = 2; +} + +message ForwardSlackPayloadRequest { + repeated string bodies = 1; +} + +message ForwardSlackPayloadResponse { + repeated exa.opensearch_clients_pb.ForwardResult results = 1; +} + +message IngestSlackPayloadRequest { + repeated exa.opensearch_clients_pb.SlackPayload payload = 1; +} + +message IngestSlackPayloadResponse { +} + +message CommonDocument { + string document_id = 1; + string text = 2; +} + +message CommonDocumentWithScore { + exa.opensearch_clients_pb.CommonDocument document = 1; + float score = 2; +} + +message SearchResult { + string text = 1; + string url = 2; +} + +message QuerySearchResponse { + repeated exa.opensearch_clients_pb.CommonDocumentWithScore document_with_scores = 1; +} + +message OpenSearchAddRepositoryRequest { + exa.index_pb.ManagementMetadata metadata = 1; + exa.index_pb.RepositoryConfig config = 2; + exa.index_pb.RequestIndexVersion initial_index = 3; +} + +message OpenSearchAddRepositoryResponse { + string repo_name = 1; + string index_id = 2; +} + +message OpenSearchGetIndexRequest { + string index_id = 1; +} + +message OpenSearchGetIndexResponse { + exa.index_pb.IndexingStatus status = 1; +} + +message HybridSearchRequest { + string query = 1; + exa.codeium_common_pb.Embedding embedding = 2; + int64 max_results = 3; +} + +message HybridSearchResponse { + repeated exa.opensearch_clients_pb.CommonDocumentWithScore document_with_scores = 1; +} + +message GraphSearchRequest { + string query = 1; + exa.codeium_common_pb.Embedding embedding = 2; + int64 max_results = 3; +} + +message GraphSearchResponse { + repeated exa.opensearch_clients_pb.CommonDocumentWithScore document_with_scores = 1; +} + +message ConnectorConfig { + oneof config { + exa.opensearch_clients_pb.ConnectorConfigSlack slack = 1; + exa.opensearch_clients_pb.ConnectorConfigGithub github = 2; + exa.opensearch_clients_pb.ConnectorConfigGoogleDrive google_drive = 3; + exa.opensearch_clients_pb.ConnectorConfigJira jira = 4; + } +} + +message ConnectorConfigSlack { + repeated string include_channel_ids = 3; + repeated string exclude_channel_ids = 4; +} + +message ConnectorConfigGithub { +} + +message ConnectorConfigGoogleDrive { + repeated string include_drive_ids = 2; + repeated string exclude_drive_ids = 3; +} + +message ConnectorConfigJira { +} + +message ConnectorInternalConfig { + oneof config { + exa.opensearch_clients_pb.ConnectorInternalConfigSlack slack = 1; + exa.opensearch_clients_pb.ConnectorInternalConfigGithub github = 2; + exa.opensearch_clients_pb.ConnectorInternalConfigGoogleDrive google_drive = 3; + exa.opensearch_clients_pb.ConnectorInternalConfigJira jira = 4; + } +} + +message ConnectorInternalConfigSlack { + string client_id = 2; + string client_secret = 3; + string signing_secret = 1; +} + +message GithubRepoConfig { + string organization = 1; + string repository = 2; +} + +message ConnectorInternalConfigGithub { + int64 installation_id = 1; + repeated exa.opensearch_clients_pb.GithubRepoConfig repo_configs = 2; +} + +message ConnectorInternalConfigGoogleDrive { +} + +message ConnectorInternalConfigJira { + int64 webhook_id = 1; +} + +message ConnectKnowledgeBaseAccountRequest { + exa.index_pb.ManagementMetadata metadata = 7; + exa.opensearch_clients_pb.ConnectorType connector = 2; + string access_token = 3; + google.protobuf.Timestamp access_token_expires_at = 4; + string refresh_token = 5; + google.protobuf.Timestamp refresh_token_expires_at = 6; + exa.opensearch_clients_pb.ConnectorAdditionalParams additional_params = 8; +} + +message DeleteKnowledgeBaseConnectionRequest { + exa.index_pb.ManagementMetadata metadata = 1; + exa.opensearch_clients_pb.ConnectorType connector = 2; +} + +message DeleteKnowledgeBaseConnectionResponse { +} + +message UpdateConnectorConfigRequest { + exa.index_pb.ManagementMetadata metadata = 1; + exa.opensearch_clients_pb.ConnectorType connector = 2; + exa.opensearch_clients_pb.ConnectorConfig config = 3; +} + +message UpdateConnectorConfigResponse { +} + +message ConnectorAdditionalParams { + oneof config { + exa.opensearch_clients_pb.ConnectorAdditionalParamsSlack slack = 2; + exa.opensearch_clients_pb.ConnectorAdditionalParamsGithub github = 1; + } +} + +message ConnectorAdditionalParamsSlack { + string client_id = 1; + string client_secret = 2; + string signing_secret = 3; +} + +message ConnectorAdditionalParamsGithub { + int64 installation_id = 1; +} + +message ConnectKnowledgeBaseAccountResponse { +} + +message CancelKnowledgeBaseJobsRequest { + exa.index_pb.ManagementMetadata metadata = 1; + repeated int64 job_ids = 2; +} + +message CancelKnowledgeBaseJobsResponse { +} + +message DocumentTypeCount { + exa.codeium_common_pb.DocumentType document_type = 1; + int64 count = 2; +} + +message ConnectorState { + exa.opensearch_clients_pb.ConnectorType connector = 1; + bool initialized = 2; + exa.opensearch_clients_pb.ConnectorConfig config = 3; + repeated exa.opensearch_clients_pb.DocumentTypeCount document_type_counts = 4; + google.protobuf.Timestamp last_indexed_at = 5; + google.protobuf.Timestamp unhealthy_since = 6; + google.protobuf.Timestamp last_configured_at = 7; +} + +message GetKnowledgeBaseConnectorStateRequest { + exa.index_pb.ManagementMetadata metadata = 1; +} + +message GetKnowledgeBaseConnectorStateResponse { + repeated exa.opensearch_clients_pb.ConnectorState connector_states = 1; +} + +message JobState { + exa.opensearch_clients_pb.ConnectorType connector = 1; + int64 id = 2; + exa.opensearch_clients_pb.JobStatus status = 3; +} + +message GetKnowledgeBaseJobStatesRequest { + exa.index_pb.ManagementMetadata metadata = 1; + repeated exa.opensearch_clients_pb.ConnectorType connector_types = 2; +} + +message GetKnowledgeBaseJobStatesResponse { + repeated exa.opensearch_clients_pb.JobState job_states = 1; +} + +message SlackMessagePayload { + string dataset_id = 1; + string previous_message_dataset_id = 2; + string type = 3; + string channel_id = 4; + string user = 5; + string text = 6; + string timestamp = 7; + string thread_timestamp = 8; + string channel_name = 9; + string team_name = 10; + string team_id = 11; + bool is_private_channel = 12; + string team_domain = 13; + string original_timestamp = 14; +} + +message SlackChannelPayload { + string type = 1; + string channel_id = 2; + string channel_name = 4; + string description = 7; + string team_id = 8; + bool is_private_channel = 9; +} + +message SlackPayload { + oneof payload { + exa.opensearch_clients_pb.SlackMessagePayload message = 13; + exa.opensearch_clients_pb.SlackChannelPayload channel = 14; + } +} + +message GetKnowledgeBaseWebhookUrlRequest { + exa.index_pb.ManagementMetadata metadata = 1; +} + +message GetKnowledgeBaseWebhookUrlResponse { + string webhook_url = 1; +} + +message GetConnectorInternalConfigRequest { + exa.opensearch_clients_pb.ConnectorType connector = 1; +} + +message GetConnectorInternalConfigResponse { + exa.opensearch_clients_pb.ConnectorInternalConfig internal_config = 1; +} + +service KnowledgeBaseService { + rpc KnowledgeBaseSearch(exa.opensearch_clients_pb.KnowledgeBaseSearchRequest) returns (exa.opensearch_clients_pb.KnowledgeBaseSearchResponse); + rpc GetKnowledgeBaseScopeItems(exa.opensearch_clients_pb.GetKnowledgeBaseScopeItemsRequest) returns (exa.opensearch_clients_pb.GetKnowledgeBaseScopeItemsResponse); + rpc GetKnowledgeBaseItemsFromScopeItems(exa.opensearch_clients_pb.GetKnowledgeBaseItemsFromScopeItemsRequest) returns (exa.opensearch_clients_pb.GetKnowledgeBaseItemsFromScopeItemsResponse); + rpc IngestSlackData(exa.opensearch_clients_pb.IngestSlackDataRequest) returns (exa.opensearch_clients_pb.IngestSlackDataResponse); + rpc IngestGithubData(exa.opensearch_clients_pb.IngestGithubDataRequest) returns (exa.opensearch_clients_pb.IngestGithubDataResponse); + rpc IngestGoogleDriveData(exa.opensearch_clients_pb.IngestGoogleDriveDataRequest) returns (exa.opensearch_clients_pb.IngestGoogleDriveDataResponse); + rpc IngestJiraData(exa.opensearch_clients_pb.IngestJiraDataRequest) returns (exa.opensearch_clients_pb.IngestJiraDataResponse); + rpc IngestJiraPayload(exa.opensearch_clients_pb.IngestJiraPayloadRequest) returns (exa.opensearch_clients_pb.IngestJiraPayloadResponse); + rpc ForwardSlackPayload(exa.opensearch_clients_pb.ForwardSlackPayloadRequest) returns (exa.opensearch_clients_pb.ForwardSlackPayloadResponse); + rpc IngestSlackPayload(exa.opensearch_clients_pb.IngestSlackPayloadRequest) returns (exa.opensearch_clients_pb.IngestSlackPayloadResponse); + rpc ConnectKnowledgeBaseAccount(exa.opensearch_clients_pb.ConnectKnowledgeBaseAccountRequest) returns (exa.opensearch_clients_pb.ConnectKnowledgeBaseAccountResponse); + rpc DeleteKnowledgeBaseConnection(exa.opensearch_clients_pb.DeleteKnowledgeBaseConnectionRequest) returns (exa.opensearch_clients_pb.DeleteKnowledgeBaseConnectionResponse); + rpc UpdateConnectorConfig(exa.opensearch_clients_pb.UpdateConnectorConfigRequest) returns (exa.opensearch_clients_pb.UpdateConnectorConfigResponse); + rpc CancelKnowledgeBaseJobs(exa.opensearch_clients_pb.CancelKnowledgeBaseJobsRequest) returns (exa.opensearch_clients_pb.CancelKnowledgeBaseJobsResponse); + rpc GetKnowledgeBaseConnectorState(exa.opensearch_clients_pb.GetKnowledgeBaseConnectorStateRequest) returns (exa.opensearch_clients_pb.GetKnowledgeBaseConnectorStateResponse); + rpc GetKnowledgeBaseJobStates(exa.opensearch_clients_pb.GetKnowledgeBaseJobStatesRequest) returns (exa.opensearch_clients_pb.GetKnowledgeBaseJobStatesResponse); + rpc AddUsers(exa.opensearch_clients_pb.AddUsersRequest) returns (exa.opensearch_clients_pb.AddUsersResponse); + rpc AddGithubUsers(exa.opensearch_clients_pb.AddGithubUsersRequest) returns (exa.opensearch_clients_pb.AddGithubUsersResponse); + rpc GetKnowledgeBaseWebhookUrl(exa.opensearch_clients_pb.GetKnowledgeBaseWebhookUrlRequest) returns (exa.opensearch_clients_pb.GetKnowledgeBaseWebhookUrlResponse); + rpc GetConnectorInternalConfig(exa.opensearch_clients_pb.GetConnectorInternalConfigRequest) returns (exa.opensearch_clients_pb.GetConnectorInternalConfigResponse); +} +service CodeIndexService { + rpc OpenSearchAddRepository(exa.opensearch_clients_pb.OpenSearchAddRepositoryRequest) returns (exa.opensearch_clients_pb.OpenSearchAddRepositoryResponse); + rpc OpenSearchGetIndex(exa.opensearch_clients_pb.OpenSearchGetIndexRequest) returns (exa.opensearch_clients_pb.OpenSearchGetIndexResponse); + rpc HybridSearch(exa.opensearch_clients_pb.HybridSearchRequest) returns (exa.opensearch_clients_pb.HybridSearchResponse); + rpc GraphSearch(exa.opensearch_clients_pb.GraphSearchRequest) returns (exa.opensearch_clients_pb.GraphSearchResponse); +} \ No newline at end of file diff --git a/proto/src/exa/reactive_component_pb/reactive_component.desc.bin b/proto/src/exa/reactive_component_pb/reactive_component.desc.bin new file mode 100644 index 00000000..f318924b Binary files /dev/null and b/proto/src/exa/reactive_component_pb/reactive_component.desc.bin differ diff --git a/proto/src/exa/reactive_component_pb/reactive_component.proto b/proto/src/exa/reactive_component_pb/reactive_component.proto new file mode 100644 index 00000000..fdfecda5 --- /dev/null +++ b/proto/src/exa/reactive_component_pb/reactive_component.proto @@ -0,0 +1,97 @@ +syntax = "proto3"; +package exa.reactive_component_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/reactive_component_pb"; + +enum TestEnum { + TEST_ENUM_UNSPECIFIED = 0; + TEST_ENUM_ONE = 1; + TEST_ENUM_TWO = 2; +} + +message StreamReactiveUpdatesRequest { + uint32 protocol_version = 1; + string id = 2; + string subscriber_id = 3; +} + +message StreamReactiveUpdatesResponse { + uint64 version = 1; + exa.reactive_component_pb.MessageDiff diff = 2; +} + +message TestProto { + int32 counter = 1; + repeated int32 values = 2; + exa.reactive_component_pb.TestProto nested = 3; + repeated exa.reactive_component_pb.TestProto nested_repeated = 4; +} + +message MessageDiff { + repeated exa.reactive_component_pb.FieldDiff field_diffs = 1; +} + +message FieldDiff { + uint32 field_number = 1; + oneof diff { + exa.reactive_component_pb.SingularValue update_singular = 2; + exa.reactive_component_pb.RepeatedDiff update_repeated = 3; + exa.reactive_component_pb.MapDiff update_map = 4; + bool clear = 5; + } +} + +message RepeatedDiff { + uint32 new_length = 1; + repeated exa.reactive_component_pb.SingularValue update_values = 2; + repeated uint32 update_indices = 3; +} + +message MapDiff { + repeated exa.reactive_component_pb.MapKeyDiff map_key_diffs = 1; +} + +message MapKeyDiff { + exa.reactive_component_pb.SingularValue map_key = 1; + oneof diff { + exa.reactive_component_pb.SingularValue update_singular = 2; + bool clear = 3; + } +} + +message SingularValue { + oneof value { + double double_value = 1; + float float_value = 2; + int32 int32_value = 3; + int64 int64_value = 4; + uint32 uint32_value = 5; + uint64 uint64_value = 6; + sint32 sint32_value = 7; + sint64 sint64_value = 8; + fixed32 fixed32_value = 9; + fixed64 fixed64_value = 10; + sfixed32 sfixed32_value = 11; + sfixed64 sfixed64_value = 12; + bool bool_value = 13; + uint32 enum_value = 14; + string string_value = 15; + bytes bytes_value = 16; + exa.reactive_component_pb.MessageDiff message_value = 17; + } +} + +message TestDiffProto { + double singular_scalar_value = 1; + exa.reactive_component_pb.TestProto singular_message_value = 2; + optional double optional_scalar_value = 10; + repeated double repeated_scalar_value = 3; + repeated exa.reactive_component_pb.TestProto repeated_message_value = 4; + map map_scalar_value = 5; + map map_message_value = 6; + oneof oneof_test { + double oneof_scalar_value = 7; + exa.reactive_component_pb.TestProto oneof_message_value = 8; + } + exa.reactive_component_pb.TestEnum enum_value = 9; +} diff --git a/proto/src/exa/unified_state_sync_pb/unified_state_sync.desc.bin b/proto/src/exa/unified_state_sync_pb/unified_state_sync.desc.bin new file mode 100644 index 00000000..16508198 Binary files /dev/null and b/proto/src/exa/unified_state_sync_pb/unified_state_sync.desc.bin differ diff --git a/proto/src/exa/unified_state_sync_pb/unified_state_sync.proto b/proto/src/exa/unified_state_sync_pb/unified_state_sync.proto new file mode 100644 index 00000000..0cbef2a1 --- /dev/null +++ b/proto/src/exa/unified_state_sync_pb/unified_state_sync.proto @@ -0,0 +1,83 @@ +syntax = "proto3"; +package exa.unified_state_sync_pb; + +option go_package = "github.com/user/antigravity-client/gen/exa/unified_state_sync_pb"; + +import "exa/codeium_common_pb/codeium_common.proto"; + +message Topic { + map data = 1; +} + +message Row { + string value = 1; + int64 e_tag = 2; +} + +message AppliedUpdate { + string key = 1; + exa.unified_state_sync_pb.Row new_row = 2; + bool deleted = 5; + int64 current_e_tag = 3; +} + +message UpdateRequest { + string topic_name = 1; + exa.unified_state_sync_pb.AppliedUpdate applied_update = 5; + string key = 2; + exa.unified_state_sync_pb.Row row = 3; +} + +message Primitive { + oneof value { + bool bool_value = 1; + int32 int32_value = 2; + string string_value = 3; + exa.unified_state_sync_pb.RepeatedString repeated_string_value = 4; + exa.unified_state_sync_pb.OptionalString optional_string_value = 5; + } +} + +message OptionalString { + optional string value = 1; +} + +message RepeatedString { + repeated string values = 1; +} + +message PlanningModeConfig { + exa.codeium_common_pb.PlanningMode planning_mode = 1; +} + +message BrowserAllowlistConfig { + repeated string allowlisted_urls = 1; +} + +message BrowserCdpPortConfig { + int32 cdp_port = 1; +} + +message BrowserUserProfilePath { + string user_profile_path = 1; +} + +message BrowserChromeBinaryPath { + string chrome_binary_path = 1; +} + +message BrowserToolsConfig { + exa.codeium_common_pb.AgentBrowserTools agent_browser_tools = 1; +} + +message BrowserJavascriptExecutionConfig { + exa.codeium_common_pb.BrowserJsExecutionPolicy browser_js_execution_policy = 1; +} + +message WorkspaceApiConfig { + bool workspace_api_enabled = 1; +} + +message CustomModels { + map custom_models = 1; +} diff --git a/proto/src/google/api/field_info.desc.bin b/proto/src/google/api/field_info.desc.bin new file mode 100644 index 00000000..0ef75f54 Binary files /dev/null and b/proto/src/google/api/field_info.desc.bin differ diff --git a/proto/src/google/api/field_info.proto b/proto/src/google/api/field_info.proto new file mode 100644 index 00000000..36bdeeac --- /dev/null +++ b/proto/src/google/api/field_info.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; +package google.api; + +option go_package = "github.com/user/antigravity-client/gen/google/api"; + +message FieldInfo { + enum Format { + FORMAT_UNSPECIFIED = 0; + UUID4 = 1; + IPV4 = 2; + IPV6 = 3; + IPV4_OR_IPV6 = 4; + } + google.api.FieldInfo.Format format = 1; + repeated google.api.TypeReference referenced_types = 2; +} + +message TypeReference { + string type_name = 1; +} diff --git a/proto/src/google/api/http.desc.bin b/proto/src/google/api/http.desc.bin new file mode 100644 index 00000000..cacc0fd9 Binary files /dev/null and b/proto/src/google/api/http.desc.bin differ diff --git a/proto/src/google/api/http.proto b/proto/src/google/api/http.proto new file mode 100644 index 00000000..5ad6d5d8 --- /dev/null +++ b/proto/src/google/api/http.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; +package google.api; + +option go_package = "github.com/user/antigravity-client/gen/google/api"; + +message Http { + repeated google.api.HttpRule rules = 1; + bool fully_decode_reserved_expansion = 2; +} + +message HttpRule { + string selector = 1; + oneof pattern { + string get = 2; + string put = 3; + string post = 4; + string delete = 5; + string patch = 6; + google.api.CustomHttpPattern custom = 8; + } + string body = 7; + string response_body = 12; + repeated google.api.HttpRule additional_bindings = 11; +} + +message CustomHttpPattern { + string kind = 1; + string path = 2; +} diff --git a/proto/src/google/protobuf/compiler/plugin.desc.bin b/proto/src/google/protobuf/compiler/plugin.desc.bin new file mode 100644 index 00000000..327921b4 Binary files /dev/null and b/proto/src/google/protobuf/compiler/plugin.desc.bin differ diff --git a/proto/src/google/protobuf/compiler/plugin.proto b/proto/src/google/protobuf/compiler/plugin.proto new file mode 100644 index 00000000..25e74a89 --- /dev/null +++ b/proto/src/google/protobuf/compiler/plugin.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; +package google.protobuf.compiler; + +option go_package = "github.com/user/antigravity-client/gen/google/protobuf/compiler"; + +import "google/protobuf/source_context.proto"; + +message Version { + int32 major = 1; + int32 minor = 2; + int32 patch = 3; + string suffix = 4; +} + +message CodeGeneratorRequest { + repeated string file_to_generate = 1; + string parameter = 2; + repeated google.protobuf.FileDescriptorProto proto_file = 15; + repeated google.protobuf.FileDescriptorProto source_file_descriptors = 17; + google.protobuf.compiler.Version compiler_version = 3; +} + +message CodeGeneratorResponse { + enum Feature { + FEATURE_NONE = 0; + FEATURE_PROTO3_OPTIONAL = 1; + FEATURE_SUPPORTS_EDITIONS = 2; + } + message File { + string name = 1; + string insertion_point = 2; + string content = 15; + google.protobuf.GeneratedCodeInfo generated_code_info = 16; + } + string error = 1; + uint64 supported_features = 2; + int32 minimum_edition = 3; + int32 maximum_edition = 4; + repeated google.protobuf.compiler.CodeGeneratorResponse.File file = 15; +} diff --git a/proto/src/google/protobuf/source_context.desc.bin b/proto/src/google/protobuf/source_context.desc.bin new file mode 100644 index 00000000..299c87bb --- /dev/null +++ b/proto/src/google/protobuf/source_context.desc.bin @@ -0,0 +1,5 @@ + +$google/protobuf/source_context.protogoogle.protobuf"" + SourceContext + file_name ( B +com.google.protobufBSourceContextProtoPZ6google.golang.org/protobuf/types/known/sourcecontextpbGPBGoogle.Protobuf.WellKnownTypesbproto3 \ No newline at end of file diff --git a/proto/src/google/protobuf/source_context.proto b/proto/src/google/protobuf/source_context.proto new file mode 100644 index 00000000..1bbddbfa --- /dev/null +++ b/proto/src/google/protobuf/source_context.proto @@ -0,0 +1,8 @@ +syntax = "proto3"; +package google.protobuf; + +option go_package = "github.com/user/antigravity-client/gen/google/protobuf"; + +message SourceContext { + string file_name = 1; +} diff --git a/proto/src/google/rpc/error_details.desc.bin b/proto/src/google/rpc/error_details.desc.bin new file mode 100644 index 00000000..5cf12754 Binary files /dev/null and b/proto/src/google/rpc/error_details.desc.bin differ diff --git a/proto/src/google/rpc/error_details.proto b/proto/src/google/rpc/error_details.proto new file mode 100644 index 00000000..afcdbd70 --- /dev/null +++ b/proto/src/google/rpc/error_details.proto @@ -0,0 +1,80 @@ +syntax = "proto3"; +package google.rpc; + +option go_package = "github.com/user/antigravity-client/gen/google/rpc"; + +import "google/protobuf/duration.proto"; +import "google/protobuf/source_context.proto"; + +message ErrorInfo { + string reason = 1; + string domain = 2; + map metadata = 3; +} + +message RetryInfo { + google.protobuf.Duration retry_delay = 1; +} + +message DebugInfo { + repeated string stack_entries = 1; + string detail = 2; +} + +message QuotaFailure { + message Violation { + string subject = 1; + string description = 2; + string api_service = 3; + string quota_metric = 4; + string quota_id = 5; + map quota_dimensions = 6; + int64 quota_value = 7; + optional int64 future_quota_value = 8; + } + repeated google.rpc.QuotaFailure.Violation violations = 1; +} + +message PreconditionFailure { + message Violation { + string type = 1; + string subject = 2; + string description = 3; + } + repeated google.rpc.PreconditionFailure.Violation violations = 1; +} + +message BadRequest { + message FieldViolation { + string field = 1; + string description = 2; + string reason = 3; + google.rpc.LocalizedMessage localized_message = 4; + } + repeated google.rpc.BadRequest.FieldViolation field_violations = 1; +} + +message RequestInfo { + string request_id = 1; + string serving_data = 2; +} + +message ResourceInfo { + string resource_type = 1; + string resource_name = 2; + string owner = 3; + string description = 4; +} + +message Help { + message Link { + string description = 1; + string url = 2; + } + repeated google.rpc.Help.Link links = 1; +} + +message LocalizedMessage { + string locale = 1; + string message = 2; +} diff --git a/proto/src/status.desc.bin b/proto/src/status.desc.bin new file mode 100644 index 00000000..ec742ac2 --- /dev/null +++ b/proto/src/status.desc.bin @@ -0,0 +1,8 @@ + + status.proto +google.rpc"N +Status +code ( +message ( % +details ( 2.google.protobuf.AnyB^ +com.google.rpcB StatusProtoPZ7google.golang.org/genproto/googleapis/rpc/status;statusRPCbproto3 \ No newline at end of file diff --git a/proto/src/status.proto b/proto/src/status.proto new file mode 100644 index 00000000..d1ea20cd --- /dev/null +++ b/proto/src/status.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; +package google.rpc; + +option go_package = "github.com/user/antigravity-client/gen/google/rpc"; + +import "google/protobuf/any.proto"; +import "google/protobuf/source_context.proto"; + +message Status { + int32 code = 1; + string message = 2; + repeated google.protobuf.Any details = 3; +}