From 9446af02d9bac14b892a140071350a34733aae1a Mon Sep 17 00:00:00 2001 From: Atkins Chang Date: Thu, 17 Sep 2026 11:45:21 +0800 Subject: [PATCH 1/2] fix(devin): include cache tokens in usage Devin reported cache reads and writes separately from its input tokens, so non-stream results understated context consumption and stream callers could not observe the cache accounting. Carry both cache fields through the provider and executor, include them in the OpenAI-compatible stream usage, and add them to the upstream input total. This keeps cache reads available as cached prompt-token detail while making prompt and total token counts represent all upstream input work. --- internal/executor/chat.go | 2 ++ internal/providers/devin/chat.go | 15 ++++++++++++--- internal/providers/devin/devin_test.go | 16 ++++++++++++++++ internal/providers/devin/wire.go | 3 +++ internal/providers/interfaces.go | 2 ++ 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/internal/executor/chat.go b/internal/executor/chat.go index 6d4c502..389d14e 100644 --- a/internal/executor/chat.go +++ b/internal/executor/chat.go @@ -923,6 +923,8 @@ func (e ChatExecutor) chatInProcessNonStreamAttempt(ctx context.Context, item ac FinishReason: outcome.FinishReason, PromptTokens: outcome.PromptTokens, CompletionTokens: outcome.CompletionTokens, + CacheReadTokens: outcome.CacheReadTokens, + CacheWriteTokens: outcome.CacheWriteTokens, UsageSource: outcome.UsageSource, ConsumedCredits: outcome.Credits, AccountID: item.ID, diff --git a/internal/providers/devin/chat.go b/internal/providers/devin/chat.go index f1c73e8..b10f0d8 100644 --- a/internal/providers/devin/chat.go +++ b/internal/providers/devin/chat.go @@ -117,6 +117,8 @@ type aggregateResult struct { FinishReason string PromptTokens int CompletionTokens int + CacheReadTokens *int + CacheWriteTokens *int } func aggregateConnectStream(r io.Reader, originalByAlias map[string]string, toolsDiag string) (aggregateResult, error) { @@ -169,6 +171,8 @@ func aggregateConnectStream(r io.Reader, originalByAlias map[string]string, tool } } if frame.Usage != nil { + cacheRead, cacheWrite := int(frame.Usage.CachedTokens), int(frame.Usage.CacheWriteTokens) + out.CacheReadTokens, out.CacheWriteTokens = &cacheRead, &cacheWrite if frame.Usage.PromptTokens > 0 { out.PromptTokens = int(frame.Usage.PromptTokens) } @@ -226,6 +230,8 @@ func outcomeFromAggregate(aggregate aggregateResult, fallbackModel string) provi FinishReason: firstNonEmpty(aggregate.FinishReason, "stop"), PromptTokens: aggregate.PromptTokens, CompletionTokens: aggregate.CompletionTokens, + CacheReadTokens: aggregate.CacheReadTokens, + CacheWriteTokens: aggregate.CacheWriteTokens, UsageSource: "upstream", } if len(aggregate.ToolCalls) > 0 { @@ -348,9 +354,12 @@ func rewriteConnectStream(upstream *http.Response, model string, originalByAlias } if frame.Usage != nil { lastUsage = map[string]any{ - "prompt_tokens": frame.Usage.PromptTokens, - "completion_tokens": frame.Usage.CompletionTokens, - "total_tokens": frame.Usage.PromptTokens + frame.Usage.CompletionTokens, + "prompt_tokens": frame.Usage.PromptTokens, + "completion_tokens": frame.Usage.CompletionTokens, + "total_tokens": frame.Usage.PromptTokens + frame.Usage.CompletionTokens, + "cache_read_tokens": frame.Usage.CachedTokens, + "cache_write_tokens": frame.Usage.CacheWriteTokens, + "prompt_tokens_details": map[string]any{"cached_tokens": frame.Usage.CachedTokens}, } if frame.Usage.ModelName != "" { model = frame.Usage.ModelName diff --git a/internal/providers/devin/devin_test.go b/internal/providers/devin/devin_test.go index 9607d72..e369cbb 100644 --- a/internal/providers/devin/devin_test.go +++ b/internal/providers/devin/devin_test.go @@ -201,10 +201,15 @@ func TestChatNonStreamHTTPtest(t *testing.T) { var stopFrame []byte stopFrame = AppendTag(stopFrame, 5, VarintType) stopFrame = AppendVarint(stopFrame, 2) + // GetChatMessageResponse.usage with independent upstream input, cache write, + // and cache read fields. This captured-shape wire fixture is intentionally + // not produced by the local request encoder. + usageFrame := []byte{0x3a, 0x08, 0x10, 0x09, 0x18, 0x02, 0x20, 0x05, 0x28, 0x07} var buf bytes.Buffer buf.Write(WrapConnectEnvelope(textFrame)) buf.Write(WrapConnectEnvelope(stopFrame)) + buf.Write(WrapConnectEnvelope(usageFrame)) buf.Write(WrapConnectEnvelopeWithFlag(ConnectFlagEndStream, []byte(`{}`))) server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -260,6 +265,12 @@ func TestChatNonStreamHTTPtest(t *testing.T) { if out.FinishReason != "stop" { t.Fatalf("finish=%q", out.FinishReason) } + if out.PromptTokens != 21 || out.CompletionTokens != 2 { + t.Fatalf("token totals = %d/%d", out.PromptTokens, out.CompletionTokens) + } + if out.CacheReadTokens == nil || *out.CacheReadTokens != 7 || out.CacheWriteTokens == nil || *out.CacheWriteTokens != 5 { + t.Fatalf("cache usage = read:%v write:%v", out.CacheReadTokens, out.CacheWriteTokens) + } } func TestResolveChatModelUIDWithFixture(t *testing.T) { @@ -311,11 +322,13 @@ func TestChatStreamTextToolAndDone(t *testing.T) { textFrame2 := AppendTag(nil, 3, BytesType) textFrame2 = AppendString(textFrame2, "answer") toolFrame := buildToolCallDeltaFrame("call_1", "lookup", `{"q":"x"}`, 0) + usageFrame := []byte{0x3a, 0x08, 0x10, 0x09, 0x18, 0x02, 0x20, 0x05, 0x28, 0x07} var buf bytes.Buffer buf.Write(WrapConnectEnvelope(textFrame)) buf.Write(WrapConnectEnvelope(textFrame2)) buf.Write(WrapConnectEnvelope(toolFrame)) + buf.Write(WrapConnectEnvelope(usageFrame)) buf.Write(WrapConnectEnvelopeWithFlag(ConnectFlagEndStream, []byte(`{}`))) server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -366,6 +379,9 @@ func TestChatStreamTextToolAndDone(t *testing.T) { if !strings.Contains(text, "data: [DONE]") { t.Fatalf("missing DONE marker: %s", text) } + if !strings.Contains(text, `"prompt_tokens":21`) || !strings.Contains(text, `"cache_read_tokens":7`) || !strings.Contains(text, `"cache_write_tokens":5`) { + t.Fatalf("missing upstream usage: %s", text) + } } func TestAggregateConnectStreamMissingEOS(t *testing.T) { diff --git a/internal/providers/devin/wire.go b/internal/providers/devin/wire.go index 9b3cbbf..562db4f 100644 --- a/internal/providers/devin/wire.go +++ b/internal/providers/devin/wire.go @@ -64,6 +64,7 @@ type Usage struct { PromptTokens int64 CompletionTokens int64 CachedTokens int64 + CacheWriteTokens int64 StatusCode uint64 RequestID string ModelName string @@ -622,7 +623,9 @@ func parseUsageField(data []byte) *Usage { u.CompletionTokens = int64(v) case 4: u.PromptTokens += int64(v) + u.CacheWriteTokens = int64(v) case 5: + u.PromptTokens += int64(v) u.CachedTokens = int64(v) case 6: u.StatusCode = v diff --git a/internal/providers/interfaces.go b/internal/providers/interfaces.go index d532a65..ef6aa55 100644 --- a/internal/providers/interfaces.go +++ b/internal/providers/interfaces.go @@ -71,6 +71,8 @@ type ChatOutcome struct { FinishReason string PromptTokens int CompletionTokens int + CacheReadTokens *int + CacheWriteTokens *int UsageSource string Credits *float64 } From 81e44438fd583343bae5dde07734982459861a98 Mon Sep 17 00:00:00 2001 From: Atkins Chang Date: Thu, 17 Sep 2026 11:59:09 +0800 Subject: [PATCH 2/2] fix(devin): generate protobuf from extracted descriptors The hand-maintained wire subset duplicated Devin's evolving schema and could misrepresent field types, presence, and tool-call identity. Provide a manual command that downloads a stable release, extracts its embedded descriptors, selects the required message dependencies, and generates Go bindings with pinned protobuf tools. Record the source version and checksums in the bindings and keep intermediate downloads and descriptors temporary. Builds and CI consume committed Go files without running the update pipeline. Keep Connect framing and public API translation inside the existing adapter. Use the standard Google Timestamp package and associate tool deltas by their actual IDs, with anonymous interleaving limited by the upstream contract. The extracted schema is not an official proto source distribution and does not establish that every CLI release uses an identical schema. --- CHANGELOG.md | 9 + go.mod | 1 + go.sum | 2 + internal/providers/devin/chat.go | 104 +- internal/providers/devin/devin_test.go | 127 +- .../devinpb/api_server_pb/api_server.pb.go | 815 ++ .../devin/devinpb/chat_pb/chat.pb.go | 736 + .../codeium_common_pb/codeium_common.pb.go | 11784 ++++++++++++++++ .../devin/devinpb/cortex_pb/cortex.pb.go | 695 + .../seat_management_pb/seat_management.pb.go | 197 + internal/providers/devin/protowire.go | 135 - internal/providers/devin/status.go | 258 +- internal/providers/devin/status_test.go | 84 + internal/providers/devin/wire.go | 503 +- internal/providers/devin/wire_test.go | 92 + scripts/devin-proto/download.go | 200 + scripts/devin-proto/extract.go | 102 + scripts/devin-proto/main.go | 376 + scripts/update-devin-proto.sh | 12 + 19 files changed, 15396 insertions(+), 836 deletions(-) create mode 100644 internal/providers/devin/devinpb/api_server_pb/api_server.pb.go create mode 100644 internal/providers/devin/devinpb/chat_pb/chat.pb.go create mode 100644 internal/providers/devin/devinpb/codeium_common_pb/codeium_common.pb.go create mode 100644 internal/providers/devin/devinpb/cortex_pb/cortex.pb.go create mode 100644 internal/providers/devin/devinpb/seat_management_pb/seat_management.pb.go delete mode 100644 internal/providers/devin/protowire.go create mode 100644 internal/providers/devin/status_test.go create mode 100644 internal/providers/devin/wire_test.go create mode 100644 scripts/devin-proto/download.go create mode 100644 scripts/devin-proto/extract.go create mode 100644 scripts/devin-proto/main.go create mode 100755 scripts/update-devin-proto.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index d804c1b..ee42850 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,17 @@ Write each change in both `### English` and `### 中文` under `## Unreleased`. ### English +- Report Devin cache reads and writes in OpenAI-compatible usage, with prompt + totals including all upstream input tokens +- Generate Devin chat and account-status protobuf types from extracted descriptors + with a manual update command; builds and CI use committed Go bindings without + downloading releases or regenerating schemas + ### 中文 +- Devin 的缓存读取与写入会显示在 OpenAI 兼容 usage 中,prompt 总数包含全部上游输入 token +- 新增手动更新命令,提取 descriptor 并生成 Devin 聊天与账号状态 protobuf 类型;构建与 CI 直接使用已提交的 Go 文件,不下载发行包或重新生成 schema + ## 0.5.6 - 2026-09-17 ### English diff --git a/go.mod b/go.mod index ea6e81e..791b14f 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require github.com/joho/godotenv v1.5.1 require ( golang.org/x/net v0.56.0 + google.golang.org/protobuf v1.36.10 modernc.org/sqlite v1.57.0 ) diff --git a/go.sum b/go.sum index c447e45..cd45ba8 100644 --- a/go.sum +++ b/go.sum @@ -24,6 +24,8 @@ golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q= golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= modernc.org/cc/v4 v4.29.1 h1:MKgdCV3WykTSPqpVrnxdEDS0HEd2FHpKZDzxzU5LyeI= modernc.org/cc/v4 v4.29.1/go.mod h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI= modernc.org/ccgo/v4 v4.34.6 h1:sBgfIwyN0TQ9C5hwIeuqyeAKyMWnbvj2fvpF4L11uzU= diff --git a/internal/providers/devin/chat.go b/internal/providers/devin/chat.go index b10f0d8..6d482f6 100644 --- a/internal/providers/devin/chat.go +++ b/internal/providers/devin/chat.go @@ -78,7 +78,7 @@ func (c *Client) ChatStream(ctx context.Context, accountID string, req translate func (c *Client) buildChatHTTPRequest(ctx context.Context, credential Credential, req translate.ChatRequest) (chatRequestBuild, error) { payload := BuildChatPayload(req, currentLevels()) - proto := BuildGetChatMessageRequest( + proto, err := BuildGetChatMessageRequest( credential.SessionToken, credential.DeviceSeed, payload.ModelUID, @@ -90,6 +90,9 @@ func (c *Client) buildChatHTTPRequest(ctx context.Context, credential Credential "", "", ) + if err != nil { + return chatRequestBuild{}, fmt.Errorf("encode Devin chat request: %w", err) + } body := WrapConnectEnvelope(proto) endpoint := strings.TrimRight(firstNonEmpty(credential.BaseURL, c.serverBase, ServerBase), "/") + PathGetChatMessage httpReq, err := http.NewRequestWithContext(ctx, http.MethodPost, endpoint, bytes.NewReader(body)) @@ -121,10 +124,42 @@ type aggregateResult struct { CacheWriteTokens *int } +type toolCallAccumulator struct{ calls []*ToolCallDelta } + +func (a *toolCallAccumulator) add(delta ToolCallDelta) (int, *ToolCallDelta) { + for index, call := range a.calls { + if delta.ID != "" && call.ID == delta.ID { + return index, mergeToolCallDelta(call, delta) + } + } + if len(a.calls) > 0 { + lastIndex := len(a.calls) - 1 + last := a.calls[lastIndex] + if (delta.ID != "" && last.ID == "") || (delta.ID == "" && (delta.Name == "" || delta.Name == last.Name)) { + return lastIndex, mergeToolCallDelta(last, delta) + } + } + // LIMIT: Devin omits an index from ChatToolCall; interleaved anonymous tool + // deltas cannot be disambiguated until the upstream protocol supplies one. + a.calls = append(a.calls, &delta) + return len(a.calls) - 1, &delta +} + +func mergeToolCallDelta(target *ToolCallDelta, delta ToolCallDelta) *ToolCallDelta { + if delta.ID != "" { + target.ID = delta.ID + } + if delta.Name != "" { + target.Name = delta.Name + } + target.Arguments += delta.Arguments + return target +} + func aggregateConnectStream(r io.Reader, originalByAlias map[string]string, toolsDiag string) (aggregateResult, error) { var out aggregateResult out.FinishReason = "stop" - toolAcc := map[int]*ToolCallDelta{} + var toolAcc toolCallAccumulator sawEOS := false for { flag, payload, err := ReadConnectFrame(r) @@ -152,23 +187,10 @@ func aggregateConnectStream(r io.Reader, originalByAlias map[string]string, tool out.Reasoning += frame.ThinkingText } for _, delta := range frame.ToolCallDeltas { - idx := delta.Index - acc, ok := toolAcc[idx] - if !ok { - cp := delta - if cp.Name != "" { - cp.Name = restoreToolName(cp.Name, originalByAlias) - } - toolAcc[idx] = &cp - } else { - if delta.ID != "" { - acc.ID = delta.ID - } - if delta.Name != "" { - acc.Name = restoreToolName(delta.Name, originalByAlias) - } - acc.Arguments += delta.Arguments + if delta.Name != "" { + delta.Name = restoreToolName(delta.Name, originalByAlias) } + toolAcc.add(delta) } if frame.Usage != nil { cacheRead, cacheWrite := int(frame.Usage.CachedTokens), int(frame.Usage.CacheWriteTokens) @@ -192,22 +214,9 @@ func aggregateConnectStream(r io.Reader, originalByAlias map[string]string, tool if !sawEOS { return out, classifiedErrorWithToolsDiag(502, "devin stream truncated: missing EOS trailer", toolsDiag) } - if len(toolAcc) > 0 { + if len(toolAcc.calls) > 0 { out.FinishReason = "tool_calls" - keys := make([]int, 0, len(toolAcc)) - for k := range toolAcc { - keys = append(keys, k) - } - // stable-ish order by index - for i := 0; i < len(keys); i++ { - for j := i + 1; j < len(keys); j++ { - if keys[j] < keys[i] { - keys[i], keys[j] = keys[j], keys[i] - } - } - } - for _, idx := range keys { - tc := toolAcc[idx] + for idx, tc := range toolAcc.calls { out.ToolCalls = append(out.ToolCalls, map[string]any{ "id": tc.ID, "type": "function", @@ -273,7 +282,7 @@ func rewriteConnectStream(upstream *http.Response, model string, originalByAlias return err } - toolAcc := map[int]*ToolCallDelta{} + var toolAcc toolCallAccumulator sawEOS := false var lastUsage any roleSent := false @@ -323,21 +332,8 @@ func rewriteConnectStream(upstream *http.Response, model string, originalByAlias if name != "" { name = restoreToolName(name, originalByAlias) } - idx := delta.Index - acc, ok := toolAcc[idx] - if !ok { - cp := delta - cp.Name = name - toolAcc[idx] = &cp - } else { - if delta.ID != "" { - acc.ID = delta.ID - } - if name != "" { - acc.Name = name - } - acc.Arguments += delta.Arguments - } + delta.Name = name + idx, _ := toolAcc.add(delta) toolDelta := map[string]any{ "index": idx, "id": delta.ID, @@ -366,12 +362,12 @@ func rewriteConnectStream(upstream *http.Response, model string, originalByAlias } } } - if !sawEOS { - _ = pw.CloseWithError(classifiedErrorWithToolsDiag(502, "devin stream truncated: missing EOS trailer", toolsDiag)) - return - } + if !sawEOS { + _ = pw.CloseWithError(classifiedErrorWithToolsDiag(502, "devin stream truncated: missing EOS trailer", toolsDiag)) + return + } finish := "stop" - if len(toolAcc) > 0 { + if len(toolAcc.calls) > 0 { finish = "tool_calls" } if err := writeChunk(map[string]any{}, finish, lastUsage); err != nil { diff --git a/internal/providers/devin/devin_test.go b/internal/providers/devin/devin_test.go index e369cbb..964d67b 100644 --- a/internal/providers/devin/devin_test.go +++ b/internal/providers/devin/devin_test.go @@ -107,13 +107,22 @@ func TestParseTrailerErrorMapping(t *testing.T) { func TestBuildGetUserStatusRequestContainsToken(t *testing.T) { token := "devin-session-token$eyJtest" - req := BuildGetUserStatusRequest(token, strings.Repeat("ab", FingerprintHexLen/2)) + req, err := BuildGetUserStatusRequest(token, strings.Repeat("ab", FingerprintHexLen/2)) + if err != nil { + t.Fatal(err) + } if !bytes.Contains(req, []byte(token)) { t.Fatal("request missing session token") } if !bytes.Contains(req, []byte(ClientName)) { t.Fatal("request missing client name") } + if !bytes.Contains(req, append([]byte{0x0a, byte(len(ClientName))}, ClientName...)) { + t.Fatal("request missing status client name field") + } + if bytes.Contains(req, append([]byte{0xe2, 0x01, byte(len(ClientName))}, ClientName...)) { + t.Fatal("status request unexpectedly contains chat-only metadata field 28") + } } func TestBuildAuthorizationURLQueryOrder(t *testing.T) { @@ -195,12 +204,8 @@ func (m *memStore) Observe(_ context.Context, id, remoteUID, status, lastError, } func TestChatNonStreamHTTPtest(t *testing.T) { - var textFrame []byte - textFrame = AppendTag(textFrame, 3, BytesType) - textFrame = AppendString(textFrame, "hello from devin") - var stopFrame []byte - stopFrame = AppendTag(stopFrame, 5, VarintType) - stopFrame = AppendVarint(stopFrame, 2) + textFrame := []byte("\x1a\x10hello from devin") + stopFrame := []byte{0x28, 0x02} // GetChatMessageResponse.usage with independent upstream input, cache write, // and cache read fields. This captured-shape wire fixture is intentionally // not produced by the local request encoder. @@ -296,32 +301,10 @@ func TestFingerprintLength(t *testing.T) { } } -func buildToolCallDeltaFrame(id, name, args string, index int) []byte { - var tc []byte - tc = AppendTag(tc, 1, BytesType) - tc = AppendBytes(tc, []byte(id)) - tc = AppendTag(tc, 2, BytesType) - tc = AppendBytes(tc, []byte(name)) - tc = AppendTag(tc, 3, BytesType) - tc = AppendBytes(tc, []byte(args)) - tc = AppendTag(tc, 4, VarintType) - tc = AppendVarint(tc, uint64(index)) - - var frame []byte - frame = AppendTag(frame, 6, BytesType) - frame = AppendBytes(frame, tc) - frame = AppendTag(frame, 5, VarintType) - frame = AppendVarint(frame, 10) - return frame -} - func TestChatStreamTextToolAndDone(t *testing.T) { - var textFrame []byte - textFrame = AppendTag(textFrame, 3, BytesType) - textFrame = AppendString(textFrame, "partial ") - textFrame2 := AppendTag(nil, 3, BytesType) - textFrame2 = AppendString(textFrame2, "answer") - toolFrame := buildToolCallDeltaFrame("call_1", "lookup", `{"q":"x"}`, 0) + textFrame := []byte("\x1a\x08partial ") + textFrame2 := []byte("\x1a\x06answer") + toolFrame := []byte("\x32\x1b\x0a\x06call_1\x12\x06lookup\x1a\x09{\"q\":\"x\"}\x28\x0a") usageFrame := []byte{0x3a, 0x08, 0x10, 0x09, 0x18, 0x02, 0x20, 0x05, 0x28, 0x07} var buf bytes.Buffer @@ -385,10 +368,7 @@ func TestChatStreamTextToolAndDone(t *testing.T) { } func TestAggregateConnectStreamMissingEOS(t *testing.T) { - var textFrame []byte - textFrame = AppendTag(textFrame, 3, BytesType) - textFrame = AppendString(textFrame, "orphan") - framed := WrapConnectEnvelope(textFrame) + framed := WrapConnectEnvelope([]byte("\x1a\x06orphan")) _, err := aggregateConnectStream(bytes.NewReader(framed), nil, "") if err == nil { t.Fatal("expected missing EOS error") @@ -398,15 +378,82 @@ func TestAggregateConnectStreamMissingEOS(t *testing.T) { } } +func TestAggregateConnectStreamKeepsDistinctToolIDs(t *testing.T) { + frames := [][]byte{ + []byte("\x32\x12\x0a\x06call_a\x12\x05alpha\x1a\x01{"), + []byte("\x32\x12\x0a\x06call_b\x12\x04beta\x1a\x02[]"), + []byte("\x32\x10\x0a\x06call_a\x1a\x06\"a\":1}"), + } + var stream bytes.Buffer + for _, frame := range frames { + stream.Write(WrapConnectEnvelope(frame)) + } + stream.Write(WrapConnectEnvelopeWithFlag(ConnectFlagEndStream, []byte(`{}`))) + aggregate, err := aggregateConnectStream(&stream, nil, "") + if err != nil { + t.Fatal(err) + } + if len(aggregate.ToolCalls) != 2 { + t.Fatalf("tool calls = %#v", aggregate.ToolCalls) + } + if aggregate.ToolCalls[0]["id"] != "call_a" || aggregate.ToolCalls[0]["function"].(map[string]any)["arguments"] != `{"a":1}` { + t.Fatalf("first tool = %#v", aggregate.ToolCalls[0]) + } + if aggregate.ToolCalls[1]["id"] != "call_b" { + t.Fatalf("second tool = %#v", aggregate.ToolCalls[1]) + } +} + +func TestChatStreamKeepsDistinctToolIDs(t *testing.T) { + frames := [][]byte{ + []byte("\x32\x12\x0a\x06call_a\x12\x05alpha\x1a\x01{"), + []byte("\x32\x12\x0a\x06call_b\x12\x04beta\x1a\x02[]"), + []byte("\x32\x10\x0a\x06call_a\x1a\x06\"a\":1}"), + } + var stream bytes.Buffer + for _, frame := range frames { + stream.Write(WrapConnectEnvelope(frame)) + } + stream.Write(WrapConnectEnvelopeWithFlag(ConnectFlagEndStream, []byte(`{}`))) + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + w.Header().Set("Content-Type", ContentTypeConnectProto) + _, _ = w.Write(stream.Bytes()) + })) + defer server.Close() + store := newMemStore() + store.accounts["acc1"] = accounts.Account{ID: "acc1", Provider: "devin", ProviderRegion: "global"} + credential := Credential{SessionToken: FormatSessionToken("eyJabc.def.ghi"), DeviceSeed: "seed", BaseURL: server.URL} + encoded, err := credential.Encode() + if err != nil { + t.Fatal(err) + } + store.creds["acc1"] = encoded + client := NewClient(store) + client.SetBases(AppBase, APIBase, server.URL) + response, err := client.ChatStream(context.Background(), "acc1", translate.ChatRequest{Model: "swe-2-high", Messages: []translate.ChatMessage{{Role: "user", Content: "hi"}}}) + if err != nil { + t.Fatal(err) + } + defer response.Body.Close() + body, err := io.ReadAll(response.Body) + if err != nil { + t.Fatal(err) + } + text := string(body) + for _, want := range []string{`"id":"call_a"`, `"id":"call_b"`, `"index":0`, `"index":1`} { + if !strings.Contains(text, want) { + t.Fatalf("stream missing %s: %s", want, text) + } + } +} + func TestChatStreamCancelClosesBody(t *testing.T) { started := make(chan struct{}) release := make(chan struct{}) server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { close(started) <-release - var textFrame []byte - textFrame = AppendTag(textFrame, 3, BytesType) - textFrame = AppendString(textFrame, "late") + textFrame := []byte("\x1a\x04late") var buf bytes.Buffer buf.Write(WrapConnectEnvelope(textFrame)) buf.Write(WrapConnectEnvelopeWithFlag(ConnectFlagEndStream, []byte(`{}`))) @@ -715,7 +762,7 @@ func TestParseToolsExpandsNamespaceAndDropsHostedShells(t *testing.T) { func TestChatStreamRestoresMCPToolName(t *testing.T) { original := "mcp__computer-use__left_click" alias := "mcp_computer_use_left_click" - toolFrame := buildToolCallDeltaFrame("call_1", alias, `{"x":2}`, 0) + toolFrame := []byte("\x32\x2e\x0a\x06call_1\x12\x1bmcp_computer_use_left_click\x1a\x07{\"x\":2}\x28\x0a") var buf bytes.Buffer buf.Write(WrapConnectEnvelope(toolFrame)) diff --git a/internal/providers/devin/devinpb/api_server_pb/api_server.pb.go b/internal/providers/devin/devinpb/api_server_pb/api_server.pb.go new file mode 100644 index 0000000..32cfbcf --- /dev/null +++ b/internal/providers/devin/devinpb/api_server_pb/api_server.pb.go @@ -0,0 +1,815 @@ +// Devin Desktop 3.10.31, linux-x64: https://windsurf-stable.codeiumdata.com/linux-x64/stable/b98cc43128712ba73c60cca73876f58a710aaa27/Devin-linux-x64-3.10.31.tar.gz +// Archive SHA256 (locally calculated): b3ddf1098c11255354d60a0778d7033989eaed85a37bbd55df90167f42eb5346 +// Language server SHA256: aced58234bf6fac9cf5b65d9286e971d697b0a60baaee0a812ff0312dffb88de +// Extracted descriptor set SHA256: 9877811de3bc8055852f94aabd7c7affb3964c30f66c43b0cbcd49753abe211d +// Regenerate: bash scripts/update-devin-proto.sh --version 3.10.31 +// Recovered from Desktop, not an official proto source release or a CLI compatibility guarantee. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.10 +// protoc v7.34.1 +// source: exa/api_server_pb/api_server.proto + +package api_server_pb + +import ( + chat_pb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/chat_pb" + codeium_common_pb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/codeium_common_pb" + cortex_pb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/cortex_pb" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 ChatMessageRequestType int32 + +const ( + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_UNSPECIFIED ChatMessageRequestType = 0 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_GENERAL ChatMessageRequestType = 1 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_CONTEXT_CHECK ChatMessageRequestType = 2 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_PLAN ChatMessageRequestType = 3 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_COMMAND ChatMessageRequestType = 4 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_CASCADE ChatMessageRequestType = 5 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_EVAL ChatMessageRequestType = 6 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_WINDSURF_REVIEW ChatMessageRequestType = 7 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_DEEPWIKI ChatMessageRequestType = 9 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_DEVSTRAL ChatMessageRequestType = 10 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_CODEMAP_GENERATION ChatMessageRequestType = 11 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_CODEMAP_SUGGESTIONS ChatMessageRequestType = 12 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_SMART_FRIEND ChatMessageRequestType = 13 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_LIFEGUARD ChatMessageRequestType = 14 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_CHECKPOINT ChatMessageRequestType = 15 + ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_AI_GATEWAY ChatMessageRequestType = 16 +) + +// Enum value maps for ChatMessageRequestType. +var ( + ChatMessageRequestType_name = map[int32]string{ + 0: "CHAT_MESSAGE_REQUEST_TYPE_UNSPECIFIED", + 1: "CHAT_MESSAGE_REQUEST_TYPE_GENERAL", + 2: "CHAT_MESSAGE_REQUEST_TYPE_CONTEXT_CHECK", + 3: "CHAT_MESSAGE_REQUEST_TYPE_PLAN", + 4: "CHAT_MESSAGE_REQUEST_TYPE_COMMAND", + 5: "CHAT_MESSAGE_REQUEST_TYPE_CASCADE", + 6: "CHAT_MESSAGE_REQUEST_TYPE_EVAL", + 7: "CHAT_MESSAGE_REQUEST_TYPE_WINDSURF_REVIEW", + 9: "CHAT_MESSAGE_REQUEST_TYPE_DEEPWIKI", + 10: "CHAT_MESSAGE_REQUEST_TYPE_DEVSTRAL", + 11: "CHAT_MESSAGE_REQUEST_TYPE_CODEMAP_GENERATION", + 12: "CHAT_MESSAGE_REQUEST_TYPE_CODEMAP_SUGGESTIONS", + 13: "CHAT_MESSAGE_REQUEST_TYPE_SMART_FRIEND", + 14: "CHAT_MESSAGE_REQUEST_TYPE_LIFEGUARD", + 15: "CHAT_MESSAGE_REQUEST_TYPE_CHECKPOINT", + 16: "CHAT_MESSAGE_REQUEST_TYPE_AI_GATEWAY", + } + ChatMessageRequestType_value = map[string]int32{ + "CHAT_MESSAGE_REQUEST_TYPE_UNSPECIFIED": 0, + "CHAT_MESSAGE_REQUEST_TYPE_GENERAL": 1, + "CHAT_MESSAGE_REQUEST_TYPE_CONTEXT_CHECK": 2, + "CHAT_MESSAGE_REQUEST_TYPE_PLAN": 3, + "CHAT_MESSAGE_REQUEST_TYPE_COMMAND": 4, + "CHAT_MESSAGE_REQUEST_TYPE_CASCADE": 5, + "CHAT_MESSAGE_REQUEST_TYPE_EVAL": 6, + "CHAT_MESSAGE_REQUEST_TYPE_WINDSURF_REVIEW": 7, + "CHAT_MESSAGE_REQUEST_TYPE_DEEPWIKI": 9, + "CHAT_MESSAGE_REQUEST_TYPE_DEVSTRAL": 10, + "CHAT_MESSAGE_REQUEST_TYPE_CODEMAP_GENERATION": 11, + "CHAT_MESSAGE_REQUEST_TYPE_CODEMAP_SUGGESTIONS": 12, + "CHAT_MESSAGE_REQUEST_TYPE_SMART_FRIEND": 13, + "CHAT_MESSAGE_REQUEST_TYPE_LIFEGUARD": 14, + "CHAT_MESSAGE_REQUEST_TYPE_CHECKPOINT": 15, + "CHAT_MESSAGE_REQUEST_TYPE_AI_GATEWAY": 16, + } +) + +func (x ChatMessageRequestType) Enum() *ChatMessageRequestType { + p := new(ChatMessageRequestType) + *p = x + return p +} + +func (x ChatMessageRequestType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChatMessageRequestType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_api_server_pb_api_server_proto_enumTypes[0].Descriptor() +} + +func (ChatMessageRequestType) Type() protoreflect.EnumType { + return &file_exa_api_server_pb_api_server_proto_enumTypes[0] +} + +func (x ChatMessageRequestType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChatMessageRequestType.Descriptor instead. +func (ChatMessageRequestType) EnumDescriptor() ([]byte, []int) { + return file_exa_api_server_pb_api_server_proto_rawDescGZIP(), []int{0} +} + +type GetChatMessageRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *codeium_common_pb.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Prompt string `protobuf:"bytes,2,opt,name=prompt,proto3" json:"prompt,omitempty"` + ChatMessagePrompts []*chat_pb.ChatMessagePrompt `protobuf:"bytes,3,rep,name=chat_message_prompts,json=chatMessagePrompts,proto3" json:"chat_message_prompts,omitempty"` + UseInternalChatModel bool `protobuf:"varint,5,opt,name=use_internal_chat_model,json=useInternalChatModel,proto3" json:"use_internal_chat_model,omitempty"` + // Deprecated: Marked as deprecated in exa/api_server_pb/api_server.proto. + InternalChatModel codeium_common_pb.Model `protobuf:"varint,6,opt,name=internal_chat_model,json=internalChatModel,proto3,enum=exa.codeium_common_pb.Model" json:"internal_chat_model,omitempty"` + ChatModelUid string `protobuf:"bytes,21,opt,name=chat_model_uid,json=chatModelUid,proto3" json:"chat_model_uid,omitempty"` + RequestType ChatMessageRequestType `protobuf:"varint,7,opt,name=request_type,json=requestType,proto3,enum=exa.api_server_pb.ChatMessageRequestType" json:"request_type,omitempty"` + Configuration *codeium_common_pb.CompletionConfiguration `protobuf:"bytes,8,opt,name=configuration,proto3" json:"configuration,omitempty"` + ExperimentConfig *codeium_common_pb.ExperimentConfig `protobuf:"bytes,9,opt,name=experiment_config,json=experimentConfig,proto3" json:"experiment_config,omitempty"` + Tools []*chat_pb.ChatToolDefinition `protobuf:"bytes,10,rep,name=tools,proto3" json:"tools,omitempty"` + DisableParallelToolCalls bool `protobuf:"varint,11,opt,name=disable_parallel_tool_calls,json=disableParallelToolCalls,proto3" json:"disable_parallel_tool_calls,omitempty"` + ToolChoice *chat_pb.ChatToolChoice `protobuf:"bytes,12,opt,name=tool_choice,json=toolChoice,proto3" json:"tool_choice,omitempty"` + SystemPromptCacheOptions *chat_pb.PromptCacheOptions `protobuf:"bytes,13,opt,name=system_prompt_cache_options,json=systemPromptCacheOptions,proto3" json:"system_prompt_cache_options,omitempty"` + ChatModelName string `protobuf:"bytes,14,opt,name=chat_model_name,json=chatModelName,proto3" json:"chat_model_name,omitempty"` + TrajectoryReference *cortex_pb.CortexTrajectoryReference `protobuf:"bytes,15,opt,name=trajectory_reference,json=trajectoryReference,proto3" json:"trajectory_reference,omitempty"` + CascadeId string `protobuf:"bytes,16,opt,name=cascade_id,json=cascadeId,proto3" json:"cascade_id,omitempty"` + PromptId string `protobuf:"bytes,17,opt,name=prompt_id,json=promptId,proto3" json:"prompt_id,omitempty"` + ProviderSource codeium_common_pb.ProviderSource `protobuf:"varint,18,opt,name=provider_source,json=providerSource,proto3,enum=exa.codeium_common_pb.ProviderSource" json:"provider_source,omitempty"` + Language codeium_common_pb.Language `protobuf:"varint,19,opt,name=language,proto3,enum=exa.codeium_common_pb.Language" json:"language,omitempty"` + PlannerMode codeium_common_pb.ConversationalPlannerMode `protobuf:"varint,20,opt,name=planner_mode,json=plannerMode,proto3,enum=exa.codeium_common_pb.ConversationalPlannerMode" json:"planner_mode,omitempty"` + ExecutionId string `protobuf:"bytes,22,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"` + ArenaConvergeCount *int32 `protobuf:"varint,24,opt,name=arena_converge_count,json=arenaConvergeCount,proto3,oneof" json:"arena_converge_count,omitempty"` + ArenaAssignmentJwt *string `protobuf:"bytes,25,opt,name=arena_assignment_jwt,json=arenaAssignmentJwt,proto3,oneof" json:"arena_assignment_jwt,omitempty"` + ModelAssignmentJwt *string `protobuf:"bytes,26,opt,name=model_assignment_jwt,json=modelAssignmentJwt,proto3,oneof" json:"model_assignment_jwt,omitempty"` + PromptCacheKey string `protobuf:"bytes,27,opt,name=prompt_cache_key,json=promptCacheKey,proto3" json:"prompt_cache_key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetChatMessageRequest) Reset() { + *x = GetChatMessageRequest{} + mi := &file_exa_api_server_pb_api_server_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetChatMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChatMessageRequest) ProtoMessage() {} + +func (x *GetChatMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_exa_api_server_pb_api_server_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 GetChatMessageRequest.ProtoReflect.Descriptor instead. +func (*GetChatMessageRequest) Descriptor() ([]byte, []int) { + return file_exa_api_server_pb_api_server_proto_rawDescGZIP(), []int{0} +} + +func (x *GetChatMessageRequest) GetMetadata() *codeium_common_pb.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *GetChatMessageRequest) GetPrompt() string { + if x != nil { + return x.Prompt + } + return "" +} + +func (x *GetChatMessageRequest) GetChatMessagePrompts() []*chat_pb.ChatMessagePrompt { + if x != nil { + return x.ChatMessagePrompts + } + return nil +} + +func (x *GetChatMessageRequest) GetUseInternalChatModel() bool { + if x != nil { + return x.UseInternalChatModel + } + return false +} + +// Deprecated: Marked as deprecated in exa/api_server_pb/api_server.proto. +func (x *GetChatMessageRequest) GetInternalChatModel() codeium_common_pb.Model { + if x != nil { + return x.InternalChatModel + } + return codeium_common_pb.Model(0) +} + +func (x *GetChatMessageRequest) GetChatModelUid() string { + if x != nil { + return x.ChatModelUid + } + return "" +} + +func (x *GetChatMessageRequest) GetRequestType() ChatMessageRequestType { + if x != nil { + return x.RequestType + } + return ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_UNSPECIFIED +} + +func (x *GetChatMessageRequest) GetConfiguration() *codeium_common_pb.CompletionConfiguration { + if x != nil { + return x.Configuration + } + return nil +} + +func (x *GetChatMessageRequest) GetExperimentConfig() *codeium_common_pb.ExperimentConfig { + if x != nil { + return x.ExperimentConfig + } + return nil +} + +func (x *GetChatMessageRequest) GetTools() []*chat_pb.ChatToolDefinition { + if x != nil { + return x.Tools + } + return nil +} + +func (x *GetChatMessageRequest) GetDisableParallelToolCalls() bool { + if x != nil { + return x.DisableParallelToolCalls + } + return false +} + +func (x *GetChatMessageRequest) GetToolChoice() *chat_pb.ChatToolChoice { + if x != nil { + return x.ToolChoice + } + return nil +} + +func (x *GetChatMessageRequest) GetSystemPromptCacheOptions() *chat_pb.PromptCacheOptions { + if x != nil { + return x.SystemPromptCacheOptions + } + return nil +} + +func (x *GetChatMessageRequest) GetChatModelName() string { + if x != nil { + return x.ChatModelName + } + return "" +} + +func (x *GetChatMessageRequest) GetTrajectoryReference() *cortex_pb.CortexTrajectoryReference { + if x != nil { + return x.TrajectoryReference + } + return nil +} + +func (x *GetChatMessageRequest) GetCascadeId() string { + if x != nil { + return x.CascadeId + } + return "" +} + +func (x *GetChatMessageRequest) GetPromptId() string { + if x != nil { + return x.PromptId + } + return "" +} + +func (x *GetChatMessageRequest) GetProviderSource() codeium_common_pb.ProviderSource { + if x != nil { + return x.ProviderSource + } + return codeium_common_pb.ProviderSource(0) +} + +func (x *GetChatMessageRequest) GetLanguage() codeium_common_pb.Language { + if x != nil { + return x.Language + } + return codeium_common_pb.Language(0) +} + +func (x *GetChatMessageRequest) GetPlannerMode() codeium_common_pb.ConversationalPlannerMode { + if x != nil { + return x.PlannerMode + } + return codeium_common_pb.ConversationalPlannerMode(0) +} + +func (x *GetChatMessageRequest) GetExecutionId() string { + if x != nil { + return x.ExecutionId + } + return "" +} + +func (x *GetChatMessageRequest) GetArenaConvergeCount() int32 { + if x != nil && x.ArenaConvergeCount != nil { + return *x.ArenaConvergeCount + } + return 0 +} + +func (x *GetChatMessageRequest) GetArenaAssignmentJwt() string { + if x != nil && x.ArenaAssignmentJwt != nil { + return *x.ArenaAssignmentJwt + } + return "" +} + +func (x *GetChatMessageRequest) GetModelAssignmentJwt() string { + if x != nil && x.ModelAssignmentJwt != nil { + return *x.ModelAssignmentJwt + } + return "" +} + +func (x *GetChatMessageRequest) GetPromptCacheKey() string { + if x != nil { + return x.PromptCacheKey + } + return "" +} + +type GetChatMessageResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + MessageId string `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + DeltaText string `protobuf:"bytes,3,opt,name=delta_text,json=deltaText,proto3" json:"delta_text,omitempty"` + DeltaTokens uint32 `protobuf:"varint,4,opt,name=delta_tokens,json=deltaTokens,proto3" json:"delta_tokens,omitempty"` + StopReason codeium_common_pb.StopReason `protobuf:"varint,5,opt,name=stop_reason,json=stopReason,proto3,enum=exa.codeium_common_pb.StopReason" json:"stop_reason,omitempty"` + DeltaToolCalls []*codeium_common_pb.ChatToolCall `protobuf:"bytes,6,rep,name=delta_tool_calls,json=deltaToolCalls,proto3" json:"delta_tool_calls,omitempty"` + Usage *codeium_common_pb.ModelUsageStats `protobuf:"bytes,7,opt,name=usage,proto3" json:"usage,omitempty"` + CreditCost int32 `protobuf:"varint,14,opt,name=credit_cost,json=creditCost,proto3" json:"credit_cost,omitempty"` + Redact bool `protobuf:"varint,8,opt,name=redact,proto3" json:"redact,omitempty"` + DeltaThinking string `protobuf:"bytes,9,opt,name=delta_thinking,json=deltaThinking,proto3" json:"delta_thinking,omitempty"` + DeltaSignature string `protobuf:"bytes,10,opt,name=delta_signature,json=deltaSignature,proto3" json:"delta_signature,omitempty"` + ThinkingRedacted bool `protobuf:"varint,11,opt,name=thinking_redacted,json=thinkingRedacted,proto3" json:"thinking_redacted,omitempty"` + Latency float64 `protobuf:"fixed64,12,opt,name=latency,proto3" json:"latency,omitempty"` + CompletionProfile *codeium_common_pb.CompletionProfile `protobuf:"bytes,13,opt,name=completion_profile,json=completionProfile,proto3" json:"completion_profile,omitempty"` + OutputId string `protobuf:"bytes,15,opt,name=output_id,json=outputId,proto3" json:"output_id,omitempty"` + // Deprecated: Marked as deprecated in exa/api_server_pb/api_server.proto. + ThinkingId string `protobuf:"bytes,16,opt,name=thinking_id,json=thinkingId,proto3" json:"thinking_id,omitempty"` + RequestId string `protobuf:"bytes,17,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + CommittedCreditCost int32 `protobuf:"varint,18,opt,name=committed_credit_cost,json=committedCreditCost,proto3" json:"committed_credit_cost,omitempty"` + Prompt string `protobuf:"bytes,19,opt,name=prompt,proto3" json:"prompt,omitempty"` + // Deprecated: Marked as deprecated in exa/api_server_pb/api_server.proto. + GeminiThoughtSignature []byte `protobuf:"bytes,20,opt,name=gemini_thought_signature,json=geminiThoughtSignature,proto3" json:"gemini_thought_signature,omitempty"` + DeltaSignatureType string `protobuf:"bytes,21,opt,name=delta_signature_type,json=deltaSignatureType,proto3" json:"delta_signature_type,omitempty"` + CommittedAcuCost float64 `protobuf:"fixed64,22,opt,name=committed_acu_cost,json=committedAcuCost,proto3" json:"committed_acu_cost,omitempty"` + ActualModelUid *string `protobuf:"bytes,23,opt,name=actual_model_uid,json=actualModelUid,proto3,oneof" json:"actual_model_uid,omitempty"` + ArenaInvocationCapReached bool `protobuf:"varint,24,opt,name=arena_invocation_cap_reached,json=arenaInvocationCapReached,proto3" json:"arena_invocation_cap_reached,omitempty"` + Phase string `protobuf:"bytes,25,opt,name=phase,proto3" json:"phase,omitempty"` + CommittedQuotaCostBasisPoints *int64 `protobuf:"varint,26,opt,name=committed_quota_cost_basis_points,json=committedQuotaCostBasisPoints,proto3,oneof" json:"committed_quota_cost_basis_points,omitempty"` + CommittedOverageCostCents *int64 `protobuf:"varint,27,opt,name=committed_overage_cost_cents,json=committedOverageCostCents,proto3,oneof" json:"committed_overage_cost_cents,omitempty"` + ResponseDimensionGroups []*codeium_common_pb.ResponseDimensionGroup `protobuf:"bytes,28,rep,name=response_dimension_groups,json=responseDimensionGroups,proto3" json:"response_dimension_groups,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetChatMessageResponse) Reset() { + *x = GetChatMessageResponse{} + mi := &file_exa_api_server_pb_api_server_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetChatMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChatMessageResponse) ProtoMessage() {} + +func (x *GetChatMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_exa_api_server_pb_api_server_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 GetChatMessageResponse.ProtoReflect.Descriptor instead. +func (*GetChatMessageResponse) Descriptor() ([]byte, []int) { + return file_exa_api_server_pb_api_server_proto_rawDescGZIP(), []int{1} +} + +func (x *GetChatMessageResponse) GetMessageId() string { + if x != nil { + return x.MessageId + } + return "" +} + +func (x *GetChatMessageResponse) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *GetChatMessageResponse) GetDeltaText() string { + if x != nil { + return x.DeltaText + } + return "" +} + +func (x *GetChatMessageResponse) GetDeltaTokens() uint32 { + if x != nil { + return x.DeltaTokens + } + return 0 +} + +func (x *GetChatMessageResponse) GetStopReason() codeium_common_pb.StopReason { + if x != nil { + return x.StopReason + } + return codeium_common_pb.StopReason(0) +} + +func (x *GetChatMessageResponse) GetDeltaToolCalls() []*codeium_common_pb.ChatToolCall { + if x != nil { + return x.DeltaToolCalls + } + return nil +} + +func (x *GetChatMessageResponse) GetUsage() *codeium_common_pb.ModelUsageStats { + if x != nil { + return x.Usage + } + return nil +} + +func (x *GetChatMessageResponse) GetCreditCost() int32 { + if x != nil { + return x.CreditCost + } + return 0 +} + +func (x *GetChatMessageResponse) GetRedact() bool { + if x != nil { + return x.Redact + } + return false +} + +func (x *GetChatMessageResponse) GetDeltaThinking() string { + if x != nil { + return x.DeltaThinking + } + return "" +} + +func (x *GetChatMessageResponse) GetDeltaSignature() string { + if x != nil { + return x.DeltaSignature + } + return "" +} + +func (x *GetChatMessageResponse) GetThinkingRedacted() bool { + if x != nil { + return x.ThinkingRedacted + } + return false +} + +func (x *GetChatMessageResponse) GetLatency() float64 { + if x != nil { + return x.Latency + } + return 0 +} + +func (x *GetChatMessageResponse) GetCompletionProfile() *codeium_common_pb.CompletionProfile { + if x != nil { + return x.CompletionProfile + } + return nil +} + +func (x *GetChatMessageResponse) GetOutputId() string { + if x != nil { + return x.OutputId + } + return "" +} + +// Deprecated: Marked as deprecated in exa/api_server_pb/api_server.proto. +func (x *GetChatMessageResponse) GetThinkingId() string { + if x != nil { + return x.ThinkingId + } + return "" +} + +func (x *GetChatMessageResponse) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *GetChatMessageResponse) GetCommittedCreditCost() int32 { + if x != nil { + return x.CommittedCreditCost + } + return 0 +} + +func (x *GetChatMessageResponse) GetPrompt() string { + if x != nil { + return x.Prompt + } + return "" +} + +// Deprecated: Marked as deprecated in exa/api_server_pb/api_server.proto. +func (x *GetChatMessageResponse) GetGeminiThoughtSignature() []byte { + if x != nil { + return x.GeminiThoughtSignature + } + return nil +} + +func (x *GetChatMessageResponse) GetDeltaSignatureType() string { + if x != nil { + return x.DeltaSignatureType + } + return "" +} + +func (x *GetChatMessageResponse) GetCommittedAcuCost() float64 { + if x != nil { + return x.CommittedAcuCost + } + return 0 +} + +func (x *GetChatMessageResponse) GetActualModelUid() string { + if x != nil && x.ActualModelUid != nil { + return *x.ActualModelUid + } + return "" +} + +func (x *GetChatMessageResponse) GetArenaInvocationCapReached() bool { + if x != nil { + return x.ArenaInvocationCapReached + } + return false +} + +func (x *GetChatMessageResponse) GetPhase() string { + if x != nil { + return x.Phase + } + return "" +} + +func (x *GetChatMessageResponse) GetCommittedQuotaCostBasisPoints() int64 { + if x != nil && x.CommittedQuotaCostBasisPoints != nil { + return *x.CommittedQuotaCostBasisPoints + } + return 0 +} + +func (x *GetChatMessageResponse) GetCommittedOverageCostCents() int64 { + if x != nil && x.CommittedOverageCostCents != nil { + return *x.CommittedOverageCostCents + } + return 0 +} + +func (x *GetChatMessageResponse) GetResponseDimensionGroups() []*codeium_common_pb.ResponseDimensionGroup { + if x != nil { + return x.ResponseDimensionGroups + } + return nil +} + +var File_exa_api_server_pb_api_server_proto protoreflect.FileDescriptor + +const file_exa_api_server_pb_api_server_proto_rawDesc = "" + + "\n" + + "\"exa/api_server_pb/api_server.proto\x12\x11exa.api_server_pb\x1a\x16exa/chat_pb/chat.proto\x1a*exa/codeium_common_pb/codeium_common.proto\x1a\x1aexa/cortex_pb/cortex.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x91\r\n" + + "\x15GetChatMessageRequest\x12C\n" + + "\bmetadata\x18\x01 \x01(\v2\x1f.exa.codeium_common_pb.MetadataB\x06\xbaH\x03\xc8\x01\x01R\bmetadata\x12\x16\n" + + "\x06prompt\x18\x02 \x01(\tR\x06prompt\x12Z\n" + + "\x14chat_message_prompts\x18\x03 \x03(\v2\x1e.exa.chat_pb.ChatMessagePromptB\b\xbaH\x05\x92\x01\x02\b\x01R\x12chatMessagePrompts\x125\n" + + "\x17use_internal_chat_model\x18\x05 \x01(\bR\x14useInternalChatModel\x12P\n" + + "\x13internal_chat_model\x18\x06 \x01(\x0e2\x1c.exa.codeium_common_pb.ModelB\x02\x18\x01R\x11internalChatModel\x12$\n" + + "\x0echat_model_uid\x18\x15 \x01(\tR\fchatModelUid\x12L\n" + + "\frequest_type\x18\a \x01(\x0e2).exa.api_server_pb.ChatMessageRequestTypeR\vrequestType\x12T\n" + + "\rconfiguration\x18\b \x01(\v2..exa.codeium_common_pb.CompletionConfigurationR\rconfiguration\x12T\n" + + "\x11experiment_config\x18\t \x01(\v2'.exa.codeium_common_pb.ExperimentConfigR\x10experimentConfig\x125\n" + + "\x05tools\x18\n" + + " \x03(\v2\x1f.exa.chat_pb.ChatToolDefinitionR\x05tools\x12=\n" + + "\x1bdisable_parallel_tool_calls\x18\v \x01(\bR\x18disableParallelToolCalls\x12<\n" + + "\vtool_choice\x18\f \x01(\v2\x1b.exa.chat_pb.ChatToolChoiceR\n" + + "toolChoice\x12^\n" + + "\x1bsystem_prompt_cache_options\x18\r \x01(\v2\x1f.exa.chat_pb.PromptCacheOptionsR\x18systemPromptCacheOptions\x12&\n" + + "\x0fchat_model_name\x18\x0e \x01(\tR\rchatModelName\x12[\n" + + "\x14trajectory_reference\x18\x0f \x01(\v2(.exa.cortex_pb.CortexTrajectoryReferenceR\x13trajectoryReference\x12\x1d\n" + + "\n" + + "cascade_id\x18\x10 \x01(\tR\tcascadeId\x12\x1b\n" + + "\tprompt_id\x18\x11 \x01(\tR\bpromptId\x12N\n" + + "\x0fprovider_source\x18\x12 \x01(\x0e2%.exa.codeium_common_pb.ProviderSourceR\x0eproviderSource\x12;\n" + + "\blanguage\x18\x13 \x01(\x0e2\x1f.exa.codeium_common_pb.LanguageR\blanguage\x12S\n" + + "\fplanner_mode\x18\x14 \x01(\x0e20.exa.codeium_common_pb.ConversationalPlannerModeR\vplannerMode\x12!\n" + + "\fexecution_id\x18\x16 \x01(\tR\vexecutionId\x125\n" + + "\x14arena_converge_count\x18\x18 \x01(\x05H\x00R\x12arenaConvergeCount\x88\x01\x01\x125\n" + + "\x14arena_assignment_jwt\x18\x19 \x01(\tH\x01R\x12arenaAssignmentJwt\x88\x01\x01\x125\n" + + "\x14model_assignment_jwt\x18\x1a \x01(\tH\x02R\x12modelAssignmentJwt\x88\x01\x01\x12(\n" + + "\x10prompt_cache_key\x18\x1b \x01(\tR\x0epromptCacheKeyB\x17\n" + + "\x15_arena_converge_countB\x17\n" + + "\x15_arena_assignment_jwtB\x17\n" + + "\x15_model_assignment_jwtJ\x04\b\x17\x10\x18J\x04\b\x04\x10\x05R\n" + + "arena_tierR\n" + + "model_name\"\xeb\v\n" + + "\x16GetChatMessageResponse\x12&\n" + + "\n" + + "message_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\tmessageId\x12@\n" + + "\ttimestamp\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\ttimestamp\x12\x1d\n" + + "\n" + + "delta_text\x18\x03 \x01(\tR\tdeltaText\x12!\n" + + "\fdelta_tokens\x18\x04 \x01(\rR\vdeltaTokens\x12B\n" + + "\vstop_reason\x18\x05 \x01(\x0e2!.exa.codeium_common_pb.StopReasonR\n" + + "stopReason\x12M\n" + + "\x10delta_tool_calls\x18\x06 \x03(\v2#.exa.codeium_common_pb.ChatToolCallR\x0edeltaToolCalls\x12<\n" + + "\x05usage\x18\a \x01(\v2&.exa.codeium_common_pb.ModelUsageStatsR\x05usage\x12\x1f\n" + + "\vcredit_cost\x18\x0e \x01(\x05R\n" + + "creditCost\x12\x16\n" + + "\x06redact\x18\b \x01(\bR\x06redact\x12%\n" + + "\x0edelta_thinking\x18\t \x01(\tR\rdeltaThinking\x12'\n" + + "\x0fdelta_signature\x18\n" + + " \x01(\tR\x0edeltaSignature\x12+\n" + + "\x11thinking_redacted\x18\v \x01(\bR\x10thinkingRedacted\x12\x18\n" + + "\alatency\x18\f \x01(\x01R\alatency\x12W\n" + + "\x12completion_profile\x18\r \x01(\v2(.exa.codeium_common_pb.CompletionProfileR\x11completionProfile\x12\x1b\n" + + "\toutput_id\x18\x0f \x01(\tR\boutputId\x12#\n" + + "\vthinking_id\x18\x10 \x01(\tB\x02\x18\x01R\n" + + "thinkingId\x12\x1d\n" + + "\n" + + "request_id\x18\x11 \x01(\tR\trequestId\x122\n" + + "\x15committed_credit_cost\x18\x12 \x01(\x05R\x13committedCreditCost\x12\x16\n" + + "\x06prompt\x18\x13 \x01(\tR\x06prompt\x12<\n" + + "\x18gemini_thought_signature\x18\x14 \x01(\fB\x02\x18\x01R\x16geminiThoughtSignature\x120\n" + + "\x14delta_signature_type\x18\x15 \x01(\tR\x12deltaSignatureType\x12,\n" + + "\x12committed_acu_cost\x18\x16 \x01(\x01R\x10committedAcuCost\x12-\n" + + "\x10actual_model_uid\x18\x17 \x01(\tH\x00R\x0eactualModelUid\x88\x01\x01\x12?\n" + + "\x1carena_invocation_cap_reached\x18\x18 \x01(\bR\x19arenaInvocationCapReached\x12\x14\n" + + "\x05phase\x18\x19 \x01(\tR\x05phase\x12M\n" + + "!committed_quota_cost_basis_points\x18\x1a \x01(\x03H\x01R\x1dcommittedQuotaCostBasisPoints\x88\x01\x01\x12D\n" + + "\x1ccommitted_overage_cost_cents\x18\x1b \x01(\x03H\x02R\x19committedOverageCostCents\x88\x01\x01\x12i\n" + + "\x19response_dimension_groups\x18\x1c \x03(\v2-.exa.codeium_common_pb.ResponseDimensionGroupR\x17responseDimensionGroupsB\x13\n" + + "\x11_actual_model_uidB$\n" + + "\"_committed_quota_cost_basis_pointsB\x1f\n" + + "\x1d_committed_overage_cost_cents*\xec\x05\n" + + "\x16ChatMessageRequestType\x12)\n" + + "%CHAT_MESSAGE_REQUEST_TYPE_UNSPECIFIED\x10\x00\x12%\n" + + "!CHAT_MESSAGE_REQUEST_TYPE_GENERAL\x10\x01\x12+\n" + + "'CHAT_MESSAGE_REQUEST_TYPE_CONTEXT_CHECK\x10\x02\x12\"\n" + + "\x1eCHAT_MESSAGE_REQUEST_TYPE_PLAN\x10\x03\x12%\n" + + "!CHAT_MESSAGE_REQUEST_TYPE_COMMAND\x10\x04\x12%\n" + + "!CHAT_MESSAGE_REQUEST_TYPE_CASCADE\x10\x05\x12\"\n" + + "\x1eCHAT_MESSAGE_REQUEST_TYPE_EVAL\x10\x06\x12-\n" + + ")CHAT_MESSAGE_REQUEST_TYPE_WINDSURF_REVIEW\x10\a\x12&\n" + + "\"CHAT_MESSAGE_REQUEST_TYPE_DEEPWIKI\x10\t\x12&\n" + + "\"CHAT_MESSAGE_REQUEST_TYPE_DEVSTRAL\x10\n" + + "\x120\n" + + ",CHAT_MESSAGE_REQUEST_TYPE_CODEMAP_GENERATION\x10\v\x121\n" + + "-CHAT_MESSAGE_REQUEST_TYPE_CODEMAP_SUGGESTIONS\x10\f\x12*\n" + + "&CHAT_MESSAGE_REQUEST_TYPE_SMART_FRIEND\x10\r\x12'\n" + + "#CHAT_MESSAGE_REQUEST_TYPE_LIFEGUARD\x10\x0e\x12(\n" + + "$CHAT_MESSAGE_REQUEST_TYPE_CHECKPOINT\x10\x0f\x12(\n" + + "$CHAT_MESSAGE_REQUEST_TYPE_AI_GATEWAY\x10\x10\"\x04\b\b\x10\b**CHAT_MESSAGE_REQUEST_TYPE_VIBE_AND_REPLACE2}\n" + + "\x10ApiServerService\x12i\n" + + "\x0eGetChatMessage\x12(.exa.api_server_pb.GetChatMessageRequest\x1a).exa.api_server_pb.GetChatMessageResponse\"\x000\x01B6Z4github.com/Exafunction/Exafunction/exa/api_server_pbb\x06proto3" + +var ( + file_exa_api_server_pb_api_server_proto_rawDescOnce sync.Once + file_exa_api_server_pb_api_server_proto_rawDescData []byte +) + +func file_exa_api_server_pb_api_server_proto_rawDescGZIP() []byte { + file_exa_api_server_pb_api_server_proto_rawDescOnce.Do(func() { + file_exa_api_server_pb_api_server_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_exa_api_server_pb_api_server_proto_rawDesc), len(file_exa_api_server_pb_api_server_proto_rawDesc))) + }) + return file_exa_api_server_pb_api_server_proto_rawDescData +} + +var file_exa_api_server_pb_api_server_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_exa_api_server_pb_api_server_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_exa_api_server_pb_api_server_proto_goTypes = []any{ + (ChatMessageRequestType)(0), // 0: exa.api_server_pb.ChatMessageRequestType + (*GetChatMessageRequest)(nil), // 1: exa.api_server_pb.GetChatMessageRequest + (*GetChatMessageResponse)(nil), // 2: exa.api_server_pb.GetChatMessageResponse + (*codeium_common_pb.Metadata)(nil), // 3: exa.codeium_common_pb.Metadata + (*chat_pb.ChatMessagePrompt)(nil), // 4: exa.chat_pb.ChatMessagePrompt + (codeium_common_pb.Model)(0), // 5: exa.codeium_common_pb.Model + (*codeium_common_pb.CompletionConfiguration)(nil), // 6: exa.codeium_common_pb.CompletionConfiguration + (*codeium_common_pb.ExperimentConfig)(nil), // 7: exa.codeium_common_pb.ExperimentConfig + (*chat_pb.ChatToolDefinition)(nil), // 8: exa.chat_pb.ChatToolDefinition + (*chat_pb.ChatToolChoice)(nil), // 9: exa.chat_pb.ChatToolChoice + (*chat_pb.PromptCacheOptions)(nil), // 10: exa.chat_pb.PromptCacheOptions + (*cortex_pb.CortexTrajectoryReference)(nil), // 11: exa.cortex_pb.CortexTrajectoryReference + (codeium_common_pb.ProviderSource)(0), // 12: exa.codeium_common_pb.ProviderSource + (codeium_common_pb.Language)(0), // 13: exa.codeium_common_pb.Language + (codeium_common_pb.ConversationalPlannerMode)(0), // 14: exa.codeium_common_pb.ConversationalPlannerMode + (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp + (codeium_common_pb.StopReason)(0), // 16: exa.codeium_common_pb.StopReason + (*codeium_common_pb.ChatToolCall)(nil), // 17: exa.codeium_common_pb.ChatToolCall + (*codeium_common_pb.ModelUsageStats)(nil), // 18: exa.codeium_common_pb.ModelUsageStats + (*codeium_common_pb.CompletionProfile)(nil), // 19: exa.codeium_common_pb.CompletionProfile + (*codeium_common_pb.ResponseDimensionGroup)(nil), // 20: exa.codeium_common_pb.ResponseDimensionGroup +} +var file_exa_api_server_pb_api_server_proto_depIdxs = []int32{ + 3, // 0: exa.api_server_pb.GetChatMessageRequest.metadata:type_name -> exa.codeium_common_pb.Metadata + 4, // 1: exa.api_server_pb.GetChatMessageRequest.chat_message_prompts:type_name -> exa.chat_pb.ChatMessagePrompt + 5, // 2: exa.api_server_pb.GetChatMessageRequest.internal_chat_model:type_name -> exa.codeium_common_pb.Model + 0, // 3: exa.api_server_pb.GetChatMessageRequest.request_type:type_name -> exa.api_server_pb.ChatMessageRequestType + 6, // 4: exa.api_server_pb.GetChatMessageRequest.configuration:type_name -> exa.codeium_common_pb.CompletionConfiguration + 7, // 5: exa.api_server_pb.GetChatMessageRequest.experiment_config:type_name -> exa.codeium_common_pb.ExperimentConfig + 8, // 6: exa.api_server_pb.GetChatMessageRequest.tools:type_name -> exa.chat_pb.ChatToolDefinition + 9, // 7: exa.api_server_pb.GetChatMessageRequest.tool_choice:type_name -> exa.chat_pb.ChatToolChoice + 10, // 8: exa.api_server_pb.GetChatMessageRequest.system_prompt_cache_options:type_name -> exa.chat_pb.PromptCacheOptions + 11, // 9: exa.api_server_pb.GetChatMessageRequest.trajectory_reference:type_name -> exa.cortex_pb.CortexTrajectoryReference + 12, // 10: exa.api_server_pb.GetChatMessageRequest.provider_source:type_name -> exa.codeium_common_pb.ProviderSource + 13, // 11: exa.api_server_pb.GetChatMessageRequest.language:type_name -> exa.codeium_common_pb.Language + 14, // 12: exa.api_server_pb.GetChatMessageRequest.planner_mode:type_name -> exa.codeium_common_pb.ConversationalPlannerMode + 15, // 13: exa.api_server_pb.GetChatMessageResponse.timestamp:type_name -> google.protobuf.Timestamp + 16, // 14: exa.api_server_pb.GetChatMessageResponse.stop_reason:type_name -> exa.codeium_common_pb.StopReason + 17, // 15: exa.api_server_pb.GetChatMessageResponse.delta_tool_calls:type_name -> exa.codeium_common_pb.ChatToolCall + 18, // 16: exa.api_server_pb.GetChatMessageResponse.usage:type_name -> exa.codeium_common_pb.ModelUsageStats + 19, // 17: exa.api_server_pb.GetChatMessageResponse.completion_profile:type_name -> exa.codeium_common_pb.CompletionProfile + 20, // 18: exa.api_server_pb.GetChatMessageResponse.response_dimension_groups:type_name -> exa.codeium_common_pb.ResponseDimensionGroup + 1, // 19: exa.api_server_pb.ApiServerService.GetChatMessage:input_type -> exa.api_server_pb.GetChatMessageRequest + 2, // 20: exa.api_server_pb.ApiServerService.GetChatMessage:output_type -> exa.api_server_pb.GetChatMessageResponse + 20, // [20:21] is the sub-list for method output_type + 19, // [19:20] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name +} + +func init() { file_exa_api_server_pb_api_server_proto_init() } +func file_exa_api_server_pb_api_server_proto_init() { + if File_exa_api_server_pb_api_server_proto != nil { + return + } + file_exa_api_server_pb_api_server_proto_msgTypes[0].OneofWrappers = []any{} + file_exa_api_server_pb_api_server_proto_msgTypes[1].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_exa_api_server_pb_api_server_proto_rawDesc), len(file_exa_api_server_pb_api_server_proto_rawDesc)), + NumEnums: 1, + NumMessages: 2, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_exa_api_server_pb_api_server_proto_goTypes, + DependencyIndexes: file_exa_api_server_pb_api_server_proto_depIdxs, + EnumInfos: file_exa_api_server_pb_api_server_proto_enumTypes, + MessageInfos: file_exa_api_server_pb_api_server_proto_msgTypes, + }.Build() + File_exa_api_server_pb_api_server_proto = out.File + file_exa_api_server_pb_api_server_proto_goTypes = nil + file_exa_api_server_pb_api_server_proto_depIdxs = nil +} diff --git a/internal/providers/devin/devinpb/chat_pb/chat.pb.go b/internal/providers/devin/devinpb/chat_pb/chat.pb.go new file mode 100644 index 0000000..6718a78 --- /dev/null +++ b/internal/providers/devin/devinpb/chat_pb/chat.pb.go @@ -0,0 +1,736 @@ +// Devin Desktop 3.10.31, linux-x64: https://windsurf-stable.codeiumdata.com/linux-x64/stable/b98cc43128712ba73c60cca73876f58a710aaa27/Devin-linux-x64-3.10.31.tar.gz +// Archive SHA256 (locally calculated): b3ddf1098c11255354d60a0778d7033989eaed85a37bbd55df90167f42eb5346 +// Language server SHA256: aced58234bf6fac9cf5b65d9286e971d697b0a60baaee0a812ff0312dffb88de +// Extracted descriptor set SHA256: 9877811de3bc8055852f94aabd7c7affb3964c30f66c43b0cbcd49753abe211d +// Regenerate: bash scripts/update-devin-proto.sh --version 3.10.31 +// Recovered from Desktop, not an official proto source release or a CLI compatibility guarantee. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.10 +// protoc v7.34.1 +// source: exa/chat_pb/chat.proto + +package chat_pb + +import ( + codeium_common_pb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/codeium_common_pb" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 CacheControlType int32 + +const ( + CacheControlType_CACHE_CONTROL_TYPE_UNSPECIFIED CacheControlType = 0 + CacheControlType_CACHE_CONTROL_TYPE_EPHEMERAL CacheControlType = 1 +) + +// Enum value maps for CacheControlType. +var ( + CacheControlType_name = map[int32]string{ + 0: "CACHE_CONTROL_TYPE_UNSPECIFIED", + 1: "CACHE_CONTROL_TYPE_EPHEMERAL", + } + CacheControlType_value = map[string]int32{ + "CACHE_CONTROL_TYPE_UNSPECIFIED": 0, + "CACHE_CONTROL_TYPE_EPHEMERAL": 1, + } +) + +func (x CacheControlType) Enum() *CacheControlType { + p := new(CacheControlType) + *p = x + return p +} + +func (x CacheControlType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CacheControlType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_chat_pb_chat_proto_enumTypes[0].Descriptor() +} + +func (CacheControlType) Type() protoreflect.EnumType { + return &file_exa_chat_pb_chat_proto_enumTypes[0] +} + +func (x CacheControlType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CacheControlType.Descriptor instead. +func (CacheControlType) EnumDescriptor() ([]byte, []int) { + return file_exa_chat_pb_chat_proto_rawDescGZIP(), []int{0} +} + +type ChatMessagePrompt struct { + state protoimpl.MessageState `protogen:"open.v1"` + MessageId string `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + Source codeium_common_pb.ChatMessageSource `protobuf:"varint,2,opt,name=source,proto3,enum=exa.codeium_common_pb.ChatMessageSource" json:"source,omitempty"` + Prompt string `protobuf:"bytes,3,opt,name=prompt,proto3" json:"prompt,omitempty"` + NumTokens uint32 `protobuf:"varint,4,opt,name=num_tokens,json=numTokens,proto3" json:"num_tokens,omitempty"` + SafeForCodeTelemetry bool `protobuf:"varint,5,opt,name=safe_for_code_telemetry,json=safeForCodeTelemetry,proto3" json:"safe_for_code_telemetry,omitempty"` + ToolCalls []*codeium_common_pb.ChatToolCall `protobuf:"bytes,6,rep,name=tool_calls,json=toolCalls,proto3" json:"tool_calls,omitempty"` + ToolCallId string `protobuf:"bytes,7,opt,name=tool_call_id,json=toolCallId,proto3" json:"tool_call_id,omitempty"` + PromptCacheOptions *PromptCacheOptions `protobuf:"bytes,8,opt,name=prompt_cache_options,json=promptCacheOptions,proto3" json:"prompt_cache_options,omitempty"` + ToolResultIsError bool `protobuf:"varint,9,opt,name=tool_result_is_error,json=toolResultIsError,proto3" json:"tool_result_is_error,omitempty"` + Images []*codeium_common_pb.ImageData `protobuf:"bytes,10,rep,name=images,proto3" json:"images,omitempty"` + Thinking string `protobuf:"bytes,11,opt,name=thinking,proto3" json:"thinking,omitempty"` + Signature string `protobuf:"bytes,12,opt,name=signature,proto3" json:"signature,omitempty"` + ThinkingRedacted bool `protobuf:"varint,13,opt,name=thinking_redacted,json=thinkingRedacted,proto3" json:"thinking_redacted,omitempty"` + PromptAnnotationRanges []*codeium_common_pb.PromptAnnotationRange `protobuf:"bytes,14,rep,name=prompt_annotation_ranges,json=promptAnnotationRanges,proto3" json:"prompt_annotation_ranges,omitempty"` + OutputId string `protobuf:"bytes,15,opt,name=output_id,json=outputId,proto3" json:"output_id,omitempty"` + // Deprecated: Marked as deprecated in exa/chat_pb/chat.proto. + ThinkingId string `protobuf:"bytes,16,opt,name=thinking_id,json=thinkingId,proto3" json:"thinking_id,omitempty"` + // Deprecated: Marked as deprecated in exa/chat_pb/chat.proto. + GeminiThoughtSignature []byte `protobuf:"bytes,17,opt,name=gemini_thought_signature,json=geminiThoughtSignature,proto3" json:"gemini_thought_signature,omitempty"` + SignatureType string `protobuf:"bytes,18,opt,name=signature_type,json=signatureType,proto3" json:"signature_type,omitempty"` + Phase string `protobuf:"bytes,19,opt,name=phase,proto3" json:"phase,omitempty"` + Videos []*codeium_common_pb.VideoData `protobuf:"bytes,20,rep,name=videos,proto3" json:"videos,omitempty"` + Documents []*codeium_common_pb.DocumentData `protobuf:"bytes,21,rep,name=documents,proto3" json:"documents,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatMessagePrompt) Reset() { + *x = ChatMessagePrompt{} + mi := &file_exa_chat_pb_chat_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatMessagePrompt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatMessagePrompt) ProtoMessage() {} + +func (x *ChatMessagePrompt) ProtoReflect() protoreflect.Message { + mi := &file_exa_chat_pb_chat_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 ChatMessagePrompt.ProtoReflect.Descriptor instead. +func (*ChatMessagePrompt) Descriptor() ([]byte, []int) { + return file_exa_chat_pb_chat_proto_rawDescGZIP(), []int{0} +} + +func (x *ChatMessagePrompt) GetMessageId() string { + if x != nil { + return x.MessageId + } + return "" +} + +func (x *ChatMessagePrompt) GetSource() codeium_common_pb.ChatMessageSource { + if x != nil { + return x.Source + } + return codeium_common_pb.ChatMessageSource(0) +} + +func (x *ChatMessagePrompt) GetPrompt() string { + if x != nil { + return x.Prompt + } + return "" +} + +func (x *ChatMessagePrompt) GetNumTokens() uint32 { + if x != nil { + return x.NumTokens + } + return 0 +} + +func (x *ChatMessagePrompt) GetSafeForCodeTelemetry() bool { + if x != nil { + return x.SafeForCodeTelemetry + } + return false +} + +func (x *ChatMessagePrompt) GetToolCalls() []*codeium_common_pb.ChatToolCall { + if x != nil { + return x.ToolCalls + } + return nil +} + +func (x *ChatMessagePrompt) GetToolCallId() string { + if x != nil { + return x.ToolCallId + } + return "" +} + +func (x *ChatMessagePrompt) GetPromptCacheOptions() *PromptCacheOptions { + if x != nil { + return x.PromptCacheOptions + } + return nil +} + +func (x *ChatMessagePrompt) GetToolResultIsError() bool { + if x != nil { + return x.ToolResultIsError + } + return false +} + +func (x *ChatMessagePrompt) GetImages() []*codeium_common_pb.ImageData { + if x != nil { + return x.Images + } + return nil +} + +func (x *ChatMessagePrompt) GetThinking() string { + if x != nil { + return x.Thinking + } + return "" +} + +func (x *ChatMessagePrompt) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +func (x *ChatMessagePrompt) GetThinkingRedacted() bool { + if x != nil { + return x.ThinkingRedacted + } + return false +} + +func (x *ChatMessagePrompt) GetPromptAnnotationRanges() []*codeium_common_pb.PromptAnnotationRange { + if x != nil { + return x.PromptAnnotationRanges + } + return nil +} + +func (x *ChatMessagePrompt) GetOutputId() string { + if x != nil { + return x.OutputId + } + return "" +} + +// Deprecated: Marked as deprecated in exa/chat_pb/chat.proto. +func (x *ChatMessagePrompt) GetThinkingId() string { + if x != nil { + return x.ThinkingId + } + return "" +} + +// Deprecated: Marked as deprecated in exa/chat_pb/chat.proto. +func (x *ChatMessagePrompt) GetGeminiThoughtSignature() []byte { + if x != nil { + return x.GeminiThoughtSignature + } + return nil +} + +func (x *ChatMessagePrompt) GetSignatureType() string { + if x != nil { + return x.SignatureType + } + return "" +} + +func (x *ChatMessagePrompt) GetPhase() string { + if x != nil { + return x.Phase + } + return "" +} + +func (x *ChatMessagePrompt) GetVideos() []*codeium_common_pb.VideoData { + if x != nil { + return x.Videos + } + return nil +} + +func (x *ChatMessagePrompt) GetDocuments() []*codeium_common_pb.DocumentData { + if x != nil { + return x.Documents + } + return nil +} + +type PromptCacheOptions struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type CacheControlType `protobuf:"varint,1,opt,name=type,proto3,enum=exa.chat_pb.CacheControlType" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PromptCacheOptions) Reset() { + *x = PromptCacheOptions{} + mi := &file_exa_chat_pb_chat_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PromptCacheOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PromptCacheOptions) ProtoMessage() {} + +func (x *PromptCacheOptions) ProtoReflect() protoreflect.Message { + mi := &file_exa_chat_pb_chat_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 PromptCacheOptions.ProtoReflect.Descriptor instead. +func (*PromptCacheOptions) Descriptor() ([]byte, []int) { + return file_exa_chat_pb_chat_proto_rawDescGZIP(), []int{1} +} + +func (x *PromptCacheOptions) GetType() CacheControlType { + if x != nil { + return x.Type + } + return CacheControlType_CACHE_CONTROL_TYPE_UNSPECIFIED +} + +type ChatToolDefinition struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + JsonSchemaString string `protobuf:"bytes,3,opt,name=json_schema_string,json=jsonSchemaString,proto3" json:"json_schema_string,omitempty"` + AttributionFieldNames []string `protobuf:"bytes,5,rep,name=attribution_field_names,json=attributionFieldNames,proto3" json:"attribution_field_names,omitempty"` + ServerName string `protobuf:"bytes,6,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"` + ReadOnlyHint *bool `protobuf:"varint,7,opt,name=read_only_hint,json=readOnlyHint,proto3,oneof" json:"read_only_hint,omitempty"` + ComputerUseConfig *ComputerUseToolConfig `protobuf:"bytes,8,opt,name=computer_use_config,json=computerUseConfig,proto3,oneof" json:"computer_use_config,omitempty"` + IsCustomTool *bool `protobuf:"varint,9,opt,name=is_custom_tool,json=isCustomTool,proto3,oneof" json:"is_custom_tool,omitempty"` + CustomToolGrammar *string `protobuf:"bytes,10,opt,name=custom_tool_grammar,json=customToolGrammar,proto3,oneof" json:"custom_tool_grammar,omitempty"` + CustomToolGrammarSyntax *string `protobuf:"bytes,11,opt,name=custom_tool_grammar_syntax,json=customToolGrammarSyntax,proto3,oneof" json:"custom_tool_grammar_syntax,omitempty"` + Strict bool `protobuf:"varint,12,opt,name=strict,proto3" json:"strict,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatToolDefinition) Reset() { + *x = ChatToolDefinition{} + mi := &file_exa_chat_pb_chat_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatToolDefinition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatToolDefinition) ProtoMessage() {} + +func (x *ChatToolDefinition) ProtoReflect() protoreflect.Message { + mi := &file_exa_chat_pb_chat_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 ChatToolDefinition.ProtoReflect.Descriptor instead. +func (*ChatToolDefinition) Descriptor() ([]byte, []int) { + return file_exa_chat_pb_chat_proto_rawDescGZIP(), []int{2} +} + +func (x *ChatToolDefinition) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ChatToolDefinition) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *ChatToolDefinition) GetJsonSchemaString() string { + if x != nil { + return x.JsonSchemaString + } + return "" +} + +func (x *ChatToolDefinition) GetAttributionFieldNames() []string { + if x != nil { + return x.AttributionFieldNames + } + return nil +} + +func (x *ChatToolDefinition) GetServerName() string { + if x != nil { + return x.ServerName + } + return "" +} + +func (x *ChatToolDefinition) GetReadOnlyHint() bool { + if x != nil && x.ReadOnlyHint != nil { + return *x.ReadOnlyHint + } + return false +} + +func (x *ChatToolDefinition) GetComputerUseConfig() *ComputerUseToolConfig { + if x != nil { + return x.ComputerUseConfig + } + return nil +} + +func (x *ChatToolDefinition) GetIsCustomTool() bool { + if x != nil && x.IsCustomTool != nil { + return *x.IsCustomTool + } + return false +} + +func (x *ChatToolDefinition) GetCustomToolGrammar() string { + if x != nil && x.CustomToolGrammar != nil { + return *x.CustomToolGrammar + } + return "" +} + +func (x *ChatToolDefinition) GetCustomToolGrammarSyntax() string { + if x != nil && x.CustomToolGrammarSyntax != nil { + return *x.CustomToolGrammarSyntax + } + return "" +} + +func (x *ChatToolDefinition) GetStrict() bool { + if x != nil { + return x.Strict + } + return false +} + +type ComputerUseToolConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + DisplayWidthPx int32 `protobuf:"varint,1,opt,name=display_width_px,json=displayWidthPx,proto3" json:"display_width_px,omitempty"` + DisplayHeightPx int32 `protobuf:"varint,2,opt,name=display_height_px,json=displayHeightPx,proto3" json:"display_height_px,omitempty"` + DisplayNumber int32 `protobuf:"varint,3,opt,name=display_number,json=displayNumber,proto3" json:"display_number,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComputerUseToolConfig) Reset() { + *x = ComputerUseToolConfig{} + mi := &file_exa_chat_pb_chat_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComputerUseToolConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComputerUseToolConfig) ProtoMessage() {} + +func (x *ComputerUseToolConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_chat_pb_chat_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 ComputerUseToolConfig.ProtoReflect.Descriptor instead. +func (*ComputerUseToolConfig) Descriptor() ([]byte, []int) { + return file_exa_chat_pb_chat_proto_rawDescGZIP(), []int{3} +} + +func (x *ComputerUseToolConfig) GetDisplayWidthPx() int32 { + if x != nil { + return x.DisplayWidthPx + } + return 0 +} + +func (x *ComputerUseToolConfig) GetDisplayHeightPx() int32 { + if x != nil { + return x.DisplayHeightPx + } + return 0 +} + +func (x *ComputerUseToolConfig) GetDisplayNumber() int32 { + if x != nil { + return x.DisplayNumber + } + return 0 +} + +type ChatToolChoice struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Choice: + // + // *ChatToolChoice_OptionName + // *ChatToolChoice_ToolName + Choice isChatToolChoice_Choice `protobuf_oneof:"choice"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatToolChoice) Reset() { + *x = ChatToolChoice{} + mi := &file_exa_chat_pb_chat_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatToolChoice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatToolChoice) ProtoMessage() {} + +func (x *ChatToolChoice) ProtoReflect() protoreflect.Message { + mi := &file_exa_chat_pb_chat_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 ChatToolChoice.ProtoReflect.Descriptor instead. +func (*ChatToolChoice) Descriptor() ([]byte, []int) { + return file_exa_chat_pb_chat_proto_rawDescGZIP(), []int{4} +} + +func (x *ChatToolChoice) GetChoice() isChatToolChoice_Choice { + if x != nil { + return x.Choice + } + return nil +} + +func (x *ChatToolChoice) GetOptionName() string { + if x != nil { + if x, ok := x.Choice.(*ChatToolChoice_OptionName); ok { + return x.OptionName + } + } + return "" +} + +func (x *ChatToolChoice) GetToolName() string { + if x != nil { + if x, ok := x.Choice.(*ChatToolChoice_ToolName); ok { + return x.ToolName + } + } + return "" +} + +type isChatToolChoice_Choice interface { + isChatToolChoice_Choice() +} + +type ChatToolChoice_OptionName struct { + OptionName string `protobuf:"bytes,1,opt,name=option_name,json=optionName,proto3,oneof"` +} + +type ChatToolChoice_ToolName struct { + ToolName string `protobuf:"bytes,2,opt,name=tool_name,json=toolName,proto3,oneof"` +} + +func (*ChatToolChoice_OptionName) isChatToolChoice_Choice() {} + +func (*ChatToolChoice_ToolName) isChatToolChoice_Choice() {} + +var File_exa_chat_pb_chat_proto protoreflect.FileDescriptor + +const file_exa_chat_pb_chat_proto_rawDesc = "" + + "\n" + + "\x16exa/chat_pb/chat.proto\x12\vexa.chat_pb\x1a*exa/codeium_common_pb/codeium_common.proto\"\x8f\b\n" + + "\x11ChatMessagePrompt\x12\x1d\n" + + "\n" + + "message_id\x18\x01 \x01(\tR\tmessageId\x12@\n" + + "\x06source\x18\x02 \x01(\x0e2(.exa.codeium_common_pb.ChatMessageSourceR\x06source\x12\x16\n" + + "\x06prompt\x18\x03 \x01(\tR\x06prompt\x12\x1d\n" + + "\n" + + "num_tokens\x18\x04 \x01(\rR\tnumTokens\x125\n" + + "\x17safe_for_code_telemetry\x18\x05 \x01(\bR\x14safeForCodeTelemetry\x12B\n" + + "\n" + + "tool_calls\x18\x06 \x03(\v2#.exa.codeium_common_pb.ChatToolCallR\ttoolCalls\x12 \n" + + "\ftool_call_id\x18\a \x01(\tR\n" + + "toolCallId\x12Q\n" + + "\x14prompt_cache_options\x18\b \x01(\v2\x1f.exa.chat_pb.PromptCacheOptionsR\x12promptCacheOptions\x12/\n" + + "\x14tool_result_is_error\x18\t \x01(\bR\x11toolResultIsError\x128\n" + + "\x06images\x18\n" + + " \x03(\v2 .exa.codeium_common_pb.ImageDataR\x06images\x12\x1a\n" + + "\bthinking\x18\v \x01(\tR\bthinking\x12\x1c\n" + + "\tsignature\x18\f \x01(\tR\tsignature\x12+\n" + + "\x11thinking_redacted\x18\r \x01(\bR\x10thinkingRedacted\x12f\n" + + "\x18prompt_annotation_ranges\x18\x0e \x03(\v2,.exa.codeium_common_pb.PromptAnnotationRangeR\x16promptAnnotationRanges\x12\x1b\n" + + "\toutput_id\x18\x0f \x01(\tR\boutputId\x12#\n" + + "\vthinking_id\x18\x10 \x01(\tB\x02\x18\x01R\n" + + "thinkingId\x12<\n" + + "\x18gemini_thought_signature\x18\x11 \x01(\fB\x02\x18\x01R\x16geminiThoughtSignature\x12%\n" + + "\x0esignature_type\x18\x12 \x01(\tR\rsignatureType\x12\x14\n" + + "\x05phase\x18\x13 \x01(\tR\x05phase\x128\n" + + "\x06videos\x18\x14 \x03(\v2 .exa.codeium_common_pb.VideoDataR\x06videos\x12A\n" + + "\tdocuments\x18\x15 \x03(\v2#.exa.codeium_common_pb.DocumentDataR\tdocuments\"G\n" + + "\x12PromptCacheOptions\x121\n" + + "\x04type\x18\x01 \x01(\x0e2\x1d.exa.chat_pb.CacheControlTypeR\x04type\"\xa3\x05\n" + + "\x12ChatToolDefinition\x12+\n" + + "\x04name\x18\x01 \x01(\tB\x17\xbaH\x14r\x122\x10^[a-zA-Z0-9_-]+$R\x04name\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12,\n" + + "\x12json_schema_string\x18\x03 \x01(\tR\x10jsonSchemaString\x126\n" + + "\x17attribution_field_names\x18\x05 \x03(\tR\x15attributionFieldNames\x12\x1f\n" + + "\vserver_name\x18\x06 \x01(\tR\n" + + "serverName\x12)\n" + + "\x0eread_only_hint\x18\a \x01(\bH\x00R\freadOnlyHint\x88\x01\x01\x12W\n" + + "\x13computer_use_config\x18\b \x01(\v2\".exa.chat_pb.ComputerUseToolConfigH\x01R\x11computerUseConfig\x88\x01\x01\x12)\n" + + "\x0eis_custom_tool\x18\t \x01(\bH\x02R\fisCustomTool\x88\x01\x01\x123\n" + + "\x13custom_tool_grammar\x18\n" + + " \x01(\tH\x03R\x11customToolGrammar\x88\x01\x01\x12@\n" + + "\x1acustom_tool_grammar_syntax\x18\v \x01(\tH\x04R\x17customToolGrammarSyntax\x88\x01\x01\x12\x16\n" + + "\x06strict\x18\f \x01(\bR\x06strictB\x11\n" + + "\x0f_read_only_hintB\x16\n" + + "\x14_computer_use_configB\x11\n" + + "\x0f_is_custom_toolB\x16\n" + + "\x14_custom_tool_grammarB\x1d\n" + + "\x1b_custom_tool_grammar_syntaxJ\x04\b\x04\x10\x05\"\x94\x01\n" + + "\x15ComputerUseToolConfig\x12(\n" + + "\x10display_width_px\x18\x01 \x01(\x05R\x0edisplayWidthPx\x12*\n" + + "\x11display_height_px\x18\x02 \x01(\x05R\x0fdisplayHeightPx\x12%\n" + + "\x0edisplay_number\x18\x03 \x01(\x05R\rdisplayNumber\"\\\n" + + "\x0eChatToolChoice\x12!\n" + + "\voption_name\x18\x01 \x01(\tH\x00R\n" + + "optionName\x12\x1d\n" + + "\ttool_name\x18\x02 \x01(\tH\x00R\btoolNameB\b\n" + + "\x06choice*X\n" + + "\x10CacheControlType\x12\"\n" + + "\x1eCACHE_CONTROL_TYPE_UNSPECIFIED\x10\x00\x12 \n" + + "\x1cCACHE_CONTROL_TYPE_EPHEMERAL\x10\x01B0Z.github.com/Exafunction/Exafunction/exa/chat_pbb\x06proto3" + +var ( + file_exa_chat_pb_chat_proto_rawDescOnce sync.Once + file_exa_chat_pb_chat_proto_rawDescData []byte +) + +func file_exa_chat_pb_chat_proto_rawDescGZIP() []byte { + file_exa_chat_pb_chat_proto_rawDescOnce.Do(func() { + file_exa_chat_pb_chat_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_exa_chat_pb_chat_proto_rawDesc), len(file_exa_chat_pb_chat_proto_rawDesc))) + }) + return file_exa_chat_pb_chat_proto_rawDescData +} + +var file_exa_chat_pb_chat_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_exa_chat_pb_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_exa_chat_pb_chat_proto_goTypes = []any{ + (CacheControlType)(0), // 0: exa.chat_pb.CacheControlType + (*ChatMessagePrompt)(nil), // 1: exa.chat_pb.ChatMessagePrompt + (*PromptCacheOptions)(nil), // 2: exa.chat_pb.PromptCacheOptions + (*ChatToolDefinition)(nil), // 3: exa.chat_pb.ChatToolDefinition + (*ComputerUseToolConfig)(nil), // 4: exa.chat_pb.ComputerUseToolConfig + (*ChatToolChoice)(nil), // 5: exa.chat_pb.ChatToolChoice + (codeium_common_pb.ChatMessageSource)(0), // 6: exa.codeium_common_pb.ChatMessageSource + (*codeium_common_pb.ChatToolCall)(nil), // 7: exa.codeium_common_pb.ChatToolCall + (*codeium_common_pb.ImageData)(nil), // 8: exa.codeium_common_pb.ImageData + (*codeium_common_pb.PromptAnnotationRange)(nil), // 9: exa.codeium_common_pb.PromptAnnotationRange + (*codeium_common_pb.VideoData)(nil), // 10: exa.codeium_common_pb.VideoData + (*codeium_common_pb.DocumentData)(nil), // 11: exa.codeium_common_pb.DocumentData +} +var file_exa_chat_pb_chat_proto_depIdxs = []int32{ + 6, // 0: exa.chat_pb.ChatMessagePrompt.source:type_name -> exa.codeium_common_pb.ChatMessageSource + 7, // 1: exa.chat_pb.ChatMessagePrompt.tool_calls:type_name -> exa.codeium_common_pb.ChatToolCall + 2, // 2: exa.chat_pb.ChatMessagePrompt.prompt_cache_options:type_name -> exa.chat_pb.PromptCacheOptions + 8, // 3: exa.chat_pb.ChatMessagePrompt.images:type_name -> exa.codeium_common_pb.ImageData + 9, // 4: exa.chat_pb.ChatMessagePrompt.prompt_annotation_ranges:type_name -> exa.codeium_common_pb.PromptAnnotationRange + 10, // 5: exa.chat_pb.ChatMessagePrompt.videos:type_name -> exa.codeium_common_pb.VideoData + 11, // 6: exa.chat_pb.ChatMessagePrompt.documents:type_name -> exa.codeium_common_pb.DocumentData + 0, // 7: exa.chat_pb.PromptCacheOptions.type:type_name -> exa.chat_pb.CacheControlType + 4, // 8: exa.chat_pb.ChatToolDefinition.computer_use_config:type_name -> exa.chat_pb.ComputerUseToolConfig + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_exa_chat_pb_chat_proto_init() } +func file_exa_chat_pb_chat_proto_init() { + if File_exa_chat_pb_chat_proto != nil { + return + } + file_exa_chat_pb_chat_proto_msgTypes[2].OneofWrappers = []any{} + file_exa_chat_pb_chat_proto_msgTypes[4].OneofWrappers = []any{ + (*ChatToolChoice_OptionName)(nil), + (*ChatToolChoice_ToolName)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_exa_chat_pb_chat_proto_rawDesc), len(file_exa_chat_pb_chat_proto_rawDesc)), + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_exa_chat_pb_chat_proto_goTypes, + DependencyIndexes: file_exa_chat_pb_chat_proto_depIdxs, + EnumInfos: file_exa_chat_pb_chat_proto_enumTypes, + MessageInfos: file_exa_chat_pb_chat_proto_msgTypes, + }.Build() + File_exa_chat_pb_chat_proto = out.File + file_exa_chat_pb_chat_proto_goTypes = nil + file_exa_chat_pb_chat_proto_depIdxs = nil +} diff --git a/internal/providers/devin/devinpb/codeium_common_pb/codeium_common.pb.go b/internal/providers/devin/devinpb/codeium_common_pb/codeium_common.pb.go new file mode 100644 index 0000000..5b0d167 --- /dev/null +++ b/internal/providers/devin/devinpb/codeium_common_pb/codeium_common.pb.go @@ -0,0 +1,11784 @@ +// Devin Desktop 3.10.31, linux-x64: https://windsurf-stable.codeiumdata.com/linux-x64/stable/b98cc43128712ba73c60cca73876f58a710aaa27/Devin-linux-x64-3.10.31.tar.gz +// Archive SHA256 (locally calculated): b3ddf1098c11255354d60a0778d7033989eaed85a37bbd55df90167f42eb5346 +// Language server SHA256: aced58234bf6fac9cf5b65d9286e971d697b0a60baaee0a812ff0312dffb88de +// Extracted descriptor set SHA256: 9877811de3bc8055852f94aabd7c7affb3964c30f66c43b0cbcd49753abe211d +// Regenerate: bash scripts/update-devin-proto.sh --version 3.10.31 +// Recovered from Desktop, not an official proto source release or a CLI compatibility guarantee. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.10 +// protoc v7.34.1 +// source: exa/codeium_common_pb/codeium_common.proto + +package codeium_common_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 ProviderSource int32 + +const ( + ProviderSource_PROVIDER_SOURCE_UNSPECIFIED ProviderSource = 0 + ProviderSource_PROVIDER_SOURCE_AUTOCOMPLETE ProviderSource = 1 + ProviderSource_PROVIDER_SOURCE_CHAT ProviderSource = 2 + ProviderSource_PROVIDER_SOURCE_COMMAND_GENERATE ProviderSource = 4 + ProviderSource_PROVIDER_SOURCE_COMMAND_EDIT ProviderSource = 5 + ProviderSource_PROVIDER_SOURCE_SUPERCOMPLETE ProviderSource = 6 + ProviderSource_PROVIDER_SOURCE_COMMAND_PLAN ProviderSource = 7 + ProviderSource_PROVIDER_SOURCE_QUERY ProviderSource = 8 + ProviderSource_PROVIDER_SOURCE_FAST_APPLY ProviderSource = 9 + ProviderSource_PROVIDER_SOURCE_COMMAND_TERMINAL ProviderSource = 10 + ProviderSource_PROVIDER_SOURCE_TAB_JUMP ProviderSource = 11 + ProviderSource_PROVIDER_SOURCE_CASCADE ProviderSource = 12 +) + +// Enum value maps for ProviderSource. +var ( + ProviderSource_name = map[int32]string{ + 0: "PROVIDER_SOURCE_UNSPECIFIED", + 1: "PROVIDER_SOURCE_AUTOCOMPLETE", + 2: "PROVIDER_SOURCE_CHAT", + 4: "PROVIDER_SOURCE_COMMAND_GENERATE", + 5: "PROVIDER_SOURCE_COMMAND_EDIT", + 6: "PROVIDER_SOURCE_SUPERCOMPLETE", + 7: "PROVIDER_SOURCE_COMMAND_PLAN", + 8: "PROVIDER_SOURCE_QUERY", + 9: "PROVIDER_SOURCE_FAST_APPLY", + 10: "PROVIDER_SOURCE_COMMAND_TERMINAL", + 11: "PROVIDER_SOURCE_TAB_JUMP", + 12: "PROVIDER_SOURCE_CASCADE", + } + ProviderSource_value = map[string]int32{ + "PROVIDER_SOURCE_UNSPECIFIED": 0, + "PROVIDER_SOURCE_AUTOCOMPLETE": 1, + "PROVIDER_SOURCE_CHAT": 2, + "PROVIDER_SOURCE_COMMAND_GENERATE": 4, + "PROVIDER_SOURCE_COMMAND_EDIT": 5, + "PROVIDER_SOURCE_SUPERCOMPLETE": 6, + "PROVIDER_SOURCE_COMMAND_PLAN": 7, + "PROVIDER_SOURCE_QUERY": 8, + "PROVIDER_SOURCE_FAST_APPLY": 9, + "PROVIDER_SOURCE_COMMAND_TERMINAL": 10, + "PROVIDER_SOURCE_TAB_JUMP": 11, + "PROVIDER_SOURCE_CASCADE": 12, + } +) + +func (x ProviderSource) Enum() *ProviderSource { + p := new(ProviderSource) + *p = x + return p +} + +func (x ProviderSource) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ProviderSource) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[0].Descriptor() +} + +func (ProviderSource) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[0] +} + +func (x ProviderSource) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProviderSource.Descriptor instead. +func (ProviderSource) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{0} +} + +type PromptAnnotationKind int32 + +const ( + PromptAnnotationKind_PROMPT_ANNOTATION_KIND_UNSPECIFIED PromptAnnotationKind = 0 + PromptAnnotationKind_PROMPT_ANNOTATION_KIND_COPY PromptAnnotationKind = 1 + PromptAnnotationKind_PROMPT_ANNOTATION_KIND_PROMPT_CACHE PromptAnnotationKind = 2 +) + +// Enum value maps for PromptAnnotationKind. +var ( + PromptAnnotationKind_name = map[int32]string{ + 0: "PROMPT_ANNOTATION_KIND_UNSPECIFIED", + 1: "PROMPT_ANNOTATION_KIND_COPY", + 2: "PROMPT_ANNOTATION_KIND_PROMPT_CACHE", + } + PromptAnnotationKind_value = map[string]int32{ + "PROMPT_ANNOTATION_KIND_UNSPECIFIED": 0, + "PROMPT_ANNOTATION_KIND_COPY": 1, + "PROMPT_ANNOTATION_KIND_PROMPT_CACHE": 2, + } +) + +func (x PromptAnnotationKind) Enum() *PromptAnnotationKind { + p := new(PromptAnnotationKind) + *p = x + return p +} + +func (x PromptAnnotationKind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PromptAnnotationKind) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[1].Descriptor() +} + +func (PromptAnnotationKind) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[1] +} + +func (x PromptAnnotationKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PromptAnnotationKind.Descriptor instead. +func (PromptAnnotationKind) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{1} +} + +type ExperimentKey int32 + +const ( + ExperimentKey_UNSPECIFIED ExperimentKey = 0 + ExperimentKey_USE_INTERNAL_CHAT_MODEL ExperimentKey = 36 + ExperimentKey_RECORD_FILES ExperimentKey = 47 + ExperimentKey_NO_SAMPLER_EARLY_STOP ExperimentKey = 48 + ExperimentKey_CM_MEMORY_TELEMETRY ExperimentKey = 53 + ExperimentKey_LANGUAGE_SERVER_VERSION ExperimentKey = 55 + ExperimentKey_LANGUAGE_SERVER_AUTO_RELOAD ExperimentKey = 56 + ExperimentKey_ONLY_MULTILINE ExperimentKey = 60 + ExperimentKey_USE_AUTOCOMPLETE_MODEL ExperimentKey = 64 + ExperimentKey_USE_ATTRIBUTION_FOR_INDIVIDUAL_TIER ExperimentKey = 68 + ExperimentKey_CHAT_MODEL_CONFIG ExperimentKey = 78 + ExperimentKey_COMMAND_MODEL_CONFIG ExperimentKey = 79 + ExperimentKey_MIN_IDE_VERSION ExperimentKey = 81 + ExperimentKey_API_SERVER_VERBOSE_ERRORS ExperimentKey = 84 + ExperimentKey_DEFAULT_ENABLE_SEARCH ExperimentKey = 86 + ExperimentKey_COLLECT_ONBOARDING_EVENTS ExperimentKey = 87 + ExperimentKey_COLLECT_EXAMPLE_COMPLETIONS ExperimentKey = 88 + ExperimentKey_USE_MULTILINE_MODEL ExperimentKey = 89 + ExperimentKey_ATTRIBUTION_KILL_SWITCH ExperimentKey = 92 + ExperimentKey_FAST_MULTILINE ExperimentKey = 94 + ExperimentKey_SINGLE_COMPLETION ExperimentKey = 95 + ExperimentKey_STOP_FIRST_NON_WHITESPACE_LINE ExperimentKey = 96 + ExperimentKey_CORTEX_CONFIG ExperimentKey = 102 + ExperimentKey_MODEL_CHAT_11121_VARIANTS ExperimentKey = 103 + ExperimentKey_INCLUDE_PROMPT_COMPONENTS ExperimentKey = 105 + ExperimentKey_NON_TEAMS_KILL_SWITCH ExperimentKey = 106 + ExperimentKey_PERSIST_CODE_TRACKER ExperimentKey = 108 + ExperimentKey_CHAT_COMPLETION_TOKENS_SOFT_LIMIT ExperimentKey = 114 + ExperimentKey_CHAT_TOKENS_SOFT_LIMIT ExperimentKey = 115 + ExperimentKey_DISABLE_COMPLETIONS_CACHE ExperimentKey = 118 + ExperimentKey_LLAMA3_405B_KILL_SWITCH ExperimentKey = 119 + ExperimentKey_USE_COMMAND_DOCSTRING_GENERATION ExperimentKey = 121 + ExperimentKey_ENABLE_SUPERCOMPLETE ExperimentKey = 123 + ExperimentKey_SENTRY ExperimentKey = 136 + ExperimentKey_FAST_SINGLELINE ExperimentKey = 144 + ExperimentKey_R2_LANGUAGE_SERVER_DOWNLOAD ExperimentKey = 147 + ExperimentKey_SPLIT_MODEL ExperimentKey = 152 + ExperimentKey_WINDSURF_SENTRY_SAMPLE_RATE ExperimentKey = 198 + ExperimentKey_API_SERVER_CUTOFF ExperimentKey = 158 + ExperimentKey_FAST_SPEED_KILL_SWITCH ExperimentKey = 159 + ExperimentKey_PREDICTIVE_MULTILINE ExperimentKey = 160 + ExperimentKey_SUPERCOMPLETE_FILTER_REVERT ExperimentKey = 125 + ExperimentKey_SUPERCOMPLETE_FILTER_PREFIX_MATCH ExperimentKey = 126 + ExperimentKey_SUPERCOMPLETE_FILTER_SCORE_THRESHOLD ExperimentKey = 127 + ExperimentKey_SUPERCOMPLETE_FILTER_INSERTION_CAP ExperimentKey = 128 + ExperimentKey_SUPERCOMPLETE_FILTER_DELETION_CAP ExperimentKey = 133 + ExperimentKey_SUPERCOMPLETE_FILTER_WHITESPACE_ONLY ExperimentKey = 156 + ExperimentKey_SUPERCOMPLETE_FILTER_NO_OP ExperimentKey = 170 + ExperimentKey_SUPERCOMPLETE_FILTER_SUFFIX_MATCH ExperimentKey = 176 + ExperimentKey_SUPERCOMPLETE_FILTER_PREVIOUSLY_SHOWN ExperimentKey = 182 + ExperimentKey_SUPERCOMPLETE_MIN_SCORE ExperimentKey = 129 + ExperimentKey_SUPERCOMPLETE_MAX_INSERTIONS ExperimentKey = 130 + ExperimentKey_SUPERCOMPLETE_LINE_RADIUS ExperimentKey = 131 + ExperimentKey_SUPERCOMPLETE_MAX_DELETIONS ExperimentKey = 132 + ExperimentKey_SUPERCOMPLETE_RECENT_STEPS_DURATION ExperimentKey = 138 + ExperimentKey_SUPERCOMPLETE_MAX_TRAJECTORY_STEPS ExperimentKey = 154 + ExperimentKey_SUPERCOMPLETE_MAX_TRAJECTORY_STEP_SIZE ExperimentKey = 203 + ExperimentKey_SUPERCOMPLETE_DISABLE_TYPING_CACHE ExperimentKey = 231 + ExperimentKey_SUPERCOMPLETE_ALWAYS_USE_CACHE_ON_EQUAL_STATE ExperimentKey = 293 + ExperimentKey_SUPERCOMPLETE_CACHE_ON_PARENT_ID_KILL_SWITCH ExperimentKey = 297 + ExperimentKey_SUPERCOMPLETE_PRUNE_RESPONSE ExperimentKey = 140 + ExperimentKey_SUPERCOMPLETE_PRUNE_MAX_INSERT_DELETE_LINE_DELTA ExperimentKey = 141 + ExperimentKey_SUPERCOMPLETE_MODEL_CONFIG ExperimentKey = 145 + ExperimentKey_SUPERCOMPLETE_MODEL_CONFIG_LOW ExperimentKey = 330 + ExperimentKey_SUPERCOMPLETE_MODEL_CONFIG_HIGH ExperimentKey = 331 + ExperimentKey_SUPERCOMPLETE_ON_TAB ExperimentKey = 151 + ExperimentKey_SUPERCOMPLETE_INLINE_PURE_DELETE ExperimentKey = 171 + ExperimentKey_SUPERCOMPLETE_INLINE_RICH_GHOST_TEXT_INSERTIONS ExperimentKey = 218 + ExperimentKey_MODEL_CHAT_19821_VARIANTS ExperimentKey = 308 + ExperimentKey_SUPERCOMPLETE_MAX_CONCURRENT_REQUESTS ExperimentKey = 284 + ExperimentKey_COMMAND_PROMPT_CACHE_CONFIG ExperimentKey = 255 + ExperimentKey_CUMULATIVE_PROMPT_CONFIG ExperimentKey = 256 + ExperimentKey_CUMULATIVE_PROMPT_CASCADE_CONFIG ExperimentKey = 279 + ExperimentKey_TAB_JUMP_CUMULATIVE_PROMPT_CONFIG ExperimentKey = 301 + ExperimentKey_COMPLETION_SPEED_SUPERCOMPLETE_CACHE ExperimentKey = 207 + ExperimentKey_COMPLETION_SPEED_PREDICTIVE_SUPERCOMPLETE ExperimentKey = 208 + ExperimentKey_COMPLETION_SPEED_TAB_JUMP_CACHE ExperimentKey = 209 + ExperimentKey_COMPLETION_SPEED_PREDICTIVE_TAB_JUMP ExperimentKey = 210 + ExperimentKey_COMPLETION_SPEED_BLOCK_TAB_JUMP_ON_PREDICTIVE_SUPERCOMPLETE ExperimentKey = 294 + ExperimentKey_JETBRAINS_ENABLE_ONBOARDING ExperimentKey = 137 + ExperimentKey_ENABLE_AUTOCOMPLETE_DURING_INTELLISENSE ExperimentKey = 146 + ExperimentKey_COMMAND_BOX_ON_TOP ExperimentKey = 155 + ExperimentKey_CONTEXT_ACTIVE_DOCUMENT_FRACTION ExperimentKey = 149 + ExperimentKey_CONTEXT_FORCE_LOCAL_CONTEXT ExperimentKey = 178 + ExperimentKey_CROSS_SELL_EXTENSION_DOWNLOAD_WINDSURF ExperimentKey = 220 + ExperimentKey_MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT_VARIANTS ExperimentKey = 295 + ExperimentKey_USE_AUTOCOMPLETE_MODEL_SERVER_SIDE ExperimentKey = 163 + ExperimentKey_SUPERCOMPLETE_NO_CONTEXT ExperimentKey = 165 + ExperimentKey_SUPERCOMPLETE_NO_ACTIVE_NODE ExperimentKey = 166 + ExperimentKey_TAB_JUMP_ENABLED ExperimentKey = 168 + ExperimentKey_TAB_JUMP_ACCEPT_ENABLED ExperimentKey = 169 + ExperimentKey_TAB_JUMP_LINE_RADIUS ExperimentKey = 177 + ExperimentKey_TAB_JUMP_MIN_FILTER_RADIUS ExperimentKey = 197 + ExperimentKey_TAB_JUMP_ON_ACCEPT_ONLY ExperimentKey = 205 + ExperimentKey_TAB_JUMP_FILTER_IN_SELECTION ExperimentKey = 215 + ExperimentKey_TAB_JUMP_MODEL_CONFIG ExperimentKey = 237 + ExperimentKey_TAB_JUMP_FILTER_NO_OP ExperimentKey = 238 + ExperimentKey_TAB_JUMP_FILTER_REVERT ExperimentKey = 239 + ExperimentKey_TAB_JUMP_FILTER_SCORE_THRESHOLD ExperimentKey = 240 + ExperimentKey_TAB_JUMP_FILTER_WHITESPACE_ONLY ExperimentKey = 241 + ExperimentKey_TAB_JUMP_FILTER_INSERTION_CAP ExperimentKey = 242 + ExperimentKey_TAB_JUMP_FILTER_DELETION_CAP ExperimentKey = 243 + ExperimentKey_TAB_JUMP_PRUNE_RESPONSE ExperimentKey = 260 + ExperimentKey_TAB_JUMP_PRUNE_MAX_INSERT_DELETE_LINE_DELTA ExperimentKey = 261 + ExperimentKey_TAB_JUMP_STOP_TOKEN_MIDSTREAM ExperimentKey = 317 + ExperimentKey_VIEWED_FILE_TRACKER_CONFIG ExperimentKey = 211 + ExperimentKey_SNAPSHOT_TO_STEP_OPTIONS_OVERRIDE ExperimentKey = 305 + ExperimentKey_STREAMING_EXTERNAL_COMMAND ExperimentKey = 172 + ExperimentKey_USE_SPECIAL_EDIT_CODE_BLOCK ExperimentKey = 179 + ExperimentKey_ENABLE_SUGGESTED_RESPONSES ExperimentKey = 187 + ExperimentKey_CASCADE_BASE_MODEL_ID ExperimentKey = 190 + ExperimentKey_CASCADE_PLAN_BASED_CONFIG_OVERRIDE ExperimentKey = 266 + ExperimentKey_CASCADE_GLOBAL_CONFIG_OVERRIDE ExperimentKey = 212 + ExperimentKey_CASCADE_BACKGROUND_RESEARCH_CONFIG_OVERRIDE ExperimentKey = 193 + ExperimentKey_CASCADE_ENFORCE_QUOTA ExperimentKey = 204 + ExperimentKey_CASCADE_ENABLE_AUTOMATED_MEMORIES ExperimentKey = 224 + ExperimentKey_CASCADE_MEMORY_CONFIG_OVERRIDE ExperimentKey = 314 + ExperimentKey_CASCADE_USE_REPLACE_CONTENT_EDIT_TOOL ExperimentKey = 228 + ExperimentKey_CASCADE_VIEW_FILE_TOOL_CONFIG_OVERRIDE ExperimentKey = 258 + ExperimentKey_CASCADE_USE_EXPERIMENT_CHECKPOINTER ExperimentKey = 247 + ExperimentKey_CASCADE_ENABLE_MCP_TOOLS ExperimentKey = 245 + ExperimentKey_CASCADE_AUTO_FIX_LINTS ExperimentKey = 275 + ExperimentKey_USE_ANTHROPIC_TOKEN_EFFICIENT_TOOLS_BETA ExperimentKey = 296 + ExperimentKey_CASCADE_USER_MEMORIES_IN_SYS_PROMPT ExperimentKey = 289 + ExperimentKey_CASCADE_ENABLE_PROXY_WEB_SERVER ExperimentKey = 290 + ExperimentKey_COLLAPSE_ASSISTANT_MESSAGES ExperimentKey = 312 + ExperimentKey_CASCADE_DEFAULT_MODEL_OVERRIDE ExperimentKey = 321 + ExperimentKey_ENABLE_SMART_COPY ExperimentKey = 181 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + ExperimentKey_ENABLE_COMMIT_MESSAGE_GENERATION ExperimentKey = 185 + ExperimentKey_SKIP_CONSISTENCY_MANAGER ExperimentKey = 194 + ExperimentKey_FIREWORKS_ON_DEMAND_DEPLOYMENT ExperimentKey = 276 + ExperimentKey_API_SERVER_CLIENT_USE_HTTP_2 ExperimentKey = 202 + ExperimentKey_AUTOCOMPLETE_DEFAULT_DEBOUNCE_MS ExperimentKey = 213 + ExperimentKey_AUTOCOMPLETE_FAST_DEBOUNCE_MS ExperimentKey = 214 + ExperimentKey_PROFILING_TELEMETRY_SAMPLE_RATE ExperimentKey = 219 + ExperimentKey_STREAM_USER_SHELL_COMMANDS ExperimentKey = 225 + ExperimentKey_API_SERVER_PROMPT_CACHE_REPLICAS ExperimentKey = 307 + ExperimentKey_API_SERVER_ENABLE_MORE_LOGGING ExperimentKey = 272 + ExperimentKey_COMMAND_INJECT_USER_MEMORIES ExperimentKey = 233 + ExperimentKey_AUTOCOMPLETE_HIDDEN_ERROR_REGEX ExperimentKey = 234 + ExperimentKey_DISABLE_IDE_COMPLETIONS_DEBOUNCE ExperimentKey = 278 + ExperimentKey_ENABLE_QUICK_ACTIONS ExperimentKey = 250 + ExperimentKey_QUICK_ACTIONS_WHITELIST_REGEX ExperimentKey = 251 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + ExperimentKey_CASCADE_NEW_MODELS_NUX ExperimentKey = 259 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + ExperimentKey_CASCADE_NEW_WAVE_2_MODELS_NUX ExperimentKey = 270 + ExperimentKey_SUPERCOMPLETE_FAST_DEBOUNCE ExperimentKey = 262 + ExperimentKey_SUPERCOMPLETE_REGULAR_DEBOUNCE ExperimentKey = 263 + ExperimentKey_XML_TOOL_PARSING_MODELS ExperimentKey = 268 + ExperimentKey_SUPERCOMPLETE_DONT_FILTER_MID_STREAMED ExperimentKey = 269 + ExperimentKey_ANNOYANCE_MANAGER_MAX_NAVIGATION_RENDERS ExperimentKey = 285 + ExperimentKey_ANNOYANCE_MANAGER_INLINE_PREVENTION_THRESHOLD_MS ExperimentKey = 286 + ExperimentKey_ANNOYANCE_MANAGER_INLINE_PREVENTION_MAX_INTENTIONAL_REJECTIONS ExperimentKey = 287 + ExperimentKey_ANNOYANCE_MANAGER_INLINE_PREVENTION_MAX_AUTO_REJECTIONS ExperimentKey = 288 + ExperimentKey_USE_CUSTOM_CHARACTER_DIFF ExperimentKey = 292 + ExperimentKey_FORCE_NON_OPTIMIZED_DIFF ExperimentKey = 298 + ExperimentKey_CASCADE_WEB_APP_DEPLOYMENTS_ENABLED ExperimentKey = 300 + ExperimentKey_CASCADE_RECIPES_AT_MENTION_VISIBILITY ExperimentKey = 316 + ExperimentKey_IMPLICIT_USES_CLIPBOARD ExperimentKey = 310 + ExperimentKey_DISABLE_SUPERCOMPLETE_PCW ExperimentKey = 303 + ExperimentKey_BLOCK_TAB_ON_SHOWN_AUTOCOMPLETE ExperimentKey = 304 + ExperimentKey_CASCADE_WEB_SEARCH_NUX ExperimentKey = 311 + ExperimentKey_MODEL_NOTIFICATIONS ExperimentKey = 319 + ExperimentKey_MODEL_SELECTOR_NUX_COPY ExperimentKey = 320 + ExperimentKey_CASCADE_TOOL_CALL_PRICING_NUX ExperimentKey = 322 + ExperimentKey_CASCADE_PLUGINS_TAB ExperimentKey = 323 + ExperimentKey_WAVE_8_RULES_ENABLED ExperimentKey = 324 + ExperimentKey_WAVE_8_KNOWLEDGE_ENABLED ExperimentKey = 325 + ExperimentKey_CASCADE_ONBOARDING ExperimentKey = 326 + ExperimentKey_CASCADE_ONBOARDING_REVERT ExperimentKey = 327 + ExperimentKey_CASCADE_WINDSURF_BROWSER_TOOLS_ENABLED ExperimentKey = 328 + ExperimentKey_CASCADE_MODEL_HEADER_WARNING ExperimentKey = 329 + ExperimentKey_TEST_ONLY ExperimentKey = 999 +) + +// Enum value maps for ExperimentKey. +var ( + ExperimentKey_name = map[int32]string{ + 0: "UNSPECIFIED", + 36: "USE_INTERNAL_CHAT_MODEL", + 47: "RECORD_FILES", + 48: "NO_SAMPLER_EARLY_STOP", + 53: "CM_MEMORY_TELEMETRY", + 55: "LANGUAGE_SERVER_VERSION", + 56: "LANGUAGE_SERVER_AUTO_RELOAD", + 60: "ONLY_MULTILINE", + 64: "USE_AUTOCOMPLETE_MODEL", + 68: "USE_ATTRIBUTION_FOR_INDIVIDUAL_TIER", + 78: "CHAT_MODEL_CONFIG", + 79: "COMMAND_MODEL_CONFIG", + 81: "MIN_IDE_VERSION", + 84: "API_SERVER_VERBOSE_ERRORS", + 86: "DEFAULT_ENABLE_SEARCH", + 87: "COLLECT_ONBOARDING_EVENTS", + 88: "COLLECT_EXAMPLE_COMPLETIONS", + 89: "USE_MULTILINE_MODEL", + 92: "ATTRIBUTION_KILL_SWITCH", + 94: "FAST_MULTILINE", + 95: "SINGLE_COMPLETION", + 96: "STOP_FIRST_NON_WHITESPACE_LINE", + 102: "CORTEX_CONFIG", + 103: "MODEL_CHAT_11121_VARIANTS", + 105: "INCLUDE_PROMPT_COMPONENTS", + 106: "NON_TEAMS_KILL_SWITCH", + 108: "PERSIST_CODE_TRACKER", + 114: "CHAT_COMPLETION_TOKENS_SOFT_LIMIT", + 115: "CHAT_TOKENS_SOFT_LIMIT", + 118: "DISABLE_COMPLETIONS_CACHE", + 119: "LLAMA3_405B_KILL_SWITCH", + 121: "USE_COMMAND_DOCSTRING_GENERATION", + 123: "ENABLE_SUPERCOMPLETE", + 136: "SENTRY", + 144: "FAST_SINGLELINE", + 147: "R2_LANGUAGE_SERVER_DOWNLOAD", + 152: "SPLIT_MODEL", + 198: "WINDSURF_SENTRY_SAMPLE_RATE", + 158: "API_SERVER_CUTOFF", + 159: "FAST_SPEED_KILL_SWITCH", + 160: "PREDICTIVE_MULTILINE", + 125: "SUPERCOMPLETE_FILTER_REVERT", + 126: "SUPERCOMPLETE_FILTER_PREFIX_MATCH", + 127: "SUPERCOMPLETE_FILTER_SCORE_THRESHOLD", + 128: "SUPERCOMPLETE_FILTER_INSERTION_CAP", + 133: "SUPERCOMPLETE_FILTER_DELETION_CAP", + 156: "SUPERCOMPLETE_FILTER_WHITESPACE_ONLY", + 170: "SUPERCOMPLETE_FILTER_NO_OP", + 176: "SUPERCOMPLETE_FILTER_SUFFIX_MATCH", + 182: "SUPERCOMPLETE_FILTER_PREVIOUSLY_SHOWN", + 129: "SUPERCOMPLETE_MIN_SCORE", + 130: "SUPERCOMPLETE_MAX_INSERTIONS", + 131: "SUPERCOMPLETE_LINE_RADIUS", + 132: "SUPERCOMPLETE_MAX_DELETIONS", + 138: "SUPERCOMPLETE_RECENT_STEPS_DURATION", + 154: "SUPERCOMPLETE_MAX_TRAJECTORY_STEPS", + 203: "SUPERCOMPLETE_MAX_TRAJECTORY_STEP_SIZE", + 231: "SUPERCOMPLETE_DISABLE_TYPING_CACHE", + 293: "SUPERCOMPLETE_ALWAYS_USE_CACHE_ON_EQUAL_STATE", + 297: "SUPERCOMPLETE_CACHE_ON_PARENT_ID_KILL_SWITCH", + 140: "SUPERCOMPLETE_PRUNE_RESPONSE", + 141: "SUPERCOMPLETE_PRUNE_MAX_INSERT_DELETE_LINE_DELTA", + 145: "SUPERCOMPLETE_MODEL_CONFIG", + 330: "SUPERCOMPLETE_MODEL_CONFIG_LOW", + 331: "SUPERCOMPLETE_MODEL_CONFIG_HIGH", + 151: "SUPERCOMPLETE_ON_TAB", + 171: "SUPERCOMPLETE_INLINE_PURE_DELETE", + 218: "SUPERCOMPLETE_INLINE_RICH_GHOST_TEXT_INSERTIONS", + 308: "MODEL_CHAT_19821_VARIANTS", + 284: "SUPERCOMPLETE_MAX_CONCURRENT_REQUESTS", + 255: "COMMAND_PROMPT_CACHE_CONFIG", + 256: "CUMULATIVE_PROMPT_CONFIG", + 279: "CUMULATIVE_PROMPT_CASCADE_CONFIG", + 301: "TAB_JUMP_CUMULATIVE_PROMPT_CONFIG", + 207: "COMPLETION_SPEED_SUPERCOMPLETE_CACHE", + 208: "COMPLETION_SPEED_PREDICTIVE_SUPERCOMPLETE", + 209: "COMPLETION_SPEED_TAB_JUMP_CACHE", + 210: "COMPLETION_SPEED_PREDICTIVE_TAB_JUMP", + 294: "COMPLETION_SPEED_BLOCK_TAB_JUMP_ON_PREDICTIVE_SUPERCOMPLETE", + 137: "JETBRAINS_ENABLE_ONBOARDING", + 146: "ENABLE_AUTOCOMPLETE_DURING_INTELLISENSE", + 155: "COMMAND_BOX_ON_TOP", + 149: "CONTEXT_ACTIVE_DOCUMENT_FRACTION", + 178: "CONTEXT_FORCE_LOCAL_CONTEXT", + 220: "CROSS_SELL_EXTENSION_DOWNLOAD_WINDSURF", + 295: "MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT_VARIANTS", + 163: "USE_AUTOCOMPLETE_MODEL_SERVER_SIDE", + 165: "SUPERCOMPLETE_NO_CONTEXT", + 166: "SUPERCOMPLETE_NO_ACTIVE_NODE", + 168: "TAB_JUMP_ENABLED", + 169: "TAB_JUMP_ACCEPT_ENABLED", + 177: "TAB_JUMP_LINE_RADIUS", + 197: "TAB_JUMP_MIN_FILTER_RADIUS", + 205: "TAB_JUMP_ON_ACCEPT_ONLY", + 215: "TAB_JUMP_FILTER_IN_SELECTION", + 237: "TAB_JUMP_MODEL_CONFIG", + 238: "TAB_JUMP_FILTER_NO_OP", + 239: "TAB_JUMP_FILTER_REVERT", + 240: "TAB_JUMP_FILTER_SCORE_THRESHOLD", + 241: "TAB_JUMP_FILTER_WHITESPACE_ONLY", + 242: "TAB_JUMP_FILTER_INSERTION_CAP", + 243: "TAB_JUMP_FILTER_DELETION_CAP", + 260: "TAB_JUMP_PRUNE_RESPONSE", + 261: "TAB_JUMP_PRUNE_MAX_INSERT_DELETE_LINE_DELTA", + 317: "TAB_JUMP_STOP_TOKEN_MIDSTREAM", + 211: "VIEWED_FILE_TRACKER_CONFIG", + 305: "SNAPSHOT_TO_STEP_OPTIONS_OVERRIDE", + 172: "STREAMING_EXTERNAL_COMMAND", + 179: "USE_SPECIAL_EDIT_CODE_BLOCK", + 187: "ENABLE_SUGGESTED_RESPONSES", + 190: "CASCADE_BASE_MODEL_ID", + 266: "CASCADE_PLAN_BASED_CONFIG_OVERRIDE", + 212: "CASCADE_GLOBAL_CONFIG_OVERRIDE", + 193: "CASCADE_BACKGROUND_RESEARCH_CONFIG_OVERRIDE", + 204: "CASCADE_ENFORCE_QUOTA", + 224: "CASCADE_ENABLE_AUTOMATED_MEMORIES", + 314: "CASCADE_MEMORY_CONFIG_OVERRIDE", + 228: "CASCADE_USE_REPLACE_CONTENT_EDIT_TOOL", + 258: "CASCADE_VIEW_FILE_TOOL_CONFIG_OVERRIDE", + 247: "CASCADE_USE_EXPERIMENT_CHECKPOINTER", + 245: "CASCADE_ENABLE_MCP_TOOLS", + 275: "CASCADE_AUTO_FIX_LINTS", + 296: "USE_ANTHROPIC_TOKEN_EFFICIENT_TOOLS_BETA", + 289: "CASCADE_USER_MEMORIES_IN_SYS_PROMPT", + 290: "CASCADE_ENABLE_PROXY_WEB_SERVER", + 312: "COLLAPSE_ASSISTANT_MESSAGES", + 321: "CASCADE_DEFAULT_MODEL_OVERRIDE", + 181: "ENABLE_SMART_COPY", + 185: "ENABLE_COMMIT_MESSAGE_GENERATION", + 194: "SKIP_CONSISTENCY_MANAGER", + 276: "FIREWORKS_ON_DEMAND_DEPLOYMENT", + 202: "API_SERVER_CLIENT_USE_HTTP_2", + 213: "AUTOCOMPLETE_DEFAULT_DEBOUNCE_MS", + 214: "AUTOCOMPLETE_FAST_DEBOUNCE_MS", + 219: "PROFILING_TELEMETRY_SAMPLE_RATE", + 225: "STREAM_USER_SHELL_COMMANDS", + 307: "API_SERVER_PROMPT_CACHE_REPLICAS", + 272: "API_SERVER_ENABLE_MORE_LOGGING", + 233: "COMMAND_INJECT_USER_MEMORIES", + 234: "AUTOCOMPLETE_HIDDEN_ERROR_REGEX", + 278: "DISABLE_IDE_COMPLETIONS_DEBOUNCE", + 250: "ENABLE_QUICK_ACTIONS", + 251: "QUICK_ACTIONS_WHITELIST_REGEX", + 259: "CASCADE_NEW_MODELS_NUX", + 270: "CASCADE_NEW_WAVE_2_MODELS_NUX", + 262: "SUPERCOMPLETE_FAST_DEBOUNCE", + 263: "SUPERCOMPLETE_REGULAR_DEBOUNCE", + 268: "XML_TOOL_PARSING_MODELS", + 269: "SUPERCOMPLETE_DONT_FILTER_MID_STREAMED", + 285: "ANNOYANCE_MANAGER_MAX_NAVIGATION_RENDERS", + 286: "ANNOYANCE_MANAGER_INLINE_PREVENTION_THRESHOLD_MS", + 287: "ANNOYANCE_MANAGER_INLINE_PREVENTION_MAX_INTENTIONAL_REJECTIONS", + 288: "ANNOYANCE_MANAGER_INLINE_PREVENTION_MAX_AUTO_REJECTIONS", + 292: "USE_CUSTOM_CHARACTER_DIFF", + 298: "FORCE_NON_OPTIMIZED_DIFF", + 300: "CASCADE_WEB_APP_DEPLOYMENTS_ENABLED", + 316: "CASCADE_RECIPES_AT_MENTION_VISIBILITY", + 310: "IMPLICIT_USES_CLIPBOARD", + 303: "DISABLE_SUPERCOMPLETE_PCW", + 304: "BLOCK_TAB_ON_SHOWN_AUTOCOMPLETE", + 311: "CASCADE_WEB_SEARCH_NUX", + 319: "MODEL_NOTIFICATIONS", + 320: "MODEL_SELECTOR_NUX_COPY", + 322: "CASCADE_TOOL_CALL_PRICING_NUX", + 323: "CASCADE_PLUGINS_TAB", + 324: "WAVE_8_RULES_ENABLED", + 325: "WAVE_8_KNOWLEDGE_ENABLED", + 326: "CASCADE_ONBOARDING", + 327: "CASCADE_ONBOARDING_REVERT", + 328: "CASCADE_WINDSURF_BROWSER_TOOLS_ENABLED", + 329: "CASCADE_MODEL_HEADER_WARNING", + 999: "TEST_ONLY", + } + ExperimentKey_value = map[string]int32{ + "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_AUTOCOMPLETE_MODEL": 64, + "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, + "NON_TEAMS_KILL_SWITCH": 106, + "PERSIST_CODE_TRACKER": 108, + "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, + "ENABLE_SUPERCOMPLETE": 123, + "SENTRY": 136, + "FAST_SINGLELINE": 144, + "R2_LANGUAGE_SERVER_DOWNLOAD": 147, + "SPLIT_MODEL": 152, + "WINDSURF_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_RECENT_STEPS_DURATION": 138, + "SUPERCOMPLETE_MAX_TRAJECTORY_STEPS": 154, + "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_MODEL_CONFIG_LOW": 330, + "SUPERCOMPLETE_MODEL_CONFIG_HIGH": 331, + "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_FORCE_LOCAL_CONTEXT": 178, + "CROSS_SELL_EXTENSION_DOWNLOAD_WINDSURF": 220, + "MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT_VARIANTS": 295, + "USE_AUTOCOMPLETE_MODEL_SERVER_SIDE": 163, + "SUPERCOMPLETE_NO_CONTEXT": 165, + "SUPERCOMPLETE_NO_ACTIVE_NODE": 166, + "TAB_JUMP_ENABLED": 168, + "TAB_JUMP_ACCEPT_ENABLED": 169, + "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, + "CASCADE_ENABLE_PROXY_WEB_SERVER": 290, + "COLLAPSE_ASSISTANT_MESSAGES": 312, + "CASCADE_DEFAULT_MODEL_OVERRIDE": 321, + "ENABLE_SMART_COPY": 181, + "ENABLE_COMMIT_MESSAGE_GENERATION": 185, + "SKIP_CONSISTENCY_MANAGER": 194, + "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, + "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_WEB_APP_DEPLOYMENTS_ENABLED": 300, + "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_WINDSURF_BROWSER_TOOLS_ENABLED": 328, + "CASCADE_MODEL_HEADER_WARNING": 329, + "TEST_ONLY": 999, + } +) + +func (x ExperimentKey) Enum() *ExperimentKey { + p := new(ExperimentKey) + *p = x + return p +} + +func (x ExperimentKey) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ExperimentKey) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[2].Descriptor() +} + +func (ExperimentKey) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[2] +} + +func (x ExperimentKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ExperimentKey.Descriptor instead. +func (ExperimentKey) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{2} +} + +type ExperimentSource int32 + +const ( + ExperimentSource_EXPERIMENT_SOURCE_UNSPECIFIED ExperimentSource = 0 + ExperimentSource_EXPERIMENT_SOURCE_EXTENSION ExperimentSource = 1 + ExperimentSource_EXPERIMENT_SOURCE_LANGUAGE_SERVER ExperimentSource = 2 + ExperimentSource_EXPERIMENT_SOURCE_API_SERVER ExperimentSource = 3 +) + +// Enum value maps for ExperimentSource. +var ( + ExperimentSource_name = map[int32]string{ + 0: "EXPERIMENT_SOURCE_UNSPECIFIED", + 1: "EXPERIMENT_SOURCE_EXTENSION", + 2: "EXPERIMENT_SOURCE_LANGUAGE_SERVER", + 3: "EXPERIMENT_SOURCE_API_SERVER", + } + ExperimentSource_value = map[string]int32{ + "EXPERIMENT_SOURCE_UNSPECIFIED": 0, + "EXPERIMENT_SOURCE_EXTENSION": 1, + "EXPERIMENT_SOURCE_LANGUAGE_SERVER": 2, + "EXPERIMENT_SOURCE_API_SERVER": 3, + } +) + +func (x ExperimentSource) Enum() *ExperimentSource { + p := new(ExperimentSource) + *p = x + return p +} + +func (x ExperimentSource) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ExperimentSource) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[3].Descriptor() +} + +func (ExperimentSource) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[3] +} + +func (x ExperimentSource) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ExperimentSource.Descriptor instead. +func (ExperimentSource) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{3} +} + +type ModelAlias int32 + +const ( + ModelAlias_MODEL_ALIAS_UNSPECIFIED ModelAlias = 0 + ModelAlias_MODEL_ALIAS_CASCADE_BASE ModelAlias = 1 + ModelAlias_MODEL_ALIAS_VISTA ModelAlias = 3 + ModelAlias_MODEL_ALIAS_SHAMU ModelAlias = 4 + ModelAlias_MODEL_ALIAS_SWE_1 ModelAlias = 5 + ModelAlias_MODEL_ALIAS_SWE_1_LITE ModelAlias = 6 + ModelAlias_MODEL_ALIAS_AUTO ModelAlias = 7 +) + +// Enum value maps for ModelAlias. +var ( + ModelAlias_name = map[int32]string{ + 0: "MODEL_ALIAS_UNSPECIFIED", + 1: "MODEL_ALIAS_CASCADE_BASE", + 3: "MODEL_ALIAS_VISTA", + 4: "MODEL_ALIAS_SHAMU", + 5: "MODEL_ALIAS_SWE_1", + 6: "MODEL_ALIAS_SWE_1_LITE", + 7: "MODEL_ALIAS_AUTO", + } + ModelAlias_value = map[string]int32{ + "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, + } +) + +func (x ModelAlias) Enum() *ModelAlias { + p := new(ModelAlias) + *p = x + return p +} + +func (x ModelAlias) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelAlias) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[4].Descriptor() +} + +func (ModelAlias) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[4] +} + +func (x ModelAlias) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelAlias.Descriptor instead. +func (ModelAlias) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{4} +} + +type Model int32 + +const ( + Model_MODEL_UNSPECIFIED Model = 0 + Model_MODEL_EMBED_6591 Model = 20 + Model_MODEL_8341 Model = 33 + Model_MODEL_8528 Model = 42 + Model_MODEL_9024 Model = 41 + Model_MODEL_14602 Model = 112 + Model_MODEL_15133 Model = 115 + Model_MODEL_15302 Model = 119 + Model_MODEL_15335 Model = 121 + Model_MODEL_15336 Model = 122 + Model_MODEL_15931 Model = 167 + Model_MODEL_QUERY_9905 Model = 48 + Model_MODEL_QUERY_11791 Model = 66 + Model_MODEL_CHAT_11120 Model = 57 + Model_MODEL_CHAT_11121 Model = 58 + Model_MODEL_CHAT_12119 Model = 70 + Model_MODEL_CHAT_12121 Model = 69 + Model_MODEL_CHAT_12437 Model = 74 + Model_MODEL_CHAT_12491 Model = 76 + Model_MODEL_CHAT_12623 Model = 78 + Model_MODEL_CHAT_12950 Model = 79 + Model_MODEL_CHAT_12968 Model = 101 + Model_MODEL_CHAT_13404 Model = 102 + Model_MODEL_CHAT_13566 Model = 103 + Model_MODEL_CHAT_13930 Model = 108 + Model_MODEL_CHAT_14255 Model = 110 + Model_MODEL_CHAT_14256 Model = 111 + Model_MODEL_CHAT_14942 Model = 114 + Model_MODEL_CHAT_15305 Model = 120 + Model_MODEL_CHAT_15600 Model = 123 + Model_MODEL_CHAT_16801 Model = 124 + Model_MODEL_CHAT_16718 Model = 175 + Model_MODEL_CHAT_15729 Model = 168 + Model_MODEL_CHAT_16579 Model = 173 + Model_MODEL_CHAT_16579_CRUSOE Model = 174 + Model_MODEL_CHAT_18805 Model = 181 + Model_MODEL_CHAT_18468 Model = 210 + Model_MODEL_CHAT_19484 Model = 233 + Model_MODEL_CHAT_20706 Model = 235 + Model_MODEL_CHAT_21779 Model = 245 + Model_MODEL_CHAT_19040 Model = 211 + Model_MODEL_CHAT_19820 Model = 229 + Model_MODEL_CHAT_19821 Model = 230 + Model_MODEL_CHAT_19821_CRUSOE Model = 244 + Model_MODEL_CHAT_23310 Model = 269 + Model_MODEL_CHAT_28580 Model = 330 + Model_MODEL_CHAT_28581 Model = 331 + Model_MODEL_CHAT_28582 Model = 332 + Model_MODEL_CHAT_28583 Model = 333 + Model_MODEL_CHAT_28584 Model = 334 + Model_MODEL_CHAT_19822 Model = 231 + Model_MODEL_CHAT_22798 Model = 255 + Model_MODEL_CHAT_22799 Model = 256 + Model_MODEL_CHAT_22800 Model = 257 + Model_MODEL_CHAT_23151 Model = 267 + Model_MODEL_CHAT_23152 Model = 268 + Model_MODEL_TAB_ARMADILLO Model = 500 + Model_MODEL_TAB_BASE_1 Model = 501 + Model_MODEL_TAB_EXPERIMENTAL_1 Model = 502 + Model_MODEL_TAB_EXPERIMENTAL_2 Model = 503 + Model_MODEL_TAB_EXPERIMENTAL_3 Model = 504 + Model_MODEL_TAB_EXPERIMENTAL_4 Model = 505 + Model_MODEL_TAB_EXPERIMENTAL_5 Model = 506 + Model_MODEL_TAB_EXPERIMENTAL_6 Model = 507 + Model_MODEL_TAB_EXPERIMENTAL_7 Model = 508 + Model_MODEL_TAB_EXPERIMENTAL_8 Model = 509 + Model_MODEL_TAB_EXPERIMENTAL_9 Model = 510 + Model_MODEL_TAB_EXPERIMENTAL_10 Model = 511 + Model_MODEL_CASCADE_22893 Model = 270 + Model_MODEL_CASCADE_20064 Model = 225 + Model_MODEL_CASCADE_20065 Model = 236 + Model_MODEL_CASCADE_20066 Model = 237 + Model_MODEL_CASCADE_20067 Model = 238 + Model_MODEL_CASCADE_20068 Model = 239 + Model_MODEL_CASCADE_20069 Model = 240 + Model_MODEL_CASCADE_20070 Model = 250 + Model_MODEL_CASCADE_20071 Model = 251 + Model_MODEL_CASCADE_20072 Model = 252 + Model_MODEL_CASCADE_20073 Model = 253 + Model_MODEL_CASCADE_20074 Model = 254 + Model_MODEL_CASCADE_20075 Model = 307 + Model_MODEL_CASCADE_20076 Model = 308 + Model_MODEL_CASCADE_20077 Model = 309 + Model_MODEL_CASCADE_20078 Model = 310 + Model_MODEL_CASCADE_20079 Model = 311 + Model_MODEL_CASCADE_20080 Model = 297 + Model_MODEL_CASCADE_20081 Model = 298 + Model_MODEL_CASCADE_20082 Model = 299 + Model_MODEL_CASCADE_20083 Model = 300 + Model_MODEL_CASCADE_20084 Model = 301 + Model_MODEL_CASCADE_20085 Model = 302 + Model_MODEL_CASCADE_20086 Model = 303 + Model_MODEL_CASCADE_20087 Model = 304 + Model_MODEL_CASCADE_20088 Model = 305 + Model_MODEL_CASCADE_20089 Model = 306 + Model_MODEL_DEEPSEEK_V3_INTERNAL Model = 247 + Model_MODEL_DEEPSEEK_V3_0324_INTERNAL Model = 248 + Model_MODEL_DEEPSEEK_R1_INTERNAL Model = 249 + Model_MODEL_ANTHROPIC_WINDSURF_RESEARCH Model = 241 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_ANTHROPIC_WINDSURF_RESEARCH_THINKING Model = 242 + Model_MODEL_DRAFT_11408 Model = 65 + Model_MODEL_DRAFT_CHAT_11883 Model = 67 + Model_MODEL_DRAFT_CHAT_12196 Model = 72 + Model_MODEL_DRAFT_CHAT_12413 Model = 73 + Model_MODEL_DRAFT_CHAT_13175 Model = 104 + Model_MODEL_DRAFT_CHAT_19823 Model = 232 + Model_MODEL_DRAFT_CHAT_20707 Model = 243 + Model_MODEL_DRAFT_CHAT_22801 Model = 258 + Model_MODEL_DRAFT_CHAT_23508 Model = 273 + Model_MODEL_DRAFT_CASCADE_23672 Model = 274 + Model_MODEL_CHAT_3_5_TURBO Model = 28 + Model_MODEL_CHAT_GPT_4 Model = 30 + Model_MODEL_CHAT_GPT_4_1106_PREVIEW Model = 37 + Model_MODEL_TEXT_EMBEDDING_OPENAI_ADA Model = 91 + Model_MODEL_TEXT_EMBEDDING_OPENAI_3_SMALL Model = 163 + Model_MODEL_TEXT_EMBEDDING_OPENAI_3_LARGE Model = 164 + Model_MODEL_CHAT_GPT_4O_2024_05_13 Model = 71 + Model_MODEL_CHAT_GPT_4O_2024_08_06 Model = 109 + Model_MODEL_CHAT_GPT_4O_MINI_2024_07_18 Model = 113 + Model_MODEL_CHAT_GPT_4_1_2025_04_14 Model = 259 + Model_MODEL_CHAT_GPT_4_1_MINI_2025_04_14 Model = 260 + Model_MODEL_CHAT_GPT_4_1_NANO_2025_04_14 Model = 261 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CHAT_O1_PREVIEW Model = 117 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CHAT_O1_MINI Model = 118 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CHAT_O1 Model = 170 + Model_MODEL_CHAT_O3_MINI Model = 207 + Model_MODEL_CHAT_O3_MINI_LOW Model = 213 + Model_MODEL_CHAT_O3_MINI_HIGH Model = 214 + Model_MODEL_CHAT_O3 Model = 218 + Model_MODEL_CHAT_O3_LOW Model = 262 + Model_MODEL_CHAT_O3_HIGH Model = 263 + Model_MODEL_CHAT_O4_MINI Model = 264 + Model_MODEL_CHAT_O4_MINI_LOW Model = 265 + Model_MODEL_CHAT_O4_MINI_HIGH Model = 266 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CHAT_GPT_4_5 Model = 228 + Model_MODEL_CODEX_MINI_LATEST Model = 287 + Model_MODEL_CODEX_MINI_LATEST_LOW Model = 288 + Model_MODEL_CODEX_MINI_LATEST_HIGH Model = 289 + Model_MODEL_O3_PRO_2025_06_10 Model = 294 + Model_MODEL_O3_PRO_2025_06_10_LOW Model = 295 + Model_MODEL_O3_PRO_2025_06_10_HIGH Model = 296 + Model_MODEL_GPT_OSS_120B Model = 326 + Model_MODEL_GPT_5_NANO Model = 337 + Model_MODEL_CHAT_GPT_5_MINIMAL Model = 338 + Model_MODEL_CHAT_GPT_5_LOW Model = 339 + Model_MODEL_CHAT_GPT_5 Model = 340 + Model_MODEL_CHAT_GPT_5_HIGH Model = 341 + Model_MODEL_CHAT_GPT_5_CODEX Model = 346 + Model_MODEL_GPT_5_1_CODEX_MINI_LOW Model = 385 + Model_MODEL_GPT_5_1_CODEX_MINI_MEDIUM Model = 386 + Model_MODEL_GPT_5_1_CODEX_MINI_HIGH Model = 387 + Model_MODEL_GPT_5_1_CODEX_LOW Model = 388 + Model_MODEL_GPT_5_1_CODEX_MEDIUM Model = 389 + Model_MODEL_GPT_5_1_CODEX_HIGH Model = 390 + Model_MODEL_GPT_5_1_CODEX_MAX_LOW Model = 395 + Model_MODEL_GPT_5_1_CODEX_MAX_MEDIUM Model = 396 + Model_MODEL_GPT_5_1_CODEX_MAX_HIGH Model = 397 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_GOOGLE_GEMINI_1_0_PRO Model = 61 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_GOOGLE_GEMINI_1_5_PRO Model = 62 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_GOOGLE_GEMINI_EXP_1206 Model = 183 + Model_MODEL_GOOGLE_GEMINI_2_0_FLASH Model = 184 + Model_MODEL_GOOGLE_GEMINI_2_5_PRO Model = 246 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_04_17 Model = 272 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20 Model = 275 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20_THINKING Model = 276 + Model_MODEL_GOOGLE_GEMINI_2_5_FLASH Model = 312 + Model_MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING Model = 313 + Model_MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE Model = 343 + Model_MODEL_GOOGLE_GEMINI_3_0_PRO_LOW Model = 378 + Model_MODEL_GOOGLE_GEMINI_3_0_PRO_HIGH Model = 379 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_GOOGLE_GEMINI_3_0_PRO_MINIMAL Model = 411 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_GOOGLE_GEMINI_3_0_PRO_MEDIUM Model = 412 + Model_MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL Model = 413 + Model_MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW Model = 414 + Model_MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM Model = 415 + Model_MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH Model = 416 + Model_MODEL_CLAUDE_3_OPUS_20240229 Model = 63 + Model_MODEL_CLAUDE_3_SONNET_20240229 Model = 64 + Model_MODEL_CLAUDE_3_HAIKU_20240307 Model = 172 + Model_MODEL_CLAUDE_3_5_HAIKU_20241022 Model = 171 + Model_MODEL_CLAUDE_3_5_SONNET_20240620 Model = 80 + Model_MODEL_CLAUDE_3_5_SONNET_20241022 Model = 166 + Model_MODEL_CLAUDE_3_7_SONNET_20250219 Model = 226 + Model_MODEL_CLAUDE_3_7_SONNET_20250219_THINKING Model = 227 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_3_5_SONNET_BYOK Model = 284 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_3_7_SONNET_BYOK Model = 285 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_3_7_SONNET_OPEN_ROUTER_BYOK Model = 319 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_3_7_SONNET_THINKING_BYOK Model = 286 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_3_7_SONNET_THINKING_OPEN_ROUTER_BYOK Model = 320 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_4_OPUS_BYOK Model = 277 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_4_OPUS_THINKING_BYOK Model = 278 + Model_MODEL_CLAUDE_4_OPUS Model = 290 + Model_MODEL_CLAUDE_4_OPUS_THINKING Model = 291 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_4_SONNET_BYOK Model = 279 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_4_SONNET_OPEN_ROUTER_BYOK Model = 321 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_4_SONNET_THINKING_BYOK Model = 280 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_4_SONNET_THINKING_OPEN_ROUTER_BYOK Model = 322 + Model_MODEL_CLAUDE_4_SONNET Model = 281 + Model_MODEL_CLAUDE_4_SONNET_THINKING Model = 282 + Model_MODEL_CLAUDE_4_1_OPUS Model = 328 + Model_MODEL_CLAUDE_4_1_OPUS_THINKING Model = 329 + Model_MODEL_CLAUDE_4_5_SONNET Model = 353 + Model_MODEL_CLAUDE_4_5_SONNET_THINKING Model = 354 + Model_MODEL_CLAUDE_4_5_SONNET_1M Model = 370 + Model_MODEL_CLAUDE_4_5_SONNET_THINKING_1M Model = 371 + Model_MODEL_CLAUDE_4_5_OPUS Model = 391 + Model_MODEL_CLAUDE_4_5_OPUS_THINKING Model = 392 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_4_SONNET_DATABRICKS Model = 292 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_CLAUDE_4_SONNET_THINKING_DATABRICKS Model = 293 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TOGETHERAI_TEXT_EMBEDDING_M2_BERT Model = 81 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TOGETHERAI_LLAMA_3_1_8B_INSTRUCT Model = 165 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_HUGGING_FACE_TEXT_EMBEDDING_M2_BERT Model = 82 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_HUGGING_FACE_TEXT_EMBEDDING_UAE_CODE Model = 83 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_HUGGING_FACE_TEXT_EMBEDDING_BGE Model = 84 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_HUGGING_FACE_TEXT_EMBEDDING_BLADE Model = 85 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_HUGGING_FACE_TEXT_EMBEDDING_ARCTIC_LARGE Model = 86 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_HUGGING_FACE_TEXT_EMBEDDING_E5_BASE Model = 87 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_HUGGING_FACE_TEXT_EMBEDDING_MXBAI Model = 88 + Model_MODEL_LLAMA_3_1_8B_INSTRUCT Model = 106 + Model_MODEL_LLAMA_3_1_70B_INSTRUCT Model = 107 + Model_MODEL_LLAMA_3_1_405B_INSTRUCT Model = 105 + Model_MODEL_LLAMA_3_3_70B_INSTRUCT Model = 208 + Model_MODEL_LLAMA_3_3_70B_INSTRUCT_R1 Model = 209 + Model_MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT Model = 116 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_LLAMA_3_1_8B_HERMES_3 Model = 176 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_LLAMA_3_1_70B_HERMES_3 Model = 177 + Model_MODEL_QWEN_2_5_7B_INSTRUCT Model = 178 + Model_MODEL_QWEN_2_5_32B_INSTRUCT Model = 179 + Model_MODEL_QWEN_2_5_72B_INSTRUCT Model = 180 + Model_MODEL_QWEN_2_5_32B_INSTRUCT_R1 Model = 224 + Model_MODEL_QWEN_3_235B_INSTRUCT Model = 324 + Model_MODEL_QWEN_3_CODER_480B_INSTRUCT Model = 325 + Model_MODEL_QWEN_3_CODER_480B_INSTRUCT_FAST Model = 327 + Model_MODEL_GLM_4_5 Model = 342 + Model_MODEL_GLM_4_5_FAST Model = 352 + Model_MODEL_GLM_4_6 Model = 356 + Model_MODEL_GLM_4_6_FAST Model = 357 + Model_MODEL_GLM_4_7 Model = 417 + Model_MODEL_GLM_4_7_FAST Model = 418 + Model_MODEL_SWE_1_5 Model = 359 + Model_MODEL_SWE_1_5_REDIRECT Model = 361 + Model_MODEL_SWE_1_5_THINKING Model = 369 + Model_MODEL_SWE_1_5_SLOW Model = 377 + Model_MODEL_SWE_1_6 Model = 420 + Model_MODEL_SWE_1_6_FAST Model = 421 + Model_MODEL_CODEMAP_SMALL Model = 358 + Model_MODEL_CODEMAP_MEDIUM Model = 360 + Model_MODEL_CODEMAP_SMART Model = 362 + Model_MODEL_COGNITION_INSTANT_CONTEXT Model = 355 + Model_MODEL_LLAMA_FT_DEEPWIKI_ARTICLE Model = 335 + Model_MODEL_LLAMA_FT_DEEPWIKI_HOVER Model = 336 + Model_MODEL_LLAMA_FT_LIFEGUARD Model = 398 + Model_MODEL_COGNITION_LIFEGUARD Model = 410 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_NOMIC_TEXT_EMBEDDING_V1 Model = 89 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_NOMIC_TEXT_EMBEDDING_V1_5 Model = 90 + Model_MODEL_MISTRAL_7B Model = 77 + Model_MODEL_SALESFORCE_EMBEDDING_2R Model = 99 + Model_MODEL_CUSTOM_VLLM Model = 182 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TEI_BGE_M3 Model = 92 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TEI_NOMIC_EMBED_TEXT_V1 Model = 93 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TEI_INTFLOAT_E5_LARGE_INSTRUCT Model = 94 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TEI_SNOWFLAKE_ARCTIC_EMBED_L Model = 95 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TEI_UAE_CODE_LARGE_V1 Model = 96 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TEI_B1ADE Model = 97 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TEI_WHEREISAI_UAE_LARGE_V1 Model = 98 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_TEI_WHEREISAI_UAE_CODE_LARGE_V1 Model = 100 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_OPENAI_COMPATIBLE Model = 200 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_ANTHROPIC_COMPATIBLE Model = 201 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_VERTEX_COMPATIBLE Model = 202 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_BEDROCK_COMPATIBLE Model = 203 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model_MODEL_AZURE_COMPATIBLE Model = 204 + Model_MODEL_DEEPSEEK_V3 Model = 205 + Model_MODEL_DEEPSEEK_R1 Model = 206 + Model_MODEL_DEEPSEEK_R1_SLOW Model = 215 + Model_MODEL_DEEPSEEK_R1_FAST Model = 216 + Model_MODEL_KIMI_K2 Model = 323 + Model_MODEL_MINIMAX_M2 Model = 368 + Model_MODEL_MINIMAX_M2_1 Model = 419 + Model_MODEL_DEEPSEEK_V3_2 Model = 409 + Model_MODEL_KIMI_K2_THINKING Model = 394 + Model_MODEL_CUSTOM_OPEN_ROUTER Model = 185 + Model_MODEL_XAI_GROK_2 Model = 212 + Model_MODEL_XAI_GROK_3 Model = 217 + Model_MODEL_XAI_GROK_3_MINI_REASONING Model = 234 + Model_MODEL_XAI_GROK_CODE_FAST Model = 345 + Model_MODEL_PRIVATE_1 Model = 219 + Model_MODEL_PRIVATE_2 Model = 220 + Model_MODEL_PRIVATE_3 Model = 221 + Model_MODEL_PRIVATE_4 Model = 222 + Model_MODEL_PRIVATE_5 Model = 223 + Model_MODEL_PRIVATE_6 Model = 314 + Model_MODEL_PRIVATE_7 Model = 315 + Model_MODEL_PRIVATE_8 Model = 316 + Model_MODEL_PRIVATE_9 Model = 317 + Model_MODEL_PRIVATE_10 Model = 318 + Model_MODEL_PRIVATE_11 Model = 347 + Model_MODEL_PRIVATE_12 Model = 348 + Model_MODEL_PRIVATE_13 Model = 349 + Model_MODEL_PRIVATE_14 Model = 350 + Model_MODEL_PRIVATE_15 Model = 351 + Model_MODEL_PRIVATE_16 Model = 363 + Model_MODEL_PRIVATE_17 Model = 364 + Model_MODEL_PRIVATE_18 Model = 365 + Model_MODEL_PRIVATE_19 Model = 366 + Model_MODEL_PRIVATE_20 Model = 367 + Model_MODEL_PRIVATE_21 Model = 372 + Model_MODEL_PRIVATE_22 Model = 373 + Model_MODEL_PRIVATE_23 Model = 374 + Model_MODEL_PRIVATE_24 Model = 375 + Model_MODEL_PRIVATE_25 Model = 376 + Model_MODEL_PRIVATE_26 Model = 380 + Model_MODEL_PRIVATE_27 Model = 381 + Model_MODEL_PRIVATE_28 Model = 382 + Model_MODEL_PRIVATE_29 Model = 383 + Model_MODEL_PRIVATE_30 Model = 384 + Model_MODEL_GPT_5_2_NONE Model = 399 + Model_MODEL_GPT_5_2_LOW Model = 400 + Model_MODEL_GPT_5_2_MEDIUM Model = 401 + Model_MODEL_GPT_5_2_HIGH Model = 402 + Model_MODEL_GPT_5_2_XHIGH Model = 403 + Model_MODEL_GPT_5_2_NONE_PRIORITY Model = 404 + Model_MODEL_GPT_5_2_LOW_PRIORITY Model = 405 + Model_MODEL_GPT_5_2_MEDIUM_PRIORITY Model = 406 + Model_MODEL_GPT_5_2_HIGH_PRIORITY Model = 407 + Model_MODEL_GPT_5_2_XHIGH_PRIORITY Model = 408 + Model_MODEL_GPT_5_2_CODEX_LOW Model = 422 + Model_MODEL_GPT_5_2_CODEX_MEDIUM Model = 423 + Model_MODEL_GPT_5_2_CODEX_HIGH Model = 424 + Model_MODEL_GPT_5_2_CODEX_XHIGH Model = 425 + Model_MODEL_GPT_5_2_CODEX_LOW_PRIORITY Model = 426 + Model_MODEL_GPT_5_2_CODEX_MEDIUM_PRIORITY Model = 427 + Model_MODEL_GPT_5_2_CODEX_HIGH_PRIORITY Model = 428 + Model_MODEL_GPT_5_2_CODEX_XHIGH_PRIORITY Model = 429 + Model_MODEL_SGLANG_ROLLOUT Model = 600 +) + +// Enum value maps for Model. +var ( + Model_name = map[int32]string{ + 0: "MODEL_UNSPECIFIED", + 20: "MODEL_EMBED_6591", + 33: "MODEL_8341", + 42: "MODEL_8528", + 41: "MODEL_9024", + 112: "MODEL_14602", + 115: "MODEL_15133", + 119: "MODEL_15302", + 121: "MODEL_15335", + 122: "MODEL_15336", + 167: "MODEL_15931", + 48: "MODEL_QUERY_9905", + 66: "MODEL_QUERY_11791", + 57: "MODEL_CHAT_11120", + 58: "MODEL_CHAT_11121", + 70: "MODEL_CHAT_12119", + 69: "MODEL_CHAT_12121", + 74: "MODEL_CHAT_12437", + 76: "MODEL_CHAT_12491", + 78: "MODEL_CHAT_12623", + 79: "MODEL_CHAT_12950", + 101: "MODEL_CHAT_12968", + 102: "MODEL_CHAT_13404", + 103: "MODEL_CHAT_13566", + 108: "MODEL_CHAT_13930", + 110: "MODEL_CHAT_14255", + 111: "MODEL_CHAT_14256", + 114: "MODEL_CHAT_14942", + 120: "MODEL_CHAT_15305", + 123: "MODEL_CHAT_15600", + 124: "MODEL_CHAT_16801", + 175: "MODEL_CHAT_16718", + 168: "MODEL_CHAT_15729", + 173: "MODEL_CHAT_16579", + 174: "MODEL_CHAT_16579_CRUSOE", + 181: "MODEL_CHAT_18805", + 210: "MODEL_CHAT_18468", + 233: "MODEL_CHAT_19484", + 235: "MODEL_CHAT_20706", + 245: "MODEL_CHAT_21779", + 211: "MODEL_CHAT_19040", + 229: "MODEL_CHAT_19820", + 230: "MODEL_CHAT_19821", + 244: "MODEL_CHAT_19821_CRUSOE", + 269: "MODEL_CHAT_23310", + 330: "MODEL_CHAT_28580", + 331: "MODEL_CHAT_28581", + 332: "MODEL_CHAT_28582", + 333: "MODEL_CHAT_28583", + 334: "MODEL_CHAT_28584", + 231: "MODEL_CHAT_19822", + 255: "MODEL_CHAT_22798", + 256: "MODEL_CHAT_22799", + 257: "MODEL_CHAT_22800", + 267: "MODEL_CHAT_23151", + 268: "MODEL_CHAT_23152", + 500: "MODEL_TAB_ARMADILLO", + 501: "MODEL_TAB_BASE_1", + 502: "MODEL_TAB_EXPERIMENTAL_1", + 503: "MODEL_TAB_EXPERIMENTAL_2", + 504: "MODEL_TAB_EXPERIMENTAL_3", + 505: "MODEL_TAB_EXPERIMENTAL_4", + 506: "MODEL_TAB_EXPERIMENTAL_5", + 507: "MODEL_TAB_EXPERIMENTAL_6", + 508: "MODEL_TAB_EXPERIMENTAL_7", + 509: "MODEL_TAB_EXPERIMENTAL_8", + 510: "MODEL_TAB_EXPERIMENTAL_9", + 511: "MODEL_TAB_EXPERIMENTAL_10", + 270: "MODEL_CASCADE_22893", + 225: "MODEL_CASCADE_20064", + 236: "MODEL_CASCADE_20065", + 237: "MODEL_CASCADE_20066", + 238: "MODEL_CASCADE_20067", + 239: "MODEL_CASCADE_20068", + 240: "MODEL_CASCADE_20069", + 250: "MODEL_CASCADE_20070", + 251: "MODEL_CASCADE_20071", + 252: "MODEL_CASCADE_20072", + 253: "MODEL_CASCADE_20073", + 254: "MODEL_CASCADE_20074", + 307: "MODEL_CASCADE_20075", + 308: "MODEL_CASCADE_20076", + 309: "MODEL_CASCADE_20077", + 310: "MODEL_CASCADE_20078", + 311: "MODEL_CASCADE_20079", + 297: "MODEL_CASCADE_20080", + 298: "MODEL_CASCADE_20081", + 299: "MODEL_CASCADE_20082", + 300: "MODEL_CASCADE_20083", + 301: "MODEL_CASCADE_20084", + 302: "MODEL_CASCADE_20085", + 303: "MODEL_CASCADE_20086", + 304: "MODEL_CASCADE_20087", + 305: "MODEL_CASCADE_20088", + 306: "MODEL_CASCADE_20089", + 247: "MODEL_DEEPSEEK_V3_INTERNAL", + 248: "MODEL_DEEPSEEK_V3_0324_INTERNAL", + 249: "MODEL_DEEPSEEK_R1_INTERNAL", + 241: "MODEL_ANTHROPIC_WINDSURF_RESEARCH", + 242: "MODEL_ANTHROPIC_WINDSURF_RESEARCH_THINKING", + 65: "MODEL_DRAFT_11408", + 67: "MODEL_DRAFT_CHAT_11883", + 72: "MODEL_DRAFT_CHAT_12196", + 73: "MODEL_DRAFT_CHAT_12413", + 104: "MODEL_DRAFT_CHAT_13175", + 232: "MODEL_DRAFT_CHAT_19823", + 243: "MODEL_DRAFT_CHAT_20707", + 258: "MODEL_DRAFT_CHAT_22801", + 273: "MODEL_DRAFT_CHAT_23508", + 274: "MODEL_DRAFT_CASCADE_23672", + 28: "MODEL_CHAT_3_5_TURBO", + 30: "MODEL_CHAT_GPT_4", + 37: "MODEL_CHAT_GPT_4_1106_PREVIEW", + 91: "MODEL_TEXT_EMBEDDING_OPENAI_ADA", + 163: "MODEL_TEXT_EMBEDDING_OPENAI_3_SMALL", + 164: "MODEL_TEXT_EMBEDDING_OPENAI_3_LARGE", + 71: "MODEL_CHAT_GPT_4O_2024_05_13", + 109: "MODEL_CHAT_GPT_4O_2024_08_06", + 113: "MODEL_CHAT_GPT_4O_MINI_2024_07_18", + 259: "MODEL_CHAT_GPT_4_1_2025_04_14", + 260: "MODEL_CHAT_GPT_4_1_MINI_2025_04_14", + 261: "MODEL_CHAT_GPT_4_1_NANO_2025_04_14", + 117: "MODEL_CHAT_O1_PREVIEW", + 118: "MODEL_CHAT_O1_MINI", + 170: "MODEL_CHAT_O1", + 207: "MODEL_CHAT_O3_MINI", + 213: "MODEL_CHAT_O3_MINI_LOW", + 214: "MODEL_CHAT_O3_MINI_HIGH", + 218: "MODEL_CHAT_O3", + 262: "MODEL_CHAT_O3_LOW", + 263: "MODEL_CHAT_O3_HIGH", + 264: "MODEL_CHAT_O4_MINI", + 265: "MODEL_CHAT_O4_MINI_LOW", + 266: "MODEL_CHAT_O4_MINI_HIGH", + 228: "MODEL_CHAT_GPT_4_5", + 287: "MODEL_CODEX_MINI_LATEST", + 288: "MODEL_CODEX_MINI_LATEST_LOW", + 289: "MODEL_CODEX_MINI_LATEST_HIGH", + 294: "MODEL_O3_PRO_2025_06_10", + 295: "MODEL_O3_PRO_2025_06_10_LOW", + 296: "MODEL_O3_PRO_2025_06_10_HIGH", + 326: "MODEL_GPT_OSS_120B", + 337: "MODEL_GPT_5_NANO", + 338: "MODEL_CHAT_GPT_5_MINIMAL", + 339: "MODEL_CHAT_GPT_5_LOW", + 340: "MODEL_CHAT_GPT_5", + 341: "MODEL_CHAT_GPT_5_HIGH", + 346: "MODEL_CHAT_GPT_5_CODEX", + 385: "MODEL_GPT_5_1_CODEX_MINI_LOW", + 386: "MODEL_GPT_5_1_CODEX_MINI_MEDIUM", + 387: "MODEL_GPT_5_1_CODEX_MINI_HIGH", + 388: "MODEL_GPT_5_1_CODEX_LOW", + 389: "MODEL_GPT_5_1_CODEX_MEDIUM", + 390: "MODEL_GPT_5_1_CODEX_HIGH", + 395: "MODEL_GPT_5_1_CODEX_MAX_LOW", + 396: "MODEL_GPT_5_1_CODEX_MAX_MEDIUM", + 397: "MODEL_GPT_5_1_CODEX_MAX_HIGH", + 61: "MODEL_GOOGLE_GEMINI_1_0_PRO", + 62: "MODEL_GOOGLE_GEMINI_1_5_PRO", + 183: "MODEL_GOOGLE_GEMINI_EXP_1206", + 184: "MODEL_GOOGLE_GEMINI_2_0_FLASH", + 246: "MODEL_GOOGLE_GEMINI_2_5_PRO", + 272: "MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_04_17", + 275: "MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20", + 276: "MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20_THINKING", + 312: "MODEL_GOOGLE_GEMINI_2_5_FLASH", + 313: "MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING", + 343: "MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE", + 378: "MODEL_GOOGLE_GEMINI_3_0_PRO_LOW", + 379: "MODEL_GOOGLE_GEMINI_3_0_PRO_HIGH", + 411: "MODEL_GOOGLE_GEMINI_3_0_PRO_MINIMAL", + 412: "MODEL_GOOGLE_GEMINI_3_0_PRO_MEDIUM", + 413: "MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL", + 414: "MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW", + 415: "MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM", + 416: "MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH", + 63: "MODEL_CLAUDE_3_OPUS_20240229", + 64: "MODEL_CLAUDE_3_SONNET_20240229", + 172: "MODEL_CLAUDE_3_HAIKU_20240307", + 171: "MODEL_CLAUDE_3_5_HAIKU_20241022", + 80: "MODEL_CLAUDE_3_5_SONNET_20240620", + 166: "MODEL_CLAUDE_3_5_SONNET_20241022", + 226: "MODEL_CLAUDE_3_7_SONNET_20250219", + 227: "MODEL_CLAUDE_3_7_SONNET_20250219_THINKING", + 284: "MODEL_CLAUDE_3_5_SONNET_BYOK", + 285: "MODEL_CLAUDE_3_7_SONNET_BYOK", + 319: "MODEL_CLAUDE_3_7_SONNET_OPEN_ROUTER_BYOK", + 286: "MODEL_CLAUDE_3_7_SONNET_THINKING_BYOK", + 320: "MODEL_CLAUDE_3_7_SONNET_THINKING_OPEN_ROUTER_BYOK", + 277: "MODEL_CLAUDE_4_OPUS_BYOK", + 278: "MODEL_CLAUDE_4_OPUS_THINKING_BYOK", + 290: "MODEL_CLAUDE_4_OPUS", + 291: "MODEL_CLAUDE_4_OPUS_THINKING", + 279: "MODEL_CLAUDE_4_SONNET_BYOK", + 321: "MODEL_CLAUDE_4_SONNET_OPEN_ROUTER_BYOK", + 280: "MODEL_CLAUDE_4_SONNET_THINKING_BYOK", + 322: "MODEL_CLAUDE_4_SONNET_THINKING_OPEN_ROUTER_BYOK", + 281: "MODEL_CLAUDE_4_SONNET", + 282: "MODEL_CLAUDE_4_SONNET_THINKING", + 328: "MODEL_CLAUDE_4_1_OPUS", + 329: "MODEL_CLAUDE_4_1_OPUS_THINKING", + 353: "MODEL_CLAUDE_4_5_SONNET", + 354: "MODEL_CLAUDE_4_5_SONNET_THINKING", + 370: "MODEL_CLAUDE_4_5_SONNET_1M", + 371: "MODEL_CLAUDE_4_5_SONNET_THINKING_1M", + 391: "MODEL_CLAUDE_4_5_OPUS", + 392: "MODEL_CLAUDE_4_5_OPUS_THINKING", + 292: "MODEL_CLAUDE_4_SONNET_DATABRICKS", + 293: "MODEL_CLAUDE_4_SONNET_THINKING_DATABRICKS", + 81: "MODEL_TOGETHERAI_TEXT_EMBEDDING_M2_BERT", + 165: "MODEL_TOGETHERAI_LLAMA_3_1_8B_INSTRUCT", + 82: "MODEL_HUGGING_FACE_TEXT_EMBEDDING_M2_BERT", + 83: "MODEL_HUGGING_FACE_TEXT_EMBEDDING_UAE_CODE", + 84: "MODEL_HUGGING_FACE_TEXT_EMBEDDING_BGE", + 85: "MODEL_HUGGING_FACE_TEXT_EMBEDDING_BLADE", + 86: "MODEL_HUGGING_FACE_TEXT_EMBEDDING_ARCTIC_LARGE", + 87: "MODEL_HUGGING_FACE_TEXT_EMBEDDING_E5_BASE", + 88: "MODEL_HUGGING_FACE_TEXT_EMBEDDING_MXBAI", + 106: "MODEL_LLAMA_3_1_8B_INSTRUCT", + 107: "MODEL_LLAMA_3_1_70B_INSTRUCT", + 105: "MODEL_LLAMA_3_1_405B_INSTRUCT", + 208: "MODEL_LLAMA_3_3_70B_INSTRUCT", + 209: "MODEL_LLAMA_3_3_70B_INSTRUCT_R1", + 116: "MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT", + 176: "MODEL_LLAMA_3_1_8B_HERMES_3", + 177: "MODEL_LLAMA_3_1_70B_HERMES_3", + 178: "MODEL_QWEN_2_5_7B_INSTRUCT", + 179: "MODEL_QWEN_2_5_32B_INSTRUCT", + 180: "MODEL_QWEN_2_5_72B_INSTRUCT", + 224: "MODEL_QWEN_2_5_32B_INSTRUCT_R1", + 324: "MODEL_QWEN_3_235B_INSTRUCT", + 325: "MODEL_QWEN_3_CODER_480B_INSTRUCT", + 327: "MODEL_QWEN_3_CODER_480B_INSTRUCT_FAST", + 342: "MODEL_GLM_4_5", + 352: "MODEL_GLM_4_5_FAST", + 356: "MODEL_GLM_4_6", + 357: "MODEL_GLM_4_6_FAST", + 417: "MODEL_GLM_4_7", + 418: "MODEL_GLM_4_7_FAST", + 359: "MODEL_SWE_1_5", + 361: "MODEL_SWE_1_5_REDIRECT", + 369: "MODEL_SWE_1_5_THINKING", + 377: "MODEL_SWE_1_5_SLOW", + 420: "MODEL_SWE_1_6", + 421: "MODEL_SWE_1_6_FAST", + 358: "MODEL_CODEMAP_SMALL", + 360: "MODEL_CODEMAP_MEDIUM", + 362: "MODEL_CODEMAP_SMART", + 355: "MODEL_COGNITION_INSTANT_CONTEXT", + 335: "MODEL_LLAMA_FT_DEEPWIKI_ARTICLE", + 336: "MODEL_LLAMA_FT_DEEPWIKI_HOVER", + 398: "MODEL_LLAMA_FT_LIFEGUARD", + 410: "MODEL_COGNITION_LIFEGUARD", + 89: "MODEL_NOMIC_TEXT_EMBEDDING_V1", + 90: "MODEL_NOMIC_TEXT_EMBEDDING_V1_5", + 77: "MODEL_MISTRAL_7B", + 99: "MODEL_SALESFORCE_EMBEDDING_2R", + 182: "MODEL_CUSTOM_VLLM", + 92: "MODEL_TEI_BGE_M3", + 93: "MODEL_TEI_NOMIC_EMBED_TEXT_V1", + 94: "MODEL_TEI_INTFLOAT_E5_LARGE_INSTRUCT", + 95: "MODEL_TEI_SNOWFLAKE_ARCTIC_EMBED_L", + 96: "MODEL_TEI_UAE_CODE_LARGE_V1", + 97: "MODEL_TEI_B1ADE", + 98: "MODEL_TEI_WHEREISAI_UAE_LARGE_V1", + 100: "MODEL_TEI_WHEREISAI_UAE_CODE_LARGE_V1", + 200: "MODEL_OPENAI_COMPATIBLE", + 201: "MODEL_ANTHROPIC_COMPATIBLE", + 202: "MODEL_VERTEX_COMPATIBLE", + 203: "MODEL_BEDROCK_COMPATIBLE", + 204: "MODEL_AZURE_COMPATIBLE", + 205: "MODEL_DEEPSEEK_V3", + 206: "MODEL_DEEPSEEK_R1", + 215: "MODEL_DEEPSEEK_R1_SLOW", + 216: "MODEL_DEEPSEEK_R1_FAST", + 323: "MODEL_KIMI_K2", + 368: "MODEL_MINIMAX_M2", + 419: "MODEL_MINIMAX_M2_1", + 409: "MODEL_DEEPSEEK_V3_2", + 394: "MODEL_KIMI_K2_THINKING", + 185: "MODEL_CUSTOM_OPEN_ROUTER", + 212: "MODEL_XAI_GROK_2", + 217: "MODEL_XAI_GROK_3", + 234: "MODEL_XAI_GROK_3_MINI_REASONING", + 345: "MODEL_XAI_GROK_CODE_FAST", + 219: "MODEL_PRIVATE_1", + 220: "MODEL_PRIVATE_2", + 221: "MODEL_PRIVATE_3", + 222: "MODEL_PRIVATE_4", + 223: "MODEL_PRIVATE_5", + 314: "MODEL_PRIVATE_6", + 315: "MODEL_PRIVATE_7", + 316: "MODEL_PRIVATE_8", + 317: "MODEL_PRIVATE_9", + 318: "MODEL_PRIVATE_10", + 347: "MODEL_PRIVATE_11", + 348: "MODEL_PRIVATE_12", + 349: "MODEL_PRIVATE_13", + 350: "MODEL_PRIVATE_14", + 351: "MODEL_PRIVATE_15", + 363: "MODEL_PRIVATE_16", + 364: "MODEL_PRIVATE_17", + 365: "MODEL_PRIVATE_18", + 366: "MODEL_PRIVATE_19", + 367: "MODEL_PRIVATE_20", + 372: "MODEL_PRIVATE_21", + 373: "MODEL_PRIVATE_22", + 374: "MODEL_PRIVATE_23", + 375: "MODEL_PRIVATE_24", + 376: "MODEL_PRIVATE_25", + 380: "MODEL_PRIVATE_26", + 381: "MODEL_PRIVATE_27", + 382: "MODEL_PRIVATE_28", + 383: "MODEL_PRIVATE_29", + 384: "MODEL_PRIVATE_30", + 399: "MODEL_GPT_5_2_NONE", + 400: "MODEL_GPT_5_2_LOW", + 401: "MODEL_GPT_5_2_MEDIUM", + 402: "MODEL_GPT_5_2_HIGH", + 403: "MODEL_GPT_5_2_XHIGH", + 404: "MODEL_GPT_5_2_NONE_PRIORITY", + 405: "MODEL_GPT_5_2_LOW_PRIORITY", + 406: "MODEL_GPT_5_2_MEDIUM_PRIORITY", + 407: "MODEL_GPT_5_2_HIGH_PRIORITY", + 408: "MODEL_GPT_5_2_XHIGH_PRIORITY", + 422: "MODEL_GPT_5_2_CODEX_LOW", + 423: "MODEL_GPT_5_2_CODEX_MEDIUM", + 424: "MODEL_GPT_5_2_CODEX_HIGH", + 425: "MODEL_GPT_5_2_CODEX_XHIGH", + 426: "MODEL_GPT_5_2_CODEX_LOW_PRIORITY", + 427: "MODEL_GPT_5_2_CODEX_MEDIUM_PRIORITY", + 428: "MODEL_GPT_5_2_CODEX_HIGH_PRIORITY", + 429: "MODEL_GPT_5_2_CODEX_XHIGH_PRIORITY", + 600: "MODEL_SGLANG_ROLLOUT", + } + Model_value = map[string]int32{ + "MODEL_UNSPECIFIED": 0, + "MODEL_EMBED_6591": 20, + "MODEL_8341": 33, + "MODEL_8528": 42, + "MODEL_9024": 41, + "MODEL_14602": 112, + "MODEL_15133": 115, + "MODEL_15302": 119, + "MODEL_15335": 121, + "MODEL_15336": 122, + "MODEL_15931": 167, + "MODEL_QUERY_9905": 48, + "MODEL_QUERY_11791": 66, + "MODEL_CHAT_11120": 57, + "MODEL_CHAT_11121": 58, + "MODEL_CHAT_12119": 70, + "MODEL_CHAT_12121": 69, + "MODEL_CHAT_12437": 74, + "MODEL_CHAT_12491": 76, + "MODEL_CHAT_12623": 78, + "MODEL_CHAT_12950": 79, + "MODEL_CHAT_12968": 101, + "MODEL_CHAT_13404": 102, + "MODEL_CHAT_13566": 103, + "MODEL_CHAT_13930": 108, + "MODEL_CHAT_14255": 110, + "MODEL_CHAT_14256": 111, + "MODEL_CHAT_14942": 114, + "MODEL_CHAT_15305": 120, + "MODEL_CHAT_15600": 123, + "MODEL_CHAT_16801": 124, + "MODEL_CHAT_16718": 175, + "MODEL_CHAT_15729": 168, + "MODEL_CHAT_16579": 173, + "MODEL_CHAT_16579_CRUSOE": 174, + "MODEL_CHAT_18805": 181, + "MODEL_CHAT_18468": 210, + "MODEL_CHAT_19484": 233, + "MODEL_CHAT_20706": 235, + "MODEL_CHAT_21779": 245, + "MODEL_CHAT_19040": 211, + "MODEL_CHAT_19820": 229, + "MODEL_CHAT_19821": 230, + "MODEL_CHAT_19821_CRUSOE": 244, + "MODEL_CHAT_23310": 269, + "MODEL_CHAT_28580": 330, + "MODEL_CHAT_28581": 331, + "MODEL_CHAT_28582": 332, + "MODEL_CHAT_28583": 333, + "MODEL_CHAT_28584": 334, + "MODEL_CHAT_19822": 231, + "MODEL_CHAT_22798": 255, + "MODEL_CHAT_22799": 256, + "MODEL_CHAT_22800": 257, + "MODEL_CHAT_23151": 267, + "MODEL_CHAT_23152": 268, + "MODEL_TAB_ARMADILLO": 500, + "MODEL_TAB_BASE_1": 501, + "MODEL_TAB_EXPERIMENTAL_1": 502, + "MODEL_TAB_EXPERIMENTAL_2": 503, + "MODEL_TAB_EXPERIMENTAL_3": 504, + "MODEL_TAB_EXPERIMENTAL_4": 505, + "MODEL_TAB_EXPERIMENTAL_5": 506, + "MODEL_TAB_EXPERIMENTAL_6": 507, + "MODEL_TAB_EXPERIMENTAL_7": 508, + "MODEL_TAB_EXPERIMENTAL_8": 509, + "MODEL_TAB_EXPERIMENTAL_9": 510, + "MODEL_TAB_EXPERIMENTAL_10": 511, + "MODEL_CASCADE_22893": 270, + "MODEL_CASCADE_20064": 225, + "MODEL_CASCADE_20065": 236, + "MODEL_CASCADE_20066": 237, + "MODEL_CASCADE_20067": 238, + "MODEL_CASCADE_20068": 239, + "MODEL_CASCADE_20069": 240, + "MODEL_CASCADE_20070": 250, + "MODEL_CASCADE_20071": 251, + "MODEL_CASCADE_20072": 252, + "MODEL_CASCADE_20073": 253, + "MODEL_CASCADE_20074": 254, + "MODEL_CASCADE_20075": 307, + "MODEL_CASCADE_20076": 308, + "MODEL_CASCADE_20077": 309, + "MODEL_CASCADE_20078": 310, + "MODEL_CASCADE_20079": 311, + "MODEL_CASCADE_20080": 297, + "MODEL_CASCADE_20081": 298, + "MODEL_CASCADE_20082": 299, + "MODEL_CASCADE_20083": 300, + "MODEL_CASCADE_20084": 301, + "MODEL_CASCADE_20085": 302, + "MODEL_CASCADE_20086": 303, + "MODEL_CASCADE_20087": 304, + "MODEL_CASCADE_20088": 305, + "MODEL_CASCADE_20089": 306, + "MODEL_DEEPSEEK_V3_INTERNAL": 247, + "MODEL_DEEPSEEK_V3_0324_INTERNAL": 248, + "MODEL_DEEPSEEK_R1_INTERNAL": 249, + "MODEL_ANTHROPIC_WINDSURF_RESEARCH": 241, + "MODEL_ANTHROPIC_WINDSURF_RESEARCH_THINKING": 242, + "MODEL_DRAFT_11408": 65, + "MODEL_DRAFT_CHAT_11883": 67, + "MODEL_DRAFT_CHAT_12196": 72, + "MODEL_DRAFT_CHAT_12413": 73, + "MODEL_DRAFT_CHAT_13175": 104, + "MODEL_DRAFT_CHAT_19823": 232, + "MODEL_DRAFT_CHAT_20707": 243, + "MODEL_DRAFT_CHAT_22801": 258, + "MODEL_DRAFT_CHAT_23508": 273, + "MODEL_DRAFT_CASCADE_23672": 274, + "MODEL_CHAT_3_5_TURBO": 28, + "MODEL_CHAT_GPT_4": 30, + "MODEL_CHAT_GPT_4_1106_PREVIEW": 37, + "MODEL_TEXT_EMBEDDING_OPENAI_ADA": 91, + "MODEL_TEXT_EMBEDDING_OPENAI_3_SMALL": 163, + "MODEL_TEXT_EMBEDDING_OPENAI_3_LARGE": 164, + "MODEL_CHAT_GPT_4O_2024_05_13": 71, + "MODEL_CHAT_GPT_4O_2024_08_06": 109, + "MODEL_CHAT_GPT_4O_MINI_2024_07_18": 113, + "MODEL_CHAT_GPT_4_1_2025_04_14": 259, + "MODEL_CHAT_GPT_4_1_MINI_2025_04_14": 260, + "MODEL_CHAT_GPT_4_1_NANO_2025_04_14": 261, + "MODEL_CHAT_O1_PREVIEW": 117, + "MODEL_CHAT_O1_MINI": 118, + "MODEL_CHAT_O1": 170, + "MODEL_CHAT_O3_MINI": 207, + "MODEL_CHAT_O3_MINI_LOW": 213, + "MODEL_CHAT_O3_MINI_HIGH": 214, + "MODEL_CHAT_O3": 218, + "MODEL_CHAT_O3_LOW": 262, + "MODEL_CHAT_O3_HIGH": 263, + "MODEL_CHAT_O4_MINI": 264, + "MODEL_CHAT_O4_MINI_LOW": 265, + "MODEL_CHAT_O4_MINI_HIGH": 266, + "MODEL_CHAT_GPT_4_5": 228, + "MODEL_CODEX_MINI_LATEST": 287, + "MODEL_CODEX_MINI_LATEST_LOW": 288, + "MODEL_CODEX_MINI_LATEST_HIGH": 289, + "MODEL_O3_PRO_2025_06_10": 294, + "MODEL_O3_PRO_2025_06_10_LOW": 295, + "MODEL_O3_PRO_2025_06_10_HIGH": 296, + "MODEL_GPT_OSS_120B": 326, + "MODEL_GPT_5_NANO": 337, + "MODEL_CHAT_GPT_5_MINIMAL": 338, + "MODEL_CHAT_GPT_5_LOW": 339, + "MODEL_CHAT_GPT_5": 340, + "MODEL_CHAT_GPT_5_HIGH": 341, + "MODEL_CHAT_GPT_5_CODEX": 346, + "MODEL_GPT_5_1_CODEX_MINI_LOW": 385, + "MODEL_GPT_5_1_CODEX_MINI_MEDIUM": 386, + "MODEL_GPT_5_1_CODEX_MINI_HIGH": 387, + "MODEL_GPT_5_1_CODEX_LOW": 388, + "MODEL_GPT_5_1_CODEX_MEDIUM": 389, + "MODEL_GPT_5_1_CODEX_HIGH": 390, + "MODEL_GPT_5_1_CODEX_MAX_LOW": 395, + "MODEL_GPT_5_1_CODEX_MAX_MEDIUM": 396, + "MODEL_GPT_5_1_CODEX_MAX_HIGH": 397, + "MODEL_GOOGLE_GEMINI_1_0_PRO": 61, + "MODEL_GOOGLE_GEMINI_1_5_PRO": 62, + "MODEL_GOOGLE_GEMINI_EXP_1206": 183, + "MODEL_GOOGLE_GEMINI_2_0_FLASH": 184, + "MODEL_GOOGLE_GEMINI_2_5_PRO": 246, + "MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_04_17": 272, + "MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20": 275, + "MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20_THINKING": 276, + "MODEL_GOOGLE_GEMINI_2_5_FLASH": 312, + "MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING": 313, + "MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE": 343, + "MODEL_GOOGLE_GEMINI_3_0_PRO_LOW": 378, + "MODEL_GOOGLE_GEMINI_3_0_PRO_HIGH": 379, + "MODEL_GOOGLE_GEMINI_3_0_PRO_MINIMAL": 411, + "MODEL_GOOGLE_GEMINI_3_0_PRO_MEDIUM": 412, + "MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL": 413, + "MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW": 414, + "MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM": 415, + "MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH": 416, + "MODEL_CLAUDE_3_OPUS_20240229": 63, + "MODEL_CLAUDE_3_SONNET_20240229": 64, + "MODEL_CLAUDE_3_HAIKU_20240307": 172, + "MODEL_CLAUDE_3_5_HAIKU_20241022": 171, + "MODEL_CLAUDE_3_5_SONNET_20240620": 80, + "MODEL_CLAUDE_3_5_SONNET_20241022": 166, + "MODEL_CLAUDE_3_7_SONNET_20250219": 226, + "MODEL_CLAUDE_3_7_SONNET_20250219_THINKING": 227, + "MODEL_CLAUDE_3_5_SONNET_BYOK": 284, + "MODEL_CLAUDE_3_7_SONNET_BYOK": 285, + "MODEL_CLAUDE_3_7_SONNET_OPEN_ROUTER_BYOK": 319, + "MODEL_CLAUDE_3_7_SONNET_THINKING_BYOK": 286, + "MODEL_CLAUDE_3_7_SONNET_THINKING_OPEN_ROUTER_BYOK": 320, + "MODEL_CLAUDE_4_OPUS_BYOK": 277, + "MODEL_CLAUDE_4_OPUS_THINKING_BYOK": 278, + "MODEL_CLAUDE_4_OPUS": 290, + "MODEL_CLAUDE_4_OPUS_THINKING": 291, + "MODEL_CLAUDE_4_SONNET_BYOK": 279, + "MODEL_CLAUDE_4_SONNET_OPEN_ROUTER_BYOK": 321, + "MODEL_CLAUDE_4_SONNET_THINKING_BYOK": 280, + "MODEL_CLAUDE_4_SONNET_THINKING_OPEN_ROUTER_BYOK": 322, + "MODEL_CLAUDE_4_SONNET": 281, + "MODEL_CLAUDE_4_SONNET_THINKING": 282, + "MODEL_CLAUDE_4_1_OPUS": 328, + "MODEL_CLAUDE_4_1_OPUS_THINKING": 329, + "MODEL_CLAUDE_4_5_SONNET": 353, + "MODEL_CLAUDE_4_5_SONNET_THINKING": 354, + "MODEL_CLAUDE_4_5_SONNET_1M": 370, + "MODEL_CLAUDE_4_5_SONNET_THINKING_1M": 371, + "MODEL_CLAUDE_4_5_OPUS": 391, + "MODEL_CLAUDE_4_5_OPUS_THINKING": 392, + "MODEL_CLAUDE_4_SONNET_DATABRICKS": 292, + "MODEL_CLAUDE_4_SONNET_THINKING_DATABRICKS": 293, + "MODEL_TOGETHERAI_TEXT_EMBEDDING_M2_BERT": 81, + "MODEL_TOGETHERAI_LLAMA_3_1_8B_INSTRUCT": 165, + "MODEL_HUGGING_FACE_TEXT_EMBEDDING_M2_BERT": 82, + "MODEL_HUGGING_FACE_TEXT_EMBEDDING_UAE_CODE": 83, + "MODEL_HUGGING_FACE_TEXT_EMBEDDING_BGE": 84, + "MODEL_HUGGING_FACE_TEXT_EMBEDDING_BLADE": 85, + "MODEL_HUGGING_FACE_TEXT_EMBEDDING_ARCTIC_LARGE": 86, + "MODEL_HUGGING_FACE_TEXT_EMBEDDING_E5_BASE": 87, + "MODEL_HUGGING_FACE_TEXT_EMBEDDING_MXBAI": 88, + "MODEL_LLAMA_3_1_8B_INSTRUCT": 106, + "MODEL_LLAMA_3_1_70B_INSTRUCT": 107, + "MODEL_LLAMA_3_1_405B_INSTRUCT": 105, + "MODEL_LLAMA_3_3_70B_INSTRUCT": 208, + "MODEL_LLAMA_3_3_70B_INSTRUCT_R1": 209, + "MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT": 116, + "MODEL_LLAMA_3_1_8B_HERMES_3": 176, + "MODEL_LLAMA_3_1_70B_HERMES_3": 177, + "MODEL_QWEN_2_5_7B_INSTRUCT": 178, + "MODEL_QWEN_2_5_32B_INSTRUCT": 179, + "MODEL_QWEN_2_5_72B_INSTRUCT": 180, + "MODEL_QWEN_2_5_32B_INSTRUCT_R1": 224, + "MODEL_QWEN_3_235B_INSTRUCT": 324, + "MODEL_QWEN_3_CODER_480B_INSTRUCT": 325, + "MODEL_QWEN_3_CODER_480B_INSTRUCT_FAST": 327, + "MODEL_GLM_4_5": 342, + "MODEL_GLM_4_5_FAST": 352, + "MODEL_GLM_4_6": 356, + "MODEL_GLM_4_6_FAST": 357, + "MODEL_GLM_4_7": 417, + "MODEL_GLM_4_7_FAST": 418, + "MODEL_SWE_1_5": 359, + "MODEL_SWE_1_5_REDIRECT": 361, + "MODEL_SWE_1_5_THINKING": 369, + "MODEL_SWE_1_5_SLOW": 377, + "MODEL_SWE_1_6": 420, + "MODEL_SWE_1_6_FAST": 421, + "MODEL_CODEMAP_SMALL": 358, + "MODEL_CODEMAP_MEDIUM": 360, + "MODEL_CODEMAP_SMART": 362, + "MODEL_COGNITION_INSTANT_CONTEXT": 355, + "MODEL_LLAMA_FT_DEEPWIKI_ARTICLE": 335, + "MODEL_LLAMA_FT_DEEPWIKI_HOVER": 336, + "MODEL_LLAMA_FT_LIFEGUARD": 398, + "MODEL_COGNITION_LIFEGUARD": 410, + "MODEL_NOMIC_TEXT_EMBEDDING_V1": 89, + "MODEL_NOMIC_TEXT_EMBEDDING_V1_5": 90, + "MODEL_MISTRAL_7B": 77, + "MODEL_SALESFORCE_EMBEDDING_2R": 99, + "MODEL_CUSTOM_VLLM": 182, + "MODEL_TEI_BGE_M3": 92, + "MODEL_TEI_NOMIC_EMBED_TEXT_V1": 93, + "MODEL_TEI_INTFLOAT_E5_LARGE_INSTRUCT": 94, + "MODEL_TEI_SNOWFLAKE_ARCTIC_EMBED_L": 95, + "MODEL_TEI_UAE_CODE_LARGE_V1": 96, + "MODEL_TEI_B1ADE": 97, + "MODEL_TEI_WHEREISAI_UAE_LARGE_V1": 98, + "MODEL_TEI_WHEREISAI_UAE_CODE_LARGE_V1": 100, + "MODEL_OPENAI_COMPATIBLE": 200, + "MODEL_ANTHROPIC_COMPATIBLE": 201, + "MODEL_VERTEX_COMPATIBLE": 202, + "MODEL_BEDROCK_COMPATIBLE": 203, + "MODEL_AZURE_COMPATIBLE": 204, + "MODEL_DEEPSEEK_V3": 205, + "MODEL_DEEPSEEK_R1": 206, + "MODEL_DEEPSEEK_R1_SLOW": 215, + "MODEL_DEEPSEEK_R1_FAST": 216, + "MODEL_KIMI_K2": 323, + "MODEL_MINIMAX_M2": 368, + "MODEL_MINIMAX_M2_1": 419, + "MODEL_DEEPSEEK_V3_2": 409, + "MODEL_KIMI_K2_THINKING": 394, + "MODEL_CUSTOM_OPEN_ROUTER": 185, + "MODEL_XAI_GROK_2": 212, + "MODEL_XAI_GROK_3": 217, + "MODEL_XAI_GROK_3_MINI_REASONING": 234, + "MODEL_XAI_GROK_CODE_FAST": 345, + "MODEL_PRIVATE_1": 219, + "MODEL_PRIVATE_2": 220, + "MODEL_PRIVATE_3": 221, + "MODEL_PRIVATE_4": 222, + "MODEL_PRIVATE_5": 223, + "MODEL_PRIVATE_6": 314, + "MODEL_PRIVATE_7": 315, + "MODEL_PRIVATE_8": 316, + "MODEL_PRIVATE_9": 317, + "MODEL_PRIVATE_10": 318, + "MODEL_PRIVATE_11": 347, + "MODEL_PRIVATE_12": 348, + "MODEL_PRIVATE_13": 349, + "MODEL_PRIVATE_14": 350, + "MODEL_PRIVATE_15": 351, + "MODEL_PRIVATE_16": 363, + "MODEL_PRIVATE_17": 364, + "MODEL_PRIVATE_18": 365, + "MODEL_PRIVATE_19": 366, + "MODEL_PRIVATE_20": 367, + "MODEL_PRIVATE_21": 372, + "MODEL_PRIVATE_22": 373, + "MODEL_PRIVATE_23": 374, + "MODEL_PRIVATE_24": 375, + "MODEL_PRIVATE_25": 376, + "MODEL_PRIVATE_26": 380, + "MODEL_PRIVATE_27": 381, + "MODEL_PRIVATE_28": 382, + "MODEL_PRIVATE_29": 383, + "MODEL_PRIVATE_30": 384, + "MODEL_GPT_5_2_NONE": 399, + "MODEL_GPT_5_2_LOW": 400, + "MODEL_GPT_5_2_MEDIUM": 401, + "MODEL_GPT_5_2_HIGH": 402, + "MODEL_GPT_5_2_XHIGH": 403, + "MODEL_GPT_5_2_NONE_PRIORITY": 404, + "MODEL_GPT_5_2_LOW_PRIORITY": 405, + "MODEL_GPT_5_2_MEDIUM_PRIORITY": 406, + "MODEL_GPT_5_2_HIGH_PRIORITY": 407, + "MODEL_GPT_5_2_XHIGH_PRIORITY": 408, + "MODEL_GPT_5_2_CODEX_LOW": 422, + "MODEL_GPT_5_2_CODEX_MEDIUM": 423, + "MODEL_GPT_5_2_CODEX_HIGH": 424, + "MODEL_GPT_5_2_CODEX_XHIGH": 425, + "MODEL_GPT_5_2_CODEX_LOW_PRIORITY": 426, + "MODEL_GPT_5_2_CODEX_MEDIUM_PRIORITY": 427, + "MODEL_GPT_5_2_CODEX_HIGH_PRIORITY": 428, + "MODEL_GPT_5_2_CODEX_XHIGH_PRIORITY": 429, + "MODEL_SGLANG_ROLLOUT": 600, + } +) + +func (x Model) Enum() *Model { + p := new(Model) + *p = x + return p +} + +func (x Model) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Model) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[5].Descriptor() +} + +func (Model) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[5] +} + +func (x Model) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Model.Descriptor instead. +func (Model) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{5} +} + +type StopReason int32 + +const ( + StopReason_STOP_REASON_UNSPECIFIED StopReason = 0 + StopReason_STOP_REASON_INCOMPLETE StopReason = 1 + StopReason_STOP_REASON_STOP_PATTERN StopReason = 2 + StopReason_STOP_REASON_MAX_TOKENS StopReason = 3 + StopReason_STOP_REASON_MIN_LOG_PROB StopReason = 4 + StopReason_STOP_REASON_MAX_NEWLINES StopReason = 5 + StopReason_STOP_REASON_EXIT_SCOPE StopReason = 6 + StopReason_STOP_REASON_NONFINITE_LOGIT_OR_PROB StopReason = 7 + StopReason_STOP_REASON_FIRST_NON_WHITESPACE_LINE StopReason = 8 + StopReason_STOP_REASON_PARTIAL StopReason = 9 + StopReason_STOP_REASON_FUNCTION_CALL StopReason = 10 + StopReason_STOP_REASON_CONTENT_FILTER StopReason = 11 + StopReason_STOP_REASON_NON_INSERTION StopReason = 12 + StopReason_STOP_REASON_ERROR StopReason = 13 +) + +// Enum value maps for StopReason. +var ( + StopReason_name = map[int32]string{ + 0: "STOP_REASON_UNSPECIFIED", + 1: "STOP_REASON_INCOMPLETE", + 2: "STOP_REASON_STOP_PATTERN", + 3: "STOP_REASON_MAX_TOKENS", + 4: "STOP_REASON_MIN_LOG_PROB", + 5: "STOP_REASON_MAX_NEWLINES", + 6: "STOP_REASON_EXIT_SCOPE", + 7: "STOP_REASON_NONFINITE_LOGIT_OR_PROB", + 8: "STOP_REASON_FIRST_NON_WHITESPACE_LINE", + 9: "STOP_REASON_PARTIAL", + 10: "STOP_REASON_FUNCTION_CALL", + 11: "STOP_REASON_CONTENT_FILTER", + 12: "STOP_REASON_NON_INSERTION", + 13: "STOP_REASON_ERROR", + } + StopReason_value = map[string]int32{ + "STOP_REASON_UNSPECIFIED": 0, + "STOP_REASON_INCOMPLETE": 1, + "STOP_REASON_STOP_PATTERN": 2, + "STOP_REASON_MAX_TOKENS": 3, + "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, + "STOP_REASON_FUNCTION_CALL": 10, + "STOP_REASON_CONTENT_FILTER": 11, + "STOP_REASON_NON_INSERTION": 12, + "STOP_REASON_ERROR": 13, + } +) + +func (x StopReason) Enum() *StopReason { + p := new(StopReason) + *p = x + return p +} + +func (x StopReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StopReason) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[6].Descriptor() +} + +func (StopReason) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[6] +} + +func (x StopReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StopReason.Descriptor instead. +func (StopReason) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{6} +} + +type AuthSource int32 + +const ( + AuthSource_AUTH_SOURCE_CODEIUM AuthSource = 0 + AuthSource_AUTH_SOURCE_DEEPNOTE AuthSource = 1 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + AuthSource_AUTH_SOURCE_CODESANDBOX AuthSource = 2 + AuthSource_AUTH_SOURCE_STACKBLITZ AuthSource = 3 + AuthSource_AUTH_SOURCE_VALTOWN AuthSource = 4 + AuthSource_AUTH_SOURCE_HEX AuthSource = 5 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + AuthSource_AUTH_SOURCE_ZAPIER AuthSource = 6 + AuthSource_AUTH_SOURCE_SUPERBLOCKS AuthSource = 7 + AuthSource_AUTH_SOURCE_EMBARCADERO AuthSource = 8 +) + +// Enum value maps for AuthSource. +var ( + AuthSource_name = map[int32]string{ + 0: "AUTH_SOURCE_CODEIUM", + 1: "AUTH_SOURCE_DEEPNOTE", + 2: "AUTH_SOURCE_CODESANDBOX", + 3: "AUTH_SOURCE_STACKBLITZ", + 4: "AUTH_SOURCE_VALTOWN", + 5: "AUTH_SOURCE_HEX", + 6: "AUTH_SOURCE_ZAPIER", + 7: "AUTH_SOURCE_SUPERBLOCKS", + 8: "AUTH_SOURCE_EMBARCADERO", + } + AuthSource_value = map[string]int32{ + "AUTH_SOURCE_CODEIUM": 0, + "AUTH_SOURCE_DEEPNOTE": 1, + "AUTH_SOURCE_CODESANDBOX": 2, + "AUTH_SOURCE_STACKBLITZ": 3, + "AUTH_SOURCE_VALTOWN": 4, + "AUTH_SOURCE_HEX": 5, + "AUTH_SOURCE_ZAPIER": 6, + "AUTH_SOURCE_SUPERBLOCKS": 7, + "AUTH_SOURCE_EMBARCADERO": 8, + } +) + +func (x AuthSource) Enum() *AuthSource { + p := new(AuthSource) + *p = x + return p +} + +func (x AuthSource) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AuthSource) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[7].Descriptor() +} + +func (AuthSource) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[7] +} + +func (x AuthSource) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AuthSource.Descriptor instead. +func (AuthSource) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{7} +} + +type Language int32 + +const ( + Language_LANGUAGE_UNSPECIFIED Language = 0 + Language_LANGUAGE_C Language = 1 + Language_LANGUAGE_CLOJURE Language = 2 + Language_LANGUAGE_COFFEESCRIPT Language = 3 + Language_LANGUAGE_CPP Language = 4 + Language_LANGUAGE_CSHARP Language = 5 + Language_LANGUAGE_CSS Language = 6 + Language_LANGUAGE_CUDACPP Language = 7 + Language_LANGUAGE_DOCKERFILE Language = 8 + Language_LANGUAGE_GO Language = 9 + Language_LANGUAGE_GROOVY Language = 10 + Language_LANGUAGE_HANDLEBARS Language = 11 + Language_LANGUAGE_HASKELL Language = 12 + Language_LANGUAGE_HCL Language = 13 + Language_LANGUAGE_HTML Language = 14 + Language_LANGUAGE_INI Language = 15 + Language_LANGUAGE_JAVA Language = 16 + Language_LANGUAGE_JAVASCRIPT Language = 17 + Language_LANGUAGE_JSON Language = 18 + Language_LANGUAGE_JULIA Language = 19 + Language_LANGUAGE_KOTLIN Language = 20 + Language_LANGUAGE_LATEX Language = 21 + Language_LANGUAGE_LESS Language = 22 + Language_LANGUAGE_LUA Language = 23 + Language_LANGUAGE_MAKEFILE Language = 24 + Language_LANGUAGE_MARKDOWN Language = 25 + Language_LANGUAGE_OBJECTIVEC Language = 26 + Language_LANGUAGE_OBJECTIVECPP Language = 27 + Language_LANGUAGE_PERL Language = 28 + Language_LANGUAGE_PHP Language = 29 + Language_LANGUAGE_PLAINTEXT Language = 30 + Language_LANGUAGE_PROTOBUF Language = 31 + Language_LANGUAGE_PBTXT Language = 32 + Language_LANGUAGE_PYTHON Language = 33 + Language_LANGUAGE_R Language = 34 + Language_LANGUAGE_RUBY Language = 35 + Language_LANGUAGE_RUST Language = 36 + Language_LANGUAGE_SASS Language = 37 + Language_LANGUAGE_SCALA Language = 38 + Language_LANGUAGE_SCSS Language = 39 + Language_LANGUAGE_SHELL Language = 40 + Language_LANGUAGE_SQL Language = 41 + Language_LANGUAGE_STARLARK Language = 42 + Language_LANGUAGE_SWIFT Language = 43 + Language_LANGUAGE_TSX Language = 44 + Language_LANGUAGE_TYPESCRIPT Language = 45 + Language_LANGUAGE_VISUALBASIC Language = 46 + Language_LANGUAGE_VUE Language = 47 + Language_LANGUAGE_XML Language = 48 + Language_LANGUAGE_XSL Language = 49 + Language_LANGUAGE_YAML Language = 50 + Language_LANGUAGE_SVELTE Language = 51 + Language_LANGUAGE_TOML Language = 52 + Language_LANGUAGE_DART Language = 53 + Language_LANGUAGE_RST Language = 54 + Language_LANGUAGE_OCAML Language = 55 + Language_LANGUAGE_CMAKE Language = 56 + Language_LANGUAGE_PASCAL Language = 57 + Language_LANGUAGE_ELIXIR Language = 58 + Language_LANGUAGE_FSHARP Language = 59 + Language_LANGUAGE_LISP Language = 60 + Language_LANGUAGE_MATLAB Language = 61 + Language_LANGUAGE_POWERSHELL Language = 62 + Language_LANGUAGE_SOLIDITY Language = 63 + Language_LANGUAGE_ADA Language = 64 + Language_LANGUAGE_OCAML_INTERFACE Language = 65 + Language_LANGUAGE_TREE_SITTER_QUERY Language = 66 + Language_LANGUAGE_APL Language = 67 + Language_LANGUAGE_ASSEMBLY Language = 68 + Language_LANGUAGE_COBOL Language = 69 + Language_LANGUAGE_CRYSTAL Language = 70 + Language_LANGUAGE_EMACS_LISP Language = 71 + Language_LANGUAGE_ERLANG Language = 72 + Language_LANGUAGE_FORTRAN Language = 73 + Language_LANGUAGE_FREEFORM Language = 74 + Language_LANGUAGE_GRADLE Language = 75 + Language_LANGUAGE_HACK Language = 76 + Language_LANGUAGE_MAVEN Language = 77 + Language_LANGUAGE_M68KASSEMBLY Language = 78 + Language_LANGUAGE_SAS Language = 79 + Language_LANGUAGE_UNIXASSEMBLY Language = 80 + Language_LANGUAGE_VBA Language = 81 + Language_LANGUAGE_VIMSCRIPT Language = 82 + Language_LANGUAGE_WEBASSEMBLY Language = 83 + Language_LANGUAGE_BLADE Language = 84 + Language_LANGUAGE_ASTRO Language = 85 + Language_LANGUAGE_MUMPS Language = 86 + Language_LANGUAGE_GDSCRIPT Language = 87 + Language_LANGUAGE_NIM Language = 88 + Language_LANGUAGE_PROLOG Language = 89 + Language_LANGUAGE_MARKDOWN_INLINE Language = 90 + Language_LANGUAGE_APEX Language = 91 + Language_LANGUAGE_JUPYTER_NOTEBOOK Language = 92 +) + +// Enum value maps for Language. +var ( + Language_name = map[int32]string{ + 0: "LANGUAGE_UNSPECIFIED", + 1: "LANGUAGE_C", + 2: "LANGUAGE_CLOJURE", + 3: "LANGUAGE_COFFEESCRIPT", + 4: "LANGUAGE_CPP", + 5: "LANGUAGE_CSHARP", + 6: "LANGUAGE_CSS", + 7: "LANGUAGE_CUDACPP", + 8: "LANGUAGE_DOCKERFILE", + 9: "LANGUAGE_GO", + 10: "LANGUAGE_GROOVY", + 11: "LANGUAGE_HANDLEBARS", + 12: "LANGUAGE_HASKELL", + 13: "LANGUAGE_HCL", + 14: "LANGUAGE_HTML", + 15: "LANGUAGE_INI", + 16: "LANGUAGE_JAVA", + 17: "LANGUAGE_JAVASCRIPT", + 18: "LANGUAGE_JSON", + 19: "LANGUAGE_JULIA", + 20: "LANGUAGE_KOTLIN", + 21: "LANGUAGE_LATEX", + 22: "LANGUAGE_LESS", + 23: "LANGUAGE_LUA", + 24: "LANGUAGE_MAKEFILE", + 25: "LANGUAGE_MARKDOWN", + 26: "LANGUAGE_OBJECTIVEC", + 27: "LANGUAGE_OBJECTIVECPP", + 28: "LANGUAGE_PERL", + 29: "LANGUAGE_PHP", + 30: "LANGUAGE_PLAINTEXT", + 31: "LANGUAGE_PROTOBUF", + 32: "LANGUAGE_PBTXT", + 33: "LANGUAGE_PYTHON", + 34: "LANGUAGE_R", + 35: "LANGUAGE_RUBY", + 36: "LANGUAGE_RUST", + 37: "LANGUAGE_SASS", + 38: "LANGUAGE_SCALA", + 39: "LANGUAGE_SCSS", + 40: "LANGUAGE_SHELL", + 41: "LANGUAGE_SQL", + 42: "LANGUAGE_STARLARK", + 43: "LANGUAGE_SWIFT", + 44: "LANGUAGE_TSX", + 45: "LANGUAGE_TYPESCRIPT", + 46: "LANGUAGE_VISUALBASIC", + 47: "LANGUAGE_VUE", + 48: "LANGUAGE_XML", + 49: "LANGUAGE_XSL", + 50: "LANGUAGE_YAML", + 51: "LANGUAGE_SVELTE", + 52: "LANGUAGE_TOML", + 53: "LANGUAGE_DART", + 54: "LANGUAGE_RST", + 55: "LANGUAGE_OCAML", + 56: "LANGUAGE_CMAKE", + 57: "LANGUAGE_PASCAL", + 58: "LANGUAGE_ELIXIR", + 59: "LANGUAGE_FSHARP", + 60: "LANGUAGE_LISP", + 61: "LANGUAGE_MATLAB", + 62: "LANGUAGE_POWERSHELL", + 63: "LANGUAGE_SOLIDITY", + 64: "LANGUAGE_ADA", + 65: "LANGUAGE_OCAML_INTERFACE", + 66: "LANGUAGE_TREE_SITTER_QUERY", + 67: "LANGUAGE_APL", + 68: "LANGUAGE_ASSEMBLY", + 69: "LANGUAGE_COBOL", + 70: "LANGUAGE_CRYSTAL", + 71: "LANGUAGE_EMACS_LISP", + 72: "LANGUAGE_ERLANG", + 73: "LANGUAGE_FORTRAN", + 74: "LANGUAGE_FREEFORM", + 75: "LANGUAGE_GRADLE", + 76: "LANGUAGE_HACK", + 77: "LANGUAGE_MAVEN", + 78: "LANGUAGE_M68KASSEMBLY", + 79: "LANGUAGE_SAS", + 80: "LANGUAGE_UNIXASSEMBLY", + 81: "LANGUAGE_VBA", + 82: "LANGUAGE_VIMSCRIPT", + 83: "LANGUAGE_WEBASSEMBLY", + 84: "LANGUAGE_BLADE", + 85: "LANGUAGE_ASTRO", + 86: "LANGUAGE_MUMPS", + 87: "LANGUAGE_GDSCRIPT", + 88: "LANGUAGE_NIM", + 89: "LANGUAGE_PROLOG", + 90: "LANGUAGE_MARKDOWN_INLINE", + 91: "LANGUAGE_APEX", + 92: "LANGUAGE_JUPYTER_NOTEBOOK", + } + Language_value = map[string]int32{ + "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, + "LANGUAGE_JUPYTER_NOTEBOOK": 92, + } +) + +func (x Language) Enum() *Language { + p := new(Language) + *p = x + return p +} + +func (x Language) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Language) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[8].Descriptor() +} + +func (Language) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[8] +} + +func (x Language) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Language.Descriptor instead. +func (Language) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{8} +} + +type ChatMessageSource int32 + +const ( + ChatMessageSource_CHAT_MESSAGE_SOURCE_UNSPECIFIED ChatMessageSource = 0 + ChatMessageSource_CHAT_MESSAGE_SOURCE_USER ChatMessageSource = 1 + ChatMessageSource_CHAT_MESSAGE_SOURCE_SYSTEM ChatMessageSource = 2 + ChatMessageSource_CHAT_MESSAGE_SOURCE_UNKNOWN ChatMessageSource = 3 + ChatMessageSource_CHAT_MESSAGE_SOURCE_TOOL ChatMessageSource = 4 + ChatMessageSource_CHAT_MESSAGE_SOURCE_SYSTEM_PROMPT ChatMessageSource = 5 +) + +// Enum value maps for ChatMessageSource. +var ( + ChatMessageSource_name = map[int32]string{ + 0: "CHAT_MESSAGE_SOURCE_UNSPECIFIED", + 1: "CHAT_MESSAGE_SOURCE_USER", + 2: "CHAT_MESSAGE_SOURCE_SYSTEM", + 3: "CHAT_MESSAGE_SOURCE_UNKNOWN", + 4: "CHAT_MESSAGE_SOURCE_TOOL", + 5: "CHAT_MESSAGE_SOURCE_SYSTEM_PROMPT", + } + ChatMessageSource_value = map[string]int32{ + "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, + } +) + +func (x ChatMessageSource) Enum() *ChatMessageSource { + p := new(ChatMessageSource) + *p = x + return p +} + +func (x ChatMessageSource) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChatMessageSource) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[9].Descriptor() +} + +func (ChatMessageSource) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[9] +} + +func (x ChatMessageSource) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChatMessageSource.Descriptor instead. +func (ChatMessageSource) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{9} +} + +type UserTeamStatus int32 + +const ( + UserTeamStatus_USER_TEAM_STATUS_UNSPECIFIED UserTeamStatus = 0 + UserTeamStatus_USER_TEAM_STATUS_PENDING UserTeamStatus = 1 + UserTeamStatus_USER_TEAM_STATUS_APPROVED UserTeamStatus = 2 + UserTeamStatus_USER_TEAM_STATUS_REJECTED UserTeamStatus = 3 +) + +// Enum value maps for UserTeamStatus. +var ( + UserTeamStatus_name = map[int32]string{ + 0: "USER_TEAM_STATUS_UNSPECIFIED", + 1: "USER_TEAM_STATUS_PENDING", + 2: "USER_TEAM_STATUS_APPROVED", + 3: "USER_TEAM_STATUS_REJECTED", + } + UserTeamStatus_value = map[string]int32{ + "USER_TEAM_STATUS_UNSPECIFIED": 0, + "USER_TEAM_STATUS_PENDING": 1, + "USER_TEAM_STATUS_APPROVED": 2, + "USER_TEAM_STATUS_REJECTED": 3, + } +) + +func (x UserTeamStatus) Enum() *UserTeamStatus { + p := new(UserTeamStatus) + *p = x + return p +} + +func (x UserTeamStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UserTeamStatus) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[10].Descriptor() +} + +func (UserTeamStatus) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[10] +} + +func (x UserTeamStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserTeamStatus.Descriptor instead. +func (UserTeamStatus) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{10} +} + +type TeamsFeatures int32 + +const ( + TeamsFeatures_TEAMS_FEATURES_UNSPECIFIED TeamsFeatures = 0 + TeamsFeatures_TEAMS_FEATURES_SSO TeamsFeatures = 1 + TeamsFeatures_TEAMS_FEATURES_ATTRIBUTION TeamsFeatures = 2 + TeamsFeatures_TEAMS_FEATURES_PHI TeamsFeatures = 3 + TeamsFeatures_TEAMS_FEATURES_CORTEX TeamsFeatures = 4 + TeamsFeatures_TEAMS_FEATURES_OPENAI_DISABLED TeamsFeatures = 5 + TeamsFeatures_TEAMS_FEATURES_REMOTE_INDEXING_DISABLED TeamsFeatures = 6 + TeamsFeatures_TEAMS_FEATURES_API_KEY_ENABLED TeamsFeatures = 7 +) + +// Enum value maps for TeamsFeatures. +var ( + TeamsFeatures_name = map[int32]string{ + 0: "TEAMS_FEATURES_UNSPECIFIED", + 1: "TEAMS_FEATURES_SSO", + 2: "TEAMS_FEATURES_ATTRIBUTION", + 3: "TEAMS_FEATURES_PHI", + 4: "TEAMS_FEATURES_CORTEX", + 5: "TEAMS_FEATURES_OPENAI_DISABLED", + 6: "TEAMS_FEATURES_REMOTE_INDEXING_DISABLED", + 7: "TEAMS_FEATURES_API_KEY_ENABLED", + } + TeamsFeatures_value = map[string]int32{ + "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, + } +) + +func (x TeamsFeatures) Enum() *TeamsFeatures { + p := new(TeamsFeatures) + *p = x + return p +} + +func (x TeamsFeatures) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TeamsFeatures) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[11].Descriptor() +} + +func (TeamsFeatures) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[11] +} + +func (x TeamsFeatures) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TeamsFeatures.Descriptor instead. +func (TeamsFeatures) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{11} +} + +type UserFeatures int32 + +const ( + UserFeatures_USER_FEATURES_UNSPECIFIED UserFeatures = 0 + UserFeatures_USER_FEATURES_CORTEX UserFeatures = 1 + UserFeatures_USER_FEATURES_CORTEX_TEST UserFeatures = 2 +) + +// Enum value maps for UserFeatures. +var ( + UserFeatures_name = map[int32]string{ + 0: "USER_FEATURES_UNSPECIFIED", + 1: "USER_FEATURES_CORTEX", + 2: "USER_FEATURES_CORTEX_TEST", + } + UserFeatures_value = map[string]int32{ + "USER_FEATURES_UNSPECIFIED": 0, + "USER_FEATURES_CORTEX": 1, + "USER_FEATURES_CORTEX_TEST": 2, + } +) + +func (x UserFeatures) Enum() *UserFeatures { + p := new(UserFeatures) + *p = x + return p +} + +func (x UserFeatures) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UserFeatures) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[12].Descriptor() +} + +func (UserFeatures) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[12] +} + +func (x UserFeatures) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserFeatures.Descriptor instead. +func (UserFeatures) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{12} +} + +type Permission int32 + +const ( + Permission_PERMISSION_UNSPECIFIED Permission = 0 + Permission_PERMISSION_ATTRIBUTION_READ Permission = 1 + Permission_PERMISSION_ANALYTICS_READ Permission = 2 + Permission_PERMISSION_LICENSE_READ Permission = 3 + Permission_PERMISSION_TEAM_USER_READ Permission = 4 + Permission_PERMISSION_TEAM_USER_UPDATE Permission = 5 + Permission_PERMISSION_TEAM_USER_DELETE Permission = 6 + Permission_PERMISSION_TEAM_USER_INVITE Permission = 17 + Permission_PERMISSION_INDEXING_READ Permission = 7 + Permission_PERMISSION_INDEXING_CREATE Permission = 8 + Permission_PERMISSION_INDEXING_UPDATE Permission = 9 + Permission_PERMISSION_INDEXING_DELETE Permission = 10 + Permission_PERMISSION_INDEXING_MANAGEMENT Permission = 27 + Permission_PERMISSION_FINETUNING_READ Permission = 19 + Permission_PERMISSION_FINETUNING_CREATE Permission = 20 + Permission_PERMISSION_FINETUNING_UPDATE Permission = 21 + Permission_PERMISSION_FINETUNING_DELETE Permission = 22 + Permission_PERMISSION_SSO_READ Permission = 11 + Permission_PERMISSION_SSO_WRITE Permission = 12 + Permission_PERMISSION_SERVICE_KEY_READ Permission = 13 + Permission_PERMISSION_SERVICE_KEY_CREATE Permission = 14 + Permission_PERMISSION_SERVICE_KEY_UPDATE Permission = 28 + Permission_PERMISSION_SERVICE_KEY_DELETE Permission = 15 + Permission_PERMISSION_ROLE_READ Permission = 23 + Permission_PERMISSION_ROLE_CREATE Permission = 24 + Permission_PERMISSION_ROLE_UPDATE Permission = 25 + Permission_PERMISSION_ROLE_DELETE Permission = 26 + Permission_PERMISSION_BILLING_READ Permission = 16 + Permission_PERMISSION_BILLING_WRITE Permission = 18 + Permission_PERMISSION_EXTERNAL_CHAT_UPDATE Permission = 29 + Permission_PERMISSION_TEAM_SETTINGS_READ Permission = 30 + Permission_PERMISSION_TEAM_SETTINGS_UPDATE Permission = 31 +) + +// Enum value maps for Permission. +var ( + Permission_name = map[int32]string{ + 0: "PERMISSION_UNSPECIFIED", + 1: "PERMISSION_ATTRIBUTION_READ", + 2: "PERMISSION_ANALYTICS_READ", + 3: "PERMISSION_LICENSE_READ", + 4: "PERMISSION_TEAM_USER_READ", + 5: "PERMISSION_TEAM_USER_UPDATE", + 6: "PERMISSION_TEAM_USER_DELETE", + 17: "PERMISSION_TEAM_USER_INVITE", + 7: "PERMISSION_INDEXING_READ", + 8: "PERMISSION_INDEXING_CREATE", + 9: "PERMISSION_INDEXING_UPDATE", + 10: "PERMISSION_INDEXING_DELETE", + 27: "PERMISSION_INDEXING_MANAGEMENT", + 19: "PERMISSION_FINETUNING_READ", + 20: "PERMISSION_FINETUNING_CREATE", + 21: "PERMISSION_FINETUNING_UPDATE", + 22: "PERMISSION_FINETUNING_DELETE", + 11: "PERMISSION_SSO_READ", + 12: "PERMISSION_SSO_WRITE", + 13: "PERMISSION_SERVICE_KEY_READ", + 14: "PERMISSION_SERVICE_KEY_CREATE", + 28: "PERMISSION_SERVICE_KEY_UPDATE", + 15: "PERMISSION_SERVICE_KEY_DELETE", + 23: "PERMISSION_ROLE_READ", + 24: "PERMISSION_ROLE_CREATE", + 25: "PERMISSION_ROLE_UPDATE", + 26: "PERMISSION_ROLE_DELETE", + 16: "PERMISSION_BILLING_READ", + 18: "PERMISSION_BILLING_WRITE", + 29: "PERMISSION_EXTERNAL_CHAT_UPDATE", + 30: "PERMISSION_TEAM_SETTINGS_READ", + 31: "PERMISSION_TEAM_SETTINGS_UPDATE", + } + Permission_value = map[string]int32{ + "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, + } +) + +func (x Permission) Enum() *Permission { + p := new(Permission) + *p = x + return p +} + +func (x Permission) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Permission) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[13].Descriptor() +} + +func (Permission) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[13] +} + +func (x Permission) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Permission.Descriptor instead. +func (Permission) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{13} +} + +type TeamsTier int32 + +const ( + TeamsTier_TEAMS_TIER_UNSPECIFIED TeamsTier = 0 + TeamsTier_TEAMS_TIER_TEAMS TeamsTier = 1 + TeamsTier_TEAMS_TIER_PRO TeamsTier = 2 + TeamsTier_TEAMS_TIER_TRIAL TeamsTier = 9 + TeamsTier_TEAMS_TIER_ENTERPRISE_SAAS TeamsTier = 3 + TeamsTier_TEAMS_TIER_HYBRID TeamsTier = 4 + TeamsTier_TEAMS_TIER_ENTERPRISE_SELF_HOSTED TeamsTier = 5 + TeamsTier_TEAMS_TIER_ENTERPRISE_SELF_SERVE TeamsTier = 10 + TeamsTier_TEAMS_TIER_DEVIN_ENTERPRISE TeamsTier = 12 + TeamsTier_TEAMS_TIER_DEVIN_TEAMS TeamsTier = 14 + TeamsTier_TEAMS_TIER_DEVIN_TEAMS_V2 TeamsTier = 15 + TeamsTier_TEAMS_TIER_DEVIN_PRO TeamsTier = 16 + TeamsTier_TEAMS_TIER_DEVIN_MAX TeamsTier = 17 + TeamsTier_TEAMS_TIER_MAX TeamsTier = 18 + TeamsTier_TEAMS_TIER_DEVIN_FREE TeamsTier = 19 + TeamsTier_TEAMS_TIER_DEVIN_TRIAL TeamsTier = 20 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + TeamsTier_TEAMS_TIER_WAITLIST_PRO TeamsTier = 6 + TeamsTier_TEAMS_TIER_TEAMS_ULTIMATE TeamsTier = 7 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + TeamsTier_TEAMS_TIER_PRO_ULTIMATE TeamsTier = 8 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + TeamsTier_TEAMS_TIER_ENTERPRISE_SAAS_POOLED TeamsTier = 11 +) + +// Enum value maps for TeamsTier. +var ( + TeamsTier_name = map[int32]string{ + 0: "TEAMS_TIER_UNSPECIFIED", + 1: "TEAMS_TIER_TEAMS", + 2: "TEAMS_TIER_PRO", + 9: "TEAMS_TIER_TRIAL", + 3: "TEAMS_TIER_ENTERPRISE_SAAS", + 4: "TEAMS_TIER_HYBRID", + 5: "TEAMS_TIER_ENTERPRISE_SELF_HOSTED", + 10: "TEAMS_TIER_ENTERPRISE_SELF_SERVE", + 12: "TEAMS_TIER_DEVIN_ENTERPRISE", + 14: "TEAMS_TIER_DEVIN_TEAMS", + 15: "TEAMS_TIER_DEVIN_TEAMS_V2", + 16: "TEAMS_TIER_DEVIN_PRO", + 17: "TEAMS_TIER_DEVIN_MAX", + 18: "TEAMS_TIER_MAX", + 19: "TEAMS_TIER_DEVIN_FREE", + 20: "TEAMS_TIER_DEVIN_TRIAL", + 6: "TEAMS_TIER_WAITLIST_PRO", + 7: "TEAMS_TIER_TEAMS_ULTIMATE", + 8: "TEAMS_TIER_PRO_ULTIMATE", + 11: "TEAMS_TIER_ENTERPRISE_SAAS_POOLED", + } + TeamsTier_value = map[string]int32{ + "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_DEVIN_ENTERPRISE": 12, + "TEAMS_TIER_DEVIN_TEAMS": 14, + "TEAMS_TIER_DEVIN_TEAMS_V2": 15, + "TEAMS_TIER_DEVIN_PRO": 16, + "TEAMS_TIER_DEVIN_MAX": 17, + "TEAMS_TIER_MAX": 18, + "TEAMS_TIER_DEVIN_FREE": 19, + "TEAMS_TIER_DEVIN_TRIAL": 20, + "TEAMS_TIER_WAITLIST_PRO": 6, + "TEAMS_TIER_TEAMS_ULTIMATE": 7, + "TEAMS_TIER_PRO_ULTIMATE": 8, + "TEAMS_TIER_ENTERPRISE_SAAS_POOLED": 11, + } +) + +func (x TeamsTier) Enum() *TeamsTier { + p := new(TeamsTier) + *p = x + return p +} + +func (x TeamsTier) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TeamsTier) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[14].Descriptor() +} + +func (TeamsTier) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[14] +} + +func (x TeamsTier) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TeamsTier.Descriptor instead. +func (TeamsTier) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{14} +} + +type ModelProvider int32 + +const ( + ModelProvider_MODEL_PROVIDER_UNSPECIFIED ModelProvider = 0 + ModelProvider_MODEL_PROVIDER_WINDSURF ModelProvider = 1 + ModelProvider_MODEL_PROVIDER_OPENAI ModelProvider = 2 + ModelProvider_MODEL_PROVIDER_ANTHROPIC ModelProvider = 3 + ModelProvider_MODEL_PROVIDER_GOOGLE ModelProvider = 4 + ModelProvider_MODEL_PROVIDER_XAI ModelProvider = 5 + ModelProvider_MODEL_PROVIDER_DEEPSEEK ModelProvider = 6 + ModelProvider_MODEL_PROVIDER_MOONSHOT ModelProvider = 7 + ModelProvider_MODEL_PROVIDER_QWEN ModelProvider = 8 + ModelProvider_MODEL_PROVIDER_ZAI ModelProvider = 9 + ModelProvider_MODEL_PROVIDER_MINIMAX ModelProvider = 10 + ModelProvider_MODEL_PROVIDER_NVIDIA ModelProvider = 11 + ModelProvider_MODEL_PROVIDER_THINKING_MACHINES ModelProvider = 12 +) + +// Enum value maps for ModelProvider. +var ( + ModelProvider_name = map[int32]string{ + 0: "MODEL_PROVIDER_UNSPECIFIED", + 1: "MODEL_PROVIDER_WINDSURF", + 2: "MODEL_PROVIDER_OPENAI", + 3: "MODEL_PROVIDER_ANTHROPIC", + 4: "MODEL_PROVIDER_GOOGLE", + 5: "MODEL_PROVIDER_XAI", + 6: "MODEL_PROVIDER_DEEPSEEK", + 7: "MODEL_PROVIDER_MOONSHOT", + 8: "MODEL_PROVIDER_QWEN", + 9: "MODEL_PROVIDER_ZAI", + 10: "MODEL_PROVIDER_MINIMAX", + 11: "MODEL_PROVIDER_NVIDIA", + 12: "MODEL_PROVIDER_THINKING_MACHINES", + } + ModelProvider_value = map[string]int32{ + "MODEL_PROVIDER_UNSPECIFIED": 0, + "MODEL_PROVIDER_WINDSURF": 1, + "MODEL_PROVIDER_OPENAI": 2, + "MODEL_PROVIDER_ANTHROPIC": 3, + "MODEL_PROVIDER_GOOGLE": 4, + "MODEL_PROVIDER_XAI": 5, + "MODEL_PROVIDER_DEEPSEEK": 6, + "MODEL_PROVIDER_MOONSHOT": 7, + "MODEL_PROVIDER_QWEN": 8, + "MODEL_PROVIDER_ZAI": 9, + "MODEL_PROVIDER_MINIMAX": 10, + "MODEL_PROVIDER_NVIDIA": 11, + "MODEL_PROVIDER_THINKING_MACHINES": 12, + } +) + +func (x ModelProvider) Enum() *ModelProvider { + p := new(ModelProvider) + *p = x + return p +} + +func (x ModelProvider) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelProvider) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[15].Descriptor() +} + +func (ModelProvider) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[15] +} + +func (x ModelProvider) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelProvider.Descriptor instead. +func (ModelProvider) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{15} +} + +type BillingStrategy int32 + +const ( + BillingStrategy_BILLING_STRATEGY_UNSPECIFIED BillingStrategy = 0 + BillingStrategy_BILLING_STRATEGY_CREDITS BillingStrategy = 1 + BillingStrategy_BILLING_STRATEGY_QUOTA BillingStrategy = 2 + BillingStrategy_BILLING_STRATEGY_ACU BillingStrategy = 3 +) + +// Enum value maps for BillingStrategy. +var ( + BillingStrategy_name = map[int32]string{ + 0: "BILLING_STRATEGY_UNSPECIFIED", + 1: "BILLING_STRATEGY_CREDITS", + 2: "BILLING_STRATEGY_QUOTA", + 3: "BILLING_STRATEGY_ACU", + } + BillingStrategy_value = map[string]int32{ + "BILLING_STRATEGY_UNSPECIFIED": 0, + "BILLING_STRATEGY_CREDITS": 1, + "BILLING_STRATEGY_QUOTA": 2, + "BILLING_STRATEGY_ACU": 3, + } +) + +func (x BillingStrategy) Enum() *BillingStrategy { + p := new(BillingStrategy) + *p = x + return p +} + +func (x BillingStrategy) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BillingStrategy) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[16].Descriptor() +} + +func (BillingStrategy) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[16] +} + +func (x BillingStrategy) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BillingStrategy.Descriptor instead. +func (BillingStrategy) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{16} +} + +type ModelPricingType int32 + +const ( + ModelPricingType_MODEL_PRICING_TYPE_UNSPECIFIED ModelPricingType = 0 + ModelPricingType_MODEL_PRICING_TYPE_STATIC_CREDIT ModelPricingType = 1 + ModelPricingType_MODEL_PRICING_TYPE_API ModelPricingType = 2 + ModelPricingType_MODEL_PRICING_TYPE_BYOK ModelPricingType = 3 + ModelPricingType_MODEL_PRICING_TYPE_ACU_TOKEN ModelPricingType = 4 + ModelPricingType_MODEL_PRICING_TYPE_ACU_CREDIT ModelPricingType = 5 +) + +// Enum value maps for ModelPricingType. +var ( + ModelPricingType_name = map[int32]string{ + 0: "MODEL_PRICING_TYPE_UNSPECIFIED", + 1: "MODEL_PRICING_TYPE_STATIC_CREDIT", + 2: "MODEL_PRICING_TYPE_API", + 3: "MODEL_PRICING_TYPE_BYOK", + 4: "MODEL_PRICING_TYPE_ACU_TOKEN", + 5: "MODEL_PRICING_TYPE_ACU_CREDIT", + } + ModelPricingType_value = map[string]int32{ + "MODEL_PRICING_TYPE_UNSPECIFIED": 0, + "MODEL_PRICING_TYPE_STATIC_CREDIT": 1, + "MODEL_PRICING_TYPE_API": 2, + "MODEL_PRICING_TYPE_BYOK": 3, + "MODEL_PRICING_TYPE_ACU_TOKEN": 4, + "MODEL_PRICING_TYPE_ACU_CREDIT": 5, + } +) + +func (x ModelPricingType) Enum() *ModelPricingType { + p := new(ModelPricingType) + *p = x + return p +} + +func (x ModelPricingType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelPricingType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[17].Descriptor() +} + +func (ModelPricingType) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[17] +} + +func (x ModelPricingType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelPricingType.Descriptor instead. +func (ModelPricingType) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{17} +} + +type ModelCostTier int32 + +const ( + ModelCostTier_MODEL_COST_TIER_UNSPECIFIED ModelCostTier = 0 + ModelCostTier_MODEL_COST_TIER_LOW ModelCostTier = 1 + ModelCostTier_MODEL_COST_TIER_MEDIUM ModelCostTier = 2 + ModelCostTier_MODEL_COST_TIER_HIGH ModelCostTier = 3 + ModelCostTier_MODEL_COST_TIER_FREE ModelCostTier = 4 +) + +// Enum value maps for ModelCostTier. +var ( + ModelCostTier_name = map[int32]string{ + 0: "MODEL_COST_TIER_UNSPECIFIED", + 1: "MODEL_COST_TIER_LOW", + 2: "MODEL_COST_TIER_MEDIUM", + 3: "MODEL_COST_TIER_HIGH", + 4: "MODEL_COST_TIER_FREE", + } + ModelCostTier_value = map[string]int32{ + "MODEL_COST_TIER_UNSPECIFIED": 0, + "MODEL_COST_TIER_LOW": 1, + "MODEL_COST_TIER_MEDIUM": 2, + "MODEL_COST_TIER_HIGH": 3, + "MODEL_COST_TIER_FREE": 4, + } +) + +func (x ModelCostTier) Enum() *ModelCostTier { + p := new(ModelCostTier) + *p = x + return p +} + +func (x ModelCostTier) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelCostTier) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[18].Descriptor() +} + +func (ModelCostTier) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[18] +} + +func (x ModelCostTier) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelCostTier.Descriptor instead. +func (ModelCostTier) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{18} +} + +type ModelDimensionKind int32 + +const ( + ModelDimensionKind_MODEL_DIMENSION_KIND_UNSPECIFIED ModelDimensionKind = 0 + ModelDimensionKind_MODEL_DIMENSION_KIND_COST ModelDimensionKind = 1 + ModelDimensionKind_MODEL_DIMENSION_KIND_COST_FUZZY ModelDimensionKind = 2 + ModelDimensionKind_MODEL_DIMENSION_KIND_COST_UNIT ModelDimensionKind = 3 +) + +// Enum value maps for ModelDimensionKind. +var ( + ModelDimensionKind_name = map[int32]string{ + 0: "MODEL_DIMENSION_KIND_UNSPECIFIED", + 1: "MODEL_DIMENSION_KIND_COST", + 2: "MODEL_DIMENSION_KIND_COST_FUZZY", + 3: "MODEL_DIMENSION_KIND_COST_UNIT", + } + ModelDimensionKind_value = map[string]int32{ + "MODEL_DIMENSION_KIND_UNSPECIFIED": 0, + "MODEL_DIMENSION_KIND_COST": 1, + "MODEL_DIMENSION_KIND_COST_FUZZY": 2, + "MODEL_DIMENSION_KIND_COST_UNIT": 3, + } +) + +func (x ModelDimensionKind) Enum() *ModelDimensionKind { + p := new(ModelDimensionKind) + *p = x + return p +} + +func (x ModelDimensionKind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelDimensionKind) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[19].Descriptor() +} + +func (ModelDimensionKind) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[19] +} + +func (x ModelDimensionKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelDimensionKind.Descriptor instead. +func (ModelDimensionKind) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{19} +} + +type ModelFamilyDimensionControlType int32 + +const ( + ModelFamilyDimensionControlType_MODEL_FAMILY_DIMENSION_CONTROL_TYPE_UNSPECIFIED ModelFamilyDimensionControlType = 0 + ModelFamilyDimensionControlType_MODEL_FAMILY_DIMENSION_CONTROL_TYPE_STEPPER ModelFamilyDimensionControlType = 1 + ModelFamilyDimensionControlType_MODEL_FAMILY_DIMENSION_CONTROL_TYPE_OPTION ModelFamilyDimensionControlType = 2 + ModelFamilyDimensionControlType_MODEL_FAMILY_DIMENSION_CONTROL_TYPE_LIST ModelFamilyDimensionControlType = 3 +) + +// Enum value maps for ModelFamilyDimensionControlType. +var ( + ModelFamilyDimensionControlType_name = map[int32]string{ + 0: "MODEL_FAMILY_DIMENSION_CONTROL_TYPE_UNSPECIFIED", + 1: "MODEL_FAMILY_DIMENSION_CONTROL_TYPE_STEPPER", + 2: "MODEL_FAMILY_DIMENSION_CONTROL_TYPE_OPTION", + 3: "MODEL_FAMILY_DIMENSION_CONTROL_TYPE_LIST", + } + ModelFamilyDimensionControlType_value = map[string]int32{ + "MODEL_FAMILY_DIMENSION_CONTROL_TYPE_UNSPECIFIED": 0, + "MODEL_FAMILY_DIMENSION_CONTROL_TYPE_STEPPER": 1, + "MODEL_FAMILY_DIMENSION_CONTROL_TYPE_OPTION": 2, + "MODEL_FAMILY_DIMENSION_CONTROL_TYPE_LIST": 3, + } +) + +func (x ModelFamilyDimensionControlType) Enum() *ModelFamilyDimensionControlType { + p := new(ModelFamilyDimensionControlType) + *p = x + return p +} + +func (x ModelFamilyDimensionControlType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelFamilyDimensionControlType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[20].Descriptor() +} + +func (ModelFamilyDimensionControlType) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[20] +} + +func (x ModelFamilyDimensionControlType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelFamilyDimensionControlType.Descriptor instead. +func (ModelFamilyDimensionControlType) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{20} +} + +type ModelComplianceLevel int32 + +const ( + ModelComplianceLevel_MODEL_COMPLIANCE_LEVEL_UNSPECIFIED ModelComplianceLevel = 0 + ModelComplianceLevel_MODEL_COMPLIANCE_LEVEL_FRH ModelComplianceLevel = 1 + ModelComplianceLevel_MODEL_COMPLIANCE_LEVEL_IL4 ModelComplianceLevel = 2 + ModelComplianceLevel_MODEL_COMPLIANCE_LEVEL_IL5 ModelComplianceLevel = 3 + ModelComplianceLevel_MODEL_COMPLIANCE_LEVEL_IL6 ModelComplianceLevel = 4 + ModelComplianceLevel_MODEL_COMPLIANCE_LEVEL_ITAR ModelComplianceLevel = 5 +) + +// Enum value maps for ModelComplianceLevel. +var ( + ModelComplianceLevel_name = map[int32]string{ + 0: "MODEL_COMPLIANCE_LEVEL_UNSPECIFIED", + 1: "MODEL_COMPLIANCE_LEVEL_FRH", + 2: "MODEL_COMPLIANCE_LEVEL_IL4", + 3: "MODEL_COMPLIANCE_LEVEL_IL5", + 4: "MODEL_COMPLIANCE_LEVEL_IL6", + 5: "MODEL_COMPLIANCE_LEVEL_ITAR", + } + ModelComplianceLevel_value = map[string]int32{ + "MODEL_COMPLIANCE_LEVEL_UNSPECIFIED": 0, + "MODEL_COMPLIANCE_LEVEL_FRH": 1, + "MODEL_COMPLIANCE_LEVEL_IL4": 2, + "MODEL_COMPLIANCE_LEVEL_IL5": 3, + "MODEL_COMPLIANCE_LEVEL_IL6": 4, + "MODEL_COMPLIANCE_LEVEL_ITAR": 5, + } +) + +func (x ModelComplianceLevel) Enum() *ModelComplianceLevel { + p := new(ModelComplianceLevel) + *p = x + return p +} + +func (x ModelComplianceLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelComplianceLevel) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[21].Descriptor() +} + +func (ModelComplianceLevel) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[21] +} + +func (x ModelComplianceLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelComplianceLevel.Descriptor instead. +func (ModelComplianceLevel) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{21} +} + +type TransactionStatus int32 + +const ( + TransactionStatus_TRANSACTION_STATUS_UNSPECIFIED TransactionStatus = 0 + TransactionStatus_TRANSACTION_STATUS_SUCCEEDED TransactionStatus = 1 + TransactionStatus_TRANSACTION_STATUS_PROCESSING TransactionStatus = 2 + TransactionStatus_TRANSACTION_STATUS_FAILED TransactionStatus = 3 + TransactionStatus_TRANSACTION_STATUS_NO_ACTIVE TransactionStatus = 4 +) + +// Enum value maps for TransactionStatus. +var ( + TransactionStatus_name = map[int32]string{ + 0: "TRANSACTION_STATUS_UNSPECIFIED", + 1: "TRANSACTION_STATUS_SUCCEEDED", + 2: "TRANSACTION_STATUS_PROCESSING", + 3: "TRANSACTION_STATUS_FAILED", + 4: "TRANSACTION_STATUS_NO_ACTIVE", + } + TransactionStatus_value = map[string]int32{ + "TRANSACTION_STATUS_UNSPECIFIED": 0, + "TRANSACTION_STATUS_SUCCEEDED": 1, + "TRANSACTION_STATUS_PROCESSING": 2, + "TRANSACTION_STATUS_FAILED": 3, + "TRANSACTION_STATUS_NO_ACTIVE": 4, + } +) + +func (x TransactionStatus) Enum() *TransactionStatus { + p := new(TransactionStatus) + *p = x + return p +} + +func (x TransactionStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TransactionStatus) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[22].Descriptor() +} + +func (TransactionStatus) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[22] +} + +func (x TransactionStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TransactionStatus.Descriptor instead. +func (TransactionStatus) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{22} +} + +type GracePeriodStatus int32 + +const ( + GracePeriodStatus_GRACE_PERIOD_STATUS_UNSPECIFIED GracePeriodStatus = 0 + GracePeriodStatus_GRACE_PERIOD_STATUS_NONE GracePeriodStatus = 1 + GracePeriodStatus_GRACE_PERIOD_STATUS_ACTIVE GracePeriodStatus = 2 + GracePeriodStatus_GRACE_PERIOD_STATUS_EXPIRED GracePeriodStatus = 3 +) + +// Enum value maps for GracePeriodStatus. +var ( + GracePeriodStatus_name = map[int32]string{ + 0: "GRACE_PERIOD_STATUS_UNSPECIFIED", + 1: "GRACE_PERIOD_STATUS_NONE", + 2: "GRACE_PERIOD_STATUS_ACTIVE", + 3: "GRACE_PERIOD_STATUS_EXPIRED", + } + GracePeriodStatus_value = map[string]int32{ + "GRACE_PERIOD_STATUS_UNSPECIFIED": 0, + "GRACE_PERIOD_STATUS_NONE": 1, + "GRACE_PERIOD_STATUS_ACTIVE": 2, + "GRACE_PERIOD_STATUS_EXPIRED": 3, + } +) + +func (x GracePeriodStatus) Enum() *GracePeriodStatus { + p := new(GracePeriodStatus) + *p = x + return p +} + +func (x GracePeriodStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GracePeriodStatus) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[23].Descriptor() +} + +func (GracePeriodStatus) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[23] +} + +func (x GracePeriodStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GracePeriodStatus.Descriptor instead. +func (GracePeriodStatus) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{23} +} + +type CascadeCommandsAutoExecution int32 + +const ( + CascadeCommandsAutoExecution_CASCADE_COMMANDS_AUTO_EXECUTION_UNSPECIFIED CascadeCommandsAutoExecution = 0 + CascadeCommandsAutoExecution_CASCADE_COMMANDS_AUTO_EXECUTION_OFF CascadeCommandsAutoExecution = 1 + CascadeCommandsAutoExecution_CASCADE_COMMANDS_AUTO_EXECUTION_AUTO CascadeCommandsAutoExecution = 2 + CascadeCommandsAutoExecution_CASCADE_COMMANDS_AUTO_EXECUTION_EAGER CascadeCommandsAutoExecution = 3 + CascadeCommandsAutoExecution_CASCADE_COMMANDS_AUTO_EXECUTION_DISABLED CascadeCommandsAutoExecution = 4 +) + +// Enum value maps for CascadeCommandsAutoExecution. +var ( + CascadeCommandsAutoExecution_name = map[int32]string{ + 0: "CASCADE_COMMANDS_AUTO_EXECUTION_UNSPECIFIED", + 1: "CASCADE_COMMANDS_AUTO_EXECUTION_OFF", + 2: "CASCADE_COMMANDS_AUTO_EXECUTION_AUTO", + 3: "CASCADE_COMMANDS_AUTO_EXECUTION_EAGER", + 4: "CASCADE_COMMANDS_AUTO_EXECUTION_DISABLED", + } + CascadeCommandsAutoExecution_value = map[string]int32{ + "CASCADE_COMMANDS_AUTO_EXECUTION_UNSPECIFIED": 0, + "CASCADE_COMMANDS_AUTO_EXECUTION_OFF": 1, + "CASCADE_COMMANDS_AUTO_EXECUTION_AUTO": 2, + "CASCADE_COMMANDS_AUTO_EXECUTION_EAGER": 3, + "CASCADE_COMMANDS_AUTO_EXECUTION_DISABLED": 4, + } +) + +func (x CascadeCommandsAutoExecution) Enum() *CascadeCommandsAutoExecution { + p := new(CascadeCommandsAutoExecution) + *p = x + return p +} + +func (x CascadeCommandsAutoExecution) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CascadeCommandsAutoExecution) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[24].Descriptor() +} + +func (CascadeCommandsAutoExecution) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[24] +} + +func (x CascadeCommandsAutoExecution) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CascadeCommandsAutoExecution.Descriptor instead. +func (CascadeCommandsAutoExecution) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{24} +} + +type ConversationalPlannerMode int32 + +const ( + ConversationalPlannerMode_CONVERSATIONAL_PLANNER_MODE_UNSPECIFIED ConversationalPlannerMode = 0 + ConversationalPlannerMode_CONVERSATIONAL_PLANNER_MODE_DEFAULT ConversationalPlannerMode = 1 + ConversationalPlannerMode_CONVERSATIONAL_PLANNER_MODE_READ_ONLY ConversationalPlannerMode = 2 + ConversationalPlannerMode_CONVERSATIONAL_PLANNER_MODE_NO_TOOL ConversationalPlannerMode = 3 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + ConversationalPlannerMode_CONVERSATIONAL_PLANNER_MODE_EXPLORE ConversationalPlannerMode = 4 + ConversationalPlannerMode_CONVERSATIONAL_PLANNER_MODE_PLANNING ConversationalPlannerMode = 5 + ConversationalPlannerMode_CONVERSATIONAL_PLANNER_MODE_AUTO ConversationalPlannerMode = 6 +) + +// Enum value maps for ConversationalPlannerMode. +var ( + ConversationalPlannerMode_name = map[int32]string{ + 0: "CONVERSATIONAL_PLANNER_MODE_UNSPECIFIED", + 1: "CONVERSATIONAL_PLANNER_MODE_DEFAULT", + 2: "CONVERSATIONAL_PLANNER_MODE_READ_ONLY", + 3: "CONVERSATIONAL_PLANNER_MODE_NO_TOOL", + 4: "CONVERSATIONAL_PLANNER_MODE_EXPLORE", + 5: "CONVERSATIONAL_PLANNER_MODE_PLANNING", + 6: "CONVERSATIONAL_PLANNER_MODE_AUTO", + } + ConversationalPlannerMode_value = map[string]int32{ + "CONVERSATIONAL_PLANNER_MODE_UNSPECIFIED": 0, + "CONVERSATIONAL_PLANNER_MODE_DEFAULT": 1, + "CONVERSATIONAL_PLANNER_MODE_READ_ONLY": 2, + "CONVERSATIONAL_PLANNER_MODE_NO_TOOL": 3, + "CONVERSATIONAL_PLANNER_MODE_EXPLORE": 4, + "CONVERSATIONAL_PLANNER_MODE_PLANNING": 5, + "CONVERSATIONAL_PLANNER_MODE_AUTO": 6, + } +) + +func (x ConversationalPlannerMode) Enum() *ConversationalPlannerMode { + p := new(ConversationalPlannerMode) + *p = x + return p +} + +func (x ConversationalPlannerMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConversationalPlannerMode) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[25].Descriptor() +} + +func (ConversationalPlannerMode) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[25] +} + +func (x ConversationalPlannerMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConversationalPlannerMode.Descriptor instead. +func (ConversationalPlannerMode) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{25} +} + +type ModelType int32 + +const ( + ModelType_MODEL_TYPE_UNSPECIFIED ModelType = 0 + ModelType_MODEL_TYPE_COMPLETION ModelType = 1 + ModelType_MODEL_TYPE_CHAT ModelType = 2 + ModelType_MODEL_TYPE_EMBED ModelType = 3 + ModelType_MODEL_TYPE_QUERY ModelType = 4 +) + +// Enum value maps for ModelType. +var ( + ModelType_name = map[int32]string{ + 0: "MODEL_TYPE_UNSPECIFIED", + 1: "MODEL_TYPE_COMPLETION", + 2: "MODEL_TYPE_CHAT", + 3: "MODEL_TYPE_EMBED", + 4: "MODEL_TYPE_QUERY", + } + ModelType_value = map[string]int32{ + "MODEL_TYPE_UNSPECIFIED": 0, + "MODEL_TYPE_COMPLETION": 1, + "MODEL_TYPE_CHAT": 2, + "MODEL_TYPE_EMBED": 3, + "MODEL_TYPE_QUERY": 4, + } +) + +func (x ModelType) Enum() *ModelType { + p := new(ModelType) + *p = x + return p +} + +func (x ModelType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[26].Descriptor() +} + +func (ModelType) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[26] +} + +func (x ModelType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelType.Descriptor instead. +func (ModelType) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{26} +} + +type DisplayOption int32 + +const ( + DisplayOption_DISPLAY_OPTION_UNSPECIFIED DisplayOption = 0 + DisplayOption_DISPLAY_OPTION_ARENA DisplayOption = 1 + DisplayOption_DISPLAY_OPTION_BATTLE_GROUP_ONLY DisplayOption = 2 + DisplayOption_DISPLAY_OPTION_MODEL_ROUTER DisplayOption = 3 + DisplayOption_DISPLAY_OPTION_QUICK_REVIEW DisplayOption = 4 + DisplayOption_DISPLAY_OPTION_MIMIC DisplayOption = 5 + DisplayOption_DISPLAY_OPTION_HIDDEN_TOOL DisplayOption = 6 + DisplayOption_DISPLAY_OPTION_COMPACTOR DisplayOption = 7 + DisplayOption_DISPLAY_OPTION_MODERN_AGENT_CHAT DisplayOption = 8 +) + +// Enum value maps for DisplayOption. +var ( + DisplayOption_name = map[int32]string{ + 0: "DISPLAY_OPTION_UNSPECIFIED", + 1: "DISPLAY_OPTION_ARENA", + 2: "DISPLAY_OPTION_BATTLE_GROUP_ONLY", + 3: "DISPLAY_OPTION_MODEL_ROUTER", + 4: "DISPLAY_OPTION_QUICK_REVIEW", + 5: "DISPLAY_OPTION_MIMIC", + 6: "DISPLAY_OPTION_HIDDEN_TOOL", + 7: "DISPLAY_OPTION_COMPACTOR", + 8: "DISPLAY_OPTION_MODERN_AGENT_CHAT", + } + DisplayOption_value = map[string]int32{ + "DISPLAY_OPTION_UNSPECIFIED": 0, + "DISPLAY_OPTION_ARENA": 1, + "DISPLAY_OPTION_BATTLE_GROUP_ONLY": 2, + "DISPLAY_OPTION_MODEL_ROUTER": 3, + "DISPLAY_OPTION_QUICK_REVIEW": 4, + "DISPLAY_OPTION_MIMIC": 5, + "DISPLAY_OPTION_HIDDEN_TOOL": 6, + "DISPLAY_OPTION_COMPACTOR": 7, + "DISPLAY_OPTION_MODERN_AGENT_CHAT": 8, + } +) + +func (x DisplayOption) Enum() *DisplayOption { + p := new(DisplayOption) + *p = x + return p +} + +func (x DisplayOption) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DisplayOption) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[27].Descriptor() +} + +func (DisplayOption) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[27] +} + +func (x DisplayOption) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DisplayOption.Descriptor instead. +func (DisplayOption) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{27} +} + +type APIProvider int32 + +const ( + APIProvider_API_PROVIDER_UNSPECIFIED APIProvider = 0 + APIProvider_API_PROVIDER_INTERNAL APIProvider = 1 + APIProvider_API_PROVIDER_OPENAI APIProvider = 2 + APIProvider_API_PROVIDER_GOOGLE_VERTEX APIProvider = 3 + APIProvider_API_PROVIDER_ANTHROPIC APIProvider = 4 + APIProvider_API_PROVIDER_VLLM APIProvider = 5 + APIProvider_API_PROVIDER_TOGETHER_AI APIProvider = 6 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + APIProvider_API_PROVIDER_HUGGING_FACE APIProvider = 7 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + APIProvider_API_PROVIDER_NOMIC APIProvider = 8 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + APIProvider_API_PROVIDER_TEI APIProvider = 9 + APIProvider_API_PROVIDER_OPENAI_COMPATIBLE_EXTERNAL APIProvider = 10 + APIProvider_API_PROVIDER_ANTHROPIC_COMPATIBLE_EXTERNAL APIProvider = 11 + APIProvider_API_PROVIDER_VERTEX_COMPATIBLE_EXTERNAL APIProvider = 12 + APIProvider_API_PROVIDER_BEDROCK_COMPATIBLE_EXTERNAL APIProvider = 13 + APIProvider_API_PROVIDER_AZURE_COMPATIBLE_EXTERNAL APIProvider = 14 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + APIProvider_API_PROVIDER_ANTHROPIC_BEDROCK APIProvider = 15 + APIProvider_API_PROVIDER_FIREWORKS APIProvider = 16 + APIProvider_API_PROVIDER_OPEN_ROUTER APIProvider = 17 + APIProvider_API_PROVIDER_XAI APIProvider = 18 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + APIProvider_API_PROVIDER_ANTHROPIC_BYOK APIProvider = 20 + APIProvider_API_PROVIDER_CEREBRAS APIProvider = 21 + APIProvider_API_PROVIDER_XAI_BYOK APIProvider = 22 + APIProvider_API_PROVIDER_GEMINI_OPENAI APIProvider = 23 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + APIProvider_API_PROVIDER_GOOGLE_GEMINI APIProvider = 24 + APIProvider_API_PROVIDER_GOOGLE_GENAI_VERTEX APIProvider = 25 + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + APIProvider_API_PROVIDER_ANTHROPIC_VERTEX APIProvider = 26 + APIProvider_API_PROVIDER_DATABRICKS APIProvider = 27 + APIProvider_API_PROVIDER_OPEN_ROUTER_BYOK APIProvider = 28 + APIProvider_API_PROVIDER_ANTHROPIC_DEVIN APIProvider = 29 + APIProvider_API_PROVIDER_FIREWORKS_DEVIN APIProvider = 30 + APIProvider_API_PROVIDER_GROQ APIProvider = 31 + APIProvider_API_PROVIDER_OPENAI_DEVIN APIProvider = 32 + APIProvider_API_PROVIDER_LLAMA_FT_DEEPWIKI APIProvider = 33 + APIProvider_API_PROVIDER_XAI_INTERNAL APIProvider = 34 + APIProvider_API_PROVIDER_FLOODGATE APIProvider = 36 + APIProvider_API_PROVIDER_ANTHROPIC_BEDROCK_US APIProvider = 37 + APIProvider_API_PROVIDER_ANTHROPIC_BEDROCK_GLOBAL APIProvider = 38 + APIProvider_API_PROVIDER_MODAL APIProvider = 40 + APIProvider_API_PROVIDER_GOOGLE_GEMINI_DEVIN APIProvider = 41 + APIProvider_API_PROVIDER_FIREWORKS_COGNITION APIProvider = 42 + APIProvider_API_PROVIDER_GOOGLE_GENAI_VERTEX_GLOBAL APIProvider = 43 + APIProvider_API_PROVIDER_ANTHROPIC_VERTEX_US APIProvider = 44 + APIProvider_API_PROVIDER_ANTHROPIC_VERTEX_EU APIProvider = 45 + APIProvider_API_PROVIDER_ANTHROPIC_VERTEX_GLOBAL APIProvider = 46 + APIProvider_API_PROVIDER_FIREWORKS_COGNITION_INTERNAL APIProvider = 47 + APIProvider_API_PROVIDER_ANTHROPIC_DATABRICKS APIProvider = 48 + APIProvider_API_PROVIDER_GEMINI_DATABRICKS APIProvider = 49 + APIProvider_API_PROVIDER_MIMIC APIProvider = 50 + APIProvider_API_PROVIDER_ANTHROPIC_NON_ZDR APIProvider = 51 + APIProvider_API_PROVIDER_ANTHROPIC_DEVIN_NON_ZDR APIProvider = 52 + APIProvider_API_PROVIDER_DATA_RETENTION_WORKSPACE_ANTHROPIC APIProvider = 53 + APIProvider_API_PROVIDER_TOGETHER_AI_SHADOW APIProvider = 54 + APIProvider_API_PROVIDER_OPENAI_STRICT_ZDR APIProvider = 55 + APIProvider_API_PROVIDER_ANTHROPIC_VERTEX_US_MULTI APIProvider = 56 + APIProvider_API_PROVIDER_GOOGLE_GENAI_VERTEX_US_MULTI APIProvider = 57 + APIProvider_API_PROVIDER_COREWEAVE APIProvider = 58 + APIProvider_API_PROVIDER_NEBIUS APIProvider = 59 + APIProvider_API_PROVIDER_SGLANG APIProvider = 60 + APIProvider_API_PROVIDER_AZURE_OPENAI_FEDERATED APIProvider = 61 + APIProvider_API_PROVIDER_DECART APIProvider = 62 + APIProvider_API_PROVIDER_FIREWORKS_DEVIN_SERVERLESS APIProvider = 63 + APIProvider_API_PROVIDER_CLOUDFLARE APIProvider = 64 + APIProvider_API_PROVIDER_BASETEN APIProvider = 65 + APIProvider_API_PROVIDER_OPENAI_SAFETY_RETENTION APIProvider = 66 + APIProvider_API_PROVIDER_DATABRICKS_OSS_US APIProvider = 67 + APIProvider_API_PROVIDER_BEDROCK_MANTLE_FEDERAL APIProvider = 68 + APIProvider_API_PROVIDER_APPLIED_COMPUTE APIProvider = 69 + APIProvider_API_PROVIDER_OPENAI_INTERNAL_TESTING APIProvider = 70 + APIProvider_API_PROVIDER_MORPH APIProvider = 71 + APIProvider_API_PROVIDER_BEDROCK_MANTLE_FEDERAL_ANTHROPIC APIProvider = 72 + APIProvider_API_PROVIDER_OPENAI_ZDR_US_IP_WHITELIST APIProvider = 73 + APIProvider_API_PROVIDER_ANTHROPIC_EFS_ZDR APIProvider = 74 + APIProvider_API_PROVIDER_ANTHROPIC_CYBER_VERIFIED APIProvider = 75 +) + +// Enum value maps for APIProvider. +var ( + APIProvider_name = map[int32]string{ + 0: "API_PROVIDER_UNSPECIFIED", + 1: "API_PROVIDER_INTERNAL", + 2: "API_PROVIDER_OPENAI", + 3: "API_PROVIDER_GOOGLE_VERTEX", + 4: "API_PROVIDER_ANTHROPIC", + 5: "API_PROVIDER_VLLM", + 6: "API_PROVIDER_TOGETHER_AI", + 7: "API_PROVIDER_HUGGING_FACE", + 8: "API_PROVIDER_NOMIC", + 9: "API_PROVIDER_TEI", + 10: "API_PROVIDER_OPENAI_COMPATIBLE_EXTERNAL", + 11: "API_PROVIDER_ANTHROPIC_COMPATIBLE_EXTERNAL", + 12: "API_PROVIDER_VERTEX_COMPATIBLE_EXTERNAL", + 13: "API_PROVIDER_BEDROCK_COMPATIBLE_EXTERNAL", + 14: "API_PROVIDER_AZURE_COMPATIBLE_EXTERNAL", + 15: "API_PROVIDER_ANTHROPIC_BEDROCK", + 16: "API_PROVIDER_FIREWORKS", + 17: "API_PROVIDER_OPEN_ROUTER", + 18: "API_PROVIDER_XAI", + 20: "API_PROVIDER_ANTHROPIC_BYOK", + 21: "API_PROVIDER_CEREBRAS", + 22: "API_PROVIDER_XAI_BYOK", + 23: "API_PROVIDER_GEMINI_OPENAI", + 24: "API_PROVIDER_GOOGLE_GEMINI", + 25: "API_PROVIDER_GOOGLE_GENAI_VERTEX", + 26: "API_PROVIDER_ANTHROPIC_VERTEX", + 27: "API_PROVIDER_DATABRICKS", + 28: "API_PROVIDER_OPEN_ROUTER_BYOK", + 29: "API_PROVIDER_ANTHROPIC_DEVIN", + 30: "API_PROVIDER_FIREWORKS_DEVIN", + 31: "API_PROVIDER_GROQ", + 32: "API_PROVIDER_OPENAI_DEVIN", + 33: "API_PROVIDER_LLAMA_FT_DEEPWIKI", + 34: "API_PROVIDER_XAI_INTERNAL", + 36: "API_PROVIDER_FLOODGATE", + 37: "API_PROVIDER_ANTHROPIC_BEDROCK_US", + 38: "API_PROVIDER_ANTHROPIC_BEDROCK_GLOBAL", + 40: "API_PROVIDER_MODAL", + 41: "API_PROVIDER_GOOGLE_GEMINI_DEVIN", + 42: "API_PROVIDER_FIREWORKS_COGNITION", + 43: "API_PROVIDER_GOOGLE_GENAI_VERTEX_GLOBAL", + 44: "API_PROVIDER_ANTHROPIC_VERTEX_US", + 45: "API_PROVIDER_ANTHROPIC_VERTEX_EU", + 46: "API_PROVIDER_ANTHROPIC_VERTEX_GLOBAL", + 47: "API_PROVIDER_FIREWORKS_COGNITION_INTERNAL", + 48: "API_PROVIDER_ANTHROPIC_DATABRICKS", + 49: "API_PROVIDER_GEMINI_DATABRICKS", + 50: "API_PROVIDER_MIMIC", + 51: "API_PROVIDER_ANTHROPIC_NON_ZDR", + 52: "API_PROVIDER_ANTHROPIC_DEVIN_NON_ZDR", + 53: "API_PROVIDER_DATA_RETENTION_WORKSPACE_ANTHROPIC", + 54: "API_PROVIDER_TOGETHER_AI_SHADOW", + 55: "API_PROVIDER_OPENAI_STRICT_ZDR", + 56: "API_PROVIDER_ANTHROPIC_VERTEX_US_MULTI", + 57: "API_PROVIDER_GOOGLE_GENAI_VERTEX_US_MULTI", + 58: "API_PROVIDER_COREWEAVE", + 59: "API_PROVIDER_NEBIUS", + 60: "API_PROVIDER_SGLANG", + 61: "API_PROVIDER_AZURE_OPENAI_FEDERATED", + 62: "API_PROVIDER_DECART", + 63: "API_PROVIDER_FIREWORKS_DEVIN_SERVERLESS", + 64: "API_PROVIDER_CLOUDFLARE", + 65: "API_PROVIDER_BASETEN", + 66: "API_PROVIDER_OPENAI_SAFETY_RETENTION", + 67: "API_PROVIDER_DATABRICKS_OSS_US", + 68: "API_PROVIDER_BEDROCK_MANTLE_FEDERAL", + 69: "API_PROVIDER_APPLIED_COMPUTE", + 70: "API_PROVIDER_OPENAI_INTERNAL_TESTING", + 71: "API_PROVIDER_MORPH", + 72: "API_PROVIDER_BEDROCK_MANTLE_FEDERAL_ANTHROPIC", + 73: "API_PROVIDER_OPENAI_ZDR_US_IP_WHITELIST", + 74: "API_PROVIDER_ANTHROPIC_EFS_ZDR", + 75: "API_PROVIDER_ANTHROPIC_CYBER_VERIFIED", + } + APIProvider_value = map[string]int32{ + "API_PROVIDER_UNSPECIFIED": 0, + "API_PROVIDER_INTERNAL": 1, + "API_PROVIDER_OPENAI": 2, + "API_PROVIDER_GOOGLE_VERTEX": 3, + "API_PROVIDER_ANTHROPIC": 4, + "API_PROVIDER_VLLM": 5, + "API_PROVIDER_TOGETHER_AI": 6, + "API_PROVIDER_HUGGING_FACE": 7, + "API_PROVIDER_NOMIC": 8, + "API_PROVIDER_TEI": 9, + "API_PROVIDER_OPENAI_COMPATIBLE_EXTERNAL": 10, + "API_PROVIDER_ANTHROPIC_COMPATIBLE_EXTERNAL": 11, + "API_PROVIDER_VERTEX_COMPATIBLE_EXTERNAL": 12, + "API_PROVIDER_BEDROCK_COMPATIBLE_EXTERNAL": 13, + "API_PROVIDER_AZURE_COMPATIBLE_EXTERNAL": 14, + "API_PROVIDER_ANTHROPIC_BEDROCK": 15, + "API_PROVIDER_FIREWORKS": 16, + "API_PROVIDER_OPEN_ROUTER": 17, + "API_PROVIDER_XAI": 18, + "API_PROVIDER_ANTHROPIC_BYOK": 20, + "API_PROVIDER_CEREBRAS": 21, + "API_PROVIDER_XAI_BYOK": 22, + "API_PROVIDER_GEMINI_OPENAI": 23, + "API_PROVIDER_GOOGLE_GEMINI": 24, + "API_PROVIDER_GOOGLE_GENAI_VERTEX": 25, + "API_PROVIDER_ANTHROPIC_VERTEX": 26, + "API_PROVIDER_DATABRICKS": 27, + "API_PROVIDER_OPEN_ROUTER_BYOK": 28, + "API_PROVIDER_ANTHROPIC_DEVIN": 29, + "API_PROVIDER_FIREWORKS_DEVIN": 30, + "API_PROVIDER_GROQ": 31, + "API_PROVIDER_OPENAI_DEVIN": 32, + "API_PROVIDER_LLAMA_FT_DEEPWIKI": 33, + "API_PROVIDER_XAI_INTERNAL": 34, + "API_PROVIDER_FLOODGATE": 36, + "API_PROVIDER_ANTHROPIC_BEDROCK_US": 37, + "API_PROVIDER_ANTHROPIC_BEDROCK_GLOBAL": 38, + "API_PROVIDER_MODAL": 40, + "API_PROVIDER_GOOGLE_GEMINI_DEVIN": 41, + "API_PROVIDER_FIREWORKS_COGNITION": 42, + "API_PROVIDER_GOOGLE_GENAI_VERTEX_GLOBAL": 43, + "API_PROVIDER_ANTHROPIC_VERTEX_US": 44, + "API_PROVIDER_ANTHROPIC_VERTEX_EU": 45, + "API_PROVIDER_ANTHROPIC_VERTEX_GLOBAL": 46, + "API_PROVIDER_FIREWORKS_COGNITION_INTERNAL": 47, + "API_PROVIDER_ANTHROPIC_DATABRICKS": 48, + "API_PROVIDER_GEMINI_DATABRICKS": 49, + "API_PROVIDER_MIMIC": 50, + "API_PROVIDER_ANTHROPIC_NON_ZDR": 51, + "API_PROVIDER_ANTHROPIC_DEVIN_NON_ZDR": 52, + "API_PROVIDER_DATA_RETENTION_WORKSPACE_ANTHROPIC": 53, + "API_PROVIDER_TOGETHER_AI_SHADOW": 54, + "API_PROVIDER_OPENAI_STRICT_ZDR": 55, + "API_PROVIDER_ANTHROPIC_VERTEX_US_MULTI": 56, + "API_PROVIDER_GOOGLE_GENAI_VERTEX_US_MULTI": 57, + "API_PROVIDER_COREWEAVE": 58, + "API_PROVIDER_NEBIUS": 59, + "API_PROVIDER_SGLANG": 60, + "API_PROVIDER_AZURE_OPENAI_FEDERATED": 61, + "API_PROVIDER_DECART": 62, + "API_PROVIDER_FIREWORKS_DEVIN_SERVERLESS": 63, + "API_PROVIDER_CLOUDFLARE": 64, + "API_PROVIDER_BASETEN": 65, + "API_PROVIDER_OPENAI_SAFETY_RETENTION": 66, + "API_PROVIDER_DATABRICKS_OSS_US": 67, + "API_PROVIDER_BEDROCK_MANTLE_FEDERAL": 68, + "API_PROVIDER_APPLIED_COMPUTE": 69, + "API_PROVIDER_OPENAI_INTERNAL_TESTING": 70, + "API_PROVIDER_MORPH": 71, + "API_PROVIDER_BEDROCK_MANTLE_FEDERAL_ANTHROPIC": 72, + "API_PROVIDER_OPENAI_ZDR_US_IP_WHITELIST": 73, + "API_PROVIDER_ANTHROPIC_EFS_ZDR": 74, + "API_PROVIDER_ANTHROPIC_CYBER_VERIFIED": 75, + } +) + +func (x APIProvider) Enum() *APIProvider { + p := new(APIProvider) + *p = x + return p +} + +func (x APIProvider) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (APIProvider) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[28].Descriptor() +} + +func (APIProvider) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[28] +} + +func (x APIProvider) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use APIProvider.Descriptor instead. +func (APIProvider) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{28} +} + +type SandboxEnforcementMode int32 + +const ( + SandboxEnforcementMode_SANDBOX_ENFORCEMENT_MODE_UNSPECIFIED SandboxEnforcementMode = 0 + SandboxEnforcementMode_SANDBOX_ENFORCEMENT_MODE_OPTIONAL SandboxEnforcementMode = 1 + SandboxEnforcementMode_SANDBOX_ENFORCEMENT_MODE_REQUIRED SandboxEnforcementMode = 2 +) + +// Enum value maps for SandboxEnforcementMode. +var ( + SandboxEnforcementMode_name = map[int32]string{ + 0: "SANDBOX_ENFORCEMENT_MODE_UNSPECIFIED", + 1: "SANDBOX_ENFORCEMENT_MODE_OPTIONAL", + 2: "SANDBOX_ENFORCEMENT_MODE_REQUIRED", + } + SandboxEnforcementMode_value = map[string]int32{ + "SANDBOX_ENFORCEMENT_MODE_UNSPECIFIED": 0, + "SANDBOX_ENFORCEMENT_MODE_OPTIONAL": 1, + "SANDBOX_ENFORCEMENT_MODE_REQUIRED": 2, + } +) + +func (x SandboxEnforcementMode) Enum() *SandboxEnforcementMode { + p := new(SandboxEnforcementMode) + *p = x + return p +} + +func (x SandboxEnforcementMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SandboxEnforcementMode) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[29].Descriptor() +} + +func (SandboxEnforcementMode) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[29] +} + +func (x SandboxEnforcementMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SandboxEnforcementMode.Descriptor instead. +func (SandboxEnforcementMode) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{29} +} + +type CascadeAvailability int32 + +const ( + CascadeAvailability_CASCADE_AVAILABILITY_UNSPECIFIED CascadeAvailability = 0 + CascadeAvailability_CASCADE_AVAILABILITY_ENABLED CascadeAvailability = 1 + CascadeAvailability_CASCADE_AVAILABILITY_JETBRAINS_ONLY CascadeAvailability = 2 + CascadeAvailability_CASCADE_AVAILABILITY_DISABLED CascadeAvailability = 3 +) + +// Enum value maps for CascadeAvailability. +var ( + CascadeAvailability_name = map[int32]string{ + 0: "CASCADE_AVAILABILITY_UNSPECIFIED", + 1: "CASCADE_AVAILABILITY_ENABLED", + 2: "CASCADE_AVAILABILITY_JETBRAINS_ONLY", + 3: "CASCADE_AVAILABILITY_DISABLED", + } + CascadeAvailability_value = map[string]int32{ + "CASCADE_AVAILABILITY_UNSPECIFIED": 0, + "CASCADE_AVAILABILITY_ENABLED": 1, + "CASCADE_AVAILABILITY_JETBRAINS_ONLY": 2, + "CASCADE_AVAILABILITY_DISABLED": 3, + } +) + +func (x CascadeAvailability) Enum() *CascadeAvailability { + p := new(CascadeAvailability) + *p = x + return p +} + +func (x CascadeAvailability) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CascadeAvailability) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[30].Descriptor() +} + +func (CascadeAvailability) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[30] +} + +func (x CascadeAvailability) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CascadeAvailability.Descriptor instead. +func (CascadeAvailability) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{30} +} + +type PromptTemplaterType int32 + +const ( + PromptTemplaterType_PROMPT_TEMPLATER_TYPE_UNSPECIFIED PromptTemplaterType = 0 + PromptTemplaterType_PROMPT_TEMPLATER_TYPE_LLAMA_2 PromptTemplaterType = 1 + PromptTemplaterType_PROMPT_TEMPLATER_TYPE_LLAMA_3 PromptTemplaterType = 2 + PromptTemplaterType_PROMPT_TEMPLATER_TYPE_CHATML PromptTemplaterType = 3 + PromptTemplaterType_PROMPT_TEMPLATER_TYPE_CHAT_TRANSCRIPT PromptTemplaterType = 4 + PromptTemplaterType_PROMPT_TEMPLATER_TYPE_DEEPSEEK_V2 PromptTemplaterType = 5 + PromptTemplaterType_PROMPT_TEMPLATER_TYPE_DEEPSEEK_V3 PromptTemplaterType = 6 + PromptTemplaterType_PROMPT_TEMPLATER_TYPE_KIMI PromptTemplaterType = 7 +) + +// Enum value maps for PromptTemplaterType. +var ( + PromptTemplaterType_name = map[int32]string{ + 0: "PROMPT_TEMPLATER_TYPE_UNSPECIFIED", + 1: "PROMPT_TEMPLATER_TYPE_LLAMA_2", + 2: "PROMPT_TEMPLATER_TYPE_LLAMA_3", + 3: "PROMPT_TEMPLATER_TYPE_CHATML", + 4: "PROMPT_TEMPLATER_TYPE_CHAT_TRANSCRIPT", + 5: "PROMPT_TEMPLATER_TYPE_DEEPSEEK_V2", + 6: "PROMPT_TEMPLATER_TYPE_DEEPSEEK_V3", + 7: "PROMPT_TEMPLATER_TYPE_KIMI", + } + PromptTemplaterType_value = map[string]int32{ + "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, + "PROMPT_TEMPLATER_TYPE_KIMI": 7, + } +) + +func (x PromptTemplaterType) Enum() *PromptTemplaterType { + p := new(PromptTemplaterType) + *p = x + return p +} + +func (x PromptTemplaterType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PromptTemplaterType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[31].Descriptor() +} + +func (PromptTemplaterType) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[31] +} + +func (x PromptTemplaterType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PromptTemplaterType.Descriptor instead. +func (PromptTemplaterType) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{31} +} + +type ToolFormatterType int32 + +const ( + ToolFormatterType_TOOL_FORMATTER_TYPE_UNSPECIFIED ToolFormatterType = 0 + ToolFormatterType_TOOL_FORMATTER_TYPE_LLAMA_3 ToolFormatterType = 1 + ToolFormatterType_TOOL_FORMATTER_TYPE_HERMES ToolFormatterType = 2 + ToolFormatterType_TOOL_FORMATTER_TYPE_XML ToolFormatterType = 3 + ToolFormatterType_TOOL_FORMATTER_TYPE_CHAT_TRANSCRIPT ToolFormatterType = 4 + ToolFormatterType_TOOL_FORMATTER_TYPE_KIMI ToolFormatterType = 5 + ToolFormatterType_TOOL_FORMATTER_TYPE_QWENCODER ToolFormatterType = 6 + ToolFormatterType_TOOL_FORMATTER_TYPE_SUPERCOMPLETE ToolFormatterType = 7 +) + +// Enum value maps for ToolFormatterType. +var ( + ToolFormatterType_name = map[int32]string{ + 0: "TOOL_FORMATTER_TYPE_UNSPECIFIED", + 1: "TOOL_FORMATTER_TYPE_LLAMA_3", + 2: "TOOL_FORMATTER_TYPE_HERMES", + 3: "TOOL_FORMATTER_TYPE_XML", + 4: "TOOL_FORMATTER_TYPE_CHAT_TRANSCRIPT", + 5: "TOOL_FORMATTER_TYPE_KIMI", + 6: "TOOL_FORMATTER_TYPE_QWENCODER", + 7: "TOOL_FORMATTER_TYPE_SUPERCOMPLETE", + } + ToolFormatterType_value = map[string]int32{ + "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_KIMI": 5, + "TOOL_FORMATTER_TYPE_QWENCODER": 6, + "TOOL_FORMATTER_TYPE_SUPERCOMPLETE": 7, + } +) + +func (x ToolFormatterType) Enum() *ToolFormatterType { + p := new(ToolFormatterType) + *p = x + return p +} + +func (x ToolFormatterType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ToolFormatterType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[32].Descriptor() +} + +func (ToolFormatterType) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[32] +} + +func (x ToolFormatterType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ToolFormatterType.Descriptor instead. +func (ToolFormatterType) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{32} +} + +type DevinAcuRequestAction_Kind int32 + +const ( + DevinAcuRequestAction_KIND_UNSPECIFIED DevinAcuRequestAction_Kind = 0 + DevinAcuRequestAction_KIND_DEVIN_FORM DevinAcuRequestAction_Kind = 1 + DevinAcuRequestAction_KIND_EXTERNAL_LINK DevinAcuRequestAction_Kind = 2 + DevinAcuRequestAction_KIND_TEXT_ONLY DevinAcuRequestAction_Kind = 3 + DevinAcuRequestAction_KIND_HIDDEN DevinAcuRequestAction_Kind = 4 +) + +// Enum value maps for DevinAcuRequestAction_Kind. +var ( + DevinAcuRequestAction_Kind_name = map[int32]string{ + 0: "KIND_UNSPECIFIED", + 1: "KIND_DEVIN_FORM", + 2: "KIND_EXTERNAL_LINK", + 3: "KIND_TEXT_ONLY", + 4: "KIND_HIDDEN", + } + DevinAcuRequestAction_Kind_value = map[string]int32{ + "KIND_UNSPECIFIED": 0, + "KIND_DEVIN_FORM": 1, + "KIND_EXTERNAL_LINK": 2, + "KIND_TEXT_ONLY": 3, + "KIND_HIDDEN": 4, + } +) + +func (x DevinAcuRequestAction_Kind) Enum() *DevinAcuRequestAction_Kind { + p := new(DevinAcuRequestAction_Kind) + *p = x + return p +} + +func (x DevinAcuRequestAction_Kind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DevinAcuRequestAction_Kind) Descriptor() protoreflect.EnumDescriptor { + return file_exa_codeium_common_pb_codeium_common_proto_enumTypes[33].Descriptor() +} + +func (DevinAcuRequestAction_Kind) Type() protoreflect.EnumType { + return &file_exa_codeium_common_pb_codeium_common_proto_enumTypes[33] +} + +func (x DevinAcuRequestAction_Kind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DevinAcuRequestAction_Kind.Descriptor instead. +func (DevinAcuRequestAction_Kind) EnumDescriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{21, 0} +} + +type CompletionConfiguration struct { + state protoimpl.MessageState `protogen:"open.v1"` + NumCompletions uint64 `protobuf:"varint,1,opt,name=num_completions,json=numCompletions,proto3" json:"num_completions,omitempty"` + MaxTokens uint64 `protobuf:"varint,2,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"` + MaxNewlines uint64 `protobuf:"varint,3,opt,name=max_newlines,json=maxNewlines,proto3" json:"max_newlines,omitempty"` + MinLogProbability float64 `protobuf:"fixed64,4,opt,name=min_log_probability,json=minLogProbability,proto3" json:"min_log_probability,omitempty"` + Temperature float64 `protobuf:"fixed64,5,opt,name=temperature,proto3" json:"temperature,omitempty"` + FirstTemperature float64 `protobuf:"fixed64,6,opt,name=first_temperature,json=firstTemperature,proto3" json:"first_temperature,omitempty"` + TopK uint64 `protobuf:"varint,7,opt,name=top_k,json=topK,proto3" json:"top_k,omitempty"` + TopP float64 `protobuf:"fixed64,8,opt,name=top_p,json=topP,proto3" json:"top_p,omitempty"` + StopPatterns []string `protobuf:"bytes,9,rep,name=stop_patterns,json=stopPatterns,proto3" json:"stop_patterns,omitempty"` + Seed uint64 `protobuf:"varint,10,opt,name=seed,proto3" json:"seed,omitempty"` + FimEotProbThreshold float64 `protobuf:"fixed64,11,opt,name=fim_eot_prob_threshold,json=fimEotProbThreshold,proto3" json:"fim_eot_prob_threshold,omitempty"` + UseFimEotThreshold bool `protobuf:"varint,12,opt,name=use_fim_eot_threshold,json=useFimEotThreshold,proto3" json:"use_fim_eot_threshold,omitempty"` + DoNotScoreStopTokens bool `protobuf:"varint,13,opt,name=do_not_score_stop_tokens,json=doNotScoreStopTokens,proto3" json:"do_not_score_stop_tokens,omitempty"` + SqrtLenNormalizedLogProbScore bool `protobuf:"varint,14,opt,name=sqrt_len_normalized_log_prob_score,json=sqrtLenNormalizedLogProbScore,proto3" json:"sqrt_len_normalized_log_prob_score,omitempty"` + LastMessageIsPartial bool `protobuf:"varint,15,opt,name=last_message_is_partial,json=lastMessageIsPartial,proto3" json:"last_message_is_partial,omitempty"` + ReturnLogprob bool `protobuf:"varint,16,opt,name=return_logprob,json=returnLogprob,proto3" json:"return_logprob,omitempty"` + ServiceTier string `protobuf:"bytes,17,opt,name=service_tier,json=serviceTier,proto3" json:"service_tier,omitempty"` + ResponseFormatType string `protobuf:"bytes,18,opt,name=response_format_type,json=responseFormatType,proto3" json:"response_format_type,omitempty"` + ResponseFormatJsonSchema string `protobuf:"bytes,19,opt,name=response_format_json_schema,json=responseFormatJsonSchema,proto3" json:"response_format_json_schema,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CompletionConfiguration) Reset() { + *x = CompletionConfiguration{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CompletionConfiguration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompletionConfiguration) ProtoMessage() {} + +func (x *CompletionConfiguration) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 CompletionConfiguration.ProtoReflect.Descriptor instead. +func (*CompletionConfiguration) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{0} +} + +func (x *CompletionConfiguration) GetNumCompletions() uint64 { + if x != nil { + return x.NumCompletions + } + return 0 +} + +func (x *CompletionConfiguration) GetMaxTokens() uint64 { + if x != nil { + return x.MaxTokens + } + return 0 +} + +func (x *CompletionConfiguration) GetMaxNewlines() uint64 { + if x != nil { + return x.MaxNewlines + } + return 0 +} + +func (x *CompletionConfiguration) GetMinLogProbability() float64 { + if x != nil { + return x.MinLogProbability + } + return 0 +} + +func (x *CompletionConfiguration) GetTemperature() float64 { + if x != nil { + return x.Temperature + } + return 0 +} + +func (x *CompletionConfiguration) GetFirstTemperature() float64 { + if x != nil { + return x.FirstTemperature + } + return 0 +} + +func (x *CompletionConfiguration) GetTopK() uint64 { + if x != nil { + return x.TopK + } + return 0 +} + +func (x *CompletionConfiguration) GetTopP() float64 { + if x != nil { + return x.TopP + } + return 0 +} + +func (x *CompletionConfiguration) GetStopPatterns() []string { + if x != nil { + return x.StopPatterns + } + return nil +} + +func (x *CompletionConfiguration) GetSeed() uint64 { + if x != nil { + return x.Seed + } + return 0 +} + +func (x *CompletionConfiguration) GetFimEotProbThreshold() float64 { + if x != nil { + return x.FimEotProbThreshold + } + return 0 +} + +func (x *CompletionConfiguration) GetUseFimEotThreshold() bool { + if x != nil { + return x.UseFimEotThreshold + } + return false +} + +func (x *CompletionConfiguration) GetDoNotScoreStopTokens() bool { + if x != nil { + return x.DoNotScoreStopTokens + } + return false +} + +func (x *CompletionConfiguration) GetSqrtLenNormalizedLogProbScore() bool { + if x != nil { + return x.SqrtLenNormalizedLogProbScore + } + return false +} + +func (x *CompletionConfiguration) GetLastMessageIsPartial() bool { + if x != nil { + return x.LastMessageIsPartial + } + return false +} + +func (x *CompletionConfiguration) GetReturnLogprob() bool { + if x != nil { + return x.ReturnLogprob + } + return false +} + +func (x *CompletionConfiguration) GetServiceTier() string { + if x != nil { + return x.ServiceTier + } + return "" +} + +func (x *CompletionConfiguration) GetResponseFormatType() string { + if x != nil { + return x.ResponseFormatType + } + return "" +} + +func (x *CompletionConfiguration) GetResponseFormatJsonSchema() string { + if x != nil { + return x.ResponseFormatJsonSchema + } + return "" +} + +type PromptAnnotationRange struct { + state protoimpl.MessageState `protogen:"open.v1"` + Kind PromptAnnotationKind `protobuf:"varint,1,opt,name=kind,proto3,enum=exa.codeium_common_pb.PromptAnnotationKind" json:"kind,omitempty"` + ByteOffsetStart uint64 `protobuf:"varint,2,opt,name=byte_offset_start,json=byteOffsetStart,proto3" json:"byte_offset_start,omitempty"` + ByteOffsetEnd uint64 `protobuf:"varint,3,opt,name=byte_offset_end,json=byteOffsetEnd,proto3" json:"byte_offset_end,omitempty"` + Suffix string `protobuf:"bytes,4,opt,name=suffix,proto3" json:"suffix,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PromptAnnotationRange) Reset() { + *x = PromptAnnotationRange{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PromptAnnotationRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PromptAnnotationRange) ProtoMessage() {} + +func (x *PromptAnnotationRange) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 PromptAnnotationRange.ProtoReflect.Descriptor instead. +func (*PromptAnnotationRange) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{1} +} + +func (x *PromptAnnotationRange) GetKind() PromptAnnotationKind { + if x != nil { + return x.Kind + } + return PromptAnnotationKind_PROMPT_ANNOTATION_KIND_UNSPECIFIED +} + +func (x *PromptAnnotationRange) GetByteOffsetStart() uint64 { + if x != nil { + return x.ByteOffsetStart + } + return 0 +} + +func (x *PromptAnnotationRange) GetByteOffsetEnd() uint64 { + if x != nil { + return x.ByteOffsetEnd + } + return 0 +} + +func (x *PromptAnnotationRange) GetSuffix() string { + if x != nil { + return x.Suffix + } + return "" +} + +type ExperimentWithVariant struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Key ExperimentKey `protobuf:"varint,1,opt,name=key,proto3,enum=exa.codeium_common_pb.ExperimentKey" json:"key,omitempty"` + KeyString string `protobuf:"bytes,5,opt,name=key_string,json=keyString,proto3" json:"key_string,omitempty"` + Disabled bool `protobuf:"varint,6,opt,name=disabled,proto3" json:"disabled,omitempty"` + // Types that are valid to be assigned to Payload: + // + // *ExperimentWithVariant_String_ + // *ExperimentWithVariant_Json + // *ExperimentWithVariant_Csv + Payload isExperimentWithVariant_Payload `protobuf_oneof:"payload"` + Source ExperimentSource `protobuf:"varint,7,opt,name=source,proto3,enum=exa.codeium_common_pb.ExperimentSource" json:"source,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExperimentWithVariant) Reset() { + *x = ExperimentWithVariant{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExperimentWithVariant) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExperimentWithVariant) ProtoMessage() {} + +func (x *ExperimentWithVariant) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ExperimentWithVariant.ProtoReflect.Descriptor instead. +func (*ExperimentWithVariant) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{2} +} + +// Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. +func (x *ExperimentWithVariant) GetKey() ExperimentKey { + if x != nil { + return x.Key + } + return ExperimentKey_UNSPECIFIED +} + +func (x *ExperimentWithVariant) GetKeyString() string { + if x != nil { + return x.KeyString + } + return "" +} + +func (x *ExperimentWithVariant) GetDisabled() bool { + if x != nil { + return x.Disabled + } + return false +} + +func (x *ExperimentWithVariant) GetPayload() isExperimentWithVariant_Payload { + if x != nil { + return x.Payload + } + return nil +} + +func (x *ExperimentWithVariant) GetString_() string { + if x != nil { + if x, ok := x.Payload.(*ExperimentWithVariant_String_); ok { + return x.String_ + } + } + return "" +} + +func (x *ExperimentWithVariant) GetJson() string { + if x != nil { + if x, ok := x.Payload.(*ExperimentWithVariant_Json); ok { + return x.Json + } + } + return "" +} + +func (x *ExperimentWithVariant) GetCsv() string { + if x != nil { + if x, ok := x.Payload.(*ExperimentWithVariant_Csv); ok { + return x.Csv + } + } + return "" +} + +func (x *ExperimentWithVariant) GetSource() ExperimentSource { + if x != nil { + return x.Source + } + return ExperimentSource_EXPERIMENT_SOURCE_UNSPECIFIED +} + +type isExperimentWithVariant_Payload interface { + isExperimentWithVariant_Payload() +} + +type ExperimentWithVariant_String_ struct { + String_ string `protobuf:"bytes,2,opt,name=string,proto3,oneof"` +} + +type ExperimentWithVariant_Json struct { + Json string `protobuf:"bytes,3,opt,name=json,proto3,oneof"` +} + +type ExperimentWithVariant_Csv struct { + Csv string `protobuf:"bytes,4,opt,name=csv,proto3,oneof"` +} + +func (*ExperimentWithVariant_String_) isExperimentWithVariant_Payload() {} + +func (*ExperimentWithVariant_Json) isExperimentWithVariant_Payload() {} + +func (*ExperimentWithVariant_Csv) isExperimentWithVariant_Payload() {} + +type ExperimentConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Experiments []*ExperimentWithVariant `protobuf:"bytes,6,rep,name=experiments,proto3" json:"experiments,omitempty"` + ForceEnableExperiments []ExperimentKey `protobuf:"varint,1,rep,packed,name=force_enable_experiments,json=forceEnableExperiments,proto3,enum=exa.codeium_common_pb.ExperimentKey" json:"force_enable_experiments,omitempty"` + ForceDisableExperiments []ExperimentKey `protobuf:"varint,2,rep,packed,name=force_disable_experiments,json=forceDisableExperiments,proto3,enum=exa.codeium_common_pb.ExperimentKey" json:"force_disable_experiments,omitempty"` + ForceEnableExperimentsWithVariants []*ExperimentWithVariant `protobuf:"bytes,3,rep,name=force_enable_experiments_with_variants,json=forceEnableExperimentsWithVariants,proto3" json:"force_enable_experiments_with_variants,omitempty"` + ForceEnableExperimentStrings []string `protobuf:"bytes,4,rep,name=force_enable_experiment_strings,json=forceEnableExperimentStrings,proto3" json:"force_enable_experiment_strings,omitempty"` + ForceDisableExperimentStrings []string `protobuf:"bytes,5,rep,name=force_disable_experiment_strings,json=forceDisableExperimentStrings,proto3" json:"force_disable_experiment_strings,omitempty"` + DevMode bool `protobuf:"varint,7,opt,name=dev_mode,json=devMode,proto3" json:"dev_mode,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExperimentConfig) Reset() { + *x = ExperimentConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExperimentConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExperimentConfig) ProtoMessage() {} + +func (x *ExperimentConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ExperimentConfig.ProtoReflect.Descriptor instead. +func (*ExperimentConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{3} +} + +func (x *ExperimentConfig) GetExperiments() []*ExperimentWithVariant { + if x != nil { + return x.Experiments + } + return nil +} + +func (x *ExperimentConfig) GetForceEnableExperiments() []ExperimentKey { + if x != nil { + return x.ForceEnableExperiments + } + return nil +} + +func (x *ExperimentConfig) GetForceDisableExperiments() []ExperimentKey { + if x != nil { + return x.ForceDisableExperiments + } + return nil +} + +func (x *ExperimentConfig) GetForceEnableExperimentsWithVariants() []*ExperimentWithVariant { + if x != nil { + return x.ForceEnableExperimentsWithVariants + } + return nil +} + +func (x *ExperimentConfig) GetForceEnableExperimentStrings() []string { + if x != nil { + return x.ForceEnableExperimentStrings + } + return nil +} + +func (x *ExperimentConfig) GetForceDisableExperimentStrings() []string { + if x != nil { + return x.ForceDisableExperimentStrings + } + return nil +} + +func (x *ExperimentConfig) GetDevMode() bool { + if x != nil { + return x.DevMode + } + return false +} + +type ModelOrAlias struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Choice: + // + // *ModelOrAlias_Model + // *ModelOrAlias_Alias + // *ModelOrAlias_ModelUid + Choice isModelOrAlias_Choice `protobuf_oneof:"choice"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelOrAlias) Reset() { + *x = ModelOrAlias{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelOrAlias) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelOrAlias) ProtoMessage() {} + +func (x *ModelOrAlias) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ModelOrAlias.ProtoReflect.Descriptor instead. +func (*ModelOrAlias) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{4} +} + +func (x *ModelOrAlias) GetChoice() isModelOrAlias_Choice { + if x != nil { + return x.Choice + } + return nil +} + +// Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. +func (x *ModelOrAlias) GetModel() Model { + if x != nil { + if x, ok := x.Choice.(*ModelOrAlias_Model); ok { + return x.Model + } + } + return Model_MODEL_UNSPECIFIED +} + +func (x *ModelOrAlias) GetAlias() ModelAlias { + if x != nil { + if x, ok := x.Choice.(*ModelOrAlias_Alias); ok { + return x.Alias + } + } + return ModelAlias_MODEL_ALIAS_UNSPECIFIED +} + +func (x *ModelOrAlias) GetModelUid() string { + if x != nil { + if x, ok := x.Choice.(*ModelOrAlias_ModelUid); ok { + return x.ModelUid + } + } + return "" +} + +type isModelOrAlias_Choice interface { + isModelOrAlias_Choice() +} + +type ModelOrAlias_Model struct { + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + Model Model `protobuf:"varint,1,opt,name=model,proto3,enum=exa.codeium_common_pb.Model,oneof"` +} + +type ModelOrAlias_Alias struct { + Alias ModelAlias `protobuf:"varint,2,opt,name=alias,proto3,enum=exa.codeium_common_pb.ModelAlias,oneof"` +} + +type ModelOrAlias_ModelUid struct { + ModelUid string `protobuf:"bytes,3,opt,name=model_uid,json=modelUid,proto3,oneof"` +} + +func (*ModelOrAlias_Model) isModelOrAlias_Choice() {} + +func (*ModelOrAlias_Alias) isModelOrAlias_Choice() {} + +func (*ModelOrAlias_ModelUid) isModelOrAlias_Choice() {} + +type SingleModelCompletionProfile struct { + state protoimpl.MessageState `protogen:"open.v1"` + TotalPrefillPassTime float64 `protobuf:"fixed64,1,opt,name=total_prefill_pass_time,json=totalPrefillPassTime,proto3" json:"total_prefill_pass_time,omitempty"` + AvgPrefillPassTime float64 `protobuf:"fixed64,2,opt,name=avg_prefill_pass_time,json=avgPrefillPassTime,proto3" json:"avg_prefill_pass_time,omitempty"` + NumPrefillPasses uint64 `protobuf:"varint,3,opt,name=num_prefill_passes,json=numPrefillPasses,proto3" json:"num_prefill_passes,omitempty"` + TotalSpecCopyPassTime float64 `protobuf:"fixed64,7,opt,name=total_spec_copy_pass_time,json=totalSpecCopyPassTime,proto3" json:"total_spec_copy_pass_time,omitempty"` + AvgSpecCopyPassTime float64 `protobuf:"fixed64,8,opt,name=avg_spec_copy_pass_time,json=avgSpecCopyPassTime,proto3" json:"avg_spec_copy_pass_time,omitempty"` + NumSpecCopyPasses uint64 `protobuf:"varint,9,opt,name=num_spec_copy_passes,json=numSpecCopyPasses,proto3" json:"num_spec_copy_passes,omitempty"` + TotalGenerationPassTime float64 `protobuf:"fixed64,4,opt,name=total_generation_pass_time,json=totalGenerationPassTime,proto3" json:"total_generation_pass_time,omitempty"` + AvgGenerationPassTime float64 `protobuf:"fixed64,5,opt,name=avg_generation_pass_time,json=avgGenerationPassTime,proto3" json:"avg_generation_pass_time,omitempty"` + NumGenerationPasses uint64 `protobuf:"varint,6,opt,name=num_generation_passes,json=numGenerationPasses,proto3" json:"num_generation_passes,omitempty"` + TotalModelTime float64 `protobuf:"fixed64,10,opt,name=total_model_time,json=totalModelTime,proto3" json:"total_model_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SingleModelCompletionProfile) Reset() { + *x = SingleModelCompletionProfile{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SingleModelCompletionProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SingleModelCompletionProfile) ProtoMessage() {} + +func (x *SingleModelCompletionProfile) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 SingleModelCompletionProfile.ProtoReflect.Descriptor instead. +func (*SingleModelCompletionProfile) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{5} +} + +func (x *SingleModelCompletionProfile) GetTotalPrefillPassTime() float64 { + if x != nil { + return x.TotalPrefillPassTime + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetAvgPrefillPassTime() float64 { + if x != nil { + return x.AvgPrefillPassTime + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetNumPrefillPasses() uint64 { + if x != nil { + return x.NumPrefillPasses + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetTotalSpecCopyPassTime() float64 { + if x != nil { + return x.TotalSpecCopyPassTime + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetAvgSpecCopyPassTime() float64 { + if x != nil { + return x.AvgSpecCopyPassTime + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetNumSpecCopyPasses() uint64 { + if x != nil { + return x.NumSpecCopyPasses + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetTotalGenerationPassTime() float64 { + if x != nil { + return x.TotalGenerationPassTime + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetAvgGenerationPassTime() float64 { + if x != nil { + return x.AvgGenerationPassTime + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetNumGenerationPasses() uint64 { + if x != nil { + return x.NumGenerationPasses + } + return 0 +} + +func (x *SingleModelCompletionProfile) GetTotalModelTime() float64 { + if x != nil { + return x.TotalModelTime + } + return 0 +} + +type CompletionProfile struct { + state protoimpl.MessageState `protogen:"open.v1"` + ModelProfile *SingleModelCompletionProfile `protobuf:"bytes,1,opt,name=model_profile,json=modelProfile,proto3" json:"model_profile,omitempty"` + DraftModelProfile *SingleModelCompletionProfile `protobuf:"bytes,2,opt,name=draft_model_profile,json=draftModelProfile,proto3,oneof" json:"draft_model_profile,omitempty"` + TimeToFirstPrefillPass float64 `protobuf:"fixed64,3,opt,name=time_to_first_prefill_pass,json=timeToFirstPrefillPass,proto3" json:"time_to_first_prefill_pass,omitempty"` + TimeToFirstToken float64 `protobuf:"fixed64,4,opt,name=time_to_first_token,json=timeToFirstToken,proto3" json:"time_to_first_token,omitempty"` + TotalCompletionTime float64 `protobuf:"fixed64,5,opt,name=total_completion_time,json=totalCompletionTime,proto3" json:"total_completion_time,omitempty"` + ModelUsage *ModelUsageStats `protobuf:"bytes,6,opt,name=model_usage,json=modelUsage,proto3,oneof" json:"model_usage,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CompletionProfile) Reset() { + *x = CompletionProfile{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CompletionProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompletionProfile) ProtoMessage() {} + +func (x *CompletionProfile) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 CompletionProfile.ProtoReflect.Descriptor instead. +func (*CompletionProfile) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{6} +} + +func (x *CompletionProfile) GetModelProfile() *SingleModelCompletionProfile { + if x != nil { + return x.ModelProfile + } + return nil +} + +func (x *CompletionProfile) GetDraftModelProfile() *SingleModelCompletionProfile { + if x != nil { + return x.DraftModelProfile + } + return nil +} + +func (x *CompletionProfile) GetTimeToFirstPrefillPass() float64 { + if x != nil { + return x.TimeToFirstPrefillPass + } + return 0 +} + +func (x *CompletionProfile) GetTimeToFirstToken() float64 { + if x != nil { + return x.TimeToFirstToken + } + return 0 +} + +func (x *CompletionProfile) GetTotalCompletionTime() float64 { + if x != nil { + return x.TotalCompletionTime + } + return 0 +} + +func (x *CompletionProfile) GetModelUsage() *ModelUsageStats { + if x != nil { + return x.ModelUsage + } + return nil +} + +type Metadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdeName string `protobuf:"bytes,1,opt,name=ide_name,json=ideName,proto3" json:"ide_name,omitempty"` + IdeVersion string `protobuf:"bytes,7,opt,name=ide_version,json=ideVersion,proto3" json:"ide_version,omitempty"` + IdeType string `protobuf:"bytes,28,opt,name=ide_type,json=ideType,proto3" json:"ide_type,omitempty"` + ExtensionName string `protobuf:"bytes,12,opt,name=extension_name,json=extensionName,proto3" json:"extension_name,omitempty"` + ExtensionVersion string `protobuf:"bytes,2,opt,name=extension_version,json=extensionVersion,proto3" json:"extension_version,omitempty"` + ApiKey string `protobuf:"bytes,3,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` + Locale string `protobuf:"bytes,4,opt,name=locale,proto3" json:"locale,omitempty"` + Os string `protobuf:"bytes,5,opt,name=os,proto3" json:"os,omitempty"` + Hardware string `protobuf:"bytes,8,opt,name=hardware,proto3" json:"hardware,omitempty"` + DisableTelemetry bool `protobuf:"varint,6,opt,name=disable_telemetry,json=disableTelemetry,proto3" json:"disable_telemetry,omitempty"` + SessionId string `protobuf:"bytes,10,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + LsTimestamp *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=ls_timestamp,json=lsTimestamp,proto3" json:"ls_timestamp,omitempty"` + RequestId uint64 `protobuf:"varint,9,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + SourceAddress string `protobuf:"bytes,11,opt,name=source_address,json=sourceAddress,proto3" json:"source_address,omitempty"` + UserAgent string `protobuf:"bytes,13,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"` + Url string `protobuf:"bytes,14,opt,name=url,proto3" json:"url,omitempty"` + AuthSource AuthSource `protobuf:"varint,15,opt,name=auth_source,json=authSource,proto3,enum=exa.codeium_common_pb.AuthSource" json:"auth_source,omitempty"` + ExtensionPath string `protobuf:"bytes,17,opt,name=extension_path,json=extensionPath,proto3" json:"extension_path,omitempty"` + UserId string `protobuf:"bytes,20,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserJwt string `protobuf:"bytes,21,opt,name=user_jwt,json=userJwt,proto3" json:"user_jwt,omitempty"` + ForceTeamId string `protobuf:"bytes,22,opt,name=force_team_id,json=forceTeamId,proto3" json:"force_team_id,omitempty"` + DeviceFingerprint string `protobuf:"bytes,24,opt,name=device_fingerprint,json=deviceFingerprint,proto3" json:"device_fingerprint,omitempty"` + TriggerId string `protobuf:"bytes,25,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"` + PlanName string `protobuf:"bytes,26,opt,name=plan_name,json=planName,proto3" json:"plan_name,omitempty"` + Id string `protobuf:"bytes,27,opt,name=id,proto3" json:"id,omitempty"` + ImpersonateTier string `protobuf:"bytes,29,opt,name=impersonate_tier,json=impersonateTier,proto3" json:"impersonate_tier,omitempty"` + SupportedModelDisplays []DisplayOption `protobuf:"varint,30,rep,packed,name=supported_model_displays,json=supportedModelDisplays,proto3,enum=exa.codeium_common_pb.DisplayOption" json:"supported_model_displays,omitempty"` + F string `protobuf:"bytes,31,opt,name=f,proto3" json:"f,omitempty"` + TeamId string `protobuf:"bytes,32,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Metadata) Reset() { + *x = Metadata{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Metadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metadata) ProtoMessage() {} + +func (x *Metadata) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 Metadata.ProtoReflect.Descriptor instead. +func (*Metadata) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{7} +} + +func (x *Metadata) GetIdeName() string { + if x != nil { + return x.IdeName + } + return "" +} + +func (x *Metadata) GetIdeVersion() string { + if x != nil { + return x.IdeVersion + } + return "" +} + +func (x *Metadata) GetIdeType() string { + if x != nil { + return x.IdeType + } + return "" +} + +func (x *Metadata) GetExtensionName() string { + if x != nil { + return x.ExtensionName + } + return "" +} + +func (x *Metadata) GetExtensionVersion() string { + if x != nil { + return x.ExtensionVersion + } + return "" +} + +func (x *Metadata) GetApiKey() string { + if x != nil { + return x.ApiKey + } + return "" +} + +func (x *Metadata) GetLocale() string { + if x != nil { + return x.Locale + } + return "" +} + +func (x *Metadata) GetOs() string { + if x != nil { + return x.Os + } + return "" +} + +func (x *Metadata) GetHardware() string { + if x != nil { + return x.Hardware + } + return "" +} + +func (x *Metadata) GetDisableTelemetry() bool { + if x != nil { + return x.DisableTelemetry + } + return false +} + +func (x *Metadata) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *Metadata) GetLsTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.LsTimestamp + } + return nil +} + +func (x *Metadata) GetRequestId() uint64 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *Metadata) GetSourceAddress() string { + if x != nil { + return x.SourceAddress + } + return "" +} + +func (x *Metadata) GetUserAgent() string { + if x != nil { + return x.UserAgent + } + return "" +} + +func (x *Metadata) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *Metadata) GetAuthSource() AuthSource { + if x != nil { + return x.AuthSource + } + return AuthSource_AUTH_SOURCE_CODEIUM +} + +func (x *Metadata) GetExtensionPath() string { + if x != nil { + return x.ExtensionPath + } + return "" +} + +func (x *Metadata) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *Metadata) GetUserJwt() string { + if x != nil { + return x.UserJwt + } + return "" +} + +func (x *Metadata) GetForceTeamId() string { + if x != nil { + return x.ForceTeamId + } + return "" +} + +func (x *Metadata) GetDeviceFingerprint() string { + if x != nil { + return x.DeviceFingerprint + } + return "" +} + +func (x *Metadata) GetTriggerId() string { + if x != nil { + return x.TriggerId + } + return "" +} + +func (x *Metadata) GetPlanName() string { + if x != nil { + return x.PlanName + } + return "" +} + +func (x *Metadata) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Metadata) GetImpersonateTier() string { + if x != nil { + return x.ImpersonateTier + } + return "" +} + +func (x *Metadata) GetSupportedModelDisplays() []DisplayOption { + if x != nil { + return x.SupportedModelDisplays + } + return nil +} + +func (x *Metadata) GetF() string { + if x != nil { + return x.F + } + return "" +} + +func (x *Metadata) GetTeamId() string { + if x != nil { + return x.TeamId + } + return "" +} + +type TeamsFeaturesMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsActive bool `protobuf:"varint,1,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` + StripeSubscriptionId string `protobuf:"bytes,2,opt,name=stripe_subscription_id,json=stripeSubscriptionId,proto3" json:"stripe_subscription_id,omitempty"` + HasAccess bool `protobuf:"varint,3,opt,name=has_access,json=hasAccess,proto3" json:"has_access,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TeamsFeaturesMetadata) Reset() { + *x = TeamsFeaturesMetadata{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TeamsFeaturesMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TeamsFeaturesMetadata) ProtoMessage() {} + +func (x *TeamsFeaturesMetadata) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 TeamsFeaturesMetadata.ProtoReflect.Descriptor instead. +func (*TeamsFeaturesMetadata) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{8} +} + +func (x *TeamsFeaturesMetadata) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +func (x *TeamsFeaturesMetadata) GetStripeSubscriptionId() string { + if x != nil { + return x.StripeSubscriptionId + } + return "" +} + +func (x *TeamsFeaturesMetadata) GetHasAccess() bool { + if x != nil { + return x.HasAccess + } + return false +} + +type PromoStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsActive bool `protobuf:"varint,1,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` + EndDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + Label string `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PromoStatus) Reset() { + *x = PromoStatus{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PromoStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PromoStatus) ProtoMessage() {} + +func (x *PromoStatus) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 PromoStatus.ProtoReflect.Descriptor instead. +func (*PromoStatus) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{9} +} + +func (x *PromoStatus) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +func (x *PromoStatus) GetEndDate() *timestamppb.Timestamp { + if x != nil { + return x.EndDate + } + return nil +} + +func (x *PromoStatus) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +type FastStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsActive bool `protobuf:"varint,1,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` + Tooltip string `protobuf:"bytes,2,opt,name=tooltip,proto3" json:"tooltip,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FastStatus) Reset() { + *x = FastStatus{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FastStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FastStatus) ProtoMessage() {} + +func (x *FastStatus) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 FastStatus.ProtoReflect.Descriptor instead. +func (*FastStatus) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{10} +} + +func (x *FastStatus) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +func (x *FastStatus) GetTooltip() string { + if x != nil { + return x.Tooltip + } + return "" +} + +type ArenaConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + TokensPerSecond float32 `protobuf:"fixed32,2,opt,name=tokens_per_second,json=tokensPerSecond,proto3" json:"tokens_per_second,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ArenaConfig) Reset() { + *x = ArenaConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ArenaConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArenaConfig) ProtoMessage() {} + +func (x *ArenaConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ArenaConfig.ProtoReflect.Descriptor instead. +func (*ArenaConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{11} +} + +func (x *ArenaConfig) GetTokensPerSecond() float32 { + if x != nil { + return x.TokensPerSecond + } + return 0 +} + +type ModelDimension struct { + state protoimpl.MessageState `protogen:"open.v1"` + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Value float32 `protobuf:"fixed32,2,opt,name=value,proto3" json:"value,omitempty"` + Denominator string `protobuf:"bytes,3,opt,name=denominator,proto3" json:"denominator,omitempty"` + MinRange float32 `protobuf:"fixed32,4,opt,name=min_range,json=minRange,proto3" json:"min_range,omitempty"` + MaxRange float32 `protobuf:"fixed32,5,opt,name=max_range,json=maxRange,proto3" json:"max_range,omitempty"` + Kind ModelDimensionKind `protobuf:"varint,6,opt,name=kind,proto3,enum=exa.codeium_common_pb.ModelDimensionKind" json:"kind,omitempty"` + Info *string `protobuf:"bytes,7,opt,name=info,proto3,oneof" json:"info,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelDimension) Reset() { + *x = ModelDimension{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelDimension) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelDimension) ProtoMessage() {} + +func (x *ModelDimension) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ModelDimension.ProtoReflect.Descriptor instead. +func (*ModelDimension) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{12} +} + +func (x *ModelDimension) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *ModelDimension) GetValue() float32 { + if x != nil { + return x.Value + } + return 0 +} + +func (x *ModelDimension) GetDenominator() string { + if x != nil { + return x.Denominator + } + return "" +} + +func (x *ModelDimension) GetMinRange() float32 { + if x != nil { + return x.MinRange + } + return 0 +} + +func (x *ModelDimension) GetMaxRange() float32 { + if x != nil { + return x.MaxRange + } + return 0 +} + +func (x *ModelDimension) GetKind() ModelDimensionKind { + if x != nil { + return x.Kind + } + return ModelDimensionKind_MODEL_DIMENSION_KIND_UNSPECIFIED +} + +func (x *ModelDimension) GetInfo() string { + if x != nil && x.Info != nil { + return *x.Info + } + return "" +} + +type ModelDisabledReason struct { + state protoimpl.MessageState `protogen:"open.v1"` + ShortReason string `protobuf:"bytes,1,opt,name=short_reason,json=shortReason,proto3" json:"short_reason,omitempty"` + Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` + Link *string `protobuf:"bytes,3,opt,name=link,proto3,oneof" json:"link,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelDisabledReason) Reset() { + *x = ModelDisabledReason{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelDisabledReason) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelDisabledReason) ProtoMessage() {} + +func (x *ModelDisabledReason) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ModelDisabledReason.ProtoReflect.Descriptor instead. +func (*ModelDisabledReason) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{13} +} + +func (x *ModelDisabledReason) GetShortReason() string { + if x != nil { + return x.ShortReason + } + return "" +} + +func (x *ModelDisabledReason) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *ModelDisabledReason) GetLink() string { + if x != nil && x.Link != nil { + return *x.Link + } + return "" +} + +type ClientModelConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + ModelOrAlias *ModelOrAlias `protobuf:"bytes,2,opt,name=model_or_alias,json=modelOrAlias,proto3" json:"model_or_alias,omitempty"` + ModelUid string `protobuf:"bytes,22,opt,name=model_uid,json=modelUid,proto3" json:"model_uid,omitempty"` + CreditMultiplier float32 `protobuf:"fixed32,3,opt,name=credit_multiplier,json=creditMultiplier,proto3" json:"credit_multiplier,omitempty"` + PricingType ModelPricingType `protobuf:"varint,13,opt,name=pricing_type,json=pricingType,proto3,enum=exa.codeium_common_pb.ModelPricingType" json:"pricing_type,omitempty"` + Disabled bool `protobuf:"varint,4,opt,name=disabled,proto3" json:"disabled,omitempty"` + SupportsImages bool `protobuf:"varint,5,opt,name=supports_images,json=supportsImages,proto3" json:"supports_images,omitempty"` + SupportsLegacy bool `protobuf:"varint,6,opt,name=supports_legacy,json=supportsLegacy,proto3" json:"supports_legacy,omitempty"` + IsPremium bool `protobuf:"varint,7,opt,name=is_premium,json=isPremium,proto3" json:"is_premium,omitempty"` + BetaWarningMessage string `protobuf:"bytes,8,opt,name=beta_warning_message,json=betaWarningMessage,proto3" json:"beta_warning_message,omitempty"` + IsBeta bool `protobuf:"varint,9,opt,name=is_beta,json=isBeta,proto3" json:"is_beta,omitempty"` + Provider ModelProvider `protobuf:"varint,10,opt,name=provider,proto3,enum=exa.codeium_common_pb.ModelProvider" json:"provider,omitempty"` + IsRecommended bool `protobuf:"varint,11,opt,name=is_recommended,json=isRecommended,proto3" json:"is_recommended,omitempty"` + AllowedTiers []TeamsTier `protobuf:"varint,12,rep,packed,name=allowed_tiers,json=allowedTiers,proto3,enum=exa.codeium_common_pb.TeamsTier" json:"allowed_tiers,omitempty"` + ApiProvider APIProvider `protobuf:"varint,14,opt,name=api_provider,json=apiProvider,proto3,enum=exa.codeium_common_pb.APIProvider" json:"api_provider,omitempty"` + IsNew bool `protobuf:"varint,15,opt,name=is_new,json=isNew,proto3" json:"is_new,omitempty"` + PartialRollout bool `protobuf:"varint,16,opt,name=partial_rollout,json=partialRollout,proto3" json:"partial_rollout,omitempty"` + RolloutFraction float32 `protobuf:"fixed32,17,opt,name=rollout_fraction,json=rolloutFraction,proto3" json:"rollout_fraction,omitempty"` + MaxTokens int32 `protobuf:"varint,18,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"` + PromoStatus *PromoStatus `protobuf:"bytes,19,opt,name=promo_status,json=promoStatus,proto3" json:"promo_status,omitempty"` + IsCapacityLimited bool `protobuf:"varint,20,opt,name=is_capacity_limited,json=isCapacityLimited,proto3" json:"is_capacity_limited,omitempty"` + FastStatus *FastStatus `protobuf:"bytes,21,opt,name=fast_status,json=fastStatus,proto3" json:"fast_status,omitempty"` + ModelInfo *ModelInfo `protobuf:"bytes,23,opt,name=model_info,json=modelInfo,proto3" json:"model_info,omitempty"` + ModelCostTier ModelCostTier `protobuf:"varint,24,opt,name=model_cost_tier,json=modelCostTier,proto3,enum=exa.codeium_common_pb.ModelCostTier" json:"model_cost_tier,omitempty"` + Description *string `protobuf:"bytes,27,opt,name=description,proto3,oneof" json:"description,omitempty"` + SmartFriendModelUid *string `protobuf:"bytes,29,opt,name=smart_friend_model_uid,json=smartFriendModelUid,proto3,oneof" json:"smart_friend_model_uid,omitempty"` + ModelFamilyMetadata *ModelFamilyMetadata `protobuf:"bytes,30,opt,name=model_family_metadata,json=modelFamilyMetadata,proto3" json:"model_family_metadata,omitempty"` + IsDefaultModelInFamily bool `protobuf:"varint,31,opt,name=is_default_model_in_family,json=isDefaultModelInFamily,proto3" json:"is_default_model_in_family,omitempty"` + ModelDimensions []*ModelDimension `protobuf:"bytes,32,rep,name=model_dimensions,json=modelDimensions,proto3" json:"model_dimensions,omitempty"` + DisabledReason *ModelDisabledReason `protobuf:"bytes,33,opt,name=disabled_reason,json=disabledReason,proto3,oneof" json:"disabled_reason,omitempty"` + ComplianceLevels []ModelComplianceLevel `protobuf:"varint,34,rep,packed,name=compliance_levels,json=complianceLevels,proto3,enum=exa.codeium_common_pb.ModelComplianceLevel" json:"compliance_levels,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ClientModelConfig) Reset() { + *x = ClientModelConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ClientModelConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientModelConfig) ProtoMessage() {} + +func (x *ClientModelConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ClientModelConfig.ProtoReflect.Descriptor instead. +func (*ClientModelConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{14} +} + +func (x *ClientModelConfig) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *ClientModelConfig) GetModelOrAlias() *ModelOrAlias { + if x != nil { + return x.ModelOrAlias + } + return nil +} + +func (x *ClientModelConfig) GetModelUid() string { + if x != nil { + return x.ModelUid + } + return "" +} + +func (x *ClientModelConfig) GetCreditMultiplier() float32 { + if x != nil { + return x.CreditMultiplier + } + return 0 +} + +func (x *ClientModelConfig) GetPricingType() ModelPricingType { + if x != nil { + return x.PricingType + } + return ModelPricingType_MODEL_PRICING_TYPE_UNSPECIFIED +} + +func (x *ClientModelConfig) GetDisabled() bool { + if x != nil { + return x.Disabled + } + return false +} + +func (x *ClientModelConfig) GetSupportsImages() bool { + if x != nil { + return x.SupportsImages + } + return false +} + +func (x *ClientModelConfig) GetSupportsLegacy() bool { + if x != nil { + return x.SupportsLegacy + } + return false +} + +func (x *ClientModelConfig) GetIsPremium() bool { + if x != nil { + return x.IsPremium + } + return false +} + +func (x *ClientModelConfig) GetBetaWarningMessage() string { + if x != nil { + return x.BetaWarningMessage + } + return "" +} + +func (x *ClientModelConfig) GetIsBeta() bool { + if x != nil { + return x.IsBeta + } + return false +} + +func (x *ClientModelConfig) GetProvider() ModelProvider { + if x != nil { + return x.Provider + } + return ModelProvider_MODEL_PROVIDER_UNSPECIFIED +} + +func (x *ClientModelConfig) GetIsRecommended() bool { + if x != nil { + return x.IsRecommended + } + return false +} + +func (x *ClientModelConfig) GetAllowedTiers() []TeamsTier { + if x != nil { + return x.AllowedTiers + } + return nil +} + +func (x *ClientModelConfig) GetApiProvider() APIProvider { + if x != nil { + return x.ApiProvider + } + return APIProvider_API_PROVIDER_UNSPECIFIED +} + +func (x *ClientModelConfig) GetIsNew() bool { + if x != nil { + return x.IsNew + } + return false +} + +func (x *ClientModelConfig) GetPartialRollout() bool { + if x != nil { + return x.PartialRollout + } + return false +} + +func (x *ClientModelConfig) GetRolloutFraction() float32 { + if x != nil { + return x.RolloutFraction + } + return 0 +} + +func (x *ClientModelConfig) GetMaxTokens() int32 { + if x != nil { + return x.MaxTokens + } + return 0 +} + +func (x *ClientModelConfig) GetPromoStatus() *PromoStatus { + if x != nil { + return x.PromoStatus + } + return nil +} + +func (x *ClientModelConfig) GetIsCapacityLimited() bool { + if x != nil { + return x.IsCapacityLimited + } + return false +} + +func (x *ClientModelConfig) GetFastStatus() *FastStatus { + if x != nil { + return x.FastStatus + } + return nil +} + +func (x *ClientModelConfig) GetModelInfo() *ModelInfo { + if x != nil { + return x.ModelInfo + } + return nil +} + +func (x *ClientModelConfig) GetModelCostTier() ModelCostTier { + if x != nil { + return x.ModelCostTier + } + return ModelCostTier_MODEL_COST_TIER_UNSPECIFIED +} + +func (x *ClientModelConfig) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *ClientModelConfig) GetSmartFriendModelUid() string { + if x != nil && x.SmartFriendModelUid != nil { + return *x.SmartFriendModelUid + } + return "" +} + +func (x *ClientModelConfig) GetModelFamilyMetadata() *ModelFamilyMetadata { + if x != nil { + return x.ModelFamilyMetadata + } + return nil +} + +func (x *ClientModelConfig) GetIsDefaultModelInFamily() bool { + if x != nil { + return x.IsDefaultModelInFamily + } + return false +} + +func (x *ClientModelConfig) GetModelDimensions() []*ModelDimension { + if x != nil { + return x.ModelDimensions + } + return nil +} + +func (x *ClientModelConfig) GetDisabledReason() *ModelDisabledReason { + if x != nil { + return x.DisabledReason + } + return nil +} + +func (x *ClientModelConfig) GetComplianceLevels() []ModelComplianceLevel { + if x != nil { + return x.ComplianceLevels + } + return nil +} + +type DefaultOverrideModelConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + ModelOrAliasDeprecated *ModelOrAlias `protobuf:"bytes,1,opt,name=model_or_alias_deprecated,json=modelOrAlias,proto3" json:"model_or_alias_deprecated,omitempty"` + ModelUid string `protobuf:"bytes,3,opt,name=model_uid,json=modelUid,proto3" json:"model_uid,omitempty"` + VersionId string `protobuf:"bytes,2,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DefaultOverrideModelConfig) Reset() { + *x = DefaultOverrideModelConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DefaultOverrideModelConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DefaultOverrideModelConfig) ProtoMessage() {} + +func (x *DefaultOverrideModelConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 DefaultOverrideModelConfig.ProtoReflect.Descriptor instead. +func (*DefaultOverrideModelConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{15} +} + +// Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. +func (x *DefaultOverrideModelConfig) GetModelOrAliasDeprecated() *ModelOrAlias { + if x != nil { + return x.ModelOrAliasDeprecated + } + return nil +} + +func (x *DefaultOverrideModelConfig) GetModelUid() string { + if x != nil { + return x.ModelUid + } + return "" +} + +func (x *DefaultOverrideModelConfig) GetVersionId() string { + if x != nil { + return x.VersionId + } + return "" +} + +type ClientModelSort struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Groups []*ClientModelGroup `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"` + DisplayMetric *string `protobuf:"bytes,3,opt,name=display_metric,json=displayMetric,proto3,oneof" json:"display_metric,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ClientModelSort) Reset() { + *x = ClientModelSort{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ClientModelSort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientModelSort) ProtoMessage() {} + +func (x *ClientModelSort) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ClientModelSort.ProtoReflect.Descriptor instead. +func (*ClientModelSort) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{16} +} + +func (x *ClientModelSort) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClientModelSort) GetGroups() []*ClientModelGroup { + if x != nil { + return x.Groups + } + return nil +} + +func (x *ClientModelSort) GetDisplayMetric() string { + if x != nil && x.DisplayMetric != nil { + return *x.DisplayMetric + } + return "" +} + +type ClientModelGroup struct { + state protoimpl.MessageState `protogen:"open.v1"` + GroupName string `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + ModelLabels []string `protobuf:"bytes,2,rep,name=model_labels,json=modelLabels,proto3" json:"model_labels,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ClientModelGroup) Reset() { + *x = ClientModelGroup{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ClientModelGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientModelGroup) ProtoMessage() {} + +func (x *ClientModelGroup) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ClientModelGroup.ProtoReflect.Descriptor instead. +func (*ClientModelGroup) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{17} +} + +func (x *ClientModelGroup) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +func (x *ClientModelGroup) GetModelLabels() []string { + if x != nil { + return x.ModelLabels + } + return nil +} + +type CascadeModelConfigData struct { + state protoimpl.MessageState `protogen:"open.v1"` + ClientModelConfigs []*ClientModelConfig `protobuf:"bytes,1,rep,name=client_model_configs,json=clientModelConfigs,proto3" json:"client_model_configs,omitempty"` + ClientModelSorts []*ClientModelSort `protobuf:"bytes,2,rep,name=client_model_sorts,json=clientModelSorts,proto3" json:"client_model_sorts,omitempty"` + DefaultOverrideModelConfig *DefaultOverrideModelConfig `protobuf:"bytes,3,opt,name=default_override_model_config,json=defaultOverrideModelConfig,proto3,oneof" json:"default_override_model_config,omitempty"` + ArenaModeCostFast float32 `protobuf:"fixed32,4,opt,name=arena_mode_cost_fast,json=arenaModeCostFast,proto3" json:"arena_mode_cost_fast,omitempty"` + ArenaModeCostSmart float32 `protobuf:"fixed32,5,opt,name=arena_mode_cost_smart,json=arenaModeCostSmart,proto3" json:"arena_mode_cost_smart,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CascadeModelConfigData) Reset() { + *x = CascadeModelConfigData{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CascadeModelConfigData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CascadeModelConfigData) ProtoMessage() {} + +func (x *CascadeModelConfigData) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 CascadeModelConfigData.ProtoReflect.Descriptor instead. +func (*CascadeModelConfigData) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{18} +} + +func (x *CascadeModelConfigData) GetClientModelConfigs() []*ClientModelConfig { + if x != nil { + return x.ClientModelConfigs + } + return nil +} + +func (x *CascadeModelConfigData) GetClientModelSorts() []*ClientModelSort { + if x != nil { + return x.ClientModelSorts + } + return nil +} + +func (x *CascadeModelConfigData) GetDefaultOverrideModelConfig() *DefaultOverrideModelConfig { + if x != nil { + return x.DefaultOverrideModelConfig + } + return nil +} + +func (x *CascadeModelConfigData) GetArenaModeCostFast() float32 { + if x != nil { + return x.ArenaModeCostFast + } + return 0 +} + +func (x *CascadeModelConfigData) GetArenaModeCostSmart() float32 { + if x != nil { + return x.ArenaModeCostSmart + } + return 0 +} + +type PlanInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + TeamsTier TeamsTier `protobuf:"varint,1,opt,name=teams_tier,json=teamsTier,proto3,enum=exa.codeium_common_pb.TeamsTier" json:"teams_tier,omitempty"` + PlanName string `protobuf:"bytes,2,opt,name=plan_name,json=planName,proto3" json:"plan_name,omitempty"` + HasAutocompleteFastMode bool `protobuf:"varint,3,opt,name=has_autocomplete_fast_mode,json=hasAutocompleteFastMode,proto3" json:"has_autocomplete_fast_mode,omitempty"` + AllowStickyPremiumModels bool `protobuf:"varint,4,opt,name=allow_sticky_premium_models,json=allowStickyPremiumModels,proto3" json:"allow_sticky_premium_models,omitempty"` + HasForgeAccess bool `protobuf:"varint,5,opt,name=has_forge_access,json=hasForgeAccess,proto3" json:"has_forge_access,omitempty"` + DisableCodeSnippetTelemetry bool `protobuf:"varint,11,opt,name=disable_code_snippet_telemetry,json=disableCodeSnippetTelemetry,proto3" json:"disable_code_snippet_telemetry,omitempty"` + AllowPremiumCommandModels bool `protobuf:"varint,15,opt,name=allow_premium_command_models,json=allowPremiumCommandModels,proto3" json:"allow_premium_command_models,omitempty"` + HasTabToJump bool `protobuf:"varint,23,opt,name=has_tab_to_jump,json=hasTabToJump,proto3" json:"has_tab_to_jump,omitempty"` + MaxNumPremiumChatMessages int64 `protobuf:"varint,6,opt,name=max_num_premium_chat_messages,json=maxNumPremiumChatMessages,proto3" json:"max_num_premium_chat_messages,omitempty"` + MaxNumChatInputTokens int64 `protobuf:"varint,7,opt,name=max_num_chat_input_tokens,json=maxNumChatInputTokens,proto3" json:"max_num_chat_input_tokens,omitempty"` + MaxCustomChatInstructionCharacters int64 `protobuf:"varint,8,opt,name=max_custom_chat_instruction_characters,json=maxCustomChatInstructionCharacters,proto3" json:"max_custom_chat_instruction_characters,omitempty"` + MaxNumPinnedContextItems int64 `protobuf:"varint,9,opt,name=max_num_pinned_context_items,json=maxNumPinnedContextItems,proto3" json:"max_num_pinned_context_items,omitempty"` + MaxLocalIndexSize int64 `protobuf:"varint,10,opt,name=max_local_index_size,json=maxLocalIndexSize,proto3" json:"max_local_index_size,omitempty"` + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + MaxUnclaimedSites int32 `protobuf:"varint,26,opt,name=max_unclaimed_sites,json=maxUnclaimedSites,proto3" json:"max_unclaimed_sites,omitempty"` + MonthlyPromptCredits int32 `protobuf:"varint,12,opt,name=monthly_prompt_credits,json=monthlyPromptCredits,proto3" json:"monthly_prompt_credits,omitempty"` + MonthlyFlowCredits int32 `protobuf:"varint,13,opt,name=monthly_flow_credits,json=monthlyFlowCredits,proto3" json:"monthly_flow_credits,omitempty"` + MonthlyFlexCreditPurchaseAmount int32 `protobuf:"varint,14,opt,name=monthly_flex_credit_purchase_amount,json=monthlyFlexCreditPurchaseAmount,proto3" json:"monthly_flex_credit_purchase_amount,omitempty"` + IsTeams bool `protobuf:"varint,17,opt,name=is_teams,json=isTeams,proto3" json:"is_teams,omitempty"` + IsEnterprise bool `protobuf:"varint,16,opt,name=is_enterprise,json=isEnterprise,proto3" json:"is_enterprise,omitempty"` + HasPaidFeatures bool `protobuf:"varint,32,opt,name=has_paid_features,json=hasPaidFeatures,proto3" json:"has_paid_features,omitempty"` + CanBuyMoreCredits bool `protobuf:"varint,18,opt,name=can_buy_more_credits,json=canBuyMoreCredits,proto3" json:"can_buy_more_credits,omitempty"` + CascadeWebSearchEnabled bool `protobuf:"varint,19,opt,name=cascade_web_search_enabled,json=cascadeWebSearchEnabled,proto3" json:"cascade_web_search_enabled,omitempty"` + CanCustomizeAppIcon bool `protobuf:"varint,20,opt,name=can_customize_app_icon,json=canCustomizeAppIcon,proto3" json:"can_customize_app_icon,omitempty"` + CanGenerateCommitMessages bool `protobuf:"varint,25,opt,name=can_generate_commit_messages,json=canGenerateCommitMessages,proto3" json:"can_generate_commit_messages,omitempty"` + KnowledgeBaseEnabled bool `protobuf:"varint,27,opt,name=knowledge_base_enabled,json=knowledgeBaseEnabled,proto3" json:"knowledge_base_enabled,omitempty"` + DefaultTeamConfig *TeamConfig `protobuf:"bytes,24,opt,name=default_team_config,json=defaultTeamConfig,proto3" json:"default_team_config,omitempty"` + CanShareConversations bool `protobuf:"varint,28,opt,name=can_share_conversations,json=canShareConversations,proto3" json:"can_share_conversations,omitempty"` + CanAllowCascadeInBackground bool `protobuf:"varint,29,opt,name=can_allow_cascade_in_background,json=canAllowCascadeInBackground,proto3" json:"can_allow_cascade_in_background,omitempty"` + DefaultTeamFeatures map[int32]*TeamsFeaturesMetadata `protobuf:"bytes,30,rep,name=default_team_features,json=defaultTeamFeatures,proto3" json:"default_team_features,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + BrowserEnabled bool `protobuf:"varint,31,opt,name=browser_enabled,json=browserEnabled,proto3" json:"browser_enabled,omitempty"` + DevinInfo *DevinPlanInfo `protobuf:"bytes,33,opt,name=devin_info,json=devinInfo,proto3" json:"devin_info,omitempty"` + IsDevin bool `protobuf:"varint,34,opt,name=is_devin,json=isDevin,proto3" json:"is_devin,omitempty"` + BillingStrategy BillingStrategy `protobuf:"varint,35,opt,name=billing_strategy,json=billingStrategy,proto3,enum=exa.codeium_common_pb.BillingStrategy" json:"billing_strategy,omitempty"` + HideDailyQuota bool `protobuf:"varint,36,opt,name=hide_daily_quota,json=hideDailyQuota,proto3" json:"hide_daily_quota,omitempty"` + HideWeeklyQuota bool `protobuf:"varint,37,opt,name=hide_weekly_quota,json=hideWeeklyQuota,proto3" json:"hide_weekly_quota,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PlanInfo) Reset() { + *x = PlanInfo{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PlanInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlanInfo) ProtoMessage() {} + +func (x *PlanInfo) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 PlanInfo.ProtoReflect.Descriptor instead. +func (*PlanInfo) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{19} +} + +func (x *PlanInfo) GetTeamsTier() TeamsTier { + if x != nil { + return x.TeamsTier + } + return TeamsTier_TEAMS_TIER_UNSPECIFIED +} + +func (x *PlanInfo) GetPlanName() string { + if x != nil { + return x.PlanName + } + return "" +} + +func (x *PlanInfo) GetHasAutocompleteFastMode() bool { + if x != nil { + return x.HasAutocompleteFastMode + } + return false +} + +func (x *PlanInfo) GetAllowStickyPremiumModels() bool { + if x != nil { + return x.AllowStickyPremiumModels + } + return false +} + +func (x *PlanInfo) GetHasForgeAccess() bool { + if x != nil { + return x.HasForgeAccess + } + return false +} + +func (x *PlanInfo) GetDisableCodeSnippetTelemetry() bool { + if x != nil { + return x.DisableCodeSnippetTelemetry + } + return false +} + +func (x *PlanInfo) GetAllowPremiumCommandModels() bool { + if x != nil { + return x.AllowPremiumCommandModels + } + return false +} + +func (x *PlanInfo) GetHasTabToJump() bool { + if x != nil { + return x.HasTabToJump + } + return false +} + +func (x *PlanInfo) GetMaxNumPremiumChatMessages() int64 { + if x != nil { + return x.MaxNumPremiumChatMessages + } + return 0 +} + +func (x *PlanInfo) GetMaxNumChatInputTokens() int64 { + if x != nil { + return x.MaxNumChatInputTokens + } + return 0 +} + +func (x *PlanInfo) GetMaxCustomChatInstructionCharacters() int64 { + if x != nil { + return x.MaxCustomChatInstructionCharacters + } + return 0 +} + +func (x *PlanInfo) GetMaxNumPinnedContextItems() int64 { + if x != nil { + return x.MaxNumPinnedContextItems + } + return 0 +} + +func (x *PlanInfo) GetMaxLocalIndexSize() int64 { + if x != nil { + return x.MaxLocalIndexSize + } + return 0 +} + +// Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. +func (x *PlanInfo) GetMaxUnclaimedSites() int32 { + if x != nil { + return x.MaxUnclaimedSites + } + return 0 +} + +func (x *PlanInfo) GetMonthlyPromptCredits() int32 { + if x != nil { + return x.MonthlyPromptCredits + } + return 0 +} + +func (x *PlanInfo) GetMonthlyFlowCredits() int32 { + if x != nil { + return x.MonthlyFlowCredits + } + return 0 +} + +func (x *PlanInfo) GetMonthlyFlexCreditPurchaseAmount() int32 { + if x != nil { + return x.MonthlyFlexCreditPurchaseAmount + } + return 0 +} + +func (x *PlanInfo) GetIsTeams() bool { + if x != nil { + return x.IsTeams + } + return false +} + +func (x *PlanInfo) GetIsEnterprise() bool { + if x != nil { + return x.IsEnterprise + } + return false +} + +func (x *PlanInfo) GetHasPaidFeatures() bool { + if x != nil { + return x.HasPaidFeatures + } + return false +} + +func (x *PlanInfo) GetCanBuyMoreCredits() bool { + if x != nil { + return x.CanBuyMoreCredits + } + return false +} + +func (x *PlanInfo) GetCascadeWebSearchEnabled() bool { + if x != nil { + return x.CascadeWebSearchEnabled + } + return false +} + +func (x *PlanInfo) GetCanCustomizeAppIcon() bool { + if x != nil { + return x.CanCustomizeAppIcon + } + return false +} + +func (x *PlanInfo) GetCanGenerateCommitMessages() bool { + if x != nil { + return x.CanGenerateCommitMessages + } + return false +} + +func (x *PlanInfo) GetKnowledgeBaseEnabled() bool { + if x != nil { + return x.KnowledgeBaseEnabled + } + return false +} + +func (x *PlanInfo) GetDefaultTeamConfig() *TeamConfig { + if x != nil { + return x.DefaultTeamConfig + } + return nil +} + +func (x *PlanInfo) GetCanShareConversations() bool { + if x != nil { + return x.CanShareConversations + } + return false +} + +func (x *PlanInfo) GetCanAllowCascadeInBackground() bool { + if x != nil { + return x.CanAllowCascadeInBackground + } + return false +} + +func (x *PlanInfo) GetDefaultTeamFeatures() map[int32]*TeamsFeaturesMetadata { + if x != nil { + return x.DefaultTeamFeatures + } + return nil +} + +func (x *PlanInfo) GetBrowserEnabled() bool { + if x != nil { + return x.BrowserEnabled + } + return false +} + +func (x *PlanInfo) GetDevinInfo() *DevinPlanInfo { + if x != nil { + return x.DevinInfo + } + return nil +} + +func (x *PlanInfo) GetIsDevin() bool { + if x != nil { + return x.IsDevin + } + return false +} + +func (x *PlanInfo) GetBillingStrategy() BillingStrategy { + if x != nil { + return x.BillingStrategy + } + return BillingStrategy_BILLING_STRATEGY_UNSPECIFIED +} + +func (x *PlanInfo) GetHideDailyQuota() bool { + if x != nil { + return x.HideDailyQuota + } + return false +} + +func (x *PlanInfo) GetHideWeeklyQuota() bool { + if x != nil { + return x.HideWeeklyQuota + } + return false +} + +type DevinPlanInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + CanUseCascade bool `protobuf:"varint,1,opt,name=can_use_cascade,json=canUseCascade,proto3" json:"can_use_cascade,omitempty"` + CanUseCli bool `protobuf:"varint,2,opt,name=can_use_cli,json=canUseCli,proto3" json:"can_use_cli,omitempty"` + IsAdmin bool `protobuf:"varint,3,opt,name=is_admin,json=isAdmin,proto3" json:"is_admin,omitempty"` + OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + WebappHost string `protobuf:"bytes,5,opt,name=webapp_host,json=webappHost,proto3" json:"webapp_host,omitempty"` + DevinReviewEnabled *bool `protobuf:"varint,6,opt,name=devin_review_enabled,json=devinReviewEnabled,proto3,oneof" json:"devin_review_enabled,omitempty"` + ApiUrl string `protobuf:"bytes,7,opt,name=api_url,json=apiUrl,proto3" json:"api_url,omitempty"` + AccountDisplayName string `protobuf:"bytes,8,opt,name=account_display_name,json=accountDisplayName,proto3" json:"account_display_name,omitempty"` + PersonalAnalyticsUrl string `protobuf:"bytes,9,opt,name=personal_analytics_url,json=personalAnalyticsUrl,proto3" json:"personal_analytics_url,omitempty"` + PrimaryOrgId string `protobuf:"bytes,10,opt,name=primary_org_id,json=primaryOrgId,proto3" json:"primary_org_id,omitempty"` + RequestUsageUrl string `protobuf:"bytes,11,opt,name=request_usage_url,json=requestUsageUrl,proto3" json:"request_usage_url,omitempty"` + RequestUsageAction *DevinAcuRequestAction `protobuf:"bytes,12,opt,name=request_usage_action,json=requestUsageAction,proto3" json:"request_usage_action,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DevinPlanInfo) Reset() { + *x = DevinPlanInfo{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DevinPlanInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DevinPlanInfo) ProtoMessage() {} + +func (x *DevinPlanInfo) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 DevinPlanInfo.ProtoReflect.Descriptor instead. +func (*DevinPlanInfo) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{20} +} + +func (x *DevinPlanInfo) GetCanUseCascade() bool { + if x != nil { + return x.CanUseCascade + } + return false +} + +func (x *DevinPlanInfo) GetCanUseCli() bool { + if x != nil { + return x.CanUseCli + } + return false +} + +func (x *DevinPlanInfo) GetIsAdmin() bool { + if x != nil { + return x.IsAdmin + } + return false +} + +func (x *DevinPlanInfo) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *DevinPlanInfo) GetWebappHost() string { + if x != nil { + return x.WebappHost + } + return "" +} + +func (x *DevinPlanInfo) GetDevinReviewEnabled() bool { + if x != nil && x.DevinReviewEnabled != nil { + return *x.DevinReviewEnabled + } + return false +} + +func (x *DevinPlanInfo) GetApiUrl() string { + if x != nil { + return x.ApiUrl + } + return "" +} + +func (x *DevinPlanInfo) GetAccountDisplayName() string { + if x != nil { + return x.AccountDisplayName + } + return "" +} + +func (x *DevinPlanInfo) GetPersonalAnalyticsUrl() string { + if x != nil { + return x.PersonalAnalyticsUrl + } + return "" +} + +func (x *DevinPlanInfo) GetPrimaryOrgId() string { + if x != nil { + return x.PrimaryOrgId + } + return "" +} + +func (x *DevinPlanInfo) GetRequestUsageUrl() string { + if x != nil { + return x.RequestUsageUrl + } + return "" +} + +func (x *DevinPlanInfo) GetRequestUsageAction() *DevinAcuRequestAction { + if x != nil { + return x.RequestUsageAction + } + return nil +} + +type DevinAcuRequestAction struct { + state protoimpl.MessageState `protogen:"open.v1"` + Kind DevinAcuRequestAction_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=exa.codeium_common_pb.DevinAcuRequestAction_Kind" json:"kind,omitempty"` + Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DevinAcuRequestAction) Reset() { + *x = DevinAcuRequestAction{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DevinAcuRequestAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DevinAcuRequestAction) ProtoMessage() {} + +func (x *DevinAcuRequestAction) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 DevinAcuRequestAction.ProtoReflect.Descriptor instead. +func (*DevinAcuRequestAction) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{21} +} + +func (x *DevinAcuRequestAction) GetKind() DevinAcuRequestAction_Kind { + if x != nil { + return x.Kind + } + return DevinAcuRequestAction_KIND_UNSPECIFIED +} + +func (x *DevinAcuRequestAction) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *DevinAcuRequestAction) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type TopUpStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + TopUpTransactionStatus TransactionStatus `protobuf:"varint,1,opt,name=top_up_transaction_status,json=topUpTransactionStatus,proto3,enum=exa.codeium_common_pb.TransactionStatus" json:"top_up_transaction_status,omitempty"` + TopUpEnabled bool `protobuf:"varint,2,opt,name=top_up_enabled,json=topUpEnabled,proto3" json:"top_up_enabled,omitempty"` + MonthlyTopUpAmount int32 `protobuf:"varint,3,opt,name=monthly_top_up_amount,json=monthlyTopUpAmount,proto3" json:"monthly_top_up_amount,omitempty"` + TopUpSpent int32 `protobuf:"varint,4,opt,name=top_up_spent,json=topUpSpent,proto3" json:"top_up_spent,omitempty"` + TopUpIncrement int32 `protobuf:"varint,5,opt,name=top_up_increment,json=topUpIncrement,proto3" json:"top_up_increment,omitempty"` + TopUpCriteriaMet bool `protobuf:"varint,6,opt,name=top_up_criteria_met,json=topUpCriteriaMet,proto3" json:"top_up_criteria_met,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TopUpStatus) Reset() { + *x = TopUpStatus{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TopUpStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TopUpStatus) ProtoMessage() {} + +func (x *TopUpStatus) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 TopUpStatus.ProtoReflect.Descriptor instead. +func (*TopUpStatus) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{22} +} + +func (x *TopUpStatus) GetTopUpTransactionStatus() TransactionStatus { + if x != nil { + return x.TopUpTransactionStatus + } + return TransactionStatus_TRANSACTION_STATUS_UNSPECIFIED +} + +func (x *TopUpStatus) GetTopUpEnabled() bool { + if x != nil { + return x.TopUpEnabled + } + return false +} + +func (x *TopUpStatus) GetMonthlyTopUpAmount() int32 { + if x != nil { + return x.MonthlyTopUpAmount + } + return 0 +} + +func (x *TopUpStatus) GetTopUpSpent() int32 { + if x != nil { + return x.TopUpSpent + } + return 0 +} + +func (x *TopUpStatus) GetTopUpIncrement() int32 { + if x != nil { + return x.TopUpIncrement + } + return 0 +} + +func (x *TopUpStatus) GetTopUpCriteriaMet() bool { + if x != nil { + return x.TopUpCriteriaMet + } + return false +} + +type PlanStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + PlanInfo *PlanInfo `protobuf:"bytes,1,opt,name=plan_info,json=planInfo,proto3" json:"plan_info,omitempty"` + PlanStart *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=plan_start,json=planStart,proto3" json:"plan_start,omitempty"` + PlanEnd *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=plan_end,json=planEnd,proto3" json:"plan_end,omitempty"` + AvailablePromptCredits int32 `protobuf:"varint,8,opt,name=available_prompt_credits,json=availablePromptCredits,proto3" json:"available_prompt_credits,omitempty"` + AvailableFlowCredits int32 `protobuf:"varint,9,opt,name=available_flow_credits,json=availableFlowCredits,proto3" json:"available_flow_credits,omitempty"` + AvailableFlexCredits int32 `protobuf:"varint,4,opt,name=available_flex_credits,json=availableFlexCredits,proto3" json:"available_flex_credits,omitempty"` + UsedFlexCredits int32 `protobuf:"varint,7,opt,name=used_flex_credits,json=usedFlexCredits,proto3" json:"used_flex_credits,omitempty"` + UsedFlowCredits int32 `protobuf:"varint,5,opt,name=used_flow_credits,json=usedFlowCredits,proto3" json:"used_flow_credits,omitempty"` + UsedPromptCredits int32 `protobuf:"varint,6,opt,name=used_prompt_credits,json=usedPromptCredits,proto3" json:"used_prompt_credits,omitempty"` + TopUpStatus *TopUpStatus `protobuf:"bytes,10,opt,name=top_up_status,json=topUpStatus,proto3" json:"top_up_status,omitempty"` + WasReducedByOrphanedUsage bool `protobuf:"varint,11,opt,name=was_reduced_by_orphaned_usage,json=wasReducedByOrphanedUsage,proto3" json:"was_reduced_by_orphaned_usage,omitempty"` + GracePeriodStatus GracePeriodStatus `protobuf:"varint,12,opt,name=grace_period_status,json=gracePeriodStatus,proto3,enum=exa.codeium_common_pb.GracePeriodStatus" json:"grace_period_status,omitempty"` + GracePeriodEnd *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=grace_period_end,json=gracePeriodEnd,proto3" json:"grace_period_end,omitempty"` + DailyQuotaRemainingPercent int32 `protobuf:"varint,14,opt,name=daily_quota_remaining_percent,json=dailyQuotaRemainingPercent,proto3" json:"daily_quota_remaining_percent,omitempty"` + WeeklyQuotaRemainingPercent int32 `protobuf:"varint,15,opt,name=weekly_quota_remaining_percent,json=weeklyQuotaRemainingPercent,proto3" json:"weekly_quota_remaining_percent,omitempty"` + OverageBalanceMicros int64 `protobuf:"varint,16,opt,name=overage_balance_micros,json=overageBalanceMicros,proto3" json:"overage_balance_micros,omitempty"` + DailyQuotaResetAtUnix int64 `protobuf:"varint,17,opt,name=daily_quota_reset_at_unix,json=dailyQuotaResetAtUnix,proto3" json:"daily_quota_reset_at_unix,omitempty"` + WeeklyQuotaResetAtUnix int64 `protobuf:"varint,18,opt,name=weekly_quota_reset_at_unix,json=weeklyQuotaResetAtUnix,proto3" json:"weekly_quota_reset_at_unix,omitempty"` + AcuConsumed *float64 `protobuf:"fixed64,19,opt,name=acu_consumed,json=acuConsumed,proto3,oneof" json:"acu_consumed,omitempty"` + AcuLimit *float64 `protobuf:"fixed64,20,opt,name=acu_limit,json=acuLimit,proto3,oneof" json:"acu_limit,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PlanStatus) Reset() { + *x = PlanStatus{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PlanStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlanStatus) ProtoMessage() {} + +func (x *PlanStatus) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 PlanStatus.ProtoReflect.Descriptor instead. +func (*PlanStatus) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{23} +} + +func (x *PlanStatus) GetPlanInfo() *PlanInfo { + if x != nil { + return x.PlanInfo + } + return nil +} + +func (x *PlanStatus) GetPlanStart() *timestamppb.Timestamp { + if x != nil { + return x.PlanStart + } + return nil +} + +func (x *PlanStatus) GetPlanEnd() *timestamppb.Timestamp { + if x != nil { + return x.PlanEnd + } + return nil +} + +func (x *PlanStatus) GetAvailablePromptCredits() int32 { + if x != nil { + return x.AvailablePromptCredits + } + return 0 +} + +func (x *PlanStatus) GetAvailableFlowCredits() int32 { + if x != nil { + return x.AvailableFlowCredits + } + return 0 +} + +func (x *PlanStatus) GetAvailableFlexCredits() int32 { + if x != nil { + return x.AvailableFlexCredits + } + return 0 +} + +func (x *PlanStatus) GetUsedFlexCredits() int32 { + if x != nil { + return x.UsedFlexCredits + } + return 0 +} + +func (x *PlanStatus) GetUsedFlowCredits() int32 { + if x != nil { + return x.UsedFlowCredits + } + return 0 +} + +func (x *PlanStatus) GetUsedPromptCredits() int32 { + if x != nil { + return x.UsedPromptCredits + } + return 0 +} + +func (x *PlanStatus) GetTopUpStatus() *TopUpStatus { + if x != nil { + return x.TopUpStatus + } + return nil +} + +func (x *PlanStatus) GetWasReducedByOrphanedUsage() bool { + if x != nil { + return x.WasReducedByOrphanedUsage + } + return false +} + +func (x *PlanStatus) GetGracePeriodStatus() GracePeriodStatus { + if x != nil { + return x.GracePeriodStatus + } + return GracePeriodStatus_GRACE_PERIOD_STATUS_UNSPECIFIED +} + +func (x *PlanStatus) GetGracePeriodEnd() *timestamppb.Timestamp { + if x != nil { + return x.GracePeriodEnd + } + return nil +} + +func (x *PlanStatus) GetDailyQuotaRemainingPercent() int32 { + if x != nil { + return x.DailyQuotaRemainingPercent + } + return 0 +} + +func (x *PlanStatus) GetWeeklyQuotaRemainingPercent() int32 { + if x != nil { + return x.WeeklyQuotaRemainingPercent + } + return 0 +} + +func (x *PlanStatus) GetOverageBalanceMicros() int64 { + if x != nil { + return x.OverageBalanceMicros + } + return 0 +} + +func (x *PlanStatus) GetDailyQuotaResetAtUnix() int64 { + if x != nil { + return x.DailyQuotaResetAtUnix + } + return 0 +} + +func (x *PlanStatus) GetWeeklyQuotaResetAtUnix() int64 { + if x != nil { + return x.WeeklyQuotaResetAtUnix + } + return 0 +} + +func (x *PlanStatus) GetAcuConsumed() float64 { + if x != nil && x.AcuConsumed != nil { + return *x.AcuConsumed + } + return 0 +} + +func (x *PlanStatus) GetAcuLimit() float64 { + if x != nil && x.AcuLimit != nil { + return *x.AcuLimit + } + return 0 +} + +type UserStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + Pro bool `protobuf:"varint,1,opt,name=pro,proto3" json:"pro,omitempty"` + DisableTelemetry bool `protobuf:"varint,2,opt,name=disable_telemetry,json=disableTelemetry,proto3" json:"disable_telemetry,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + IgnoreChatTelemetrySetting bool `protobuf:"varint,4,opt,name=ignore_chat_telemetry_setting,json=ignoreChatTelemetrySetting,proto3" json:"ignore_chat_telemetry_setting,omitempty"` + TeamId string `protobuf:"bytes,5,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + TeamStatus UserTeamStatus `protobuf:"varint,6,opt,name=team_status,json=teamStatus,proto3,enum=exa.codeium_common_pb.UserTeamStatus" json:"team_status,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + UserFeatures []UserFeatures `protobuf:"varint,9,rep,packed,name=user_features,json=userFeatures,proto3,enum=exa.codeium_common_pb.UserFeatures" json:"user_features,omitempty"` + TeamsFeatures []TeamsFeatures `protobuf:"varint,8,rep,packed,name=teams_features,json=teamsFeatures,proto3,enum=exa.codeium_common_pb.TeamsFeatures" json:"teams_features,omitempty"` + TeamsTier TeamsTier `protobuf:"varint,10,opt,name=teams_tier,json=teamsTier,proto3,enum=exa.codeium_common_pb.TeamsTier" json:"teams_tier,omitempty"` + Permissions []Permission `protobuf:"varint,11,rep,packed,name=permissions,proto3,enum=exa.codeium_common_pb.Permission" json:"permissions,omitempty"` + PlanStatus *PlanStatus `protobuf:"bytes,13,opt,name=plan_status,json=planStatus,proto3" json:"plan_status,omitempty"` + HasUsedWindsurf bool `protobuf:"varint,31,opt,name=has_used_windsurf,json=hasUsedWindsurf,proto3" json:"has_used_windsurf,omitempty"` + UserUsedPromptCredits int64 `protobuf:"varint,28,opt,name=user_used_prompt_credits,json=userUsedPromptCredits,proto3" json:"user_used_prompt_credits,omitempty"` + UserUsedFlowCredits int64 `protobuf:"varint,29,opt,name=user_used_flow_credits,json=userUsedFlowCredits,proto3" json:"user_used_flow_credits,omitempty"` + HasFingerprintSet bool `protobuf:"varint,30,opt,name=has_fingerprint_set,json=hasFingerprintSet,proto3" json:"has_fingerprint_set,omitempty"` + TeamConfig *TeamConfig `protobuf:"bytes,32,opt,name=team_config,json=teamConfig,proto3" json:"team_config,omitempty"` + CascadeModelConfigData *CascadeModelConfigData `protobuf:"bytes,33,opt,name=cascade_model_config_data,json=cascadeModelConfigData,proto3" json:"cascade_model_config_data,omitempty"` + WindsurfProTrialEndTime *timestamppb.Timestamp `protobuf:"bytes,34,opt,name=windsurf_pro_trial_end_time,json=windsurfProTrialEndTime,proto3" json:"windsurf_pro_trial_end_time,omitempty"` + MaxNumPremiumChatMessages int64 `protobuf:"varint,35,opt,name=max_num_premium_chat_messages,json=maxNumPremiumChatMessages,proto3" json:"max_num_premium_chat_messages,omitempty"` + UserId string `protobuf:"bytes,36,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UserStatus) Reset() { + *x = UserStatus{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UserStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserStatus) ProtoMessage() {} + +func (x *UserStatus) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 UserStatus.ProtoReflect.Descriptor instead. +func (*UserStatus) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{24} +} + +func (x *UserStatus) GetPro() bool { + if x != nil { + return x.Pro + } + return false +} + +func (x *UserStatus) GetDisableTelemetry() bool { + if x != nil { + return x.DisableTelemetry + } + return false +} + +func (x *UserStatus) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UserStatus) GetIgnoreChatTelemetrySetting() bool { + if x != nil { + return x.IgnoreChatTelemetrySetting + } + return false +} + +func (x *UserStatus) GetTeamId() string { + if x != nil { + return x.TeamId + } + return "" +} + +func (x *UserStatus) GetTeamStatus() UserTeamStatus { + if x != nil { + return x.TeamStatus + } + return UserTeamStatus_USER_TEAM_STATUS_UNSPECIFIED +} + +func (x *UserStatus) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *UserStatus) GetUserFeatures() []UserFeatures { + if x != nil { + return x.UserFeatures + } + return nil +} + +func (x *UserStatus) GetTeamsFeatures() []TeamsFeatures { + if x != nil { + return x.TeamsFeatures + } + return nil +} + +func (x *UserStatus) GetTeamsTier() TeamsTier { + if x != nil { + return x.TeamsTier + } + return TeamsTier_TEAMS_TIER_UNSPECIFIED +} + +func (x *UserStatus) GetPermissions() []Permission { + if x != nil { + return x.Permissions + } + return nil +} + +func (x *UserStatus) GetPlanStatus() *PlanStatus { + if x != nil { + return x.PlanStatus + } + return nil +} + +func (x *UserStatus) GetHasUsedWindsurf() bool { + if x != nil { + return x.HasUsedWindsurf + } + return false +} + +func (x *UserStatus) GetUserUsedPromptCredits() int64 { + if x != nil { + return x.UserUsedPromptCredits + } + return 0 +} + +func (x *UserStatus) GetUserUsedFlowCredits() int64 { + if x != nil { + return x.UserUsedFlowCredits + } + return 0 +} + +func (x *UserStatus) GetHasFingerprintSet() bool { + if x != nil { + return x.HasFingerprintSet + } + return false +} + +func (x *UserStatus) GetTeamConfig() *TeamConfig { + if x != nil { + return x.TeamConfig + } + return nil +} + +func (x *UserStatus) GetCascadeModelConfigData() *CascadeModelConfigData { + if x != nil { + return x.CascadeModelConfigData + } + return nil +} + +func (x *UserStatus) GetWindsurfProTrialEndTime() *timestamppb.Timestamp { + if x != nil { + return x.WindsurfProTrialEndTime + } + return nil +} + +func (x *UserStatus) GetMaxNumPremiumChatMessages() int64 { + if x != nil { + return x.MaxNumPremiumChatMessages + } + return 0 +} + +func (x *UserStatus) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type ModelFeatures struct { + state protoimpl.MessageState `protogen:"open.v1"` + SupportsContextTokens bool `protobuf:"varint,2,opt,name=supports_context_tokens,json=supportsContextTokens,proto3" json:"supports_context_tokens,omitempty"` + RequiresInstructTags bool `protobuf:"varint,3,opt,name=requires_instruct_tags,json=requiresInstructTags,proto3" json:"requires_instruct_tags,omitempty"` + RequiresFimContext bool `protobuf:"varint,4,opt,name=requires_fim_context,json=requiresFimContext,proto3" json:"requires_fim_context,omitempty"` + RequiresContextSnippetPrefix bool `protobuf:"varint,5,opt,name=requires_context_snippet_prefix,json=requiresContextSnippetPrefix,proto3" json:"requires_context_snippet_prefix,omitempty"` + RequiresContextRelevanceTags bool `protobuf:"varint,6,opt,name=requires_context_relevance_tags,json=requiresContextRelevanceTags,proto3" json:"requires_context_relevance_tags,omitempty"` + RequiresLlama3Tokens bool `protobuf:"varint,7,opt,name=requires_llama3_tokens,json=requiresLlama3Tokens,proto3" json:"requires_llama3_tokens,omitempty"` + ZeroShotCapable bool `protobuf:"varint,8,opt,name=zero_shot_capable,json=zeroShotCapable,proto3" json:"zero_shot_capable,omitempty"` + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + RequiresAutocompleteAsCommand bool `protobuf:"varint,9,opt,name=requires_autocomplete_as_command,json=requiresAutocompleteAsCommand,proto3" json:"requires_autocomplete_as_command,omitempty"` + SupportsCursorAwareSupercomplete bool `protobuf:"varint,10,opt,name=supports_cursor_aware_supercomplete,json=supportsCursorAwareSupercomplete,proto3" json:"supports_cursor_aware_supercomplete,omitempty"` + SupportsImages bool `protobuf:"varint,11,opt,name=supports_images,json=supportsImages,proto3" json:"supports_images,omitempty"` + SupportsImageCaptions bool `protobuf:"varint,20,opt,name=supports_image_captions,json=supportsImageCaptions,proto3" json:"supports_image_captions,omitempty"` + SupportsVideo bool `protobuf:"varint,27,opt,name=supports_video,json=supportsVideo,proto3" json:"supports_video,omitempty"` + SupportsVideoUrls bool `protobuf:"varint,28,opt,name=supports_video_urls,json=supportsVideoUrls,proto3" json:"supports_video_urls,omitempty"` + SupportsDocuments bool `protobuf:"varint,29,opt,name=supports_documents,json=supportsDocuments,proto3" json:"supports_documents,omitempty"` + SupportsDocumentUrls bool `protobuf:"varint,30,opt,name=supports_document_urls,json=supportsDocumentUrls,proto3" json:"supports_document_urls,omitempty"` + SupportsToolCalls bool `protobuf:"varint,12,opt,name=supports_tool_calls,json=supportsToolCalls,proto3" json:"supports_tool_calls,omitempty"` + SupportsParallelToolCalls bool `protobuf:"varint,21,opt,name=supports_parallel_tool_calls,json=supportsParallelToolCalls,proto3" json:"supports_parallel_tool_calls,omitempty"` + SupportsCumulativeContext bool `protobuf:"varint,13,opt,name=supports_cumulative_context,json=supportsCumulativeContext,proto3" json:"supports_cumulative_context,omitempty"` + TabJumpPrintLineRange bool `protobuf:"varint,14,opt,name=tab_jump_print_line_range,json=tabJumpPrintLineRange,proto3" json:"tab_jump_print_line_range,omitempty"` + SupportsThinking bool `protobuf:"varint,15,opt,name=supports_thinking,json=supportsThinking,proto3" json:"supports_thinking,omitempty"` + InterleaveThinking bool `protobuf:"varint,24,opt,name=interleave_thinking,json=interleaveThinking,proto3" json:"interleave_thinking,omitempty"` + PreserveThinking bool `protobuf:"varint,25,opt,name=preserve_thinking,json=preserveThinking,proto3" json:"preserve_thinking,omitempty"` + SummarizeThinking bool `protobuf:"varint,31,opt,name=summarize_thinking,json=summarizeThinking,proto3" json:"summarize_thinking,omitempty"` + SupportsEstimateTokenCounter bool `protobuf:"varint,17,opt,name=supports_estimate_token_counter,json=supportsEstimateTokenCounter,proto3" json:"supports_estimate_token_counter,omitempty"` + AddCursorToFindReplaceTarget bool `protobuf:"varint,18,opt,name=add_cursor_to_find_replace_target,json=addCursorToFindReplaceTarget,proto3" json:"add_cursor_to_find_replace_target,omitempty"` + SupportsTabJumpUseWholeDocument bool `protobuf:"varint,19,opt,name=supports_tab_jump_use_whole_document,json=supportsTabJumpUseWholeDocument,proto3" json:"supports_tab_jump_use_whole_document,omitempty"` + RequiresSupercompleteClean bool `protobuf:"varint,22,opt,name=requires_supercomplete_clean,json=requiresSupercompleteClean,proto3" json:"requires_supercomplete_clean,omitempty"` + TabRouteToModal bool `protobuf:"varint,23,opt,name=tab_route_to_modal,json=tabRouteToModal,proto3" json:"tab_route_to_modal,omitempty"` + SupportsRejectionContext bool `protobuf:"varint,26,opt,name=supports_rejection_context,json=supportsRejectionContext,proto3" json:"supports_rejection_context,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelFeatures) Reset() { + *x = ModelFeatures{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelFeatures) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelFeatures) ProtoMessage() {} + +func (x *ModelFeatures) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ModelFeatures.ProtoReflect.Descriptor instead. +func (*ModelFeatures) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{25} +} + +func (x *ModelFeatures) GetSupportsContextTokens() bool { + if x != nil { + return x.SupportsContextTokens + } + return false +} + +func (x *ModelFeatures) GetRequiresInstructTags() bool { + if x != nil { + return x.RequiresInstructTags + } + return false +} + +func (x *ModelFeatures) GetRequiresFimContext() bool { + if x != nil { + return x.RequiresFimContext + } + return false +} + +func (x *ModelFeatures) GetRequiresContextSnippetPrefix() bool { + if x != nil { + return x.RequiresContextSnippetPrefix + } + return false +} + +func (x *ModelFeatures) GetRequiresContextRelevanceTags() bool { + if x != nil { + return x.RequiresContextRelevanceTags + } + return false +} + +func (x *ModelFeatures) GetRequiresLlama3Tokens() bool { + if x != nil { + return x.RequiresLlama3Tokens + } + return false +} + +func (x *ModelFeatures) GetZeroShotCapable() bool { + if x != nil { + return x.ZeroShotCapable + } + return false +} + +// Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. +func (x *ModelFeatures) GetRequiresAutocompleteAsCommand() bool { + if x != nil { + return x.RequiresAutocompleteAsCommand + } + return false +} + +func (x *ModelFeatures) GetSupportsCursorAwareSupercomplete() bool { + if x != nil { + return x.SupportsCursorAwareSupercomplete + } + return false +} + +func (x *ModelFeatures) GetSupportsImages() bool { + if x != nil { + return x.SupportsImages + } + return false +} + +func (x *ModelFeatures) GetSupportsImageCaptions() bool { + if x != nil { + return x.SupportsImageCaptions + } + return false +} + +func (x *ModelFeatures) GetSupportsVideo() bool { + if x != nil { + return x.SupportsVideo + } + return false +} + +func (x *ModelFeatures) GetSupportsVideoUrls() bool { + if x != nil { + return x.SupportsVideoUrls + } + return false +} + +func (x *ModelFeatures) GetSupportsDocuments() bool { + if x != nil { + return x.SupportsDocuments + } + return false +} + +func (x *ModelFeatures) GetSupportsDocumentUrls() bool { + if x != nil { + return x.SupportsDocumentUrls + } + return false +} + +func (x *ModelFeatures) GetSupportsToolCalls() bool { + if x != nil { + return x.SupportsToolCalls + } + return false +} + +func (x *ModelFeatures) GetSupportsParallelToolCalls() bool { + if x != nil { + return x.SupportsParallelToolCalls + } + return false +} + +func (x *ModelFeatures) GetSupportsCumulativeContext() bool { + if x != nil { + return x.SupportsCumulativeContext + } + return false +} + +func (x *ModelFeatures) GetTabJumpPrintLineRange() bool { + if x != nil { + return x.TabJumpPrintLineRange + } + return false +} + +func (x *ModelFeatures) GetSupportsThinking() bool { + if x != nil { + return x.SupportsThinking + } + return false +} + +func (x *ModelFeatures) GetInterleaveThinking() bool { + if x != nil { + return x.InterleaveThinking + } + return false +} + +func (x *ModelFeatures) GetPreserveThinking() bool { + if x != nil { + return x.PreserveThinking + } + return false +} + +func (x *ModelFeatures) GetSummarizeThinking() bool { + if x != nil { + return x.SummarizeThinking + } + return false +} + +func (x *ModelFeatures) GetSupportsEstimateTokenCounter() bool { + if x != nil { + return x.SupportsEstimateTokenCounter + } + return false +} + +func (x *ModelFeatures) GetAddCursorToFindReplaceTarget() bool { + if x != nil { + return x.AddCursorToFindReplaceTarget + } + return false +} + +func (x *ModelFeatures) GetSupportsTabJumpUseWholeDocument() bool { + if x != nil { + return x.SupportsTabJumpUseWholeDocument + } + return false +} + +func (x *ModelFeatures) GetRequiresSupercompleteClean() bool { + if x != nil { + return x.RequiresSupercompleteClean + } + return false +} + +func (x *ModelFeatures) GetTabRouteToModal() bool { + if x != nil { + return x.TabRouteToModal + } + return false +} + +func (x *ModelFeatures) GetSupportsRejectionContext() bool { + if x != nil { + return x.SupportsRejectionContext + } + return false +} + +type OpenAIInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReasoningEffort string `protobuf:"bytes,1,opt,name=reasoning_effort,json=reasoningEffort,proto3" json:"reasoning_effort,omitempty"` + ServiceTier string `protobuf:"bytes,2,opt,name=service_tier,json=serviceTier,proto3" json:"service_tier,omitempty"` + ExtendedPromptCacheRetention bool `protobuf:"varint,3,opt,name=extended_prompt_cache_retention,json=extendedPromptCacheRetention,proto3" json:"extended_prompt_cache_retention,omitempty"` + ReasoningContext string `protobuf:"bytes,4,opt,name=reasoning_context,json=reasoningContext,proto3" json:"reasoning_context,omitempty"` + DisablePromptCacheWrites bool `protobuf:"varint,5,opt,name=disable_prompt_cache_writes,json=disablePromptCacheWrites,proto3" json:"disable_prompt_cache_writes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *OpenAIInferenceConfig) Reset() { + *x = OpenAIInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OpenAIInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OpenAIInferenceConfig) ProtoMessage() {} + +func (x *OpenAIInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 OpenAIInferenceConfig.ProtoReflect.Descriptor instead. +func (*OpenAIInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{26} +} + +func (x *OpenAIInferenceConfig) GetReasoningEffort() string { + if x != nil { + return x.ReasoningEffort + } + return "" +} + +func (x *OpenAIInferenceConfig) GetServiceTier() string { + if x != nil { + return x.ServiceTier + } + return "" +} + +func (x *OpenAIInferenceConfig) GetExtendedPromptCacheRetention() bool { + if x != nil { + return x.ExtendedPromptCacheRetention + } + return false +} + +func (x *OpenAIInferenceConfig) GetReasoningContext() string { + if x != nil { + return x.ReasoningContext + } + return "" +} + +func (x *OpenAIInferenceConfig) GetDisablePromptCacheWrites() bool { + if x != nil { + return x.DisablePromptCacheWrites + } + return false +} + +type GoogleInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReasoningEffort string `protobuf:"bytes,1,opt,name=reasoning_effort,json=reasoningEffort,proto3" json:"reasoning_effort,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GoogleInferenceConfig) Reset() { + *x = GoogleInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GoogleInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GoogleInferenceConfig) ProtoMessage() {} + +func (x *GoogleInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 GoogleInferenceConfig.ProtoReflect.Descriptor instead. +func (*GoogleInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{27} +} + +func (x *GoogleInferenceConfig) GetReasoningEffort() string { + if x != nil { + return x.ReasoningEffort + } + return "" +} + +type AnthropicInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Thinking bool `protobuf:"varint,1,opt,name=thinking,proto3" json:"thinking,omitempty"` + Effort string `protobuf:"bytes,2,opt,name=effort,proto3" json:"effort,omitempty"` + FastMode bool `protobuf:"varint,3,opt,name=fast_mode,json=fastMode,proto3" json:"fast_mode,omitempty"` + Context_1M bool `protobuf:"varint,4,opt,name=context_1m,json=context1m,proto3" json:"context_1m,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AnthropicInferenceConfig) Reset() { + *x = AnthropicInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AnthropicInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnthropicInferenceConfig) ProtoMessage() {} + +func (x *AnthropicInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 AnthropicInferenceConfig.ProtoReflect.Descriptor instead. +func (*AnthropicInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{28} +} + +func (x *AnthropicInferenceConfig) GetThinking() bool { + if x != nil { + return x.Thinking + } + return false +} + +func (x *AnthropicInferenceConfig) GetEffort() string { + if x != nil { + return x.Effort + } + return "" +} + +func (x *AnthropicInferenceConfig) GetFastMode() bool { + if x != nil { + return x.FastMode + } + return false +} + +func (x *AnthropicInferenceConfig) GetContext_1M() bool { + if x != nil { + return x.Context_1M + } + return false +} + +type ZaiInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Effort string `protobuf:"bytes,1,opt,name=effort,proto3" json:"effort,omitempty"` + LongContext bool `protobuf:"varint,2,opt,name=long_context,json=longContext,proto3" json:"long_context,omitempty"` + Thinking bool `protobuf:"varint,3,opt,name=thinking,proto3" json:"thinking,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ZaiInferenceConfig) Reset() { + *x = ZaiInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ZaiInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZaiInferenceConfig) ProtoMessage() {} + +func (x *ZaiInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 ZaiInferenceConfig.ProtoReflect.Descriptor instead. +func (*ZaiInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{29} +} + +func (x *ZaiInferenceConfig) GetEffort() string { + if x != nil { + return x.Effort + } + return "" +} + +func (x *ZaiInferenceConfig) GetLongContext() bool { + if x != nil { + return x.LongContext + } + return false +} + +func (x *ZaiInferenceConfig) GetThinking() bool { + if x != nil { + return x.Thinking + } + return false +} + +type XaiInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReasoningEffort string `protobuf:"bytes,1,opt,name=reasoning_effort,json=reasoningEffort,proto3" json:"reasoning_effort,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *XaiInferenceConfig) Reset() { + *x = XaiInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *XaiInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*XaiInferenceConfig) ProtoMessage() {} + +func (x *XaiInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_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 XaiInferenceConfig.ProtoReflect.Descriptor instead. +func (*XaiInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{30} +} + +func (x *XaiInferenceConfig) GetReasoningEffort() string { + if x != nil { + return x.ReasoningEffort + } + return "" +} + +type ThinkingMachinesInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReasoningEffort string `protobuf:"bytes,1,opt,name=reasoning_effort,json=reasoningEffort,proto3" json:"reasoning_effort,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ThinkingMachinesInferenceConfig) Reset() { + *x = ThinkingMachinesInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ThinkingMachinesInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ThinkingMachinesInferenceConfig) ProtoMessage() {} + +func (x *ThinkingMachinesInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[31] + 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 ThinkingMachinesInferenceConfig.ProtoReflect.Descriptor instead. +func (*ThinkingMachinesInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{31} +} + +func (x *ThinkingMachinesInferenceConfig) GetReasoningEffort() string { + if x != nil { + return x.ReasoningEffort + } + return "" +} + +type MoonshotInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReasoningEffort string `protobuf:"bytes,1,opt,name=reasoning_effort,json=reasoningEffort,proto3" json:"reasoning_effort,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MoonshotInferenceConfig) Reset() { + *x = MoonshotInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MoonshotInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MoonshotInferenceConfig) ProtoMessage() {} + +func (x *MoonshotInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[32] + 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 MoonshotInferenceConfig.ProtoReflect.Descriptor instead. +func (*MoonshotInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{32} +} + +func (x *MoonshotInferenceConfig) GetReasoningEffort() string { + if x != nil { + return x.ReasoningEffort + } + return "" +} + +type NvidiaInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReasoningEffort string `protobuf:"bytes,1,opt,name=reasoning_effort,json=reasoningEffort,proto3" json:"reasoning_effort,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NvidiaInferenceConfig) Reset() { + *x = NvidiaInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NvidiaInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NvidiaInferenceConfig) ProtoMessage() {} + +func (x *NvidiaInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[33] + 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 NvidiaInferenceConfig.ProtoReflect.Descriptor instead. +func (*NvidiaInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{33} +} + +func (x *NvidiaInferenceConfig) GetReasoningEffort() string { + if x != nil { + return x.ReasoningEffort + } + return "" +} + +type DeepSeekInferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReasoningEffort string `protobuf:"bytes,1,opt,name=reasoning_effort,json=reasoningEffort,proto3" json:"reasoning_effort,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeepSeekInferenceConfig) Reset() { + *x = DeepSeekInferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeepSeekInferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeepSeekInferenceConfig) ProtoMessage() {} + +func (x *DeepSeekInferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[34] + 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 DeepSeekInferenceConfig.ProtoReflect.Descriptor instead. +func (*DeepSeekInferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{34} +} + +func (x *DeepSeekInferenceConfig) GetReasoningEffort() string { + if x != nil { + return x.ReasoningEffort + } + return "" +} + +type InferenceConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Config: + // + // *InferenceConfig_Openai + // *InferenceConfig_Google + // *InferenceConfig_Anthropic + // *InferenceConfig_Zai + // *InferenceConfig_Xai + // *InferenceConfig_ThinkingMachines + // *InferenceConfig_Moonshot + // *InferenceConfig_Nvidia + // *InferenceConfig_Deepseek + Config isInferenceConfig_Config `protobuf_oneof:"config"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InferenceConfig) Reset() { + *x = InferenceConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InferenceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InferenceConfig) ProtoMessage() {} + +func (x *InferenceConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[35] + 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 InferenceConfig.ProtoReflect.Descriptor instead. +func (*InferenceConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{35} +} + +func (x *InferenceConfig) GetConfig() isInferenceConfig_Config { + if x != nil { + return x.Config + } + return nil +} + +func (x *InferenceConfig) GetOpenai() *OpenAIInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_Openai); ok { + return x.Openai + } + } + return nil +} + +func (x *InferenceConfig) GetGoogle() *GoogleInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_Google); ok { + return x.Google + } + } + return nil +} + +func (x *InferenceConfig) GetAnthropic() *AnthropicInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_Anthropic); ok { + return x.Anthropic + } + } + return nil +} + +func (x *InferenceConfig) GetZai() *ZaiInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_Zai); ok { + return x.Zai + } + } + return nil +} + +func (x *InferenceConfig) GetXai() *XaiInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_Xai); ok { + return x.Xai + } + } + return nil +} + +func (x *InferenceConfig) GetThinkingMachines() *ThinkingMachinesInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_ThinkingMachines); ok { + return x.ThinkingMachines + } + } + return nil +} + +func (x *InferenceConfig) GetMoonshot() *MoonshotInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_Moonshot); ok { + return x.Moonshot + } + } + return nil +} + +func (x *InferenceConfig) GetNvidia() *NvidiaInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_Nvidia); ok { + return x.Nvidia + } + } + return nil +} + +func (x *InferenceConfig) GetDeepseek() *DeepSeekInferenceConfig { + if x != nil { + if x, ok := x.Config.(*InferenceConfig_Deepseek); ok { + return x.Deepseek + } + } + return nil +} + +type isInferenceConfig_Config interface { + isInferenceConfig_Config() +} + +type InferenceConfig_Openai struct { + Openai *OpenAIInferenceConfig `protobuf:"bytes,1,opt,name=openai,proto3,oneof"` +} + +type InferenceConfig_Google struct { + Google *GoogleInferenceConfig `protobuf:"bytes,2,opt,name=google,proto3,oneof"` +} + +type InferenceConfig_Anthropic struct { + Anthropic *AnthropicInferenceConfig `protobuf:"bytes,3,opt,name=anthropic,proto3,oneof"` +} + +type InferenceConfig_Zai struct { + Zai *ZaiInferenceConfig `protobuf:"bytes,4,opt,name=zai,proto3,oneof"` +} + +type InferenceConfig_Xai struct { + Xai *XaiInferenceConfig `protobuf:"bytes,5,opt,name=xai,proto3,oneof"` +} + +type InferenceConfig_ThinkingMachines struct { + ThinkingMachines *ThinkingMachinesInferenceConfig `protobuf:"bytes,6,opt,name=thinking_machines,json=thinkingMachines,proto3,oneof"` +} + +type InferenceConfig_Moonshot struct { + Moonshot *MoonshotInferenceConfig `protobuf:"bytes,7,opt,name=moonshot,proto3,oneof"` +} + +type InferenceConfig_Nvidia struct { + Nvidia *NvidiaInferenceConfig `protobuf:"bytes,8,opt,name=nvidia,proto3,oneof"` +} + +type InferenceConfig_Deepseek struct { + Deepseek *DeepSeekInferenceConfig `protobuf:"bytes,9,opt,name=deepseek,proto3,oneof"` +} + +func (*InferenceConfig_Openai) isInferenceConfig_Config() {} + +func (*InferenceConfig_Google) isInferenceConfig_Config() {} + +func (*InferenceConfig_Anthropic) isInferenceConfig_Config() {} + +func (*InferenceConfig_Zai) isInferenceConfig_Config() {} + +func (*InferenceConfig_Xai) isInferenceConfig_Config() {} + +func (*InferenceConfig_ThinkingMachines) isInferenceConfig_Config() {} + +func (*InferenceConfig_Moonshot) isInferenceConfig_Config() {} + +func (*InferenceConfig_Nvidia) isInferenceConfig_Config() {} + +func (*InferenceConfig_Deepseek) isInferenceConfig_Config() {} + +type ModelInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + ModelId Model `protobuf:"varint,1,opt,name=model_id,json=modelId,proto3,enum=exa.codeium_common_pb.Model" json:"model_id,omitempty"` + ModelUid string `protobuf:"bytes,17,opt,name=model_uid,json=modelUid,proto3" json:"model_uid,omitempty"` + IsInternal bool `protobuf:"varint,2,opt,name=is_internal,json=isInternal,proto3" json:"is_internal,omitempty"` + ModelType ModelType `protobuf:"varint,3,opt,name=model_type,json=modelType,proto3,enum=exa.codeium_common_pb.ModelType" json:"model_type,omitempty"` + MaxTokens int32 `protobuf:"varint,4,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"` + TokenizerType string `protobuf:"bytes,5,opt,name=tokenizer_type,json=tokenizerType,proto3" json:"tokenizer_type,omitempty"` + ModelFeatures *ModelFeatures `protobuf:"bytes,6,opt,name=model_features,json=modelFeatures,proto3" json:"model_features,omitempty"` + ApiProvider APIProvider `protobuf:"varint,7,opt,name=api_provider,json=apiProvider,proto3,enum=exa.codeium_common_pb.APIProvider" json:"api_provider,omitempty"` + ModelName string `protobuf:"bytes,8,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"` + SupportsContext bool `protobuf:"varint,9,opt,name=supports_context,json=supportsContext,proto3" json:"supports_context,omitempty"` + EmbedDim int32 `protobuf:"varint,10,opt,name=embed_dim,json=embedDim,proto3" json:"embed_dim,omitempty"` + BaseUrl string `protobuf:"bytes,11,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"` + ChatModelName string `protobuf:"bytes,12,opt,name=chat_model_name,json=chatModelName,proto3" json:"chat_model_name,omitempty"` + MaxOutputTokens int32 `protobuf:"varint,13,opt,name=max_output_tokens,json=maxOutputTokens,proto3" json:"max_output_tokens,omitempty"` + PromptTemplaterType PromptTemplaterType `protobuf:"varint,14,opt,name=prompt_templater_type,json=promptTemplaterType,proto3,enum=exa.codeium_common_pb.PromptTemplaterType" json:"prompt_templater_type,omitempty"` + ToolFormatterType ToolFormatterType `protobuf:"varint,15,opt,name=tool_formatter_type,json=toolFormatterType,proto3,enum=exa.codeium_common_pb.ToolFormatterType" json:"tool_formatter_type,omitempty"` + InferenceServerUrl string `protobuf:"bytes,18,opt,name=inference_server_url,json=inferenceServerUrl,proto3" json:"inference_server_url,omitempty"` + HarnessUids []string `protobuf:"bytes,20,rep,name=harness_uids,json=harnessUids,proto3" json:"harness_uids,omitempty"` + ArenaConfig *ArenaConfig `protobuf:"bytes,21,opt,name=arena_config,json=arenaConfig,proto3,oneof" json:"arena_config,omitempty"` + DisplayOption DisplayOption `protobuf:"varint,22,opt,name=display_option,json=displayOption,proto3,enum=exa.codeium_common_pb.DisplayOption" json:"display_option,omitempty"` + ModelFamilyUid string `protobuf:"bytes,23,opt,name=model_family_uid,json=modelFamilyUid,proto3" json:"model_family_uid,omitempty"` + InferenceConfig *InferenceConfig `protobuf:"bytes,24,opt,name=inference_config,json=inferenceConfig,proto3" json:"inference_config,omitempty"` + IsModelRouter bool `protobuf:"varint,25,opt,name=is_model_router,json=isModelRouter,proto3" json:"is_model_router,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelInfo) Reset() { + *x = ModelInfo{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelInfo) ProtoMessage() {} + +func (x *ModelInfo) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[36] + 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 ModelInfo.ProtoReflect.Descriptor instead. +func (*ModelInfo) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{36} +} + +// Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. +func (x *ModelInfo) GetModelId() Model { + if x != nil { + return x.ModelId + } + return Model_MODEL_UNSPECIFIED +} + +func (x *ModelInfo) GetModelUid() string { + if x != nil { + return x.ModelUid + } + return "" +} + +func (x *ModelInfo) GetIsInternal() bool { + if x != nil { + return x.IsInternal + } + return false +} + +func (x *ModelInfo) GetModelType() ModelType { + if x != nil { + return x.ModelType + } + return ModelType_MODEL_TYPE_UNSPECIFIED +} + +func (x *ModelInfo) GetMaxTokens() int32 { + if x != nil { + return x.MaxTokens + } + return 0 +} + +func (x *ModelInfo) GetTokenizerType() string { + if x != nil { + return x.TokenizerType + } + return "" +} + +func (x *ModelInfo) GetModelFeatures() *ModelFeatures { + if x != nil { + return x.ModelFeatures + } + return nil +} + +func (x *ModelInfo) GetApiProvider() APIProvider { + if x != nil { + return x.ApiProvider + } + return APIProvider_API_PROVIDER_UNSPECIFIED +} + +func (x *ModelInfo) GetModelName() string { + if x != nil { + return x.ModelName + } + return "" +} + +func (x *ModelInfo) GetSupportsContext() bool { + if x != nil { + return x.SupportsContext + } + return false +} + +func (x *ModelInfo) GetEmbedDim() int32 { + if x != nil { + return x.EmbedDim + } + return 0 +} + +func (x *ModelInfo) GetBaseUrl() string { + if x != nil { + return x.BaseUrl + } + return "" +} + +func (x *ModelInfo) GetChatModelName() string { + if x != nil { + return x.ChatModelName + } + return "" +} + +func (x *ModelInfo) GetMaxOutputTokens() int32 { + if x != nil { + return x.MaxOutputTokens + } + return 0 +} + +func (x *ModelInfo) GetPromptTemplaterType() PromptTemplaterType { + if x != nil { + return x.PromptTemplaterType + } + return PromptTemplaterType_PROMPT_TEMPLATER_TYPE_UNSPECIFIED +} + +func (x *ModelInfo) GetToolFormatterType() ToolFormatterType { + if x != nil { + return x.ToolFormatterType + } + return ToolFormatterType_TOOL_FORMATTER_TYPE_UNSPECIFIED +} + +func (x *ModelInfo) GetInferenceServerUrl() string { + if x != nil { + return x.InferenceServerUrl + } + return "" +} + +func (x *ModelInfo) GetHarnessUids() []string { + if x != nil { + return x.HarnessUids + } + return nil +} + +func (x *ModelInfo) GetArenaConfig() *ArenaConfig { + if x != nil { + return x.ArenaConfig + } + return nil +} + +func (x *ModelInfo) GetDisplayOption() DisplayOption { + if x != nil { + return x.DisplayOption + } + return DisplayOption_DISPLAY_OPTION_UNSPECIFIED +} + +func (x *ModelInfo) GetModelFamilyUid() string { + if x != nil { + return x.ModelFamilyUid + } + return "" +} + +func (x *ModelInfo) GetInferenceConfig() *InferenceConfig { + if x != nil { + return x.InferenceConfig + } + return nil +} + +func (x *ModelInfo) GetIsModelRouter() bool { + if x != nil { + return x.IsModelRouter + } + return false +} + +type ModelFamilyMetadataValue struct { + state protoimpl.MessageState `protogen:"open.v1"` + Order int32 `protobuf:"varint,1,opt,name=order,proto3" json:"order,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + ControlType ModelFamilyDimensionControlType `protobuf:"varint,3,opt,name=control_type,json=controlType,proto3,enum=exa.codeium_common_pb.ModelFamilyDimensionControlType" json:"control_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelFamilyMetadataValue) Reset() { + *x = ModelFamilyMetadataValue{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelFamilyMetadataValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelFamilyMetadataValue) ProtoMessage() {} + +func (x *ModelFamilyMetadataValue) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[37] + 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 ModelFamilyMetadataValue.ProtoReflect.Descriptor instead. +func (*ModelFamilyMetadataValue) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{37} +} + +func (x *ModelFamilyMetadataValue) GetOrder() int32 { + if x != nil { + return x.Order + } + return 0 +} + +func (x *ModelFamilyMetadataValue) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ModelFamilyMetadataValue) GetControlType() ModelFamilyDimensionControlType { + if x != nil { + return x.ControlType + } + return ModelFamilyDimensionControlType_MODEL_FAMILY_DIMENSION_CONTROL_TYPE_UNSPECIFIED +} + +type ModelFamilyMetadataEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value *ModelFamilyMetadataValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelFamilyMetadataEntry) Reset() { + *x = ModelFamilyMetadataEntry{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelFamilyMetadataEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelFamilyMetadataEntry) ProtoMessage() {} + +func (x *ModelFamilyMetadataEntry) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[38] + 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 ModelFamilyMetadataEntry.ProtoReflect.Descriptor instead. +func (*ModelFamilyMetadataEntry) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{38} +} + +func (x *ModelFamilyMetadataEntry) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *ModelFamilyMetadataEntry) GetValue() *ModelFamilyMetadataValue { + if x != nil { + return x.Value + } + return nil +} + +type ModelFamilyMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + ModelFamilyLabel string `protobuf:"bytes,1,opt,name=model_family_label,json=modelFamilyLabel,proto3" json:"model_family_label,omitempty"` + Entries []*ModelFamilyMetadataEntry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"` + IsDefaultModelInFamily bool `protobuf:"varint,3,opt,name=is_default_model_in_family,json=isDefaultModelInFamily,proto3" json:"is_default_model_in_family,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelFamilyMetadata) Reset() { + *x = ModelFamilyMetadata{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelFamilyMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelFamilyMetadata) ProtoMessage() {} + +func (x *ModelFamilyMetadata) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[39] + 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 ModelFamilyMetadata.ProtoReflect.Descriptor instead. +func (*ModelFamilyMetadata) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{39} +} + +func (x *ModelFamilyMetadata) GetModelFamilyLabel() string { + if x != nil { + return x.ModelFamilyLabel + } + return "" +} + +func (x *ModelFamilyMetadata) GetEntries() []*ModelFamilyMetadataEntry { + if x != nil { + return x.Entries + } + return nil +} + +func (x *ModelFamilyMetadata) GetIsDefaultModelInFamily() bool { + if x != nil { + return x.IsDefaultModelInFamily + } + return false +} + +type ChatToolCall struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + ArgumentsJson string `protobuf:"bytes,3,opt,name=arguments_json,json=argumentsJson,proto3" json:"arguments_json,omitempty"` + InvalidJsonStr string `protobuf:"bytes,4,opt,name=invalid_json_str,json=invalidJsonStr,proto3" json:"invalid_json_str,omitempty"` + InvalidJsonErr string `protobuf:"bytes,5,opt,name=invalid_json_err,json=invalidJsonErr,proto3" json:"invalid_json_err,omitempty"` + IsCustomToolCall bool `protobuf:"varint,6,opt,name=is_custom_tool_call,json=isCustomToolCall,proto3" json:"is_custom_tool_call,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatToolCall) Reset() { + *x = ChatToolCall{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChatToolCall) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatToolCall) ProtoMessage() {} + +func (x *ChatToolCall) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[40] + 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 ChatToolCall.ProtoReflect.Descriptor instead. +func (*ChatToolCall) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{40} +} + +func (x *ChatToolCall) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ChatToolCall) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ChatToolCall) GetArgumentsJson() string { + if x != nil { + return x.ArgumentsJson + } + return "" +} + +func (x *ChatToolCall) GetInvalidJsonStr() string { + if x != nil { + return x.InvalidJsonStr + } + return "" +} + +func (x *ChatToolCall) GetInvalidJsonErr() string { + if x != nil { + return x.InvalidJsonErr + } + return "" +} + +func (x *ChatToolCall) GetIsCustomToolCall() bool { + if x != nil { + return x.IsCustomToolCall + } + return false +} + +type ModelUsageStats struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. + ModelDeprecated Model `protobuf:"varint,1,opt,name=model_deprecated,json=model,proto3,enum=exa.codeium_common_pb.Model" json:"model_deprecated,omitempty"` + ModelUid string `protobuf:"bytes,9,opt,name=model_uid,json=modelUid,proto3" json:"model_uid,omitempty"` + BillingModelUid string `protobuf:"bytes,10,opt,name=billing_model_uid,json=billingModelUid,proto3" json:"billing_model_uid,omitempty"` + RequestedModelUid string `protobuf:"bytes,11,opt,name=requested_model_uid,json=requestedModelUid,proto3" json:"requested_model_uid,omitempty"` + InputTokens uint64 `protobuf:"varint,2,opt,name=input_tokens,json=inputTokens,proto3" json:"input_tokens,omitempty"` + OutputTokens uint64 `protobuf:"varint,3,opt,name=output_tokens,json=outputTokens,proto3" json:"output_tokens,omitempty"` + CacheWriteTokens uint64 `protobuf:"varint,4,opt,name=cache_write_tokens,json=cacheWriteTokens,proto3" json:"cache_write_tokens,omitempty"` + CacheReadTokens uint64 `protobuf:"varint,5,opt,name=cache_read_tokens,json=cacheReadTokens,proto3" json:"cache_read_tokens,omitempty"` + ApiProvider APIProvider `protobuf:"varint,6,opt,name=api_provider,json=apiProvider,proto3,enum=exa.codeium_common_pb.APIProvider" json:"api_provider,omitempty"` + MessageId string `protobuf:"bytes,7,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + ResponseHeader map[string]string `protobuf:"bytes,8,rep,name=response_header,json=responseHeader,proto3" json:"response_header,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ProviderRefusal bool `protobuf:"varint,12,opt,name=provider_refusal,json=providerRefusal,proto3" json:"provider_refusal,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModelUsageStats) Reset() { + *x = ModelUsageStats{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModelUsageStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelUsageStats) ProtoMessage() {} + +func (x *ModelUsageStats) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[41] + 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 ModelUsageStats.ProtoReflect.Descriptor instead. +func (*ModelUsageStats) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{41} +} + +// Deprecated: Marked as deprecated in exa/codeium_common_pb/codeium_common.proto. +func (x *ModelUsageStats) GetModelDeprecated() Model { + if x != nil { + return x.ModelDeprecated + } + return Model_MODEL_UNSPECIFIED +} + +func (x *ModelUsageStats) GetModelUid() string { + if x != nil { + return x.ModelUid + } + return "" +} + +func (x *ModelUsageStats) GetBillingModelUid() string { + if x != nil { + return x.BillingModelUid + } + return "" +} + +func (x *ModelUsageStats) GetRequestedModelUid() string { + if x != nil { + return x.RequestedModelUid + } + return "" +} + +func (x *ModelUsageStats) GetInputTokens() uint64 { + if x != nil { + return x.InputTokens + } + return 0 +} + +func (x *ModelUsageStats) GetOutputTokens() uint64 { + if x != nil { + return x.OutputTokens + } + return 0 +} + +func (x *ModelUsageStats) GetCacheWriteTokens() uint64 { + if x != nil { + return x.CacheWriteTokens + } + return 0 +} + +func (x *ModelUsageStats) GetCacheReadTokens() uint64 { + if x != nil { + return x.CacheReadTokens + } + return 0 +} + +func (x *ModelUsageStats) GetApiProvider() APIProvider { + if x != nil { + return x.ApiProvider + } + return APIProvider_API_PROVIDER_UNSPECIFIED +} + +func (x *ModelUsageStats) GetMessageId() string { + if x != nil { + return x.MessageId + } + return "" +} + +func (x *ModelUsageStats) GetResponseHeader() map[string]string { + if x != nil { + return x.ResponseHeader + } + return nil +} + +func (x *ModelUsageStats) GetProviderRefusal() bool { + if x != nil { + return x.ProviderRefusal + } + return false +} + +type ImageData struct { + state protoimpl.MessageState `protogen:"open.v1"` + Base64Data string `protobuf:"bytes,1,opt,name=base64_data,json=base64Data,proto3" json:"base64_data,omitempty"` + MimeType string `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` + Caption string `protobuf:"bytes,3,opt,name=caption,proto3" json:"caption,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ImageData) Reset() { + *x = ImageData{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ImageData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageData) ProtoMessage() {} + +func (x *ImageData) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[42] + 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 ImageData.ProtoReflect.Descriptor instead. +func (*ImageData) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{42} +} + +func (x *ImageData) GetBase64Data() string { + if x != nil { + return x.Base64Data + } + return "" +} + +func (x *ImageData) GetMimeType() string { + if x != nil { + return x.MimeType + } + return "" +} + +func (x *ImageData) GetCaption() string { + if x != nil { + return x.Caption + } + return "" +} + +type VideoData struct { + state protoimpl.MessageState `protogen:"open.v1"` + Base64Data string `protobuf:"bytes,1,opt,name=base64_data,json=base64Data,proto3" json:"base64_data,omitempty"` + MimeType string `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *VideoData) Reset() { + *x = VideoData{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VideoData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoData) ProtoMessage() {} + +func (x *VideoData) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[43] + 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 VideoData.ProtoReflect.Descriptor instead. +func (*VideoData) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{43} +} + +func (x *VideoData) GetBase64Data() string { + if x != nil { + return x.Base64Data + } + return "" +} + +func (x *VideoData) GetMimeType() string { + if x != nil { + return x.MimeType + } + return "" +} + +func (x *VideoData) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type DocumentData struct { + state protoimpl.MessageState `protogen:"open.v1"` + Base64Data string `protobuf:"bytes,1,opt,name=base64_data,json=base64Data,proto3" json:"base64_data,omitempty"` + MimeType string `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` + Filename string `protobuf:"bytes,3,opt,name=filename,proto3" json:"filename,omitempty"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DocumentData) Reset() { + *x = DocumentData{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DocumentData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DocumentData) ProtoMessage() {} + +func (x *DocumentData) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[44] + 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 DocumentData.ProtoReflect.Descriptor instead. +func (*DocumentData) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{44} +} + +func (x *DocumentData) GetBase64Data() string { + if x != nil { + return x.Base64Data + } + return "" +} + +func (x *DocumentData) GetMimeType() string { + if x != nil { + return x.MimeType + } + return "" +} + +func (x *DocumentData) GetFilename() string { + if x != nil { + return x.Filename + } + return "" +} + +func (x *DocumentData) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type TeamConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + TeamId string `protobuf:"bytes,1,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` + UserPromptCreditCap int32 `protobuf:"varint,2,opt,name=user_prompt_credit_cap,json=userPromptCreditCap,proto3" json:"user_prompt_credit_cap,omitempty"` + UserFlowCreditCap int32 `protobuf:"varint,3,opt,name=user_flow_credit_cap,json=userFlowCreditCap,proto3" json:"user_flow_credit_cap,omitempty"` + AutoProvisionCascadeSeat bool `protobuf:"varint,4,opt,name=auto_provision_cascade_seat,json=autoProvisionCascadeSeat,proto3" json:"auto_provision_cascade_seat,omitempty"` + AllowMcpServers bool `protobuf:"varint,5,opt,name=allow_mcp_servers,json=allowMcpServers,proto3" json:"allow_mcp_servers,omitempty"` + MaxUnclaimedSites int32 `protobuf:"varint,9,opt,name=max_unclaimed_sites,json=maxUnclaimedSites,proto3" json:"max_unclaimed_sites,omitempty"` + AllowAppDeployments bool `protobuf:"varint,10,opt,name=allow_app_deployments,json=allowAppDeployments,proto3" json:"allow_app_deployments,omitempty"` + AllowSandboxAppDeployments bool `protobuf:"varint,19,opt,name=allow_sandbox_app_deployments,json=allowSandboxAppDeployments,proto3" json:"allow_sandbox_app_deployments,omitempty"` + AllowTeamsAppDeployments bool `protobuf:"varint,20,opt,name=allow_teams_app_deployments,json=allowTeamsAppDeployments,proto3" json:"allow_teams_app_deployments,omitempty"` + MaxNewSitesPerDay int32 `protobuf:"varint,11,opt,name=max_new_sites_per_day,json=maxNewSitesPerDay,proto3" json:"max_new_sites_per_day,omitempty"` + AllowGithubReviews bool `protobuf:"varint,12,opt,name=allow_github_reviews,json=allowGithubReviews,proto3" json:"allow_github_reviews,omitempty"` + AllowGithubDescriptionEdits bool `protobuf:"varint,13,opt,name=allow_github_description_edits,json=allowGithubDescriptionEdits,proto3" json:"allow_github_description_edits,omitempty"` + PullRequestReviewGuidelines string `protobuf:"bytes,14,opt,name=pull_request_review_guidelines,json=pullRequestReviewGuidelines,proto3" json:"pull_request_review_guidelines,omitempty"` + PullRequestDescriptionGuidelines string `protobuf:"bytes,16,opt,name=pull_request_description_guidelines,json=pullRequestDescriptionGuidelines,proto3" json:"pull_request_description_guidelines,omitempty"` + DisableToolCalls bool `protobuf:"varint,15,opt,name=disable_tool_calls,json=disableToolCalls,proto3" json:"disable_tool_calls,omitempty"` + AllowIndividualLevelAnalytics bool `protobuf:"varint,17,opt,name=allow_individual_level_analytics,json=allowIndividualLevelAnalytics,proto3" json:"allow_individual_level_analytics,omitempty"` + AllowConversationSharing *bool `protobuf:"varint,18,opt,name=allow_conversation_sharing,json=allowConversationSharing,proto3,oneof" json:"allow_conversation_sharing,omitempty"` + PullRequestReviewRateLimit *int32 `protobuf:"varint,21,opt,name=pull_request_review_rate_limit,json=pullRequestReviewRateLimit,proto3,oneof" json:"pull_request_review_rate_limit,omitempty"` + AllowAttribution bool `protobuf:"varint,22,opt,name=allow_attribution,json=allowAttribution,proto3" json:"allow_attribution,omitempty"` + AllowedMcpServers []*McpServerConfig `protobuf:"bytes,23,rep,name=allowed_mcp_servers,json=allowedMcpServers,proto3" json:"allowed_mcp_servers,omitempty"` + AllowGithubAutoReviews bool `protobuf:"varint,24,opt,name=allow_github_auto_reviews,json=allowGithubAutoReviews,proto3" json:"allow_github_auto_reviews,omitempty"` + AllowBrowserExperimentalFeatures bool `protobuf:"varint,25,opt,name=allow_browser_experimental_features,json=allowBrowserExperimentalFeatures,proto3" json:"allow_browser_experimental_features,omitempty"` + DisableToolCallExecutionOutsideWorkspace bool `protobuf:"varint,26,opt,name=disable_tool_call_execution_outside_workspace,json=disableToolCallExecutionOutsideWorkspace,proto3" json:"disable_tool_call_execution_outside_workspace,omitempty"` + DisableDeepwiki bool `protobuf:"varint,28,opt,name=disable_deepwiki,json=disableDeepwiki,proto3" json:"disable_deepwiki,omitempty"` + UserAddOnCreditCap int32 `protobuf:"varint,30,opt,name=user_add_on_credit_cap,json=userAddOnCreditCap,proto3" json:"user_add_on_credit_cap,omitempty"` + DisableCodemaps bool `protobuf:"varint,31,opt,name=disable_codemaps,json=disableCodemaps,proto3" json:"disable_codemaps,omitempty"` + AllowCodemapSharing string `protobuf:"bytes,32,opt,name=allow_codemap_sharing,json=allowCodemapSharing,proto3" json:"allow_codemap_sharing,omitempty"` + DisableFastContext bool `protobuf:"varint,33,opt,name=disable_fast_context,json=disableFastContext,proto3" json:"disable_fast_context,omitempty"` + DisableLifeguard bool `protobuf:"varint,34,opt,name=disable_lifeguard,json=disableLifeguard,proto3" json:"disable_lifeguard,omitempty"` + AllowedIpRanges []string `protobuf:"bytes,35,rep,name=allowed_ip_ranges,json=allowedIpRanges,proto3" json:"allowed_ip_ranges,omitempty"` + MaxCascadeAutoExecutionLevel CascadeCommandsAutoExecution `protobuf:"varint,37,opt,name=max_cascade_auto_execution_level,json=maxCascadeAutoExecutionLevel,proto3,enum=exa.codeium_common_pb.CascadeCommandsAutoExecution" json:"max_cascade_auto_execution_level,omitempty"` + CascadeWebSearchEnabled *bool `protobuf:"varint,38,opt,name=cascade_web_search_enabled,json=cascadeWebSearchEnabled,proto3,oneof" json:"cascade_web_search_enabled,omitempty"` + TerminalAllowList []string `protobuf:"bytes,39,rep,name=terminal_allow_list,json=terminalAllowList,proto3" json:"terminal_allow_list,omitempty"` + TerminalDenyList []string `protobuf:"bytes,40,rep,name=terminal_deny_list,json=terminalDenyList,proto3" json:"terminal_deny_list,omitempty"` + CliPermissionsAllow []string `protobuf:"bytes,41,rep,name=cli_permissions_allow,json=cliPermissionsAllow,proto3" json:"cli_permissions_allow,omitempty"` + CliPermissionsDeny []string `protobuf:"bytes,42,rep,name=cli_permissions_deny,json=cliPermissionsDeny,proto3" json:"cli_permissions_deny,omitempty"` + CliPermissionsAsk []string `protobuf:"bytes,43,rep,name=cli_permissions_ask,json=cliPermissionsAsk,proto3" json:"cli_permissions_ask,omitempty"` + DefaultModelUid string `protobuf:"bytes,44,opt,name=default_model_uid,json=defaultModelUid,proto3" json:"default_model_uid,omitempty"` + AllowArenaMode bool `protobuf:"varint,45,opt,name=allow_arena_mode,json=allowArenaMode,proto3" json:"allow_arena_mode,omitempty"` + CascadeHooksJson string `protobuf:"bytes,46,opt,name=cascade_hooks_json,json=cascadeHooksJson,proto3" json:"cascade_hooks_json,omitempty"` + AllowBundlingDevinCli bool `protobuf:"varint,47,opt,name=allow_bundling_devin_cli,json=allowBundlingDevinCli,proto3" json:"allow_bundling_devin_cli,omitempty"` + McpRegistryUrls []string `protobuf:"bytes,49,rep,name=mcp_registry_urls,json=mcpRegistryUrls,proto3" json:"mcp_registry_urls,omitempty"` + EnforceMcpRegistry bool `protobuf:"varint,60,opt,name=enforce_mcp_registry,json=enforceMcpRegistry,proto3" json:"enforce_mcp_registry,omitempty"` + CliDefaultDisabled bool `protobuf:"varint,50,opt,name=cli_default_disabled,json=cliDefaultDisabled,proto3" json:"cli_default_disabled,omitempty"` + AcpRegistryConfig string `protobuf:"bytes,51,opt,name=acp_registry_config,json=acpRegistryConfig,proto3" json:"acp_registry_config,omitempty"` + SandboxEnforcementMode SandboxEnforcementMode `protobuf:"varint,55,opt,name=sandbox_enforcement_mode,json=sandboxEnforcementMode,proto3,enum=exa.codeium_common_pb.SandboxEnforcementMode" json:"sandbox_enforcement_mode,omitempty"` + SandboxAllowedDomains []string `protobuf:"bytes,56,rep,name=sandbox_allowed_domains,json=sandboxAllowedDomains,proto3" json:"sandbox_allowed_domains,omitempty"` + SandboxDeniedDomains []string `protobuf:"bytes,57,rep,name=sandbox_denied_domains,json=sandboxDeniedDomains,proto3" json:"sandbox_denied_domains,omitempty"` + DevinTerminalAcpEnabled bool `protobuf:"varint,58,opt,name=devin_terminal_acp_enabled,json=devinTerminalAcpEnabled,proto3" json:"devin_terminal_acp_enabled,omitempty"` + DevinCloudAcpEnabled bool `protobuf:"varint,59,opt,name=devin_cloud_acp_enabled,json=devinCloudAcpEnabled,proto3" json:"devin_cloud_acp_enabled,omitempty"` + CustomAcpEnabled bool `protobuf:"varint,73,opt,name=custom_acp_enabled,json=customAcpEnabled,proto3" json:"custom_acp_enabled,omitempty"` + UserConfiguredBannerEnabled bool `protobuf:"varint,61,opt,name=user_configured_banner_enabled,json=userConfiguredBannerEnabled,proto3" json:"user_configured_banner_enabled,omitempty"` + UserConfiguredBannerLabel string `protobuf:"bytes,62,opt,name=user_configured_banner_label,json=userConfiguredBannerLabel,proto3" json:"user_configured_banner_label,omitempty"` + UserConfiguredBannerColor string `protobuf:"bytes,63,opt,name=user_configured_banner_color,json=userConfiguredBannerColor,proto3" json:"user_configured_banner_color,omitempty"` + DisableCascade bool `protobuf:"varint,64,opt,name=disable_cascade,json=disableCascade,proto3" json:"disable_cascade,omitempty"` + CascadeAvailability CascadeAvailability `protobuf:"varint,74,opt,name=cascade_availability,json=cascadeAvailability,proto3,enum=exa.codeium_common_pb.CascadeAvailability" json:"cascade_availability,omitempty"` + ExtensionPolicy string `protobuf:"bytes,65,opt,name=extension_policy,json=extensionPolicy,proto3" json:"extension_policy,omitempty"` + ApiKeyExpirationDays *int32 `protobuf:"varint,66,opt,name=api_key_expiration_days,json=apiKeyExpirationDays,proto3,oneof" json:"api_key_expiration_days,omitempty"` + DisablePlugins bool `protobuf:"varint,67,opt,name=disable_plugins,json=disablePlugins,proto3" json:"disable_plugins,omitempty"` + SubagentDefaultModelUid string `protobuf:"bytes,68,opt,name=subagent_default_model_uid,json=subagentDefaultModelUid,proto3" json:"subagent_default_model_uid,omitempty"` + SandboxExcludedAllow []string `protobuf:"bytes,69,rep,name=sandbox_excluded_allow,json=sandboxExcludedAllow,proto3" json:"sandbox_excluded_allow,omitempty"` + SandboxExcludedAsk []string `protobuf:"bytes,70,rep,name=sandbox_excluded_ask,json=sandboxExcludedAsk,proto3" json:"sandbox_excluded_ask,omitempty"` + SandboxExcludedDeny []string `protobuf:"bytes,71,rep,name=sandbox_excluded_deny,json=sandboxExcludedDeny,proto3" json:"sandbox_excluded_deny,omitempty"` + CliAllowedVersionConstraint string `protobuf:"bytes,72,opt,name=cli_allowed_version_constraint,json=cliAllowedVersionConstraint,proto3" json:"cli_allowed_version_constraint,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TeamConfig) Reset() { + *x = TeamConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TeamConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TeamConfig) ProtoMessage() {} + +func (x *TeamConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[45] + 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 TeamConfig.ProtoReflect.Descriptor instead. +func (*TeamConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{45} +} + +func (x *TeamConfig) GetTeamId() string { + if x != nil { + return x.TeamId + } + return "" +} + +func (x *TeamConfig) GetUserPromptCreditCap() int32 { + if x != nil { + return x.UserPromptCreditCap + } + return 0 +} + +func (x *TeamConfig) GetUserFlowCreditCap() int32 { + if x != nil { + return x.UserFlowCreditCap + } + return 0 +} + +func (x *TeamConfig) GetAutoProvisionCascadeSeat() bool { + if x != nil { + return x.AutoProvisionCascadeSeat + } + return false +} + +func (x *TeamConfig) GetAllowMcpServers() bool { + if x != nil { + return x.AllowMcpServers + } + return false +} + +func (x *TeamConfig) GetMaxUnclaimedSites() int32 { + if x != nil { + return x.MaxUnclaimedSites + } + return 0 +} + +func (x *TeamConfig) GetAllowAppDeployments() bool { + if x != nil { + return x.AllowAppDeployments + } + return false +} + +func (x *TeamConfig) GetAllowSandboxAppDeployments() bool { + if x != nil { + return x.AllowSandboxAppDeployments + } + return false +} + +func (x *TeamConfig) GetAllowTeamsAppDeployments() bool { + if x != nil { + return x.AllowTeamsAppDeployments + } + return false +} + +func (x *TeamConfig) GetMaxNewSitesPerDay() int32 { + if x != nil { + return x.MaxNewSitesPerDay + } + return 0 +} + +func (x *TeamConfig) GetAllowGithubReviews() bool { + if x != nil { + return x.AllowGithubReviews + } + return false +} + +func (x *TeamConfig) GetAllowGithubDescriptionEdits() bool { + if x != nil { + return x.AllowGithubDescriptionEdits + } + return false +} + +func (x *TeamConfig) GetPullRequestReviewGuidelines() string { + if x != nil { + return x.PullRequestReviewGuidelines + } + return "" +} + +func (x *TeamConfig) GetPullRequestDescriptionGuidelines() string { + if x != nil { + return x.PullRequestDescriptionGuidelines + } + return "" +} + +func (x *TeamConfig) GetDisableToolCalls() bool { + if x != nil { + return x.DisableToolCalls + } + return false +} + +func (x *TeamConfig) GetAllowIndividualLevelAnalytics() bool { + if x != nil { + return x.AllowIndividualLevelAnalytics + } + return false +} + +func (x *TeamConfig) GetAllowConversationSharing() bool { + if x != nil && x.AllowConversationSharing != nil { + return *x.AllowConversationSharing + } + return false +} + +func (x *TeamConfig) GetPullRequestReviewRateLimit() int32 { + if x != nil && x.PullRequestReviewRateLimit != nil { + return *x.PullRequestReviewRateLimit + } + return 0 +} + +func (x *TeamConfig) GetAllowAttribution() bool { + if x != nil { + return x.AllowAttribution + } + return false +} + +func (x *TeamConfig) GetAllowedMcpServers() []*McpServerConfig { + if x != nil { + return x.AllowedMcpServers + } + return nil +} + +func (x *TeamConfig) GetAllowGithubAutoReviews() bool { + if x != nil { + return x.AllowGithubAutoReviews + } + return false +} + +func (x *TeamConfig) GetAllowBrowserExperimentalFeatures() bool { + if x != nil { + return x.AllowBrowserExperimentalFeatures + } + return false +} + +func (x *TeamConfig) GetDisableToolCallExecutionOutsideWorkspace() bool { + if x != nil { + return x.DisableToolCallExecutionOutsideWorkspace + } + return false +} + +func (x *TeamConfig) GetDisableDeepwiki() bool { + if x != nil { + return x.DisableDeepwiki + } + return false +} + +func (x *TeamConfig) GetUserAddOnCreditCap() int32 { + if x != nil { + return x.UserAddOnCreditCap + } + return 0 +} + +func (x *TeamConfig) GetDisableCodemaps() bool { + if x != nil { + return x.DisableCodemaps + } + return false +} + +func (x *TeamConfig) GetAllowCodemapSharing() string { + if x != nil { + return x.AllowCodemapSharing + } + return "" +} + +func (x *TeamConfig) GetDisableFastContext() bool { + if x != nil { + return x.DisableFastContext + } + return false +} + +func (x *TeamConfig) GetDisableLifeguard() bool { + if x != nil { + return x.DisableLifeguard + } + return false +} + +func (x *TeamConfig) GetAllowedIpRanges() []string { + if x != nil { + return x.AllowedIpRanges + } + return nil +} + +func (x *TeamConfig) GetMaxCascadeAutoExecutionLevel() CascadeCommandsAutoExecution { + if x != nil { + return x.MaxCascadeAutoExecutionLevel + } + return CascadeCommandsAutoExecution_CASCADE_COMMANDS_AUTO_EXECUTION_UNSPECIFIED +} + +func (x *TeamConfig) GetCascadeWebSearchEnabled() bool { + if x != nil && x.CascadeWebSearchEnabled != nil { + return *x.CascadeWebSearchEnabled + } + return false +} + +func (x *TeamConfig) GetTerminalAllowList() []string { + if x != nil { + return x.TerminalAllowList + } + return nil +} + +func (x *TeamConfig) GetTerminalDenyList() []string { + if x != nil { + return x.TerminalDenyList + } + return nil +} + +func (x *TeamConfig) GetCliPermissionsAllow() []string { + if x != nil { + return x.CliPermissionsAllow + } + return nil +} + +func (x *TeamConfig) GetCliPermissionsDeny() []string { + if x != nil { + return x.CliPermissionsDeny + } + return nil +} + +func (x *TeamConfig) GetCliPermissionsAsk() []string { + if x != nil { + return x.CliPermissionsAsk + } + return nil +} + +func (x *TeamConfig) GetDefaultModelUid() string { + if x != nil { + return x.DefaultModelUid + } + return "" +} + +func (x *TeamConfig) GetAllowArenaMode() bool { + if x != nil { + return x.AllowArenaMode + } + return false +} + +func (x *TeamConfig) GetCascadeHooksJson() string { + if x != nil { + return x.CascadeHooksJson + } + return "" +} + +func (x *TeamConfig) GetAllowBundlingDevinCli() bool { + if x != nil { + return x.AllowBundlingDevinCli + } + return false +} + +func (x *TeamConfig) GetMcpRegistryUrls() []string { + if x != nil { + return x.McpRegistryUrls + } + return nil +} + +func (x *TeamConfig) GetEnforceMcpRegistry() bool { + if x != nil { + return x.EnforceMcpRegistry + } + return false +} + +func (x *TeamConfig) GetCliDefaultDisabled() bool { + if x != nil { + return x.CliDefaultDisabled + } + return false +} + +func (x *TeamConfig) GetAcpRegistryConfig() string { + if x != nil { + return x.AcpRegistryConfig + } + return "" +} + +func (x *TeamConfig) GetSandboxEnforcementMode() SandboxEnforcementMode { + if x != nil { + return x.SandboxEnforcementMode + } + return SandboxEnforcementMode_SANDBOX_ENFORCEMENT_MODE_UNSPECIFIED +} + +func (x *TeamConfig) GetSandboxAllowedDomains() []string { + if x != nil { + return x.SandboxAllowedDomains + } + return nil +} + +func (x *TeamConfig) GetSandboxDeniedDomains() []string { + if x != nil { + return x.SandboxDeniedDomains + } + return nil +} + +func (x *TeamConfig) GetDevinTerminalAcpEnabled() bool { + if x != nil { + return x.DevinTerminalAcpEnabled + } + return false +} + +func (x *TeamConfig) GetDevinCloudAcpEnabled() bool { + if x != nil { + return x.DevinCloudAcpEnabled + } + return false +} + +func (x *TeamConfig) GetCustomAcpEnabled() bool { + if x != nil { + return x.CustomAcpEnabled + } + return false +} + +func (x *TeamConfig) GetUserConfiguredBannerEnabled() bool { + if x != nil { + return x.UserConfiguredBannerEnabled + } + return false +} + +func (x *TeamConfig) GetUserConfiguredBannerLabel() string { + if x != nil { + return x.UserConfiguredBannerLabel + } + return "" +} + +func (x *TeamConfig) GetUserConfiguredBannerColor() string { + if x != nil { + return x.UserConfiguredBannerColor + } + return "" +} + +func (x *TeamConfig) GetDisableCascade() bool { + if x != nil { + return x.DisableCascade + } + return false +} + +func (x *TeamConfig) GetCascadeAvailability() CascadeAvailability { + if x != nil { + return x.CascadeAvailability + } + return CascadeAvailability_CASCADE_AVAILABILITY_UNSPECIFIED +} + +func (x *TeamConfig) GetExtensionPolicy() string { + if x != nil { + return x.ExtensionPolicy + } + return "" +} + +func (x *TeamConfig) GetApiKeyExpirationDays() int32 { + if x != nil && x.ApiKeyExpirationDays != nil { + return *x.ApiKeyExpirationDays + } + return 0 +} + +func (x *TeamConfig) GetDisablePlugins() bool { + if x != nil { + return x.DisablePlugins + } + return false +} + +func (x *TeamConfig) GetSubagentDefaultModelUid() string { + if x != nil { + return x.SubagentDefaultModelUid + } + return "" +} + +func (x *TeamConfig) GetSandboxExcludedAllow() []string { + if x != nil { + return x.SandboxExcludedAllow + } + return nil +} + +func (x *TeamConfig) GetSandboxExcludedAsk() []string { + if x != nil { + return x.SandboxExcludedAsk + } + return nil +} + +func (x *TeamConfig) GetSandboxExcludedDeny() []string { + if x != nil { + return x.SandboxExcludedDeny + } + return nil +} + +func (x *TeamConfig) GetCliAllowedVersionConstraint() string { + if x != nil { + return x.CliAllowedVersionConstraint + } + return "" +} + +type McpServerConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + // Types that are valid to be assigned to Configuration: + // + // *McpServerConfig_Local + // *McpServerConfig_Remote + Configuration isMcpServerConfig_Configuration `protobuf_oneof:"configuration"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *McpServerConfig) Reset() { + *x = McpServerConfig{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *McpServerConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*McpServerConfig) ProtoMessage() {} + +func (x *McpServerConfig) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[46] + 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 McpServerConfig.ProtoReflect.Descriptor instead. +func (*McpServerConfig) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{46} +} + +func (x *McpServerConfig) GetServerId() string { + if x != nil { + return x.ServerId + } + return "" +} + +func (x *McpServerConfig) GetConfiguration() isMcpServerConfig_Configuration { + if x != nil { + return x.Configuration + } + return nil +} + +func (x *McpServerConfig) GetLocal() *McpLocalServer { + if x != nil { + if x, ok := x.Configuration.(*McpServerConfig_Local); ok { + return x.Local + } + } + return nil +} + +func (x *McpServerConfig) GetRemote() *McpRemoteServer { + if x != nil { + if x, ok := x.Configuration.(*McpServerConfig_Remote); ok { + return x.Remote + } + } + return nil +} + +type isMcpServerConfig_Configuration interface { + isMcpServerConfig_Configuration() +} + +type McpServerConfig_Local struct { + Local *McpLocalServer `protobuf:"bytes,2,opt,name=local,proto3,oneof"` +} + +type McpServerConfig_Remote struct { + Remote *McpRemoteServer `protobuf:"bytes,3,opt,name=remote,proto3,oneof"` +} + +func (*McpServerConfig_Local) isMcpServerConfig_Configuration() {} + +func (*McpServerConfig_Remote) isMcpServerConfig_Configuration() {} + +type McpLocalServer struct { + state protoimpl.MessageState `protogen:"open.v1"` + Command string `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"` + Args []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"` + Env map[string]string `protobuf:"bytes,3,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *McpLocalServer) Reset() { + *x = McpLocalServer{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *McpLocalServer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*McpLocalServer) ProtoMessage() {} + +func (x *McpLocalServer) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[47] + 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 McpLocalServer.ProtoReflect.Descriptor instead. +func (*McpLocalServer) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{47} +} + +func (x *McpLocalServer) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *McpLocalServer) GetArgs() []string { + if x != nil { + return x.Args + } + return nil +} + +func (x *McpLocalServer) GetEnv() map[string]string { + if x != nil { + return x.Env + } + return nil +} + +type McpRemoteServer struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Headers map[string]string `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *McpRemoteServer) Reset() { + *x = McpRemoteServer{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *McpRemoteServer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*McpRemoteServer) ProtoMessage() {} + +func (x *McpRemoteServer) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[48] + 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 McpRemoteServer.ProtoReflect.Descriptor instead. +func (*McpRemoteServer) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{48} +} + +func (x *McpRemoteServer) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *McpRemoteServer) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *McpRemoteServer) GetHeaders() map[string]string { + if x != nil { + return x.Headers + } + return nil +} + +type ResponseDimensionGroup struct { + state protoimpl.MessageState `protogen:"open.v1"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Dimensions []*ResponseDimension `protobuf:"bytes,2,rep,name=dimensions,proto3" json:"dimensions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResponseDimensionGroup) Reset() { + *x = ResponseDimensionGroup{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResponseDimensionGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseDimensionGroup) ProtoMessage() {} + +func (x *ResponseDimensionGroup) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[49] + 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 ResponseDimensionGroup.ProtoReflect.Descriptor instead. +func (*ResponseDimensionGroup) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{49} +} + +func (x *ResponseDimensionGroup) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ResponseDimensionGroup) GetDimensions() []*ResponseDimension { + if x != nil { + return x.Dimensions + } + return nil +} + +type ResponseDimension struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Dimension: + // + // *ResponseDimension_CopyableCode + // *ResponseDimension_Metric + // *ResponseDimension_CumulativeMetric + Dimension isResponseDimension_Dimension `protobuf_oneof:"dimension"` + Uid string `protobuf:"bytes,5,opt,name=uid,proto3" json:"uid,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResponseDimension) Reset() { + *x = ResponseDimension{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResponseDimension) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseDimension) ProtoMessage() {} + +func (x *ResponseDimension) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[50] + 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 ResponseDimension.ProtoReflect.Descriptor instead. +func (*ResponseDimension) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{50} +} + +func (x *ResponseDimension) GetDimension() isResponseDimension_Dimension { + if x != nil { + return x.Dimension + } + return nil +} + +func (x *ResponseDimension) GetCopyableCode() *ResponseDimensionCopyableCode { + if x != nil { + if x, ok := x.Dimension.(*ResponseDimension_CopyableCode); ok { + return x.CopyableCode + } + } + return nil +} + +func (x *ResponseDimension) GetMetric() *ResponseDimensionMetric { + if x != nil { + if x, ok := x.Dimension.(*ResponseDimension_Metric); ok { + return x.Metric + } + } + return nil +} + +func (x *ResponseDimension) GetCumulativeMetric() *ResponseDimensionCumulativeMetric { + if x != nil { + if x, ok := x.Dimension.(*ResponseDimension_CumulativeMetric); ok { + return x.CumulativeMetric + } + } + return nil +} + +func (x *ResponseDimension) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +type isResponseDimension_Dimension interface { + isResponseDimension_Dimension() +} + +type ResponseDimension_CopyableCode struct { + CopyableCode *ResponseDimensionCopyableCode `protobuf:"bytes,2,opt,name=copyable_code,json=copyableCode,proto3,oneof"` +} + +type ResponseDimension_Metric struct { + Metric *ResponseDimensionMetric `protobuf:"bytes,3,opt,name=metric,proto3,oneof"` +} + +type ResponseDimension_CumulativeMetric struct { + CumulativeMetric *ResponseDimensionCumulativeMetric `protobuf:"bytes,4,opt,name=cumulative_metric,json=cumulativeMetric,proto3,oneof"` +} + +func (*ResponseDimension_CopyableCode) isResponseDimension_Dimension() {} + +func (*ResponseDimension_Metric) isResponseDimension_Dimension() {} + +func (*ResponseDimension_CumulativeMetric) isResponseDimension_Dimension() {} + +type ResponseDimensionCopyableCode struct { + state protoimpl.MessageState `protogen:"open.v1"` + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResponseDimensionCopyableCode) Reset() { + *x = ResponseDimensionCopyableCode{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResponseDimensionCopyableCode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseDimensionCopyableCode) ProtoMessage() {} + +func (x *ResponseDimensionCopyableCode) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[51] + 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 ResponseDimensionCopyableCode.ProtoReflect.Descriptor instead. +func (*ResponseDimensionCopyableCode) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{51} +} + +func (x *ResponseDimensionCopyableCode) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *ResponseDimensionCopyableCode) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type ResponseDimensionMetric struct { + state protoimpl.MessageState `protogen:"open.v1"` + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResponseDimensionMetric) Reset() { + *x = ResponseDimensionMetric{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResponseDimensionMetric) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseDimensionMetric) ProtoMessage() {} + +func (x *ResponseDimensionMetric) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[52] + 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 ResponseDimensionMetric.ProtoReflect.Descriptor instead. +func (*ResponseDimensionMetric) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{52} +} + +func (x *ResponseDimensionMetric) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *ResponseDimensionMetric) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type ResponseDimensionCumulativeMetric struct { + state protoimpl.MessageState `protogen:"open.v1"` + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Value float32 `protobuf:"fixed32,2,opt,name=value,proto3" json:"value,omitempty"` + Tail string `protobuf:"bytes,3,opt,name=tail,proto3" json:"tail,omitempty"` + PluralTail string `protobuf:"bytes,4,opt,name=plural_tail,json=pluralTail,proto3" json:"plural_tail,omitempty"` + Prefix string `protobuf:"bytes,5,opt,name=prefix,proto3" json:"prefix,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResponseDimensionCumulativeMetric) Reset() { + *x = ResponseDimensionCumulativeMetric{} + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResponseDimensionCumulativeMetric) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseDimensionCumulativeMetric) ProtoMessage() {} + +func (x *ResponseDimensionCumulativeMetric) ProtoReflect() protoreflect.Message { + mi := &file_exa_codeium_common_pb_codeium_common_proto_msgTypes[53] + 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 ResponseDimensionCumulativeMetric.ProtoReflect.Descriptor instead. +func (*ResponseDimensionCumulativeMetric) Descriptor() ([]byte, []int) { + return file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP(), []int{53} +} + +func (x *ResponseDimensionCumulativeMetric) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *ResponseDimensionCumulativeMetric) GetValue() float32 { + if x != nil { + return x.Value + } + return 0 +} + +func (x *ResponseDimensionCumulativeMetric) GetTail() string { + if x != nil { + return x.Tail + } + return "" +} + +func (x *ResponseDimensionCumulativeMetric) GetPluralTail() string { + if x != nil { + return x.PluralTail + } + return "" +} + +func (x *ResponseDimensionCumulativeMetric) GetPrefix() string { + if x != nil { + return x.Prefix + } + return "" +} + +var File_exa_codeium_common_pb_codeium_common_proto protoreflect.FileDescriptor + +const file_exa_codeium_common_pb_codeium_common_proto_rawDesc = "" + + "\n" + + "*exa/codeium_common_pb/codeium_common.proto\x12\x15exa.codeium_common_pb\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfe\x06\n" + + "\x17CompletionConfiguration\x120\n" + + "\x0fnum_completions\x18\x01 \x01(\x04B\a\xbaH\x042\x02(\x01R\x0enumCompletions\x12\x1d\n" + + "\n" + + "max_tokens\x18\x02 \x01(\x04R\tmaxTokens\x12!\n" + + "\fmax_newlines\x18\x03 \x01(\x04R\vmaxNewlines\x12.\n" + + "\x13min_log_probability\x18\x04 \x01(\x01R\x11minLogProbability\x120\n" + + "\vtemperature\x18\x05 \x01(\x01B\x0e\xbaH\v\x12\t!\x00\x00\x00\x00\x00\x00\x00\x00R\vtemperature\x12+\n" + + "\x11first_temperature\x18\x06 \x01(\x01R\x10firstTemperature\x12\x1c\n" + + "\x05top_k\x18\a \x01(\x04B\a\xbaH\x042\x02 \x00R\x04topK\x12,\n" + + "\x05top_p\x18\b \x01(\x01B\x17\xbaH\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00\xf0?!\x00\x00\x00\x00\x00\x00\x00\x00R\x04topP\x12#\n" + + "\rstop_patterns\x18\t \x03(\tR\fstopPatterns\x12\x12\n" + + "\x04seed\x18\n" + + " \x01(\x04R\x04seed\x123\n" + + "\x16fim_eot_prob_threshold\x18\v \x01(\x01R\x13fimEotProbThreshold\x121\n" + + "\x15use_fim_eot_threshold\x18\f \x01(\bR\x12useFimEotThreshold\x126\n" + + "\x18do_not_score_stop_tokens\x18\r \x01(\bR\x14doNotScoreStopTokens\x12I\n" + + "\"sqrt_len_normalized_log_prob_score\x18\x0e \x01(\bR\x1dsqrtLenNormalizedLogProbScore\x125\n" + + "\x17last_message_is_partial\x18\x0f \x01(\bR\x14lastMessageIsPartial\x12%\n" + + "\x0ereturn_logprob\x18\x10 \x01(\bR\rreturnLogprob\x12!\n" + + "\fservice_tier\x18\x11 \x01(\tR\vserviceTier\x120\n" + + "\x14response_format_type\x18\x12 \x01(\tR\x12responseFormatType\x12=\n" + + "\x1bresponse_format_json_schema\x18\x13 \x01(\tR\x18responseFormatJsonSchema\"\xce\x01\n" + + "\x15PromptAnnotationRange\x12I\n" + + "\x04kind\x18\x01 \x01(\x0e2+.exa.codeium_common_pb.PromptAnnotationKindB\b\xbaH\x05\x82\x01\x02 \x00R\x04kind\x12*\n" + + "\x11byte_offset_start\x18\x02 \x01(\x04R\x0fbyteOffsetStart\x12&\n" + + "\x0fbyte_offset_end\x18\x03 \x01(\x04R\rbyteOffsetEnd\x12\x16\n" + + "\x06suffix\x18\x04 \x01(\tR\x06suffix\"\x9e\x02\n" + + "\x15ExperimentWithVariant\x12:\n" + + "\x03key\x18\x01 \x01(\x0e2$.exa.codeium_common_pb.ExperimentKeyB\x02\x18\x01R\x03key\x12\x1d\n" + + "\n" + + "key_string\x18\x05 \x01(\tR\tkeyString\x12\x1a\n" + + "\bdisabled\x18\x06 \x01(\bR\bdisabled\x12\x18\n" + + "\x06string\x18\x02 \x01(\tH\x00R\x06string\x12\x14\n" + + "\x04json\x18\x03 \x01(\tH\x00R\x04json\x12\x12\n" + + "\x03csv\x18\x04 \x01(\tH\x00R\x03csv\x12?\n" + + "\x06source\x18\a \x01(\x0e2'.exa.codeium_common_pb.ExperimentSourceR\x06sourceB\t\n" + + "\apayload\"\xd2\x04\n" + + "\x10ExperimentConfig\x12N\n" + + "\vexperiments\x18\x06 \x03(\v2,.exa.codeium_common_pb.ExperimentWithVariantR\vexperiments\x12^\n" + + "\x18force_enable_experiments\x18\x01 \x03(\x0e2$.exa.codeium_common_pb.ExperimentKeyR\x16forceEnableExperiments\x12`\n" + + "\x19force_disable_experiments\x18\x02 \x03(\x0e2$.exa.codeium_common_pb.ExperimentKeyR\x17forceDisableExperiments\x12\x80\x01\n" + + "&force_enable_experiments_with_variants\x18\x03 \x03(\v2,.exa.codeium_common_pb.ExperimentWithVariantR\"forceEnableExperimentsWithVariants\x12E\n" + + "\x1fforce_enable_experiment_strings\x18\x04 \x03(\tR\x1cforceEnableExperimentStrings\x12G\n" + + " force_disable_experiment_strings\x18\x05 \x03(\tR\x1dforceDisableExperimentStrings\x12\x19\n" + + "\bdev_mode\x18\a \x01(\bR\adevMode\"\xac\x01\n" + + "\fModelOrAlias\x128\n" + + "\x05model\x18\x01 \x01(\x0e2\x1c.exa.codeium_common_pb.ModelB\x02\x18\x01H\x00R\x05model\x129\n" + + "\x05alias\x18\x02 \x01(\x0e2!.exa.codeium_common_pb.ModelAliasH\x00R\x05alias\x12\x1d\n" + + "\tmodel_uid\x18\x03 \x01(\tH\x00R\bmodelUidB\b\n" + + "\x06choice\"\xab\x04\n" + + "\x1cSingleModelCompletionProfile\x125\n" + + "\x17total_prefill_pass_time\x18\x01 \x01(\x01R\x14totalPrefillPassTime\x121\n" + + "\x15avg_prefill_pass_time\x18\x02 \x01(\x01R\x12avgPrefillPassTime\x12,\n" + + "\x12num_prefill_passes\x18\x03 \x01(\x04R\x10numPrefillPasses\x128\n" + + "\x19total_spec_copy_pass_time\x18\a \x01(\x01R\x15totalSpecCopyPassTime\x124\n" + + "\x17avg_spec_copy_pass_time\x18\b \x01(\x01R\x13avgSpecCopyPassTime\x12/\n" + + "\x14num_spec_copy_passes\x18\t \x01(\x04R\x11numSpecCopyPasses\x12;\n" + + "\x1atotal_generation_pass_time\x18\x04 \x01(\x01R\x17totalGenerationPassTime\x127\n" + + "\x18avg_generation_pass_time\x18\x05 \x01(\x01R\x15avgGenerationPassTime\x122\n" + + "\x15num_generation_passes\x18\x06 \x01(\x04R\x13numGenerationPasses\x12(\n" + + "\x10total_model_time\x18\n" + + " \x01(\x01R\x0etotalModelTime\"\xec\x03\n" + + "\x11CompletionProfile\x12X\n" + + "\rmodel_profile\x18\x01 \x01(\v23.exa.codeium_common_pb.SingleModelCompletionProfileR\fmodelProfile\x12h\n" + + "\x13draft_model_profile\x18\x02 \x01(\v23.exa.codeium_common_pb.SingleModelCompletionProfileH\x00R\x11draftModelProfile\x88\x01\x01\x12:\n" + + "\x1atime_to_first_prefill_pass\x18\x03 \x01(\x01R\x16timeToFirstPrefillPass\x12-\n" + + "\x13time_to_first_token\x18\x04 \x01(\x01R\x10timeToFirstToken\x122\n" + + "\x15total_completion_time\x18\x05 \x01(\x01R\x13totalCompletionTime\x12L\n" + + "\vmodel_usage\x18\x06 \x01(\v2&.exa.codeium_common_pb.ModelUsageStatsH\x01R\n" + + "modelUsage\x88\x01\x01B\x16\n" + + "\x14_draft_model_profileB\x0e\n" + + "\f_model_usage\"\xeb\b\n" + + "\bMetadata\x12\"\n" + + "\bide_name\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aideName\x12(\n" + + "\vide_version\x18\a \x01(\tB\a\xbaH\x04r\x02\x10\x01R\n" + + "ideVersion\x12\x19\n" + + "\bide_type\x18\x1c \x01(\tR\aideType\x12%\n" + + "\x0eextension_name\x18\f \x01(\tR\rextensionName\x124\n" + + "\x11extension_version\x18\x02 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x10extensionVersion\x12 \n" + + "\aapi_key\x18\x03 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x06apiKey\x12\x16\n" + + "\x06locale\x18\x04 \x01(\tR\x06locale\x12\x0e\n" + + "\x02os\x18\x05 \x01(\tR\x02os\x12\x1a\n" + + "\bhardware\x18\b \x01(\tR\bhardware\x12+\n" + + "\x11disable_telemetry\x18\x06 \x01(\bR\x10disableTelemetry\x12\x1d\n" + + "\n" + + "session_id\x18\n" + + " \x01(\tR\tsessionId\x12=\n" + + "\fls_timestamp\x18\x10 \x01(\v2\x1a.google.protobuf.TimestampR\vlsTimestamp\x12\x1d\n" + + "\n" + + "request_id\x18\t \x01(\x04R\trequestId\x121\n" + + "\x0esource_address\x18\v \x01(\tB\n" + + "\xbaH\a\xd8\x01\x01r\x02p\x01R\rsourceAddress\x12\x1d\n" + + "\n" + + "user_agent\x18\r \x01(\tR\tuserAgent\x12\x1d\n" + + "\x03url\x18\x0e \x01(\tB\v\xbaH\b\xd8\x01\x01r\x03\x88\x01\x01R\x03url\x12B\n" + + "\vauth_source\x18\x0f \x01(\x0e2!.exa.codeium_common_pb.AuthSourceR\n" + + "authSource\x12%\n" + + "\x0eextension_path\x18\x11 \x01(\tR\rextensionPath\x12\x17\n" + + "\auser_id\x18\x14 \x01(\tR\x06userId\x12\x19\n" + + "\buser_jwt\x18\x15 \x01(\tR\auserJwt\x12\"\n" + + "\rforce_team_id\x18\x16 \x01(\tR\vforceTeamId\x12-\n" + + "\x12device_fingerprint\x18\x18 \x01(\tR\x11deviceFingerprint\x12\x1d\n" + + "\n" + + "trigger_id\x18\x19 \x01(\tR\ttriggerId\x12\x1b\n" + + "\tplan_name\x18\x1a \x01(\tR\bplanName\x12\x0e\n" + + "\x02id\x18\x1b \x01(\tR\x02id\x12)\n" + + "\x10impersonate_tier\x18\x1d \x01(\tR\x0fimpersonateTier\x12^\n" + + "\x18supported_model_displays\x18\x1e \x03(\x0e2$.exa.codeium_common_pb.DisplayOptionR\x16supportedModelDisplays\x12\f\n" + + "\x01f\x18\x1f \x01(\tR\x01f\x12\x17\n" + + "\ateam_id\x18 \x01(\tR\x06teamIdJ\x04\b\x13\x10\x14J\x04\b\x17\x10\x18R\n" + + "ip_addressR\x10windsurf_version\"\x89\x01\n" + + "\x15TeamsFeaturesMetadata\x12\x1b\n" + + "\tis_active\x18\x01 \x01(\bR\bisActive\x124\n" + + "\x16stripe_subscription_id\x18\x02 \x01(\tR\x14stripeSubscriptionId\x12\x1d\n" + + "\n" + + "has_access\x18\x03 \x01(\bR\thasAccess\"w\n" + + "\vPromoStatus\x12\x1b\n" + + "\tis_active\x18\x01 \x01(\bR\bisActive\x125\n" + + "\bend_date\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\aendDate\x12\x14\n" + + "\x05label\x18\x03 \x01(\tR\x05label\"C\n" + + "\n" + + "FastStatus\x12\x1b\n" + + "\tis_active\x18\x01 \x01(\bR\bisActive\x12\x18\n" + + "\atooltip\x18\x02 \x01(\tR\atooltip\"K\n" + + "\vArenaConfig\x12*\n" + + "\x11tokens_per_second\x18\x02 \x01(\x02R\x0ftokensPerSecondJ\x04\b\x01\x10\x02R\n" + + "arena_tier\"\xf9\x01\n" + + "\x0eModelDimension\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x12\x14\n" + + "\x05value\x18\x02 \x01(\x02R\x05value\x12 \n" + + "\vdenominator\x18\x03 \x01(\tR\vdenominator\x12\x1b\n" + + "\tmin_range\x18\x04 \x01(\x02R\bminRange\x12\x1b\n" + + "\tmax_range\x18\x05 \x01(\x02R\bmaxRange\x12=\n" + + "\x04kind\x18\x06 \x01(\x0e2).exa.codeium_common_pb.ModelDimensionKindR\x04kind\x12\x17\n" + + "\x04info\x18\a \x01(\tH\x00R\x04info\x88\x01\x01B\a\n" + + "\x05_info\"\x91\x01\n" + + "\x13ModelDisabledReason\x12!\n" + + "\fshort_reason\x18\x01 \x01(\tR\vshortReason\x12%\n" + + "\vdescription\x18\x02 \x01(\tH\x00R\vdescription\x88\x01\x01\x12\x17\n" + + "\x04link\x18\x03 \x01(\tH\x01R\x04link\x88\x01\x01B\x0e\n" + + "\f_descriptionB\a\n" + + "\x05_link\"\xa0\x0e\n" + + "\x11ClientModelConfig\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x12I\n" + + "\x0emodel_or_alias\x18\x02 \x01(\v2#.exa.codeium_common_pb.ModelOrAliasR\fmodelOrAlias\x12\x1b\n" + + "\tmodel_uid\x18\x16 \x01(\tR\bmodelUid\x12+\n" + + "\x11credit_multiplier\x18\x03 \x01(\x02R\x10creditMultiplier\x12J\n" + + "\fpricing_type\x18\r \x01(\x0e2'.exa.codeium_common_pb.ModelPricingTypeR\vpricingType\x12\x1a\n" + + "\bdisabled\x18\x04 \x01(\bR\bdisabled\x12'\n" + + "\x0fsupports_images\x18\x05 \x01(\bR\x0esupportsImages\x12'\n" + + "\x0fsupports_legacy\x18\x06 \x01(\bR\x0esupportsLegacy\x12\x1d\n" + + "\n" + + "is_premium\x18\a \x01(\bR\tisPremium\x120\n" + + "\x14beta_warning_message\x18\b \x01(\tR\x12betaWarningMessage\x12\x17\n" + + "\ais_beta\x18\t \x01(\bR\x06isBeta\x12@\n" + + "\bprovider\x18\n" + + " \x01(\x0e2$.exa.codeium_common_pb.ModelProviderR\bprovider\x12%\n" + + "\x0eis_recommended\x18\v \x01(\bR\risRecommended\x12E\n" + + "\rallowed_tiers\x18\f \x03(\x0e2 .exa.codeium_common_pb.TeamsTierR\fallowedTiers\x12E\n" + + "\fapi_provider\x18\x0e \x01(\x0e2\".exa.codeium_common_pb.APIProviderR\vapiProvider\x12\x15\n" + + "\x06is_new\x18\x0f \x01(\bR\x05isNew\x12'\n" + + "\x0fpartial_rollout\x18\x10 \x01(\bR\x0epartialRollout\x12)\n" + + "\x10rollout_fraction\x18\x11 \x01(\x02R\x0frolloutFraction\x12\x1d\n" + + "\n" + + "max_tokens\x18\x12 \x01(\x05R\tmaxTokens\x12E\n" + + "\fpromo_status\x18\x13 \x01(\v2\".exa.codeium_common_pb.PromoStatusR\vpromoStatus\x12.\n" + + "\x13is_capacity_limited\x18\x14 \x01(\bR\x11isCapacityLimited\x12B\n" + + "\vfast_status\x18\x15 \x01(\v2!.exa.codeium_common_pb.FastStatusR\n" + + "fastStatus\x12?\n" + + "\n" + + "model_info\x18\x17 \x01(\v2 .exa.codeium_common_pb.ModelInfoR\tmodelInfo\x12L\n" + + "\x0fmodel_cost_tier\x18\x18 \x01(\x0e2$.exa.codeium_common_pb.ModelCostTierR\rmodelCostTier\x12%\n" + + "\vdescription\x18\x1b \x01(\tH\x00R\vdescription\x88\x01\x01\x128\n" + + "\x16smart_friend_model_uid\x18\x1d \x01(\tH\x01R\x13smartFriendModelUid\x88\x01\x01\x12^\n" + + "\x15model_family_metadata\x18\x1e \x01(\v2*.exa.codeium_common_pb.ModelFamilyMetadataR\x13modelFamilyMetadata\x12:\n" + + "\x1ais_default_model_in_family\x18\x1f \x01(\bR\x16isDefaultModelInFamily\x12P\n" + + "\x10model_dimensions\x18 \x03(\v2%.exa.codeium_common_pb.ModelDimensionR\x0fmodelDimensions\x12X\n" + + "\x0fdisabled_reason\x18! \x01(\v2*.exa.codeium_common_pb.ModelDisabledReasonH\x02R\x0edisabledReason\x88\x01\x01\x12X\n" + + "\x11compliance_levels\x18\" \x03(\x0e2+.exa.codeium_common_pb.ModelComplianceLevelR\x10complianceLevelsB\x0e\n" + + "\f_descriptionB\x19\n" + + "\x17_smart_friend_model_uidB\x12\n" + + "\x10_disabled_reasonJ\x04\b\x19\x10\x1aJ\x04\b\x1a\x10\x1bJ\x04\b\x1c\x10\x1dR\n" + + "arena_tierR\x11tokens_per_second\"\xb2\x01\n" + + "\x1aDefaultOverrideModelConfig\x12X\n" + + "\x19model_or_alias_deprecated\x18\x01 \x01(\v2#.exa.codeium_common_pb.ModelOrAliasB\x02\x18\x01R\fmodelOrAlias\x12\x1b\n" + + "\tmodel_uid\x18\x03 \x01(\tR\bmodelUid\x12\x1d\n" + + "\n" + + "version_id\x18\x02 \x01(\tR\tversionId\"\xa5\x01\n" + + "\x0fClientModelSort\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12?\n" + + "\x06groups\x18\x02 \x03(\v2'.exa.codeium_common_pb.ClientModelGroupR\x06groups\x12*\n" + + "\x0edisplay_metric\x18\x03 \x01(\tH\x00R\rdisplayMetric\x88\x01\x01B\x11\n" + + "\x0f_display_metric\"T\n" + + "\x10ClientModelGroup\x12\x1d\n" + + "\n" + + "group_name\x18\x01 \x01(\tR\tgroupName\x12!\n" + + "\fmodel_labels\x18\x02 \x03(\tR\vmodelLabels\"\xcb\x03\n" + + "\x16CascadeModelConfigData\x12Z\n" + + "\x14client_model_configs\x18\x01 \x03(\v2(.exa.codeium_common_pb.ClientModelConfigR\x12clientModelConfigs\x12T\n" + + "\x12client_model_sorts\x18\x02 \x03(\v2&.exa.codeium_common_pb.ClientModelSortR\x10clientModelSorts\x12y\n" + + "\x1ddefault_override_model_config\x18\x03 \x01(\v21.exa.codeium_common_pb.DefaultOverrideModelConfigH\x00R\x1adefaultOverrideModelConfig\x88\x01\x01\x12/\n" + + "\x14arena_mode_cost_fast\x18\x04 \x01(\x02R\x11arenaModeCostFast\x121\n" + + "\x15arena_mode_cost_smart\x18\x05 \x01(\x02R\x12arenaModeCostSmartB \n" + + "\x1e_default_override_model_config\"\xfe\x10\n" + + "\bPlanInfo\x12?\n" + + "\n" + + "teams_tier\x18\x01 \x01(\x0e2 .exa.codeium_common_pb.TeamsTierR\tteamsTier\x12\x1b\n" + + "\tplan_name\x18\x02 \x01(\tR\bplanName\x12;\n" + + "\x1ahas_autocomplete_fast_mode\x18\x03 \x01(\bR\x17hasAutocompleteFastMode\x12=\n" + + "\x1ballow_sticky_premium_models\x18\x04 \x01(\bR\x18allowStickyPremiumModels\x12(\n" + + "\x10has_forge_access\x18\x05 \x01(\bR\x0ehasForgeAccess\x12C\n" + + "\x1edisable_code_snippet_telemetry\x18\v \x01(\bR\x1bdisableCodeSnippetTelemetry\x12?\n" + + "\x1callow_premium_command_models\x18\x0f \x01(\bR\x19allowPremiumCommandModels\x12%\n" + + "\x0fhas_tab_to_jump\x18\x17 \x01(\bR\fhasTabToJump\x12@\n" + + "\x1dmax_num_premium_chat_messages\x18\x06 \x01(\x03R\x19maxNumPremiumChatMessages\x128\n" + + "\x19max_num_chat_input_tokens\x18\a \x01(\x03R\x15maxNumChatInputTokens\x12R\n" + + "&max_custom_chat_instruction_characters\x18\b \x01(\x03R\"maxCustomChatInstructionCharacters\x12>\n" + + "\x1cmax_num_pinned_context_items\x18\t \x01(\x03R\x18maxNumPinnedContextItems\x12/\n" + + "\x14max_local_index_size\x18\n" + + " \x01(\x03R\x11maxLocalIndexSize\x122\n" + + "\x13max_unclaimed_sites\x18\x1a \x01(\x05B\x02\x18\x01R\x11maxUnclaimedSites\x124\n" + + "\x16monthly_prompt_credits\x18\f \x01(\x05R\x14monthlyPromptCredits\x120\n" + + "\x14monthly_flow_credits\x18\r \x01(\x05R\x12monthlyFlowCredits\x12L\n" + + "#monthly_flex_credit_purchase_amount\x18\x0e \x01(\x05R\x1fmonthlyFlexCreditPurchaseAmount\x12\x19\n" + + "\bis_teams\x18\x11 \x01(\bR\aisTeams\x12#\n" + + "\ris_enterprise\x18\x10 \x01(\bR\fisEnterprise\x12*\n" + + "\x11has_paid_features\x18 \x01(\bR\x0fhasPaidFeatures\x12/\n" + + "\x14can_buy_more_credits\x18\x12 \x01(\bR\x11canBuyMoreCredits\x12;\n" + + "\x1acascade_web_search_enabled\x18\x13 \x01(\bR\x17cascadeWebSearchEnabled\x123\n" + + "\x16can_customize_app_icon\x18\x14 \x01(\bR\x13canCustomizeAppIcon\x12?\n" + + "\x1ccan_generate_commit_messages\x18\x19 \x01(\bR\x19canGenerateCommitMessages\x124\n" + + "\x16knowledge_base_enabled\x18\x1b \x01(\bR\x14knowledgeBaseEnabled\x12Q\n" + + "\x13default_team_config\x18\x18 \x01(\v2!.exa.codeium_common_pb.TeamConfigR\x11defaultTeamConfig\x126\n" + + "\x17can_share_conversations\x18\x1c \x01(\bR\x15canShareConversations\x12D\n" + + "\x1fcan_allow_cascade_in_background\x18\x1d \x01(\bR\x1bcanAllowCascadeInBackground\x12l\n" + + "\x15default_team_features\x18\x1e \x03(\v28.exa.codeium_common_pb.PlanInfo.DefaultTeamFeaturesEntryR\x13defaultTeamFeatures\x12'\n" + + "\x0fbrowser_enabled\x18\x1f \x01(\bR\x0ebrowserEnabled\x12C\n" + + "\n" + + "devin_info\x18! \x01(\v2$.exa.codeium_common_pb.DevinPlanInfoR\tdevinInfo\x12\x19\n" + + "\bis_devin\x18\" \x01(\bR\aisDevin\x12Q\n" + + "\x10billing_strategy\x18# \x01(\x0e2&.exa.codeium_common_pb.BillingStrategyR\x0fbillingStrategy\x12(\n" + + "\x10hide_daily_quota\x18$ \x01(\bR\x0ehideDailyQuota\x12*\n" + + "\x11hide_weekly_quota\x18% \x01(\bR\x0fhideWeeklyQuota\x1at\n" + + "\x18DefaultTeamFeaturesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x05R\x03key\x12B\n" + + "\x05value\x18\x02 \x01(\v2,.exa.codeium_common_pb.TeamsFeaturesMetadataR\x05value:\x028\x01J\x04\b\x15\x10\x16J\x04\b\x16\x10\x17R\x1dcascade_allowed_models_config\"\xad\x04\n" + + "\rDevinPlanInfo\x12&\n" + + "\x0fcan_use_cascade\x18\x01 \x01(\bR\rcanUseCascade\x12\x1e\n" + + "\vcan_use_cli\x18\x02 \x01(\bR\tcanUseCli\x12\x19\n" + + "\bis_admin\x18\x03 \x01(\bR\aisAdmin\x12\x15\n" + + "\x06org_id\x18\x04 \x01(\tR\x05orgId\x12\x1f\n" + + "\vwebapp_host\x18\x05 \x01(\tR\n" + + "webappHost\x125\n" + + "\x14devin_review_enabled\x18\x06 \x01(\bH\x00R\x12devinReviewEnabled\x88\x01\x01\x12\x17\n" + + "\aapi_url\x18\a \x01(\tR\x06apiUrl\x120\n" + + "\x14account_display_name\x18\b \x01(\tR\x12accountDisplayName\x124\n" + + "\x16personal_analytics_url\x18\t \x01(\tR\x14personalAnalyticsUrl\x12$\n" + + "\x0eprimary_org_id\x18\n" + + " \x01(\tR\fprimaryOrgId\x12*\n" + + "\x11request_usage_url\x18\v \x01(\tR\x0frequestUsageUrl\x12^\n" + + "\x14request_usage_action\x18\f \x01(\v2,.exa.codeium_common_pb.DevinAcuRequestActionR\x12requestUsageActionB\x17\n" + + "\x15_devin_review_enabled\"\xf6\x01\n" + + "\x15DevinAcuRequestAction\x12E\n" + + "\x04kind\x18\x01 \x01(\x0e21.exa.codeium_common_pb.DevinAcuRequestAction.KindR\x04kind\x12\x14\n" + + "\x05label\x18\x02 \x01(\tR\x05label\x12\x10\n" + + "\x03url\x18\x03 \x01(\tR\x03url\"n\n" + + "\x04Kind\x12\x14\n" + + "\x10KIND_UNSPECIFIED\x10\x00\x12\x13\n" + + "\x0fKIND_DEVIN_FORM\x10\x01\x12\x16\n" + + "\x12KIND_EXTERNAL_LINK\x10\x02\x12\x12\n" + + "\x0eKIND_TEXT_ONLY\x10\x03\x12\x0f\n" + + "\vKIND_HIDDEN\x10\x04\"\xc6\x02\n" + + "\vTopUpStatus\x12c\n" + + "\x19top_up_transaction_status\x18\x01 \x01(\x0e2(.exa.codeium_common_pb.TransactionStatusR\x16topUpTransactionStatus\x12$\n" + + "\x0etop_up_enabled\x18\x02 \x01(\bR\ftopUpEnabled\x121\n" + + "\x15monthly_top_up_amount\x18\x03 \x01(\x05R\x12monthlyTopUpAmount\x12 \n" + + "\ftop_up_spent\x18\x04 \x01(\x05R\n" + + "topUpSpent\x12(\n" + + "\x10top_up_increment\x18\x05 \x01(\x05R\x0etopUpIncrement\x12-\n" + + "\x13top_up_criteria_met\x18\x06 \x01(\bR\x10topUpCriteriaMet\"\xb1\t\n" + + "\n" + + "PlanStatus\x12<\n" + + "\tplan_info\x18\x01 \x01(\v2\x1f.exa.codeium_common_pb.PlanInfoR\bplanInfo\x129\n" + + "\n" + + "plan_start\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tplanStart\x125\n" + + "\bplan_end\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\aplanEnd\x128\n" + + "\x18available_prompt_credits\x18\b \x01(\x05R\x16availablePromptCredits\x124\n" + + "\x16available_flow_credits\x18\t \x01(\x05R\x14availableFlowCredits\x124\n" + + "\x16available_flex_credits\x18\x04 \x01(\x05R\x14availableFlexCredits\x12*\n" + + "\x11used_flex_credits\x18\a \x01(\x05R\x0fusedFlexCredits\x12*\n" + + "\x11used_flow_credits\x18\x05 \x01(\x05R\x0fusedFlowCredits\x12.\n" + + "\x13used_prompt_credits\x18\x06 \x01(\x05R\x11usedPromptCredits\x12F\n" + + "\rtop_up_status\x18\n" + + " \x01(\v2\".exa.codeium_common_pb.TopUpStatusR\vtopUpStatus\x12@\n" + + "\x1dwas_reduced_by_orphaned_usage\x18\v \x01(\bR\x19wasReducedByOrphanedUsage\x12X\n" + + "\x13grace_period_status\x18\f \x01(\x0e2(.exa.codeium_common_pb.GracePeriodStatusR\x11gracePeriodStatus\x12D\n" + + "\x10grace_period_end\x18\r \x01(\v2\x1a.google.protobuf.TimestampR\x0egracePeriodEnd\x12A\n" + + "\x1ddaily_quota_remaining_percent\x18\x0e \x01(\x05R\x1adailyQuotaRemainingPercent\x12C\n" + + "\x1eweekly_quota_remaining_percent\x18\x0f \x01(\x05R\x1bweeklyQuotaRemainingPercent\x124\n" + + "\x16overage_balance_micros\x18\x10 \x01(\x03R\x14overageBalanceMicros\x128\n" + + "\x19daily_quota_reset_at_unix\x18\x11 \x01(\x03R\x15dailyQuotaResetAtUnix\x12:\n" + + "\x1aweekly_quota_reset_at_unix\x18\x12 \x01(\x03R\x16weeklyQuotaResetAtUnix\x12&\n" + + "\facu_consumed\x18\x13 \x01(\x01H\x00R\vacuConsumed\x88\x01\x01\x12 \n" + + "\tacu_limit\x18\x14 \x01(\x01H\x01R\bacuLimit\x88\x01\x01B\x0f\n" + + "\r_acu_consumedB\f\n" + + "\n" + + "_acu_limit\"\xb8\t\n" + + "\n" + + "UserStatus\x12\x10\n" + + "\x03pro\x18\x01 \x01(\bR\x03pro\x12+\n" + + "\x11disable_telemetry\x18\x02 \x01(\bR\x10disableTelemetry\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12A\n" + + "\x1dignore_chat_telemetry_setting\x18\x04 \x01(\bR\x1aignoreChatTelemetrySetting\x12\x17\n" + + "\ateam_id\x18\x05 \x01(\tR\x06teamId\x12F\n" + + "\vteam_status\x18\x06 \x01(\x0e2%.exa.codeium_common_pb.UserTeamStatusR\n" + + "teamStatus\x12\x14\n" + + "\x05email\x18\a \x01(\tR\x05email\x12H\n" + + "\ruser_features\x18\t \x03(\x0e2#.exa.codeium_common_pb.UserFeaturesR\fuserFeatures\x12K\n" + + "\x0eteams_features\x18\b \x03(\x0e2$.exa.codeium_common_pb.TeamsFeaturesR\rteamsFeatures\x12?\n" + + "\n" + + "teams_tier\x18\n" + + " \x01(\x0e2 .exa.codeium_common_pb.TeamsTierR\tteamsTier\x12C\n" + + "\vpermissions\x18\v \x03(\x0e2!.exa.codeium_common_pb.PermissionR\vpermissions\x12B\n" + + "\vplan_status\x18\r \x01(\v2!.exa.codeium_common_pb.PlanStatusR\n" + + "planStatus\x12*\n" + + "\x11has_used_windsurf\x18\x1f \x01(\bR\x0fhasUsedWindsurf\x127\n" + + "\x18user_used_prompt_credits\x18\x1c \x01(\x03R\x15userUsedPromptCredits\x123\n" + + "\x16user_used_flow_credits\x18\x1d \x01(\x03R\x13userUsedFlowCredits\x12.\n" + + "\x13has_fingerprint_set\x18\x1e \x01(\bR\x11hasFingerprintSet\x12B\n" + + "\vteam_config\x18 \x01(\v2!.exa.codeium_common_pb.TeamConfigR\n" + + "teamConfig\x12h\n" + + "\x19cascade_model_config_data\x18! \x01(\v2-.exa.codeium_common_pb.CascadeModelConfigDataR\x16cascadeModelConfigData\x12X\n" + + "\x1bwindsurf_pro_trial_end_time\x18\" \x01(\v2\x1a.google.protobuf.TimestampR\x17windsurfProTrialEndTime\x12@\n" + + "\x1dmax_num_premium_chat_messages\x18# \x01(\x03R\x19maxNumPremiumChatMessages\x12\x17\n" + + "\auser_id\x18$ \x01(\tR\x06userIdJ\x04\b\f\x10\rR\tplan_info\"\xc8\r\n" + + "\rModelFeatures\x126\n" + + "\x17supports_context_tokens\x18\x02 \x01(\bR\x15supportsContextTokens\x124\n" + + "\x16requires_instruct_tags\x18\x03 \x01(\bR\x14requiresInstructTags\x120\n" + + "\x14requires_fim_context\x18\x04 \x01(\bR\x12requiresFimContext\x12E\n" + + "\x1frequires_context_snippet_prefix\x18\x05 \x01(\bR\x1crequiresContextSnippetPrefix\x12E\n" + + "\x1frequires_context_relevance_tags\x18\x06 \x01(\bR\x1crequiresContextRelevanceTags\x124\n" + + "\x16requires_llama3_tokens\x18\a \x01(\bR\x14requiresLlama3Tokens\x12*\n" + + "\x11zero_shot_capable\x18\b \x01(\bR\x0fzeroShotCapable\x12K\n" + + " requires_autocomplete_as_command\x18\t \x01(\bB\x02\x18\x01R\x1drequiresAutocompleteAsCommand\x12M\n" + + "#supports_cursor_aware_supercomplete\x18\n" + + " \x01(\bR supportsCursorAwareSupercomplete\x12'\n" + + "\x0fsupports_images\x18\v \x01(\bR\x0esupportsImages\x126\n" + + "\x17supports_image_captions\x18\x14 \x01(\bR\x15supportsImageCaptions\x12%\n" + + "\x0esupports_video\x18\x1b \x01(\bR\rsupportsVideo\x12.\n" + + "\x13supports_video_urls\x18\x1c \x01(\bR\x11supportsVideoUrls\x12-\n" + + "\x12supports_documents\x18\x1d \x01(\bR\x11supportsDocuments\x124\n" + + "\x16supports_document_urls\x18\x1e \x01(\bR\x14supportsDocumentUrls\x12.\n" + + "\x13supports_tool_calls\x18\f \x01(\bR\x11supportsToolCalls\x12?\n" + + "\x1csupports_parallel_tool_calls\x18\x15 \x01(\bR\x19supportsParallelToolCalls\x12>\n" + + "\x1bsupports_cumulative_context\x18\r \x01(\bR\x19supportsCumulativeContext\x128\n" + + "\x19tab_jump_print_line_range\x18\x0e \x01(\bR\x15tabJumpPrintLineRange\x12+\n" + + "\x11supports_thinking\x18\x0f \x01(\bR\x10supportsThinking\x12/\n" + + "\x13interleave_thinking\x18\x18 \x01(\bR\x12interleaveThinking\x12+\n" + + "\x11preserve_thinking\x18\x19 \x01(\bR\x10preserveThinking\x12-\n" + + "\x12summarize_thinking\x18\x1f \x01(\bR\x11summarizeThinking\x12E\n" + + "\x1fsupports_estimate_token_counter\x18\x11 \x01(\bR\x1csupportsEstimateTokenCounter\x12G\n" + + "!add_cursor_to_find_replace_target\x18\x12 \x01(\bR\x1caddCursorToFindReplaceTarget\x12M\n" + + "$supports_tab_jump_use_whole_document\x18\x13 \x01(\bR\x1fsupportsTabJumpUseWholeDocument\x12@\n" + + "\x1crequires_supercomplete_clean\x18\x16 \x01(\bR\x1arequiresSupercompleteClean\x12+\n" + + "\x12tab_route_to_modal\x18\x17 \x01(\bR\x0ftabRouteToModal\x12<\n" + + "\x1asupports_rejection_context\x18\x1a \x01(\bR\x18supportsRejectionContextJ\x04\b\x01\x10\x02J\x04\b\x10\x10\x11R\x14supports_middle_modeR\x1bsupports_estimate_tokenizer\"\x98\x02\n" + + "\x15OpenAIInferenceConfig\x12)\n" + + "\x10reasoning_effort\x18\x01 \x01(\tR\x0freasoningEffort\x12!\n" + + "\fservice_tier\x18\x02 \x01(\tR\vserviceTier\x12E\n" + + "\x1fextended_prompt_cache_retention\x18\x03 \x01(\bR\x1cextendedPromptCacheRetention\x12+\n" + + "\x11reasoning_context\x18\x04 \x01(\tR\x10reasoningContext\x12=\n" + + "\x1bdisable_prompt_cache_writes\x18\x05 \x01(\bR\x18disablePromptCacheWrites\"B\n" + + "\x15GoogleInferenceConfig\x12)\n" + + "\x10reasoning_effort\x18\x01 \x01(\tR\x0freasoningEffort\"\x8a\x01\n" + + "\x18AnthropicInferenceConfig\x12\x1a\n" + + "\bthinking\x18\x01 \x01(\bR\bthinking\x12\x16\n" + + "\x06effort\x18\x02 \x01(\tR\x06effort\x12\x1b\n" + + "\tfast_mode\x18\x03 \x01(\bR\bfastMode\x12\x1d\n" + + "\n" + + "context_1m\x18\x04 \x01(\bR\tcontext1m\"k\n" + + "\x12ZaiInferenceConfig\x12\x16\n" + + "\x06effort\x18\x01 \x01(\tR\x06effort\x12!\n" + + "\flong_context\x18\x02 \x01(\bR\vlongContext\x12\x1a\n" + + "\bthinking\x18\x03 \x01(\bR\bthinking\"?\n" + + "\x12XaiInferenceConfig\x12)\n" + + "\x10reasoning_effort\x18\x01 \x01(\tR\x0freasoningEffort\"L\n" + + "\x1fThinkingMachinesInferenceConfig\x12)\n" + + "\x10reasoning_effort\x18\x01 \x01(\tR\x0freasoningEffort\"D\n" + + "\x17MoonshotInferenceConfig\x12)\n" + + "\x10reasoning_effort\x18\x01 \x01(\tR\x0freasoningEffort\"B\n" + + "\x15NvidiaInferenceConfig\x12)\n" + + "\x10reasoning_effort\x18\x01 \x01(\tR\x0freasoningEffort\"D\n" + + "\x17DeepSeekInferenceConfig\x12)\n" + + "\x10reasoning_effort\x18\x01 \x01(\tR\x0freasoningEffort\"\xc5\x05\n" + + "\x0fInferenceConfig\x12F\n" + + "\x06openai\x18\x01 \x01(\v2,.exa.codeium_common_pb.OpenAIInferenceConfigH\x00R\x06openai\x12F\n" + + "\x06google\x18\x02 \x01(\v2,.exa.codeium_common_pb.GoogleInferenceConfigH\x00R\x06google\x12O\n" + + "\tanthropic\x18\x03 \x01(\v2/.exa.codeium_common_pb.AnthropicInferenceConfigH\x00R\tanthropic\x12=\n" + + "\x03zai\x18\x04 \x01(\v2).exa.codeium_common_pb.ZaiInferenceConfigH\x00R\x03zai\x12=\n" + + "\x03xai\x18\x05 \x01(\v2).exa.codeium_common_pb.XaiInferenceConfigH\x00R\x03xai\x12e\n" + + "\x11thinking_machines\x18\x06 \x01(\v26.exa.codeium_common_pb.ThinkingMachinesInferenceConfigH\x00R\x10thinkingMachines\x12L\n" + + "\bmoonshot\x18\a \x01(\v2..exa.codeium_common_pb.MoonshotInferenceConfigH\x00R\bmoonshot\x12F\n" + + "\x06nvidia\x18\b \x01(\v2,.exa.codeium_common_pb.NvidiaInferenceConfigH\x00R\x06nvidia\x12L\n" + + "\bdeepseek\x18\t \x01(\v2..exa.codeium_common_pb.DeepSeekInferenceConfigH\x00R\bdeepseekB\b\n" + + "\x06config\"\xe7\t\n" + + "\tModelInfo\x12;\n" + + "\bmodel_id\x18\x01 \x01(\x0e2\x1c.exa.codeium_common_pb.ModelB\x02\x18\x01R\amodelId\x12\x1b\n" + + "\tmodel_uid\x18\x11 \x01(\tR\bmodelUid\x12\x1f\n" + + "\vis_internal\x18\x02 \x01(\bR\n" + + "isInternal\x12?\n" + + "\n" + + "model_type\x18\x03 \x01(\x0e2 .exa.codeium_common_pb.ModelTypeR\tmodelType\x12\x1d\n" + + "\n" + + "max_tokens\x18\x04 \x01(\x05R\tmaxTokens\x12%\n" + + "\x0etokenizer_type\x18\x05 \x01(\tR\rtokenizerType\x12K\n" + + "\x0emodel_features\x18\x06 \x01(\v2$.exa.codeium_common_pb.ModelFeaturesR\rmodelFeatures\x12E\n" + + "\fapi_provider\x18\a \x01(\x0e2\".exa.codeium_common_pb.APIProviderR\vapiProvider\x12\x1d\n" + + "\n" + + "model_name\x18\b \x01(\tR\tmodelName\x12)\n" + + "\x10supports_context\x18\t \x01(\bR\x0fsupportsContext\x12\x1b\n" + + "\tembed_dim\x18\n" + + " \x01(\x05R\bembedDim\x12\x19\n" + + "\bbase_url\x18\v \x01(\tR\abaseUrl\x12&\n" + + "\x0fchat_model_name\x18\f \x01(\tR\rchatModelName\x12*\n" + + "\x11max_output_tokens\x18\r \x01(\x05R\x0fmaxOutputTokens\x12^\n" + + "\x15prompt_templater_type\x18\x0e \x01(\x0e2*.exa.codeium_common_pb.PromptTemplaterTypeR\x13promptTemplaterType\x12X\n" + + "\x13tool_formatter_type\x18\x0f \x01(\x0e2(.exa.codeium_common_pb.ToolFormatterTypeR\x11toolFormatterType\x120\n" + + "\x14inference_server_url\x18\x12 \x01(\tR\x12inferenceServerUrl\x12!\n" + + "\fharness_uids\x18\x14 \x03(\tR\vharnessUids\x12J\n" + + "\farena_config\x18\x15 \x01(\v2\".exa.codeium_common_pb.ArenaConfigH\x00R\varenaConfig\x88\x01\x01\x12K\n" + + "\x0edisplay_option\x18\x16 \x01(\x0e2$.exa.codeium_common_pb.DisplayOptionR\rdisplayOption\x12(\n" + + "\x10model_family_uid\x18\x17 \x01(\tR\x0emodelFamilyUid\x12Q\n" + + "\x10inference_config\x18\x18 \x01(\v2&.exa.codeium_common_pb.InferenceConfigR\x0finferenceConfig\x12&\n" + + "\x0fis_model_router\x18\x19 \x01(\bR\risModelRouterB\x0f\n" + + "\r_arena_configJ\x04\b\x13\x10\x14R\n" + + "arena_tier\"\x9f\x01\n" + + "\x18ModelFamilyMetadataValue\x12\x14\n" + + "\x05order\x18\x01 \x01(\x05R\x05order\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12Y\n" + + "\fcontrol_type\x18\x03 \x01(\x0e26.exa.codeium_common_pb.ModelFamilyDimensionControlTypeR\vcontrolType\"s\n" + + "\x18ModelFamilyMetadataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12E\n" + + "\x05value\x18\x02 \x01(\v2/.exa.codeium_common_pb.ModelFamilyMetadataValueR\x05value\"\xca\x01\n" + + "\x13ModelFamilyMetadata\x12,\n" + + "\x12model_family_label\x18\x01 \x01(\tR\x10modelFamilyLabel\x12I\n" + + "\aentries\x18\x02 \x03(\v2/.exa.codeium_common_pb.ModelFamilyMetadataEntryR\aentries\x12:\n" + + "\x1ais_default_model_in_family\x18\x03 \x01(\bR\x16isDefaultModelInFamily\"\xdc\x01\n" + + "\fChatToolCall\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12%\n" + + "\x0earguments_json\x18\x03 \x01(\tR\rargumentsJson\x12(\n" + + "\x10invalid_json_str\x18\x04 \x01(\tR\x0einvalidJsonStr\x12(\n" + + "\x10invalid_json_err\x18\x05 \x01(\tR\x0einvalidJsonErr\x12-\n" + + "\x13is_custom_tool_call\x18\x06 \x01(\bR\x10isCustomToolCall\"\xa8\x05\n" + + "\x0fModelUsageStats\x12A\n" + + "\x10model_deprecated\x18\x01 \x01(\x0e2\x1c.exa.codeium_common_pb.ModelB\x02\x18\x01R\x05model\x12\x1b\n" + + "\tmodel_uid\x18\t \x01(\tR\bmodelUid\x12*\n" + + "\x11billing_model_uid\x18\n" + + " \x01(\tR\x0fbillingModelUid\x12.\n" + + "\x13requested_model_uid\x18\v \x01(\tR\x11requestedModelUid\x12!\n" + + "\finput_tokens\x18\x02 \x01(\x04R\vinputTokens\x12#\n" + + "\routput_tokens\x18\x03 \x01(\x04R\foutputTokens\x12,\n" + + "\x12cache_write_tokens\x18\x04 \x01(\x04R\x10cacheWriteTokens\x12*\n" + + "\x11cache_read_tokens\x18\x05 \x01(\x04R\x0fcacheReadTokens\x12E\n" + + "\fapi_provider\x18\x06 \x01(\x0e2\".exa.codeium_common_pb.APIProviderR\vapiProvider\x12\x1d\n" + + "\n" + + "message_id\x18\a \x01(\tR\tmessageId\x12c\n" + + "\x0fresponse_header\x18\b \x03(\v2:.exa.codeium_common_pb.ModelUsageStats.ResponseHeaderEntryR\x0eresponseHeader\x12)\n" + + "\x10provider_refusal\x18\f \x01(\bR\x0fproviderRefusal\x1aA\n" + + "\x13ResponseHeaderEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"c\n" + + "\tImageData\x12\x1f\n" + + "\vbase64_data\x18\x01 \x01(\tR\n" + + "base64Data\x12\x1b\n" + + "\tmime_type\x18\x02 \x01(\tR\bmimeType\x12\x18\n" + + "\acaption\x18\x03 \x01(\tR\acaption\"[\n" + + "\tVideoData\x12\x1f\n" + + "\vbase64_data\x18\x01 \x01(\tR\n" + + "base64Data\x12\x1b\n" + + "\tmime_type\x18\x02 \x01(\tR\bmimeType\x12\x10\n" + + "\x03url\x18\x03 \x01(\tR\x03url\"z\n" + + "\fDocumentData\x12\x1f\n" + + "\vbase64_data\x18\x01 \x01(\tR\n" + + "base64Data\x12\x1b\n" + + "\tmime_type\x18\x02 \x01(\tR\bmimeType\x12\x1a\n" + + "\bfilename\x18\x03 \x01(\tR\bfilename\x12\x10\n" + + "\x03url\x18\x04 \x01(\tR\x03url\"\xe0\x1e\n" + + "\n" + + "TeamConfig\x12\x17\n" + + "\ateam_id\x18\x01 \x01(\tR\x06teamId\x123\n" + + "\x16user_prompt_credit_cap\x18\x02 \x01(\x05R\x13userPromptCreditCap\x12/\n" + + "\x14user_flow_credit_cap\x18\x03 \x01(\x05R\x11userFlowCreditCap\x12=\n" + + "\x1bauto_provision_cascade_seat\x18\x04 \x01(\bR\x18autoProvisionCascadeSeat\x12*\n" + + "\x11allow_mcp_servers\x18\x05 \x01(\bR\x0fallowMcpServers\x12.\n" + + "\x13max_unclaimed_sites\x18\t \x01(\x05R\x11maxUnclaimedSites\x122\n" + + "\x15allow_app_deployments\x18\n" + + " \x01(\bR\x13allowAppDeployments\x12A\n" + + "\x1dallow_sandbox_app_deployments\x18\x13 \x01(\bR\x1aallowSandboxAppDeployments\x12=\n" + + "\x1ballow_teams_app_deployments\x18\x14 \x01(\bR\x18allowTeamsAppDeployments\x120\n" + + "\x15max_new_sites_per_day\x18\v \x01(\x05R\x11maxNewSitesPerDay\x120\n" + + "\x14allow_github_reviews\x18\f \x01(\bR\x12allowGithubReviews\x12C\n" + + "\x1eallow_github_description_edits\x18\r \x01(\bR\x1ballowGithubDescriptionEdits\x12C\n" + + "\x1epull_request_review_guidelines\x18\x0e \x01(\tR\x1bpullRequestReviewGuidelines\x12M\n" + + "#pull_request_description_guidelines\x18\x10 \x01(\tR pullRequestDescriptionGuidelines\x12,\n" + + "\x12disable_tool_calls\x18\x0f \x01(\bR\x10disableToolCalls\x12G\n" + + " allow_individual_level_analytics\x18\x11 \x01(\bR\x1dallowIndividualLevelAnalytics\x12A\n" + + "\x1aallow_conversation_sharing\x18\x12 \x01(\bH\x00R\x18allowConversationSharing\x88\x01\x01\x12G\n" + + "\x1epull_request_review_rate_limit\x18\x15 \x01(\x05H\x01R\x1apullRequestReviewRateLimit\x88\x01\x01\x12+\n" + + "\x11allow_attribution\x18\x16 \x01(\bR\x10allowAttribution\x12V\n" + + "\x13allowed_mcp_servers\x18\x17 \x03(\v2&.exa.codeium_common_pb.McpServerConfigR\x11allowedMcpServers\x129\n" + + "\x19allow_github_auto_reviews\x18\x18 \x01(\bR\x16allowGithubAutoReviews\x12M\n" + + "#allow_browser_experimental_features\x18\x19 \x01(\bR allowBrowserExperimentalFeatures\x12_\n" + + "-disable_tool_call_execution_outside_workspace\x18\x1a \x01(\bR(disableToolCallExecutionOutsideWorkspace\x12)\n" + + "\x10disable_deepwiki\x18\x1c \x01(\bR\x0fdisableDeepwiki\x122\n" + + "\x16user_add_on_credit_cap\x18\x1e \x01(\x05R\x12userAddOnCreditCap\x12)\n" + + "\x10disable_codemaps\x18\x1f \x01(\bR\x0fdisableCodemaps\x122\n" + + "\x15allow_codemap_sharing\x18 \x01(\tR\x13allowCodemapSharing\x120\n" + + "\x14disable_fast_context\x18! \x01(\bR\x12disableFastContext\x12+\n" + + "\x11disable_lifeguard\x18\" \x01(\bR\x10disableLifeguard\x12*\n" + + "\x11allowed_ip_ranges\x18# \x03(\tR\x0fallowedIpRanges\x12{\n" + + " max_cascade_auto_execution_level\x18% \x01(\x0e23.exa.codeium_common_pb.CascadeCommandsAutoExecutionR\x1cmaxCascadeAutoExecutionLevel\x12@\n" + + "\x1acascade_web_search_enabled\x18& \x01(\bH\x02R\x17cascadeWebSearchEnabled\x88\x01\x01\x12.\n" + + "\x13terminal_allow_list\x18' \x03(\tR\x11terminalAllowList\x12,\n" + + "\x12terminal_deny_list\x18( \x03(\tR\x10terminalDenyList\x122\n" + + "\x15cli_permissions_allow\x18) \x03(\tR\x13cliPermissionsAllow\x120\n" + + "\x14cli_permissions_deny\x18* \x03(\tR\x12cliPermissionsDeny\x12.\n" + + "\x13cli_permissions_ask\x18+ \x03(\tR\x11cliPermissionsAsk\x12*\n" + + "\x11default_model_uid\x18, \x01(\tR\x0fdefaultModelUid\x12(\n" + + "\x10allow_arena_mode\x18- \x01(\bR\x0eallowArenaMode\x12,\n" + + "\x12cascade_hooks_json\x18. \x01(\tR\x10cascadeHooksJson\x127\n" + + "\x18allow_bundling_devin_cli\x18/ \x01(\bR\x15allowBundlingDevinCli\x12*\n" + + "\x11mcp_registry_urls\x181 \x03(\tR\x0fmcpRegistryUrls\x120\n" + + "\x14enforce_mcp_registry\x18< \x01(\bR\x12enforceMcpRegistry\x120\n" + + "\x14cli_default_disabled\x182 \x01(\bR\x12cliDefaultDisabled\x12.\n" + + "\x13acp_registry_config\x183 \x01(\tR\x11acpRegistryConfig\x12g\n" + + "\x18sandbox_enforcement_mode\x187 \x01(\x0e2-.exa.codeium_common_pb.SandboxEnforcementModeR\x16sandboxEnforcementMode\x126\n" + + "\x17sandbox_allowed_domains\x188 \x03(\tR\x15sandboxAllowedDomains\x124\n" + + "\x16sandbox_denied_domains\x189 \x03(\tR\x14sandboxDeniedDomains\x12;\n" + + "\x1adevin_terminal_acp_enabled\x18: \x01(\bR\x17devinTerminalAcpEnabled\x125\n" + + "\x17devin_cloud_acp_enabled\x18; \x01(\bR\x14devinCloudAcpEnabled\x12,\n" + + "\x12custom_acp_enabled\x18I \x01(\bR\x10customAcpEnabled\x12C\n" + + "\x1euser_configured_banner_enabled\x18= \x01(\bR\x1buserConfiguredBannerEnabled\x12?\n" + + "\x1cuser_configured_banner_label\x18> \x01(\tR\x19userConfiguredBannerLabel\x12?\n" + + "\x1cuser_configured_banner_color\x18? \x01(\tR\x19userConfiguredBannerColor\x12'\n" + + "\x0fdisable_cascade\x18@ \x01(\bR\x0edisableCascade\x12]\n" + + "\x14cascade_availability\x18J \x01(\x0e2*.exa.codeium_common_pb.CascadeAvailabilityR\x13cascadeAvailability\x12)\n" + + "\x10extension_policy\x18A \x01(\tR\x0fextensionPolicy\x12:\n" + + "\x17api_key_expiration_days\x18B \x01(\x05H\x03R\x14apiKeyExpirationDays\x88\x01\x01\x12'\n" + + "\x0fdisable_plugins\x18C \x01(\bR\x0edisablePlugins\x12;\n" + + "\x1asubagent_default_model_uid\x18D \x01(\tR\x17subagentDefaultModelUid\x124\n" + + "\x16sandbox_excluded_allow\x18E \x03(\tR\x14sandboxExcludedAllow\x120\n" + + "\x14sandbox_excluded_ask\x18F \x03(\tR\x12sandboxExcludedAsk\x122\n" + + "\x15sandbox_excluded_deny\x18G \x03(\tR\x13sandboxExcludedDeny\x12C\n" + + "\x1ecli_allowed_version_constraint\x18H \x01(\tR\x1bcliAllowedVersionConstraintB\x1d\n" + + "\x1b_allow_conversation_sharingB!\n" + + "\x1f_pull_request_review_rate_limitB\x1d\n" + + "\x1b_cascade_web_search_enabledB\x1a\n" + + "\x18_api_key_expiration_daysJ\x04\b\x06\x10\aJ\x04\b\a\x10\bJ\x04\b\b\x10\tJ\x04\b\x1b\x10\x1cJ\x04\b\x1d\x10\x1eJ\x04\b0\x101J\x04\b4\x105J\x04\b5\x106J\x04\b6\x107R\x16allow_vibe_and_replaceR\x18custom_provider_settings\"\xc0\x01\n" + + "\x0fMcpServerConfig\x12\x1b\n" + + "\tserver_id\x18\x01 \x01(\tR\bserverId\x12=\n" + + "\x05local\x18\x02 \x01(\v2%.exa.codeium_common_pb.McpLocalServerH\x00R\x05local\x12@\n" + + "\x06remote\x18\x03 \x01(\v2&.exa.codeium_common_pb.McpRemoteServerH\x00R\x06remoteB\x0f\n" + + "\rconfiguration\"\xb8\x01\n" + + "\x0eMcpLocalServer\x12\x18\n" + + "\acommand\x18\x01 \x01(\tR\acommand\x12\x12\n" + + "\x04args\x18\x02 \x03(\tR\x04args\x12@\n" + + "\x03env\x18\x03 \x03(\v2..exa.codeium_common_pb.McpLocalServer.EnvEntryR\x03env\x1a6\n" + + "\bEnvEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xc2\x01\n" + + "\x0fMcpRemoteServer\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12M\n" + + "\aheaders\x18\x03 \x03(\v23.exa.codeium_common_pb.McpRemoteServer.HeadersEntryR\aheaders\x1a:\n" + + "\fHeadersEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"x\n" + + "\x16ResponseDimensionGroup\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12H\n" + + "\n" + + "dimensions\x18\x02 \x03(\v2(.exa.codeium_common_pb.ResponseDimensionR\n" + + "dimensions\"\xcf\x02\n" + + "\x11ResponseDimension\x12[\n" + + "\rcopyable_code\x18\x02 \x01(\v24.exa.codeium_common_pb.ResponseDimensionCopyableCodeH\x00R\fcopyableCode\x12H\n" + + "\x06metric\x18\x03 \x01(\v2..exa.codeium_common_pb.ResponseDimensionMetricH\x00R\x06metric\x12g\n" + + "\x11cumulative_metric\x18\x04 \x01(\v28.exa.codeium_common_pb.ResponseDimensionCumulativeMetricH\x00R\x10cumulativeMetric\x12\x10\n" + + "\x03uid\x18\x05 \x01(\tR\x03uidB\v\n" + + "\tdimensionJ\x04\b\x01\x10\x02R\x05label\"K\n" + + "\x1dResponseDimensionCopyableCode\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"E\n" + + "\x17ResponseDimensionMetric\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"\x9c\x01\n" + + "!ResponseDimensionCumulativeMetric\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x12\x14\n" + + "\x05value\x18\x02 \x01(\x02R\x05value\x12\x12\n" + + "\x04tail\x18\x03 \x01(\tR\x04tail\x12\x1f\n" + + "\vplural_tail\x18\x04 \x01(\tR\n" + + "pluralTail\x12\x16\n" + + "\x06prefix\x18\x05 \x01(\tR\x06prefix*\xc0\x03\n" + + "\x0eProviderSource\x12\x1f\n" + + "\x1bPROVIDER_SOURCE_UNSPECIFIED\x10\x00\x12 \n" + + "\x1cPROVIDER_SOURCE_AUTOCOMPLETE\x10\x01\x12\x18\n" + + "\x14PROVIDER_SOURCE_CHAT\x10\x02\x12$\n" + + " PROVIDER_SOURCE_COMMAND_GENERATE\x10\x04\x12 \n" + + "\x1cPROVIDER_SOURCE_COMMAND_EDIT\x10\x05\x12!\n" + + "\x1dPROVIDER_SOURCE_SUPERCOMPLETE\x10\x06\x12 \n" + + "\x1cPROVIDER_SOURCE_COMMAND_PLAN\x10\a\x12\x19\n" + + "\x15PROVIDER_SOURCE_QUERY\x10\b\x12\x1e\n" + + "\x1aPROVIDER_SOURCE_FAST_APPLY\x10\t\x12$\n" + + " PROVIDER_SOURCE_COMMAND_TERMINAL\x10\n" + + "\x12\x1c\n" + + "\x18PROVIDER_SOURCE_TAB_JUMP\x10\v\x12\x1b\n" + + "\x17PROVIDER_SOURCE_CASCADE\x10\f\"\x04\b\x03\x10\x03*\"PROVIDER_SOURCE_SUPERCOMPLETE_CHAT*\x88\x01\n" + + "\x14PromptAnnotationKind\x12&\n" + + "\"PROMPT_ANNOTATION_KIND_UNSPECIFIED\x10\x00\x12\x1f\n" + + "\x1bPROMPT_ANNOTATION_KIND_COPY\x10\x01\x12'\n" + + "#PROMPT_ANNOTATION_KIND_PROMPT_CACHE\x10\x02*\xd7C\n" + + "\rExperimentKey\x12\x0f\n" + + "\vUNSPECIFIED\x10\x00\x12\x1b\n" + + "\x17USE_INTERNAL_CHAT_MODEL\x10$\x12\x10\n" + + "\fRECORD_FILES\x10/\x12\x19\n" + + "\x15NO_SAMPLER_EARLY_STOP\x100\x12\x17\n" + + "\x13CM_MEMORY_TELEMETRY\x105\x12\x1b\n" + + "\x17LANGUAGE_SERVER_VERSION\x107\x12\x1f\n" + + "\x1bLANGUAGE_SERVER_AUTO_RELOAD\x108\x12\x12\n" + + "\x0eONLY_MULTILINE\x10<\x12\x1a\n" + + "\x16USE_AUTOCOMPLETE_MODEL\x10@\x12'\n" + + "#USE_ATTRIBUTION_FOR_INDIVIDUAL_TIER\x10D\x12\x15\n" + + "\x11CHAT_MODEL_CONFIG\x10N\x12\x18\n" + + "\x14COMMAND_MODEL_CONFIG\x10O\x12\x13\n" + + "\x0fMIN_IDE_VERSION\x10Q\x12\x1d\n" + + "\x19API_SERVER_VERBOSE_ERRORS\x10T\x12\x19\n" + + "\x15DEFAULT_ENABLE_SEARCH\x10V\x12\x1d\n" + + "\x19COLLECT_ONBOARDING_EVENTS\x10W\x12\x1f\n" + + "\x1bCOLLECT_EXAMPLE_COMPLETIONS\x10X\x12\x17\n" + + "\x13USE_MULTILINE_MODEL\x10Y\x12\x1b\n" + + "\x17ATTRIBUTION_KILL_SWITCH\x10\\\x12\x12\n" + + "\x0eFAST_MULTILINE\x10^\x12\x15\n" + + "\x11SINGLE_COMPLETION\x10_\x12\"\n" + + "\x1eSTOP_FIRST_NON_WHITESPACE_LINE\x10`\x12\x11\n" + + "\rCORTEX_CONFIG\x10f\x12\x1d\n" + + "\x19MODEL_CHAT_11121_VARIANTS\x10g\x12\x1d\n" + + "\x19INCLUDE_PROMPT_COMPONENTS\x10i\x12\x19\n" + + "\x15NON_TEAMS_KILL_SWITCH\x10j\x12\x18\n" + + "\x14PERSIST_CODE_TRACKER\x10l\x12%\n" + + "!CHAT_COMPLETION_TOKENS_SOFT_LIMIT\x10r\x12\x1a\n" + + "\x16CHAT_TOKENS_SOFT_LIMIT\x10s\x12\x1d\n" + + "\x19DISABLE_COMPLETIONS_CACHE\x10v\x12\x1b\n" + + "\x17LLAMA3_405B_KILL_SWITCH\x10w\x12$\n" + + " USE_COMMAND_DOCSTRING_GENERATION\x10y\x12\x18\n" + + "\x14ENABLE_SUPERCOMPLETE\x10{\x12\v\n" + + "\x06SENTRY\x10\x88\x01\x12\x14\n" + + "\x0fFAST_SINGLELINE\x10\x90\x01\x12 \n" + + "\x1bR2_LANGUAGE_SERVER_DOWNLOAD\x10\x93\x01\x12\x10\n" + + "\vSPLIT_MODEL\x10\x98\x01\x12 \n" + + "\x1bWINDSURF_SENTRY_SAMPLE_RATE\x10\xc6\x01\x12\x16\n" + + "\x11API_SERVER_CUTOFF\x10\x9e\x01\x12\x1b\n" + + "\x16FAST_SPEED_KILL_SWITCH\x10\x9f\x01\x12\x19\n" + + "\x14PREDICTIVE_MULTILINE\x10\xa0\x01\x12\x1f\n" + + "\x1bSUPERCOMPLETE_FILTER_REVERT\x10}\x12%\n" + + "!SUPERCOMPLETE_FILTER_PREFIX_MATCH\x10~\x12(\n" + + "$SUPERCOMPLETE_FILTER_SCORE_THRESHOLD\x10\x7f\x12'\n" + + "\"SUPERCOMPLETE_FILTER_INSERTION_CAP\x10\x80\x01\x12&\n" + + "!SUPERCOMPLETE_FILTER_DELETION_CAP\x10\x85\x01\x12)\n" + + "$SUPERCOMPLETE_FILTER_WHITESPACE_ONLY\x10\x9c\x01\x12\x1f\n" + + "\x1aSUPERCOMPLETE_FILTER_NO_OP\x10\xaa\x01\x12&\n" + + "!SUPERCOMPLETE_FILTER_SUFFIX_MATCH\x10\xb0\x01\x12*\n" + + "%SUPERCOMPLETE_FILTER_PREVIOUSLY_SHOWN\x10\xb6\x01\x12\x1c\n" + + "\x17SUPERCOMPLETE_MIN_SCORE\x10\x81\x01\x12!\n" + + "\x1cSUPERCOMPLETE_MAX_INSERTIONS\x10\x82\x01\x12\x1e\n" + + "\x19SUPERCOMPLETE_LINE_RADIUS\x10\x83\x01\x12 \n" + + "\x1bSUPERCOMPLETE_MAX_DELETIONS\x10\x84\x01\x12(\n" + + "#SUPERCOMPLETE_RECENT_STEPS_DURATION\x10\x8a\x01\x12'\n" + + "\"SUPERCOMPLETE_MAX_TRAJECTORY_STEPS\x10\x9a\x01\x12+\n" + + "&SUPERCOMPLETE_MAX_TRAJECTORY_STEP_SIZE\x10\xcb\x01\x12'\n" + + "\"SUPERCOMPLETE_DISABLE_TYPING_CACHE\x10\xe7\x01\x122\n" + + "-SUPERCOMPLETE_ALWAYS_USE_CACHE_ON_EQUAL_STATE\x10\xa5\x02\x121\n" + + ",SUPERCOMPLETE_CACHE_ON_PARENT_ID_KILL_SWITCH\x10\xa9\x02\x12!\n" + + "\x1cSUPERCOMPLETE_PRUNE_RESPONSE\x10\x8c\x01\x125\n" + + "0SUPERCOMPLETE_PRUNE_MAX_INSERT_DELETE_LINE_DELTA\x10\x8d\x01\x12\x1f\n" + + "\x1aSUPERCOMPLETE_MODEL_CONFIG\x10\x91\x01\x12#\n" + + "\x1eSUPERCOMPLETE_MODEL_CONFIG_LOW\x10\xca\x02\x12$\n" + + "\x1fSUPERCOMPLETE_MODEL_CONFIG_HIGH\x10\xcb\x02\x12\x19\n" + + "\x14SUPERCOMPLETE_ON_TAB\x10\x97\x01\x12%\n" + + " SUPERCOMPLETE_INLINE_PURE_DELETE\x10\xab\x01\x124\n" + + "/SUPERCOMPLETE_INLINE_RICH_GHOST_TEXT_INSERTIONS\x10\xda\x01\x12\x1e\n" + + "\x19MODEL_CHAT_19821_VARIANTS\x10\xb4\x02\x12*\n" + + "%SUPERCOMPLETE_MAX_CONCURRENT_REQUESTS\x10\x9c\x02\x12 \n" + + "\x1bCOMMAND_PROMPT_CACHE_CONFIG\x10\xff\x01\x12\x1d\n" + + "\x18CUMULATIVE_PROMPT_CONFIG\x10\x80\x02\x12%\n" + + " CUMULATIVE_PROMPT_CASCADE_CONFIG\x10\x97\x02\x12&\n" + + "!TAB_JUMP_CUMULATIVE_PROMPT_CONFIG\x10\xad\x02\x12)\n" + + "$COMPLETION_SPEED_SUPERCOMPLETE_CACHE\x10\xcf\x01\x12.\n" + + ")COMPLETION_SPEED_PREDICTIVE_SUPERCOMPLETE\x10\xd0\x01\x12$\n" + + "\x1fCOMPLETION_SPEED_TAB_JUMP_CACHE\x10\xd1\x01\x12)\n" + + "$COMPLETION_SPEED_PREDICTIVE_TAB_JUMP\x10\xd2\x01\x12@\n" + + ";COMPLETION_SPEED_BLOCK_TAB_JUMP_ON_PREDICTIVE_SUPERCOMPLETE\x10\xa6\x02\x12 \n" + + "\x1bJETBRAINS_ENABLE_ONBOARDING\x10\x89\x01\x12,\n" + + "'ENABLE_AUTOCOMPLETE_DURING_INTELLISENSE\x10\x92\x01\x12\x17\n" + + "\x12COMMAND_BOX_ON_TOP\x10\x9b\x01\x12%\n" + + " CONTEXT_ACTIVE_DOCUMENT_FRACTION\x10\x95\x01\x12 \n" + + "\x1bCONTEXT_FORCE_LOCAL_CONTEXT\x10\xb2\x01\x12+\n" + + "&CROSS_SELL_EXTENSION_DOWNLOAD_WINDSURF\x10\xdc\x01\x127\n" + + "2MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT_VARIANTS\x10\xa7\x02\x12'\n" + + "\"USE_AUTOCOMPLETE_MODEL_SERVER_SIDE\x10\xa3\x01\x12\x1d\n" + + "\x18SUPERCOMPLETE_NO_CONTEXT\x10\xa5\x01\x12!\n" + + "\x1cSUPERCOMPLETE_NO_ACTIVE_NODE\x10\xa6\x01\x12\x15\n" + + "\x10TAB_JUMP_ENABLED\x10\xa8\x01\x12\x1c\n" + + "\x17TAB_JUMP_ACCEPT_ENABLED\x10\xa9\x01\x12\x19\n" + + "\x14TAB_JUMP_LINE_RADIUS\x10\xb1\x01\x12\x1f\n" + + "\x1aTAB_JUMP_MIN_FILTER_RADIUS\x10\xc5\x01\x12\x1c\n" + + "\x17TAB_JUMP_ON_ACCEPT_ONLY\x10\xcd\x01\x12!\n" + + "\x1cTAB_JUMP_FILTER_IN_SELECTION\x10\xd7\x01\x12\x1a\n" + + "\x15TAB_JUMP_MODEL_CONFIG\x10\xed\x01\x12\x1a\n" + + "\x15TAB_JUMP_FILTER_NO_OP\x10\xee\x01\x12\x1b\n" + + "\x16TAB_JUMP_FILTER_REVERT\x10\xef\x01\x12$\n" + + "\x1fTAB_JUMP_FILTER_SCORE_THRESHOLD\x10\xf0\x01\x12$\n" + + "\x1fTAB_JUMP_FILTER_WHITESPACE_ONLY\x10\xf1\x01\x12\"\n" + + "\x1dTAB_JUMP_FILTER_INSERTION_CAP\x10\xf2\x01\x12!\n" + + "\x1cTAB_JUMP_FILTER_DELETION_CAP\x10\xf3\x01\x12\x1c\n" + + "\x17TAB_JUMP_PRUNE_RESPONSE\x10\x84\x02\x120\n" + + "+TAB_JUMP_PRUNE_MAX_INSERT_DELETE_LINE_DELTA\x10\x85\x02\x12\"\n" + + "\x1dTAB_JUMP_STOP_TOKEN_MIDSTREAM\x10\xbd\x02\x12\x1f\n" + + "\x1aVIEWED_FILE_TRACKER_CONFIG\x10\xd3\x01\x12&\n" + + "!SNAPSHOT_TO_STEP_OPTIONS_OVERRIDE\x10\xb1\x02\x12\x1f\n" + + "\x1aSTREAMING_EXTERNAL_COMMAND\x10\xac\x01\x12 \n" + + "\x1bUSE_SPECIAL_EDIT_CODE_BLOCK\x10\xb3\x01\x12\x1f\n" + + "\x1aENABLE_SUGGESTED_RESPONSES\x10\xbb\x01\x12\x1a\n" + + "\x15CASCADE_BASE_MODEL_ID\x10\xbe\x01\x12'\n" + + "\"CASCADE_PLAN_BASED_CONFIG_OVERRIDE\x10\x8a\x02\x12#\n" + + "\x1eCASCADE_GLOBAL_CONFIG_OVERRIDE\x10\xd4\x01\x120\n" + + "+CASCADE_BACKGROUND_RESEARCH_CONFIG_OVERRIDE\x10\xc1\x01\x12\x1a\n" + + "\x15CASCADE_ENFORCE_QUOTA\x10\xcc\x01\x12&\n" + + "!CASCADE_ENABLE_AUTOMATED_MEMORIES\x10\xe0\x01\x12#\n" + + "\x1eCASCADE_MEMORY_CONFIG_OVERRIDE\x10\xba\x02\x12*\n" + + "%CASCADE_USE_REPLACE_CONTENT_EDIT_TOOL\x10\xe4\x01\x12+\n" + + "&CASCADE_VIEW_FILE_TOOL_CONFIG_OVERRIDE\x10\x82\x02\x12(\n" + + "#CASCADE_USE_EXPERIMENT_CHECKPOINTER\x10\xf7\x01\x12\x1d\n" + + "\x18CASCADE_ENABLE_MCP_TOOLS\x10\xf5\x01\x12\x1b\n" + + "\x16CASCADE_AUTO_FIX_LINTS\x10\x93\x02\x12-\n" + + "(USE_ANTHROPIC_TOKEN_EFFICIENT_TOOLS_BETA\x10\xa8\x02\x12(\n" + + "#CASCADE_USER_MEMORIES_IN_SYS_PROMPT\x10\xa1\x02\x12$\n" + + "\x1fCASCADE_ENABLE_PROXY_WEB_SERVER\x10\xa2\x02\x12 \n" + + "\x1bCOLLAPSE_ASSISTANT_MESSAGES\x10\xb8\x02\x12#\n" + + "\x1eCASCADE_DEFAULT_MODEL_OVERRIDE\x10\xc1\x02\x12\x16\n" + + "\x11ENABLE_SMART_COPY\x10\xb5\x01\x12)\n" + + " ENABLE_COMMIT_MESSAGE_GENERATION\x10\xb9\x01\x1a\x02\b\x01\x12\x1d\n" + + "\x18SKIP_CONSISTENCY_MANAGER\x10\xc2\x01\x12#\n" + + "\x1eFIREWORKS_ON_DEMAND_DEPLOYMENT\x10\x94\x02\x12!\n" + + "\x1cAPI_SERVER_CLIENT_USE_HTTP_2\x10\xca\x01\x12%\n" + + " AUTOCOMPLETE_DEFAULT_DEBOUNCE_MS\x10\xd5\x01\x12\"\n" + + "\x1dAUTOCOMPLETE_FAST_DEBOUNCE_MS\x10\xd6\x01\x12$\n" + + "\x1fPROFILING_TELEMETRY_SAMPLE_RATE\x10\xdb\x01\x12\x1f\n" + + "\x1aSTREAM_USER_SHELL_COMMANDS\x10\xe1\x01\x12%\n" + + " API_SERVER_PROMPT_CACHE_REPLICAS\x10\xb3\x02\x12#\n" + + "\x1eAPI_SERVER_ENABLE_MORE_LOGGING\x10\x90\x02\x12!\n" + + "\x1cCOMMAND_INJECT_USER_MEMORIES\x10\xe9\x01\x12$\n" + + "\x1fAUTOCOMPLETE_HIDDEN_ERROR_REGEX\x10\xea\x01\x12%\n" + + " DISABLE_IDE_COMPLETIONS_DEBOUNCE\x10\x96\x02\x12\x19\n" + + "\x14ENABLE_QUICK_ACTIONS\x10\xfa\x01\x12\"\n" + + "\x1dQUICK_ACTIONS_WHITELIST_REGEX\x10\xfb\x01\x12\x1f\n" + + "\x16CASCADE_NEW_MODELS_NUX\x10\x83\x02\x1a\x02\b\x01\x12&\n" + + "\x1dCASCADE_NEW_WAVE_2_MODELS_NUX\x10\x8e\x02\x1a\x02\b\x01\x12 \n" + + "\x1bSUPERCOMPLETE_FAST_DEBOUNCE\x10\x86\x02\x12#\n" + + "\x1eSUPERCOMPLETE_REGULAR_DEBOUNCE\x10\x87\x02\x12\x1c\n" + + "\x17XML_TOOL_PARSING_MODELS\x10\x8c\x02\x12+\n" + + "&SUPERCOMPLETE_DONT_FILTER_MID_STREAMED\x10\x8d\x02\x12-\n" + + "(ANNOYANCE_MANAGER_MAX_NAVIGATION_RENDERS\x10\x9d\x02\x125\n" + + "0ANNOYANCE_MANAGER_INLINE_PREVENTION_THRESHOLD_MS\x10\x9e\x02\x12C\n" + + ">ANNOYANCE_MANAGER_INLINE_PREVENTION_MAX_INTENTIONAL_REJECTIONS\x10\x9f\x02\x12<\n" + + "7ANNOYANCE_MANAGER_INLINE_PREVENTION_MAX_AUTO_REJECTIONS\x10\xa0\x02\x12\x1e\n" + + "\x19USE_CUSTOM_CHARACTER_DIFF\x10\xa4\x02\x12\x1d\n" + + "\x18FORCE_NON_OPTIMIZED_DIFF\x10\xaa\x02\x12(\n" + + "#CASCADE_WEB_APP_DEPLOYMENTS_ENABLED\x10\xac\x02\x12*\n" + + "%CASCADE_RECIPES_AT_MENTION_VISIBILITY\x10\xbc\x02\x12\x1c\n" + + "\x17IMPLICIT_USES_CLIPBOARD\x10\xb6\x02\x12\x1e\n" + + "\x19DISABLE_SUPERCOMPLETE_PCW\x10\xaf\x02\x12$\n" + + "\x1fBLOCK_TAB_ON_SHOWN_AUTOCOMPLETE\x10\xb0\x02\x12\x1b\n" + + "\x16CASCADE_WEB_SEARCH_NUX\x10\xb7\x02\x12\x18\n" + + "\x13MODEL_NOTIFICATIONS\x10\xbf\x02\x12\x1c\n" + + "\x17MODEL_SELECTOR_NUX_COPY\x10\xc0\x02\x12\"\n" + + "\x1dCASCADE_TOOL_CALL_PRICING_NUX\x10\xc2\x02\x12\x18\n" + + "\x13CASCADE_PLUGINS_TAB\x10\xc3\x02\x12\x19\n" + + "\x14WAVE_8_RULES_ENABLED\x10\xc4\x02\x12\x1d\n" + + "\x18WAVE_8_KNOWLEDGE_ENABLED\x10\xc5\x02\x12\x17\n" + + "\x12CASCADE_ONBOARDING\x10\xc6\x02\x12\x1e\n" + + "\x19CASCADE_ONBOARDING_REVERT\x10\xc7\x02\x12+\n" + + "&CASCADE_WINDSURF_BROWSER_TOOLS_ENABLED\x10\xc8\x02\x12!\n" + + "\x1cCASCADE_MODEL_HEADER_WARNING\x10\xc9\x02\x12\x0e\n" + + "\tTEST_ONLY\x10\xe7\a\"\x06\b\xec\x01\x10\xec\x01\"\x04\b\x01\x10#\"\x04\b%\x10+\"\x04\b,\x10,\"\x04\b-\x10-\"\x04\b.\x10.\"\x04\b1\x101\"\x04\b2\x102\"\x04\b3\x103\"\x04\b4\x104\"\x04\b9\x109\"\x04\b:\x10:\"\x04\b;\x10;\"\x04\b=\x10=\"\x04\b>\x10>\"\x04\b?\x10?\"\x04\bA\x10A\"\x04\bB\x10B\"\x04\bC\x10C\"\x04\bE\x10E\"\x04\bF\x10F\"\x04\bG\x10G\"\x04\bH\x10H\"\x04\bI\x10I\"\x04\bJ\x10J\"\x04\bK\x10K\"\x04\bL\x10L\"\x04\bM\x10M\"\x04\bP\x10P\"\x04\bR\x10R\"\x04\bS\x10S\"\x04\bU\x10U\"\x04\bZ\x10Z\"\x04\b[\x10[\"\x04\b]\x10]\"\x04\bb\x10b\"\x04\bc\x10c\"\x04\bd\x10d\"\x04\be\x10e\"\x04\bh\x10h\"\x04\bk\x10k\"\x04\bn\x10n\"\x04\bo\x10o\"\x04\bp\x10p\"\x04\bq\x10q\"\x04\bt\x10t\"\x04\bx\x10x\"\x04\bz\x10z\"\x04\b|\x10|\"\x06\b\x86\x01\x10\x86\x01\"\x06\b\x87\x01\x10\x87\x01\"\x06\b\x8b\x01\x10\x8b\x01\"\x06\b\x8e\x01\x10\x8e\x01\"\x06\b\x8f\x01\x10\x8f\x01\"\x06\b\x96\x01\x10\x96\x01\"\x06\b\x9d\x01\x10\x9d\x01\"\x06\b\xa1\x01\x10\xa1\x01\"\x06\b\xa2\x01\x10\xa2\x01\"\x06\b\xa7\x01\x10\xa7\x01\"\x06\b\xad\x01\x10\xad\x01\"\x06\b\xae\x01\x10\xae\x01\"\x06\b\xaf\x01\x10\xaf\x01\"\x06\b\xb4\x01\x10\xb4\x01\"\x06\b\xb7\x01\x10\xb7\x01\"\x06\b\xb8\x01\x10\xb8\x01\"\x06\b\xba\x01\x10\xba\x01\"\x06\b\xbc\x01\x10\xbc\x01\"\x06\b\xbd\x01\x10\xbd\x01\"\x06\b\xc3\x01\x10\xc3\x01\"\x06\b\xc4\x01\x10\xc4\x01\"\x06\b\xc7\x01\x10\xc7\x01\"\x06\b\xc8\x01\x10\xc8\x01\"\x06\b\xce\x01\x10\xce\x01\"\x06\b\xd8\x01\x10\xd8\x01\"\x06\b\xd9\x01\x10\xd9\x01\"\x06\b\xdd\x01\x10\xdd\x01\"\x06\b\xde\x01\x10\xde\x01\"\x06\b\xdf\x01\x10\xdf\x01\"\x06\b\xe2\x01\x10\xe2\x01\"\x06\b\xe3\x01\x10\xe3\x01\"\x06\b\xe5\x01\x10\xe5\x01\"\x06\b\xe6\x01\x10\xe6\x01\"\x06\b\xe8\x01\x10\xe8\x01\"\x06\b\xeb\x01\x10\xeb\x01\"\x06\b\xf4\x01\x10\xf4\x01\"\x06\b\xf6\x01\x10\xf6\x01\"\x06\b\xf8\x01\x10\xf8\x01\"\x06\b\xfc\x01\x10\xfc\x01\"\x06\b\xfd\x01\x10\xfd\x01\"\x06\b\xfe\x01\x10\xfe\x01\"\x06\b\x81\x02\x10\x81\x02\"\x06\b\x88\x02\x10\x88\x02\"\x06\b\x89\x02\x10\x89\x02\"\x06\b\x8b\x02\x10\x8b\x02\"\x06\b\x92\x02\x10\x92\x02\"\x06\b\x95\x02\x10\x95\x02\"\x06\b\x98\x02\x10\x98\x02\"\x06\b\x99\x02\x10\x99\x02\"\x06\b\x9a\x02\x10\x9a\x02\"\x06\b\xa3\x02\x10\xa3\x02\"\x06\b\xab\x02\x10\xab\x02\"\x06\b\xae\x02\x10\xae\x02\"\x06\b\xb2\x02\x10\xb2\x02\"\x06\b\xb9\x02\x10\xb9\x02\"\x06\b\xbb\x02\x10\xbb\x02\"\x06\b\xbe\x02\x10\xbe\x02*\vFILE_MARKER*\x0eUSE_MODEL_3356*\x11SAMPLING_CHANGE_1*\x10SCORING_CHANGE_1*\x10SCORING_CHANGE_2*\x1cDONT_PRUNE_MULTILINE_OVERLAP*\x15USE_FIM_EOT_THRESHOLD*\x18DO_NOT_SCORE_STOP_TOKENS*\x1cSQRT_LEN_NORM_LOG_PROB_SCORE*\x0eUSE_MODEL_3554*\x11USE_MODEL_3554_DC*\x11SIBLING_FUNCTIONS*\aUSE_FIM*\x12HIGHER_TEMPERATURE*\x0eUSE_MODEL_4300*\x0eUSE_MODEL_4531*\x0eUSE_MODEL_4861*\x1dSEARCH_CONDITIONED_GENERATION*\x0eUSE_MODEL_5202*\x0eUSE_MODEL_5439*\x0eUSE_MODEL_5519*\n" + + "INLINE_FIM*\x12INCLUDE_TOP_OF_DOC*\x18VSCODE_USE_GRPC_PROTOCOL*\x11XBATCHER_FALLBACK*\aLOWER_P*\x0eUSE_MODEL_5305*\x0eUSE_MODEL_5476* USE_INFERENCE_SERVER_COMPLETIONS*\x0eUSE_MODEL_6282*\x18CONTEXT_FOR_AUTOCOMPLETE*\x0eUSE_MODEL_6569*\x10CONTEXT_FOR_CHAT*\x16REORDER_CONTEXT_PROMPT*\x1dREGULARLY_UPLOAD_MEMORY_STATS*\x0eUSE_MODEL_7747*\x0eUSE_MODEL_7725*\x11USE_GPT_4_COMMAND*\x0eRANGE_TRACKING*\x14PRUNE_BAD_INLINE_FIM*\fLIMIT_PREFIX*\x14USE_REMOTE_EMBEDDING*\x1cUSE_CHAT_INSTRUCT_COMPLETION*\x0fPING_API_SERVER*\x0eSORT_EOM_FIRST*\x0eUSE_MODEL_7158*\x0eUSE_MODEL_8276*\x0eUSE_MODEL_7468*\x0eUSE_MODEL_8523*\rINTENT_FILTER*\x15STREAMING_COMPLETIONS*\x1cSTREAMING_COMPLETIONS_CUTOFF*\x10SWITCH_LINE_TYPE*\x0eUSE_MODEL_9589*\x0eJUPYTER_FORMAT*\x0eUSE_MODEL_8615*\x0eUSE_MODEL_8684*\x0eUSE_MODEL_8251*\x0eUSE_MODEL_8341*\x0fUSE_MODEL_10880*\x19MODEL_CHAT_10546_VARIANTS*\x10INTENT_INFERENCE*\x12MODEL_12471_TOKENS*\x11USE_MQUERY_SCORER*\x19USE_QUANTIZED_FAISS_INDEX*\x19MULTILINE_MODEL_THRESHOLD*\x17USE_SUPERCOMPLETE_MODEL*\x18USE_INFERENCE_API_SERVER*\x1bCASCADE_WEB_TOOLS_READ_URLS*!CASCADE_USE_SUBAGENT_CHECKPOINTER*\x1bUSE_OPENAI_INTERFACE_CLIENT*\x19TAB_JUMP_PRINT_LINE_RANGE*\x1cCASCADE_FREE_CONFIG_OVERRIDE*\x1fCASCADE_PREMIUM_CONFIG_OVERRIDE*#USE_GCP_API_SERVER_FOR_PREMIUM_CHAT*\x1aUSE_OPENAI_OFFICIAL_CLIENT*\x1eESTIMATE_TOKENIZER_KILL_SWITCH*\x1fENABLE_SHELL_COMMAND_TRAJECTORY*\x12ENABLE_RUN_COMMAND*\x1aCASCADE_WEB_SEARCH_ENABLED*%CASCADE_ENABLE_IDE_TERMINAL_EXECUTION*\rIMPLICIT_PLAN*\x1bRUN_RESEARCH_STATE_PROVIDER*\x17USE_IMPLICIT_TRAJECTORY*\x1aOPEN_UNIVERSITY_ON_STARTUP*\x1eSUPERCOMPLETE_USE_CURRENT_LINE*\x19API_SERVER_LIVENESS_PROBE*\x9f\x01\n" + + "\x10ExperimentSource\x12!\n" + + "\x1dEXPERIMENT_SOURCE_UNSPECIFIED\x10\x00\x12\x1f\n" + + "\x1bEXPERIMENT_SOURCE_EXTENSION\x10\x01\x12%\n" + + "!EXPERIMENT_SOURCE_LANGUAGE_SERVER\x10\x02\x12 \n" + + "\x1cEXPERIMENT_SOURCE_API_SERVER\x10\x03*\xbe\x01\n" + + "\n" + + "ModelAlias\x12\x1b\n" + + "\x17MODEL_ALIAS_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18MODEL_ALIAS_CASCADE_BASE\x10\x01\x12\x15\n" + + "\x11MODEL_ALIAS_VISTA\x10\x03\x12\x15\n" + + "\x11MODEL_ALIAS_SHAMU\x10\x04\x12\x15\n" + + "\x11MODEL_ALIAS_SWE_1\x10\x05\x12\x1a\n" + + "\x16MODEL_ALIAS_SWE_1_LITE\x10\x06\x12\x14\n" + + "\x10MODEL_ALIAS_AUTO\x10\a*\xb2Y\n" + + "\x05Model\x12\x15\n" + + "\x11MODEL_UNSPECIFIED\x10\x00\x12\x14\n" + + "\x10MODEL_EMBED_6591\x10\x14\x12\x0e\n" + + "\n" + + "MODEL_8341\x10!\x12\x0e\n" + + "\n" + + "MODEL_8528\x10*\x12\x0e\n" + + "\n" + + "MODEL_9024\x10)\x12\x0f\n" + + "\vMODEL_14602\x10p\x12\x0f\n" + + "\vMODEL_15133\x10s\x12\x0f\n" + + "\vMODEL_15302\x10w\x12\x0f\n" + + "\vMODEL_15335\x10y\x12\x0f\n" + + "\vMODEL_15336\x10z\x12\x10\n" + + "\vMODEL_15931\x10\xa7\x01\x12\x14\n" + + "\x10MODEL_QUERY_9905\x100\x12\x15\n" + + "\x11MODEL_QUERY_11791\x10B\x12\x14\n" + + "\x10MODEL_CHAT_11120\x109\x12\x14\n" + + "\x10MODEL_CHAT_11121\x10:\x12\x14\n" + + "\x10MODEL_CHAT_12119\x10F\x12\x14\n" + + "\x10MODEL_CHAT_12121\x10E\x12\x14\n" + + "\x10MODEL_CHAT_12437\x10J\x12\x14\n" + + "\x10MODEL_CHAT_12491\x10L\x12\x14\n" + + "\x10MODEL_CHAT_12623\x10N\x12\x14\n" + + "\x10MODEL_CHAT_12950\x10O\x12\x14\n" + + "\x10MODEL_CHAT_12968\x10e\x12\x14\n" + + "\x10MODEL_CHAT_13404\x10f\x12\x14\n" + + "\x10MODEL_CHAT_13566\x10g\x12\x14\n" + + "\x10MODEL_CHAT_13930\x10l\x12\x14\n" + + "\x10MODEL_CHAT_14255\x10n\x12\x14\n" + + "\x10MODEL_CHAT_14256\x10o\x12\x14\n" + + "\x10MODEL_CHAT_14942\x10r\x12\x14\n" + + "\x10MODEL_CHAT_15305\x10x\x12\x14\n" + + "\x10MODEL_CHAT_15600\x10{\x12\x14\n" + + "\x10MODEL_CHAT_16801\x10|\x12\x15\n" + + "\x10MODEL_CHAT_16718\x10\xaf\x01\x12\x15\n" + + "\x10MODEL_CHAT_15729\x10\xa8\x01\x12\x15\n" + + "\x10MODEL_CHAT_16579\x10\xad\x01\x12\x1c\n" + + "\x17MODEL_CHAT_16579_CRUSOE\x10\xae\x01\x12\x15\n" + + "\x10MODEL_CHAT_18805\x10\xb5\x01\x12\x15\n" + + "\x10MODEL_CHAT_18468\x10\xd2\x01\x12\x15\n" + + "\x10MODEL_CHAT_19484\x10\xe9\x01\x12\x15\n" + + "\x10MODEL_CHAT_20706\x10\xeb\x01\x12\x15\n" + + "\x10MODEL_CHAT_21779\x10\xf5\x01\x12\x15\n" + + "\x10MODEL_CHAT_19040\x10\xd3\x01\x12\x15\n" + + "\x10MODEL_CHAT_19820\x10\xe5\x01\x12\x15\n" + + "\x10MODEL_CHAT_19821\x10\xe6\x01\x12\x1c\n" + + "\x17MODEL_CHAT_19821_CRUSOE\x10\xf4\x01\x12\x15\n" + + "\x10MODEL_CHAT_23310\x10\x8d\x02\x12\x15\n" + + "\x10MODEL_CHAT_28580\x10\xca\x02\x12\x15\n" + + "\x10MODEL_CHAT_28581\x10\xcb\x02\x12\x15\n" + + "\x10MODEL_CHAT_28582\x10\xcc\x02\x12\x15\n" + + "\x10MODEL_CHAT_28583\x10\xcd\x02\x12\x15\n" + + "\x10MODEL_CHAT_28584\x10\xce\x02\x12\x15\n" + + "\x10MODEL_CHAT_19822\x10\xe7\x01\x12\x15\n" + + "\x10MODEL_CHAT_22798\x10\xff\x01\x12\x15\n" + + "\x10MODEL_CHAT_22799\x10\x80\x02\x12\x15\n" + + "\x10MODEL_CHAT_22800\x10\x81\x02\x12\x15\n" + + "\x10MODEL_CHAT_23151\x10\x8b\x02\x12\x15\n" + + "\x10MODEL_CHAT_23152\x10\x8c\x02\x12\x18\n" + + "\x13MODEL_TAB_ARMADILLO\x10\xf4\x03\x12\x15\n" + + "\x10MODEL_TAB_BASE_1\x10\xf5\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_1\x10\xf6\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_2\x10\xf7\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_3\x10\xf8\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_4\x10\xf9\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_5\x10\xfa\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_6\x10\xfb\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_7\x10\xfc\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_8\x10\xfd\x03\x12\x1d\n" + + "\x18MODEL_TAB_EXPERIMENTAL_9\x10\xfe\x03\x12\x1e\n" + + "\x19MODEL_TAB_EXPERIMENTAL_10\x10\xff\x03\x12\x18\n" + + "\x13MODEL_CASCADE_22893\x10\x8e\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20064\x10\xe1\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20065\x10\xec\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20066\x10\xed\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20067\x10\xee\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20068\x10\xef\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20069\x10\xf0\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20070\x10\xfa\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20071\x10\xfb\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20072\x10\xfc\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20073\x10\xfd\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20074\x10\xfe\x01\x12\x18\n" + + "\x13MODEL_CASCADE_20075\x10\xb3\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20076\x10\xb4\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20077\x10\xb5\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20078\x10\xb6\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20079\x10\xb7\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20080\x10\xa9\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20081\x10\xaa\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20082\x10\xab\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20083\x10\xac\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20084\x10\xad\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20085\x10\xae\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20086\x10\xaf\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20087\x10\xb0\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20088\x10\xb1\x02\x12\x18\n" + + "\x13MODEL_CASCADE_20089\x10\xb2\x02\x12\x1f\n" + + "\x1aMODEL_DEEPSEEK_V3_INTERNAL\x10\xf7\x01\x12$\n" + + "\x1fMODEL_DEEPSEEK_V3_0324_INTERNAL\x10\xf8\x01\x12\x1f\n" + + "\x1aMODEL_DEEPSEEK_R1_INTERNAL\x10\xf9\x01\x12&\n" + + "!MODEL_ANTHROPIC_WINDSURF_RESEARCH\x10\xf1\x01\x123\n" + + "*MODEL_ANTHROPIC_WINDSURF_RESEARCH_THINKING\x10\xf2\x01\x1a\x02\b\x01\x12\x15\n" + + "\x11MODEL_DRAFT_11408\x10A\x12\x1a\n" + + "\x16MODEL_DRAFT_CHAT_11883\x10C\x12\x1a\n" + + "\x16MODEL_DRAFT_CHAT_12196\x10H\x12\x1a\n" + + "\x16MODEL_DRAFT_CHAT_12413\x10I\x12\x1a\n" + + "\x16MODEL_DRAFT_CHAT_13175\x10h\x12\x1b\n" + + "\x16MODEL_DRAFT_CHAT_19823\x10\xe8\x01\x12\x1b\n" + + "\x16MODEL_DRAFT_CHAT_20707\x10\xf3\x01\x12\x1b\n" + + "\x16MODEL_DRAFT_CHAT_22801\x10\x82\x02\x12\x1b\n" + + "\x16MODEL_DRAFT_CHAT_23508\x10\x91\x02\x12\x1e\n" + + "\x19MODEL_DRAFT_CASCADE_23672\x10\x92\x02\x12\x18\n" + + "\x14MODEL_CHAT_3_5_TURBO\x10\x1c\x12\x14\n" + + "\x10MODEL_CHAT_GPT_4\x10\x1e\x12!\n" + + "\x1dMODEL_CHAT_GPT_4_1106_PREVIEW\x10%\x12#\n" + + "\x1fMODEL_TEXT_EMBEDDING_OPENAI_ADA\x10[\x12(\n" + + "#MODEL_TEXT_EMBEDDING_OPENAI_3_SMALL\x10\xa3\x01\x12(\n" + + "#MODEL_TEXT_EMBEDDING_OPENAI_3_LARGE\x10\xa4\x01\x12 \n" + + "\x1cMODEL_CHAT_GPT_4O_2024_05_13\x10G\x12 \n" + + "\x1cMODEL_CHAT_GPT_4O_2024_08_06\x10m\x12%\n" + + "!MODEL_CHAT_GPT_4O_MINI_2024_07_18\x10q\x12\"\n" + + "\x1dMODEL_CHAT_GPT_4_1_2025_04_14\x10\x83\x02\x12'\n" + + "\"MODEL_CHAT_GPT_4_1_MINI_2025_04_14\x10\x84\x02\x12'\n" + + "\"MODEL_CHAT_GPT_4_1_NANO_2025_04_14\x10\x85\x02\x12\x1d\n" + + "\x15MODEL_CHAT_O1_PREVIEW\x10u\x1a\x02\b\x01\x12\x1a\n" + + "\x12MODEL_CHAT_O1_MINI\x10v\x1a\x02\b\x01\x12\x16\n" + + "\rMODEL_CHAT_O1\x10\xaa\x01\x1a\x02\b\x01\x12\x17\n" + + "\x12MODEL_CHAT_O3_MINI\x10\xcf\x01\x12\x1b\n" + + "\x16MODEL_CHAT_O3_MINI_LOW\x10\xd5\x01\x12\x1c\n" + + "\x17MODEL_CHAT_O3_MINI_HIGH\x10\xd6\x01\x12\x12\n" + + "\rMODEL_CHAT_O3\x10\xda\x01\x12\x16\n" + + "\x11MODEL_CHAT_O3_LOW\x10\x86\x02\x12\x17\n" + + "\x12MODEL_CHAT_O3_HIGH\x10\x87\x02\x12\x17\n" + + "\x12MODEL_CHAT_O4_MINI\x10\x88\x02\x12\x1b\n" + + "\x16MODEL_CHAT_O4_MINI_LOW\x10\x89\x02\x12\x1c\n" + + "\x17MODEL_CHAT_O4_MINI_HIGH\x10\x8a\x02\x12\x1b\n" + + "\x12MODEL_CHAT_GPT_4_5\x10\xe4\x01\x1a\x02\b\x01\x12\x1c\n" + + "\x17MODEL_CODEX_MINI_LATEST\x10\x9f\x02\x12 \n" + + "\x1bMODEL_CODEX_MINI_LATEST_LOW\x10\xa0\x02\x12!\n" + + "\x1cMODEL_CODEX_MINI_LATEST_HIGH\x10\xa1\x02\x12\x1c\n" + + "\x17MODEL_O3_PRO_2025_06_10\x10\xa6\x02\x12 \n" + + "\x1bMODEL_O3_PRO_2025_06_10_LOW\x10\xa7\x02\x12!\n" + + "\x1cMODEL_O3_PRO_2025_06_10_HIGH\x10\xa8\x02\x12\x17\n" + + "\x12MODEL_GPT_OSS_120B\x10\xc6\x02\x12\x15\n" + + "\x10MODEL_GPT_5_NANO\x10\xd1\x02\x12\x1d\n" + + "\x18MODEL_CHAT_GPT_5_MINIMAL\x10\xd2\x02\x12\x19\n" + + "\x14MODEL_CHAT_GPT_5_LOW\x10\xd3\x02\x12\x15\n" + + "\x10MODEL_CHAT_GPT_5\x10\xd4\x02\x12\x1a\n" + + "\x15MODEL_CHAT_GPT_5_HIGH\x10\xd5\x02\x12\x1b\n" + + "\x16MODEL_CHAT_GPT_5_CODEX\x10\xda\x02\x12!\n" + + "\x1cMODEL_GPT_5_1_CODEX_MINI_LOW\x10\x81\x03\x12$\n" + + "\x1fMODEL_GPT_5_1_CODEX_MINI_MEDIUM\x10\x82\x03\x12\"\n" + + "\x1dMODEL_GPT_5_1_CODEX_MINI_HIGH\x10\x83\x03\x12\x1c\n" + + "\x17MODEL_GPT_5_1_CODEX_LOW\x10\x84\x03\x12\x1f\n" + + "\x1aMODEL_GPT_5_1_CODEX_MEDIUM\x10\x85\x03\x12\x1d\n" + + "\x18MODEL_GPT_5_1_CODEX_HIGH\x10\x86\x03\x12 \n" + + "\x1bMODEL_GPT_5_1_CODEX_MAX_LOW\x10\x8b\x03\x12#\n" + + "\x1eMODEL_GPT_5_1_CODEX_MAX_MEDIUM\x10\x8c\x03\x12!\n" + + "\x1cMODEL_GPT_5_1_CODEX_MAX_HIGH\x10\x8d\x03\x12#\n" + + "\x1bMODEL_GOOGLE_GEMINI_1_0_PRO\x10=\x1a\x02\b\x01\x12#\n" + + "\x1bMODEL_GOOGLE_GEMINI_1_5_PRO\x10>\x1a\x02\b\x01\x12%\n" + + "\x1cMODEL_GOOGLE_GEMINI_EXP_1206\x10\xb7\x01\x1a\x02\b\x01\x12\"\n" + + "\x1dMODEL_GOOGLE_GEMINI_2_0_FLASH\x10\xb8\x01\x12 \n" + + "\x1bMODEL_GOOGLE_GEMINI_2_5_PRO\x10\xf6\x01\x124\n" + + "+MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_04_17\x10\x90\x02\x1a\x02\b\x01\x124\n" + + "+MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20\x10\x93\x02\x1a\x02\b\x01\x12=\n" + + "4MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20_THINKING\x10\x94\x02\x1a\x02\b\x01\x12\"\n" + + "\x1dMODEL_GOOGLE_GEMINI_2_5_FLASH\x10\xb8\x02\x12+\n" + + "&MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING\x10\xb9\x02\x12'\n" + + "\"MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE\x10\xd7\x02\x12$\n" + + "\x1fMODEL_GOOGLE_GEMINI_3_0_PRO_LOW\x10\xfa\x02\x12%\n" + + " MODEL_GOOGLE_GEMINI_3_0_PRO_HIGH\x10\xfb\x02\x12,\n" + + "#MODEL_GOOGLE_GEMINI_3_0_PRO_MINIMAL\x10\x9b\x03\x1a\x02\b\x01\x12+\n" + + "\"MODEL_GOOGLE_GEMINI_3_0_PRO_MEDIUM\x10\x9c\x03\x1a\x02\b\x01\x12*\n" + + "%MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL\x10\x9d\x03\x12&\n" + + "!MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW\x10\x9e\x03\x12)\n" + + "$MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM\x10\x9f\x03\x12'\n" + + "\"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH\x10\xa0\x03\x12 \n" + + "\x1cMODEL_CLAUDE_3_OPUS_20240229\x10?\x12\"\n" + + "\x1eMODEL_CLAUDE_3_SONNET_20240229\x10@\x12\"\n" + + "\x1dMODEL_CLAUDE_3_HAIKU_20240307\x10\xac\x01\x12$\n" + + "\x1fMODEL_CLAUDE_3_5_HAIKU_20241022\x10\xab\x01\x12$\n" + + " MODEL_CLAUDE_3_5_SONNET_20240620\x10P\x12%\n" + + " MODEL_CLAUDE_3_5_SONNET_20241022\x10\xa6\x01\x12%\n" + + " MODEL_CLAUDE_3_7_SONNET_20250219\x10\xe2\x01\x12.\n" + + ")MODEL_CLAUDE_3_7_SONNET_20250219_THINKING\x10\xe3\x01\x12%\n" + + "\x1cMODEL_CLAUDE_3_5_SONNET_BYOK\x10\x9c\x02\x1a\x02\b\x01\x12%\n" + + "\x1cMODEL_CLAUDE_3_7_SONNET_BYOK\x10\x9d\x02\x1a\x02\b\x01\x121\n" + + "(MODEL_CLAUDE_3_7_SONNET_OPEN_ROUTER_BYOK\x10\xbf\x02\x1a\x02\b\x01\x12.\n" + + "%MODEL_CLAUDE_3_7_SONNET_THINKING_BYOK\x10\x9e\x02\x1a\x02\b\x01\x12:\n" + + "1MODEL_CLAUDE_3_7_SONNET_THINKING_OPEN_ROUTER_BYOK\x10\xc0\x02\x1a\x02\b\x01\x12!\n" + + "\x18MODEL_CLAUDE_4_OPUS_BYOK\x10\x95\x02\x1a\x02\b\x01\x12*\n" + + "!MODEL_CLAUDE_4_OPUS_THINKING_BYOK\x10\x96\x02\x1a\x02\b\x01\x12\x18\n" + + "\x13MODEL_CLAUDE_4_OPUS\x10\xa2\x02\x12!\n" + + "\x1cMODEL_CLAUDE_4_OPUS_THINKING\x10\xa3\x02\x12#\n" + + "\x1aMODEL_CLAUDE_4_SONNET_BYOK\x10\x97\x02\x1a\x02\b\x01\x12/\n" + + "&MODEL_CLAUDE_4_SONNET_OPEN_ROUTER_BYOK\x10\xc1\x02\x1a\x02\b\x01\x12,\n" + + "#MODEL_CLAUDE_4_SONNET_THINKING_BYOK\x10\x98\x02\x1a\x02\b\x01\x128\n" + + "/MODEL_CLAUDE_4_SONNET_THINKING_OPEN_ROUTER_BYOK\x10\xc2\x02\x1a\x02\b\x01\x12\x1a\n" + + "\x15MODEL_CLAUDE_4_SONNET\x10\x99\x02\x12#\n" + + "\x1eMODEL_CLAUDE_4_SONNET_THINKING\x10\x9a\x02\x12\x1a\n" + + "\x15MODEL_CLAUDE_4_1_OPUS\x10\xc8\x02\x12#\n" + + "\x1eMODEL_CLAUDE_4_1_OPUS_THINKING\x10\xc9\x02\x12\x1c\n" + + "\x17MODEL_CLAUDE_4_5_SONNET\x10\xe1\x02\x12%\n" + + " MODEL_CLAUDE_4_5_SONNET_THINKING\x10\xe2\x02\x12\x1f\n" + + "\x1aMODEL_CLAUDE_4_5_SONNET_1M\x10\xf2\x02\x12(\n" + + "#MODEL_CLAUDE_4_5_SONNET_THINKING_1M\x10\xf3\x02\x12\x1a\n" + + "\x15MODEL_CLAUDE_4_5_OPUS\x10\x87\x03\x12#\n" + + "\x1eMODEL_CLAUDE_4_5_OPUS_THINKING\x10\x88\x03\x12)\n" + + " MODEL_CLAUDE_4_SONNET_DATABRICKS\x10\xa4\x02\x1a\x02\b\x01\x122\n" + + ")MODEL_CLAUDE_4_SONNET_THINKING_DATABRICKS\x10\xa5\x02\x1a\x02\b\x01\x12/\n" + + "'MODEL_TOGETHERAI_TEXT_EMBEDDING_M2_BERT\x10Q\x1a\x02\b\x01\x12/\n" + + "&MODEL_TOGETHERAI_LLAMA_3_1_8B_INSTRUCT\x10\xa5\x01\x1a\x02\b\x01\x121\n" + + ")MODEL_HUGGING_FACE_TEXT_EMBEDDING_M2_BERT\x10R\x1a\x02\b\x01\x122\n" + + "*MODEL_HUGGING_FACE_TEXT_EMBEDDING_UAE_CODE\x10S\x1a\x02\b\x01\x12-\n" + + "%MODEL_HUGGING_FACE_TEXT_EMBEDDING_BGE\x10T\x1a\x02\b\x01\x12/\n" + + "'MODEL_HUGGING_FACE_TEXT_EMBEDDING_BLADE\x10U\x1a\x02\b\x01\x126\n" + + ".MODEL_HUGGING_FACE_TEXT_EMBEDDING_ARCTIC_LARGE\x10V\x1a\x02\b\x01\x121\n" + + ")MODEL_HUGGING_FACE_TEXT_EMBEDDING_E5_BASE\x10W\x1a\x02\b\x01\x12/\n" + + "'MODEL_HUGGING_FACE_TEXT_EMBEDDING_MXBAI\x10X\x1a\x02\b\x01\x12\x1f\n" + + "\x1bMODEL_LLAMA_3_1_8B_INSTRUCT\x10j\x12 \n" + + "\x1cMODEL_LLAMA_3_1_70B_INSTRUCT\x10k\x12!\n" + + "\x1dMODEL_LLAMA_3_1_405B_INSTRUCT\x10i\x12!\n" + + "\x1cMODEL_LLAMA_3_3_70B_INSTRUCT\x10\xd0\x01\x12$\n" + + "\x1fMODEL_LLAMA_3_3_70B_INSTRUCT_R1\x10\xd1\x01\x12-\n" + + ")MODEL_LLAMA_3_1_70B_INSTRUCT_LONG_CONTEXT\x10t\x12$\n" + + "\x1bMODEL_LLAMA_3_1_8B_HERMES_3\x10\xb0\x01\x1a\x02\b\x01\x12%\n" + + "\x1cMODEL_LLAMA_3_1_70B_HERMES_3\x10\xb1\x01\x1a\x02\b\x01\x12\x1f\n" + + "\x1aMODEL_QWEN_2_5_7B_INSTRUCT\x10\xb2\x01\x12 \n" + + "\x1bMODEL_QWEN_2_5_32B_INSTRUCT\x10\xb3\x01\x12 \n" + + "\x1bMODEL_QWEN_2_5_72B_INSTRUCT\x10\xb4\x01\x12#\n" + + "\x1eMODEL_QWEN_2_5_32B_INSTRUCT_R1\x10\xe0\x01\x12\x1f\n" + + "\x1aMODEL_QWEN_3_235B_INSTRUCT\x10\xc4\x02\x12%\n" + + " MODEL_QWEN_3_CODER_480B_INSTRUCT\x10\xc5\x02\x12*\n" + + "%MODEL_QWEN_3_CODER_480B_INSTRUCT_FAST\x10\xc7\x02\x12\x12\n" + + "\rMODEL_GLM_4_5\x10\xd6\x02\x12\x17\n" + + "\x12MODEL_GLM_4_5_FAST\x10\xe0\x02\x12\x12\n" + + "\rMODEL_GLM_4_6\x10\xe4\x02\x12\x17\n" + + "\x12MODEL_GLM_4_6_FAST\x10\xe5\x02\x12\x12\n" + + "\rMODEL_GLM_4_7\x10\xa1\x03\x12\x17\n" + + "\x12MODEL_GLM_4_7_FAST\x10\xa2\x03\x12\x12\n" + + "\rMODEL_SWE_1_5\x10\xe7\x02\x12\x1b\n" + + "\x16MODEL_SWE_1_5_REDIRECT\x10\xe9\x02\x12\x1b\n" + + "\x16MODEL_SWE_1_5_THINKING\x10\xf1\x02\x12\x17\n" + + "\x12MODEL_SWE_1_5_SLOW\x10\xf9\x02\x12\x12\n" + + "\rMODEL_SWE_1_6\x10\xa4\x03\x12\x17\n" + + "\x12MODEL_SWE_1_6_FAST\x10\xa5\x03\x12\x18\n" + + "\x13MODEL_CODEMAP_SMALL\x10\xe6\x02\x12\x19\n" + + "\x14MODEL_CODEMAP_MEDIUM\x10\xe8\x02\x12\x18\n" + + "\x13MODEL_CODEMAP_SMART\x10\xea\x02\x12$\n" + + "\x1fMODEL_COGNITION_INSTANT_CONTEXT\x10\xe3\x02\x12$\n" + + "\x1fMODEL_LLAMA_FT_DEEPWIKI_ARTICLE\x10\xcf\x02\x12\"\n" + + "\x1dMODEL_LLAMA_FT_DEEPWIKI_HOVER\x10\xd0\x02\x12\x1d\n" + + "\x18MODEL_LLAMA_FT_LIFEGUARD\x10\x8e\x03\x12\x1e\n" + + "\x19MODEL_COGNITION_LIFEGUARD\x10\x9a\x03\x12%\n" + + "\x1dMODEL_NOMIC_TEXT_EMBEDDING_V1\x10Y\x1a\x02\b\x01\x12'\n" + + "\x1fMODEL_NOMIC_TEXT_EMBEDDING_V1_5\x10Z\x1a\x02\b\x01\x12\x14\n" + + "\x10MODEL_MISTRAL_7B\x10M\x12!\n" + + "\x1dMODEL_SALESFORCE_EMBEDDING_2R\x10c\x12\x16\n" + + "\x11MODEL_CUSTOM_VLLM\x10\xb6\x01\x12\x18\n" + + "\x10MODEL_TEI_BGE_M3\x10\\\x1a\x02\b\x01\x12%\n" + + "\x1dMODEL_TEI_NOMIC_EMBED_TEXT_V1\x10]\x1a\x02\b\x01\x12,\n" + + "$MODEL_TEI_INTFLOAT_E5_LARGE_INSTRUCT\x10^\x1a\x02\b\x01\x12*\n" + + "\"MODEL_TEI_SNOWFLAKE_ARCTIC_EMBED_L\x10_\x1a\x02\b\x01\x12#\n" + + "\x1bMODEL_TEI_UAE_CODE_LARGE_V1\x10`\x1a\x02\b\x01\x12\x17\n" + + "\x0fMODEL_TEI_B1ADE\x10a\x1a\x02\b\x01\x12(\n" + + " MODEL_TEI_WHEREISAI_UAE_LARGE_V1\x10b\x1a\x02\b\x01\x12-\n" + + "%MODEL_TEI_WHEREISAI_UAE_CODE_LARGE_V1\x10d\x1a\x02\b\x01\x12 \n" + + "\x17MODEL_OPENAI_COMPATIBLE\x10\xc8\x01\x1a\x02\b\x01\x12#\n" + + "\x1aMODEL_ANTHROPIC_COMPATIBLE\x10\xc9\x01\x1a\x02\b\x01\x12 \n" + + "\x17MODEL_VERTEX_COMPATIBLE\x10\xca\x01\x1a\x02\b\x01\x12!\n" + + "\x18MODEL_BEDROCK_COMPATIBLE\x10\xcb\x01\x1a\x02\b\x01\x12\x1f\n" + + "\x16MODEL_AZURE_COMPATIBLE\x10\xcc\x01\x1a\x02\b\x01\x12\x16\n" + + "\x11MODEL_DEEPSEEK_V3\x10\xcd\x01\x12\x16\n" + + "\x11MODEL_DEEPSEEK_R1\x10\xce\x01\x12\x1b\n" + + "\x16MODEL_DEEPSEEK_R1_SLOW\x10\xd7\x01\x12\x1b\n" + + "\x16MODEL_DEEPSEEK_R1_FAST\x10\xd8\x01\x12\x12\n" + + "\rMODEL_KIMI_K2\x10\xc3\x02\x12\x15\n" + + "\x10MODEL_MINIMAX_M2\x10\xf0\x02\x12\x17\n" + + "\x12MODEL_MINIMAX_M2_1\x10\xa3\x03\x12\x18\n" + + "\x13MODEL_DEEPSEEK_V3_2\x10\x99\x03\x12\x1b\n" + + "\x16MODEL_KIMI_K2_THINKING\x10\x8a\x03\x12\x1d\n" + + "\x18MODEL_CUSTOM_OPEN_ROUTER\x10\xb9\x01\x12\x15\n" + + "\x10MODEL_XAI_GROK_2\x10\xd4\x01\x12\x15\n" + + "\x10MODEL_XAI_GROK_3\x10\xd9\x01\x12$\n" + + "\x1fMODEL_XAI_GROK_3_MINI_REASONING\x10\xea\x01\x12\x1d\n" + + "\x18MODEL_XAI_GROK_CODE_FAST\x10\xd9\x02\x12\x14\n" + + "\x0fMODEL_PRIVATE_1\x10\xdb\x01\x12\x14\n" + + "\x0fMODEL_PRIVATE_2\x10\xdc\x01\x12\x14\n" + + "\x0fMODEL_PRIVATE_3\x10\xdd\x01\x12\x14\n" + + "\x0fMODEL_PRIVATE_4\x10\xde\x01\x12\x14\n" + + "\x0fMODEL_PRIVATE_5\x10\xdf\x01\x12\x14\n" + + "\x0fMODEL_PRIVATE_6\x10\xba\x02\x12\x14\n" + + "\x0fMODEL_PRIVATE_7\x10\xbb\x02\x12\x14\n" + + "\x0fMODEL_PRIVATE_8\x10\xbc\x02\x12\x14\n" + + "\x0fMODEL_PRIVATE_9\x10\xbd\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_10\x10\xbe\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_11\x10\xdb\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_12\x10\xdc\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_13\x10\xdd\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_14\x10\xde\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_15\x10\xdf\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_16\x10\xeb\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_17\x10\xec\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_18\x10\xed\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_19\x10\xee\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_20\x10\xef\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_21\x10\xf4\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_22\x10\xf5\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_23\x10\xf6\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_24\x10\xf7\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_25\x10\xf8\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_26\x10\xfc\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_27\x10\xfd\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_28\x10\xfe\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_29\x10\xff\x02\x12\x15\n" + + "\x10MODEL_PRIVATE_30\x10\x80\x03\x12\x17\n" + + "\x12MODEL_GPT_5_2_NONE\x10\x8f\x03\x12\x16\n" + + "\x11MODEL_GPT_5_2_LOW\x10\x90\x03\x12\x19\n" + + "\x14MODEL_GPT_5_2_MEDIUM\x10\x91\x03\x12\x17\n" + + "\x12MODEL_GPT_5_2_HIGH\x10\x92\x03\x12\x18\n" + + "\x13MODEL_GPT_5_2_XHIGH\x10\x93\x03\x12 \n" + + "\x1bMODEL_GPT_5_2_NONE_PRIORITY\x10\x94\x03\x12\x1f\n" + + "\x1aMODEL_GPT_5_2_LOW_PRIORITY\x10\x95\x03\x12\"\n" + + "\x1dMODEL_GPT_5_2_MEDIUM_PRIORITY\x10\x96\x03\x12 \n" + + "\x1bMODEL_GPT_5_2_HIGH_PRIORITY\x10\x97\x03\x12!\n" + + "\x1cMODEL_GPT_5_2_XHIGH_PRIORITY\x10\x98\x03\x12\x1c\n" + + "\x17MODEL_GPT_5_2_CODEX_LOW\x10\xa6\x03\x12\x1f\n" + + "\x1aMODEL_GPT_5_2_CODEX_MEDIUM\x10\xa7\x03\x12\x1d\n" + + "\x18MODEL_GPT_5_2_CODEX_HIGH\x10\xa8\x03\x12\x1e\n" + + "\x19MODEL_GPT_5_2_CODEX_XHIGH\x10\xa9\x03\x12%\n" + + " MODEL_GPT_5_2_CODEX_LOW_PRIORITY\x10\xaa\x03\x12(\n" + + "#MODEL_GPT_5_2_CODEX_MEDIUM_PRIORITY\x10\xab\x03\x12&\n" + + "!MODEL_GPT_5_2_CODEX_HIGH_PRIORITY\x10\xac\x03\x12'\n" + + "\"MODEL_GPT_5_2_CODEX_XHIGH_PRIORITY\x10\xad\x03\x12\x19\n" + + "\x14MODEL_SGLANG_ROLLOUT\x10\xd8\x04\"\x06\b\x80\x04\x10\xd7\x04\"\x04\b\x01\x10\x01\"\x04\b\x02\x10\x02\"\x04\b\x03\x10\x03\"\x04\b\x04\x10\x04\"\x04\b\x05\x10\x05\"\x04\b\x06\x10\x06\"\x04\b\a\x10\a\"\x04\b\b\x10\b\"\x04\b\t\x10\t\"\x04\b\n" + + "\x10\n" + + "\"\x04\b\v\x10\v\"\x04\b\f\x10\f\"\x04\b\r\x10\r\"\x04\b\x0f\x10\x0f\"\x04\b\x10\x10\x10\"\x04\b\x11\x10\x11\"\x04\b\x12\x10\x12\"\x04\b\x13\x10\x13\"\x04\b\x15\x10\x15\"\x04\b\x16\x10\x16\"\x04\b\x17\x10\x17\"\x04\b\x18\x10\x18\"\x04\b\x19\x10\x19\"\x04\b\x1a\x10\x1a\"\x04\b\x1b\x10\x1b\"\x04\b\x1d\x10\x1d\"\x04\b\x1f\x10\x1f\"\x04\b \x10 \"\x04\b\"\x10\"\"\x04\b#\x10#\"\x04\b$\x10$\"\x04\b&\x10&\"\x04\b'\x10'\"\x04\b(\x10(\"\x04\b+\x10+\"\x04\b,\x10,\"\x04\b.\x10.\"\x04\b/\x10/\"\x04\b1\x101\"\x04\b2\x102\"\x04\b3\x103\"\x04\b4\x104\"\x04\b5\x105\"\x04\b6\x106\"\x04\b7\x107\"\x04\b8\x108\"\x04\b;\x10;\"\x04\b<\x10<\"\x04\bD\x10D\"\x04\bK\x10K\"\x06\b\xd8\x02\x10\xd8\x02\"\x06\b\x89\x03\x10\x89\x03\"\x06\b\xa0\x06\x10\xa0\x06*\x10MODEL_INIT_MULTI*\n" + + "MODEL_3356*\x0fMODEL_INIT_MONO*\n" + + "MODEL_3554*\rMODEL_3554_DC*\n" + + "MODEL_3669*\n" + + "MODEL_4300*\n" + + "MODEL_4531*\n" + + "MODEL_5349*\n" + + "MODEL_5519*\n" + + "MODEL_5305*\n" + + "MODEL_4861*\n" + + "MODEL_5476*\n" + + "MODEL_5202*\n" + + "MODEL_CHAT*\n" + + "MODEL_6569*\n" + + "MODEL_7747*\n" + + "MODEL_7725*\x0fMODEL_CHAT_7829*\x10MODEL_QUERY_9210*\n" + + "MODEL_6282*\n" + + "MODEL_6592*\n" + + "MODEL_7158*\x10MODEL_QUERY_9491*\x10MODEL_CHAT_10777*\n" + + "MODEL_7468*\n" + + "MODEL_8276*\n" + + "MODEL_8523*\n" + + "MODEL_8615*\n" + + "MODEL_8684*\n" + + "MODEL_9133*\n" + + "MODEL_9589*\x0fMODEL_CHAT_6612*\x0fMODEL_CHAT_7066*\x0fMODEL_CHAT_7984*\x10MODEL_CHAT_10202*\n" + + "MODEL_8251*\vMODEL_10880*\vMODEL_11206*\x11MODEL_REWARD_9236*\x0fMODEL_CHAT_9439*\x0fMODEL_CHAT_9453*\x10MODEL_CHAT_10546*\x10MODEL_CHAT_10821*\x10MODEL_CHAT_12042*\x1dMODEL_CHAT_GPT_3_5_TURBO_1106*!MODEL_CHAT_GPT_3_5_TURBO_16K_0613*\x1dMODEL_CHAT_GPT_3_5_TURBO_0125*!MODEL_CHAT_GPT_4_TURBO_2024_04_09*\vMODEL_12471*\x10MODEL_CHAT_11012*(MODEL_LLAMA_3_1_70B_INSTRUCT_32K_CONTEXT*\x1dMODEL_ROUTING_GROUP_DEEP_WIKI*\x11MODEL_CLAUDE_CODE*\xb9\x03\n" + + "\n" + + "StopReason\x12\x1b\n" + + "\x17STOP_REASON_UNSPECIFIED\x10\x00\x12\x1a\n" + + "\x16STOP_REASON_INCOMPLETE\x10\x01\x12\x1c\n" + + "\x18STOP_REASON_STOP_PATTERN\x10\x02\x12\x1a\n" + + "\x16STOP_REASON_MAX_TOKENS\x10\x03\x12\x1c\n" + + "\x18STOP_REASON_MIN_LOG_PROB\x10\x04\x12\x1c\n" + + "\x18STOP_REASON_MAX_NEWLINES\x10\x05\x12\x1a\n" + + "\x16STOP_REASON_EXIT_SCOPE\x10\x06\x12'\n" + + "#STOP_REASON_NONFINITE_LOGIT_OR_PROB\x10\a\x12)\n" + + "%STOP_REASON_FIRST_NON_WHITESPACE_LINE\x10\b\x12\x17\n" + + "\x13STOP_REASON_PARTIAL\x10\t\x12\x1d\n" + + "\x19STOP_REASON_FUNCTION_CALL\x10\n" + + "\x12\x1e\n" + + "\x1aSTOP_REASON_CONTENT_FILTER\x10\v\x12\x1d\n" + + "\x19STOP_REASON_NON_INSERTION\x10\f\x12\x15\n" + + "\x11STOP_REASON_ERROR\x10\r*\x80\x02\n" + + "\n" + + "AuthSource\x12\x17\n" + + "\x13AUTH_SOURCE_CODEIUM\x10\x00\x12\x18\n" + + "\x14AUTH_SOURCE_DEEPNOTE\x10\x01\x12\x1f\n" + + "\x17AUTH_SOURCE_CODESANDBOX\x10\x02\x1a\x02\b\x01\x12\x1a\n" + + "\x16AUTH_SOURCE_STACKBLITZ\x10\x03\x12\x17\n" + + "\x13AUTH_SOURCE_VALTOWN\x10\x04\x12\x13\n" + + "\x0fAUTH_SOURCE_HEX\x10\x05\x12\x1a\n" + + "\x12AUTH_SOURCE_ZAPIER\x10\x06\x1a\x02\b\x01\x12\x1b\n" + + "\x17AUTH_SOURCE_SUPERBLOCKS\x10\a\x12\x1b\n" + + "\x17AUTH_SOURCE_EMBARCADERO\x10\b*\xc4\x0f\n" + + "\bLanguage\x12\x18\n" + + "\x14LANGUAGE_UNSPECIFIED\x10\x00\x12\x0e\n" + + "\n" + + "LANGUAGE_C\x10\x01\x12\x14\n" + + "\x10LANGUAGE_CLOJURE\x10\x02\x12\x19\n" + + "\x15LANGUAGE_COFFEESCRIPT\x10\x03\x12\x10\n" + + "\fLANGUAGE_CPP\x10\x04\x12\x13\n" + + "\x0fLANGUAGE_CSHARP\x10\x05\x12\x10\n" + + "\fLANGUAGE_CSS\x10\x06\x12\x14\n" + + "\x10LANGUAGE_CUDACPP\x10\a\x12\x17\n" + + "\x13LANGUAGE_DOCKERFILE\x10\b\x12\x0f\n" + + "\vLANGUAGE_GO\x10\t\x12\x13\n" + + "\x0fLANGUAGE_GROOVY\x10\n" + + "\x12\x17\n" + + "\x13LANGUAGE_HANDLEBARS\x10\v\x12\x14\n" + + "\x10LANGUAGE_HASKELL\x10\f\x12\x10\n" + + "\fLANGUAGE_HCL\x10\r\x12\x11\n" + + "\rLANGUAGE_HTML\x10\x0e\x12\x10\n" + + "\fLANGUAGE_INI\x10\x0f\x12\x11\n" + + "\rLANGUAGE_JAVA\x10\x10\x12\x17\n" + + "\x13LANGUAGE_JAVASCRIPT\x10\x11\x12\x11\n" + + "\rLANGUAGE_JSON\x10\x12\x12\x12\n" + + "\x0eLANGUAGE_JULIA\x10\x13\x12\x13\n" + + "\x0fLANGUAGE_KOTLIN\x10\x14\x12\x12\n" + + "\x0eLANGUAGE_LATEX\x10\x15\x12\x11\n" + + "\rLANGUAGE_LESS\x10\x16\x12\x10\n" + + "\fLANGUAGE_LUA\x10\x17\x12\x15\n" + + "\x11LANGUAGE_MAKEFILE\x10\x18\x12\x15\n" + + "\x11LANGUAGE_MARKDOWN\x10\x19\x12\x17\n" + + "\x13LANGUAGE_OBJECTIVEC\x10\x1a\x12\x19\n" + + "\x15LANGUAGE_OBJECTIVECPP\x10\x1b\x12\x11\n" + + "\rLANGUAGE_PERL\x10\x1c\x12\x10\n" + + "\fLANGUAGE_PHP\x10\x1d\x12\x16\n" + + "\x12LANGUAGE_PLAINTEXT\x10\x1e\x12\x15\n" + + "\x11LANGUAGE_PROTOBUF\x10\x1f\x12\x12\n" + + "\x0eLANGUAGE_PBTXT\x10 \x12\x13\n" + + "\x0fLANGUAGE_PYTHON\x10!\x12\x0e\n" + + "\n" + + "LANGUAGE_R\x10\"\x12\x11\n" + + "\rLANGUAGE_RUBY\x10#\x12\x11\n" + + "\rLANGUAGE_RUST\x10$\x12\x11\n" + + "\rLANGUAGE_SASS\x10%\x12\x12\n" + + "\x0eLANGUAGE_SCALA\x10&\x12\x11\n" + + "\rLANGUAGE_SCSS\x10'\x12\x12\n" + + "\x0eLANGUAGE_SHELL\x10(\x12\x10\n" + + "\fLANGUAGE_SQL\x10)\x12\x15\n" + + "\x11LANGUAGE_STARLARK\x10*\x12\x12\n" + + "\x0eLANGUAGE_SWIFT\x10+\x12\x10\n" + + "\fLANGUAGE_TSX\x10,\x12\x17\n" + + "\x13LANGUAGE_TYPESCRIPT\x10-\x12\x18\n" + + "\x14LANGUAGE_VISUALBASIC\x10.\x12\x10\n" + + "\fLANGUAGE_VUE\x10/\x12\x10\n" + + "\fLANGUAGE_XML\x100\x12\x10\n" + + "\fLANGUAGE_XSL\x101\x12\x11\n" + + "\rLANGUAGE_YAML\x102\x12\x13\n" + + "\x0fLANGUAGE_SVELTE\x103\x12\x11\n" + + "\rLANGUAGE_TOML\x104\x12\x11\n" + + "\rLANGUAGE_DART\x105\x12\x10\n" + + "\fLANGUAGE_RST\x106\x12\x12\n" + + "\x0eLANGUAGE_OCAML\x107\x12\x12\n" + + "\x0eLANGUAGE_CMAKE\x108\x12\x13\n" + + "\x0fLANGUAGE_PASCAL\x109\x12\x13\n" + + "\x0fLANGUAGE_ELIXIR\x10:\x12\x13\n" + + "\x0fLANGUAGE_FSHARP\x10;\x12\x11\n" + + "\rLANGUAGE_LISP\x10<\x12\x13\n" + + "\x0fLANGUAGE_MATLAB\x10=\x12\x17\n" + + "\x13LANGUAGE_POWERSHELL\x10>\x12\x15\n" + + "\x11LANGUAGE_SOLIDITY\x10?\x12\x10\n" + + "\fLANGUAGE_ADA\x10@\x12\x1c\n" + + "\x18LANGUAGE_OCAML_INTERFACE\x10A\x12\x1e\n" + + "\x1aLANGUAGE_TREE_SITTER_QUERY\x10B\x12\x10\n" + + "\fLANGUAGE_APL\x10C\x12\x15\n" + + "\x11LANGUAGE_ASSEMBLY\x10D\x12\x12\n" + + "\x0eLANGUAGE_COBOL\x10E\x12\x14\n" + + "\x10LANGUAGE_CRYSTAL\x10F\x12\x17\n" + + "\x13LANGUAGE_EMACS_LISP\x10G\x12\x13\n" + + "\x0fLANGUAGE_ERLANG\x10H\x12\x14\n" + + "\x10LANGUAGE_FORTRAN\x10I\x12\x15\n" + + "\x11LANGUAGE_FREEFORM\x10J\x12\x13\n" + + "\x0fLANGUAGE_GRADLE\x10K\x12\x11\n" + + "\rLANGUAGE_HACK\x10L\x12\x12\n" + + "\x0eLANGUAGE_MAVEN\x10M\x12\x19\n" + + "\x15LANGUAGE_M68KASSEMBLY\x10N\x12\x10\n" + + "\fLANGUAGE_SAS\x10O\x12\x19\n" + + "\x15LANGUAGE_UNIXASSEMBLY\x10P\x12\x10\n" + + "\fLANGUAGE_VBA\x10Q\x12\x16\n" + + "\x12LANGUAGE_VIMSCRIPT\x10R\x12\x18\n" + + "\x14LANGUAGE_WEBASSEMBLY\x10S\x12\x12\n" + + "\x0eLANGUAGE_BLADE\x10T\x12\x12\n" + + "\x0eLANGUAGE_ASTRO\x10U\x12\x12\n" + + "\x0eLANGUAGE_MUMPS\x10V\x12\x15\n" + + "\x11LANGUAGE_GDSCRIPT\x10W\x12\x10\n" + + "\fLANGUAGE_NIM\x10X\x12\x13\n" + + "\x0fLANGUAGE_PROLOG\x10Y\x12\x1c\n" + + "\x18LANGUAGE_MARKDOWN_INLINE\x10Z\x12\x11\n" + + "\rLANGUAGE_APEX\x10[\x12\x1d\n" + + "\x19LANGUAGE_JUPYTER_NOTEBOOK\x10\\*\xdc\x01\n" + + "\x11ChatMessageSource\x12#\n" + + "\x1fCHAT_MESSAGE_SOURCE_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18CHAT_MESSAGE_SOURCE_USER\x10\x01\x12\x1e\n" + + "\x1aCHAT_MESSAGE_SOURCE_SYSTEM\x10\x02\x12\x1f\n" + + "\x1bCHAT_MESSAGE_SOURCE_UNKNOWN\x10\x03\x12\x1c\n" + + "\x18CHAT_MESSAGE_SOURCE_TOOL\x10\x04\x12%\n" + + "!CHAT_MESSAGE_SOURCE_SYSTEM_PROMPT\x10\x05*\x8e\x01\n" + + "\x0eUserTeamStatus\x12 \n" + + "\x1cUSER_TEAM_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18USER_TEAM_STATUS_PENDING\x10\x01\x12\x1d\n" + + "\x19USER_TEAM_STATUS_APPROVED\x10\x02\x12\x1d\n" + + "\x19USER_TEAM_STATUS_REJECTED\x10\x03*\x8f\x02\n" + + "\rTeamsFeatures\x12\x1e\n" + + "\x1aTEAMS_FEATURES_UNSPECIFIED\x10\x00\x12\x16\n" + + "\x12TEAMS_FEATURES_SSO\x10\x01\x12\x1e\n" + + "\x1aTEAMS_FEATURES_ATTRIBUTION\x10\x02\x12\x16\n" + + "\x12TEAMS_FEATURES_PHI\x10\x03\x12\x19\n" + + "\x15TEAMS_FEATURES_CORTEX\x10\x04\x12\"\n" + + "\x1eTEAMS_FEATURES_OPENAI_DISABLED\x10\x05\x12+\n" + + "'TEAMS_FEATURES_REMOTE_INDEXING_DISABLED\x10\x06\x12\"\n" + + "\x1eTEAMS_FEATURES_API_KEY_ENABLED\x10\a*f\n" + + "\fUserFeatures\x12\x1d\n" + + "\x19USER_FEATURES_UNSPECIFIED\x10\x00\x12\x18\n" + + "\x14USER_FEATURES_CORTEX\x10\x01\x12\x1d\n" + + "\x19USER_FEATURES_CORTEX_TEST\x10\x02*\x82\b\n" + + "\n" + + "Permission\x12\x1a\n" + + "\x16PERMISSION_UNSPECIFIED\x10\x00\x12\x1f\n" + + "\x1bPERMISSION_ATTRIBUTION_READ\x10\x01\x12\x1d\n" + + "\x19PERMISSION_ANALYTICS_READ\x10\x02\x12\x1b\n" + + "\x17PERMISSION_LICENSE_READ\x10\x03\x12\x1d\n" + + "\x19PERMISSION_TEAM_USER_READ\x10\x04\x12\x1f\n" + + "\x1bPERMISSION_TEAM_USER_UPDATE\x10\x05\x12\x1f\n" + + "\x1bPERMISSION_TEAM_USER_DELETE\x10\x06\x12\x1f\n" + + "\x1bPERMISSION_TEAM_USER_INVITE\x10\x11\x12\x1c\n" + + "\x18PERMISSION_INDEXING_READ\x10\a\x12\x1e\n" + + "\x1aPERMISSION_INDEXING_CREATE\x10\b\x12\x1e\n" + + "\x1aPERMISSION_INDEXING_UPDATE\x10\t\x12\x1e\n" + + "\x1aPERMISSION_INDEXING_DELETE\x10\n" + + "\x12\"\n" + + "\x1ePERMISSION_INDEXING_MANAGEMENT\x10\x1b\x12\x1e\n" + + "\x1aPERMISSION_FINETUNING_READ\x10\x13\x12 \n" + + "\x1cPERMISSION_FINETUNING_CREATE\x10\x14\x12 \n" + + "\x1cPERMISSION_FINETUNING_UPDATE\x10\x15\x12 \n" + + "\x1cPERMISSION_FINETUNING_DELETE\x10\x16\x12\x17\n" + + "\x13PERMISSION_SSO_READ\x10\v\x12\x18\n" + + "\x14PERMISSION_SSO_WRITE\x10\f\x12\x1f\n" + + "\x1bPERMISSION_SERVICE_KEY_READ\x10\r\x12!\n" + + "\x1dPERMISSION_SERVICE_KEY_CREATE\x10\x0e\x12!\n" + + "\x1dPERMISSION_SERVICE_KEY_UPDATE\x10\x1c\x12!\n" + + "\x1dPERMISSION_SERVICE_KEY_DELETE\x10\x0f\x12\x18\n" + + "\x14PERMISSION_ROLE_READ\x10\x17\x12\x1a\n" + + "\x16PERMISSION_ROLE_CREATE\x10\x18\x12\x1a\n" + + "\x16PERMISSION_ROLE_UPDATE\x10\x19\x12\x1a\n" + + "\x16PERMISSION_ROLE_DELETE\x10\x1a\x12\x1b\n" + + "\x17PERMISSION_BILLING_READ\x10\x10\x12\x1c\n" + + "\x18PERMISSION_BILLING_WRITE\x10\x12\x12#\n" + + "\x1fPERMISSION_EXTERNAL_CHAT_UPDATE\x10\x1d\x12!\n" + + "\x1dPERMISSION_TEAM_SETTINGS_READ\x10\x1e\x12#\n" + + "\x1fPERMISSION_TEAM_SETTINGS_UPDATE\x10\x1f*\xd2\x04\n" + + "\tTeamsTier\x12\x1a\n" + + "\x16TEAMS_TIER_UNSPECIFIED\x10\x00\x12\x14\n" + + "\x10TEAMS_TIER_TEAMS\x10\x01\x12\x12\n" + + "\x0eTEAMS_TIER_PRO\x10\x02\x12\x14\n" + + "\x10TEAMS_TIER_TRIAL\x10\t\x12\x1e\n" + + "\x1aTEAMS_TIER_ENTERPRISE_SAAS\x10\x03\x12\x15\n" + + "\x11TEAMS_TIER_HYBRID\x10\x04\x12%\n" + + "!TEAMS_TIER_ENTERPRISE_SELF_HOSTED\x10\x05\x12$\n" + + " TEAMS_TIER_ENTERPRISE_SELF_SERVE\x10\n" + + "\x12\x1f\n" + + "\x1bTEAMS_TIER_DEVIN_ENTERPRISE\x10\f\x12\x1a\n" + + "\x16TEAMS_TIER_DEVIN_TEAMS\x10\x0e\x12\x1d\n" + + "\x19TEAMS_TIER_DEVIN_TEAMS_V2\x10\x0f\x12\x18\n" + + "\x14TEAMS_TIER_DEVIN_PRO\x10\x10\x12\x18\n" + + "\x14TEAMS_TIER_DEVIN_MAX\x10\x11\x12\x12\n" + + "\x0eTEAMS_TIER_MAX\x10\x12\x12\x19\n" + + "\x15TEAMS_TIER_DEVIN_FREE\x10\x13\x12\x1a\n" + + "\x16TEAMS_TIER_DEVIN_TRIAL\x10\x14\x12\x1f\n" + + "\x17TEAMS_TIER_WAITLIST_PRO\x10\x06\x1a\x02\b\x01\x12\x1d\n" + + "\x19TEAMS_TIER_TEAMS_ULTIMATE\x10\a\x12\x1f\n" + + "\x17TEAMS_TIER_PRO_ULTIMATE\x10\b\x1a\x02\b\x01\x12)\n" + + "!TEAMS_TIER_ENTERPRISE_SAAS_POOLED\x10\v\x1a\x02\b\x01*\x80\x03\n" + + "\rModelProvider\x12\x1e\n" + + "\x1aMODEL_PROVIDER_UNSPECIFIED\x10\x00\x12\x1b\n" + + "\x17MODEL_PROVIDER_WINDSURF\x10\x01\x12\x19\n" + + "\x15MODEL_PROVIDER_OPENAI\x10\x02\x12\x1c\n" + + "\x18MODEL_PROVIDER_ANTHROPIC\x10\x03\x12\x19\n" + + "\x15MODEL_PROVIDER_GOOGLE\x10\x04\x12\x16\n" + + "\x12MODEL_PROVIDER_XAI\x10\x05\x12\x1b\n" + + "\x17MODEL_PROVIDER_DEEPSEEK\x10\x06\x12\x1b\n" + + "\x17MODEL_PROVIDER_MOONSHOT\x10\a\x12\x17\n" + + "\x13MODEL_PROVIDER_QWEN\x10\b\x12\x16\n" + + "\x12MODEL_PROVIDER_ZAI\x10\t\x12\x1a\n" + + "\x16MODEL_PROVIDER_MINIMAX\x10\n" + + "\x12\x19\n" + + "\x15MODEL_PROVIDER_NVIDIA\x10\v\x12$\n" + + " MODEL_PROVIDER_THINKING_MACHINES\x10\f*\x87\x01\n" + + "\x0fBillingStrategy\x12 \n" + + "\x1cBILLING_STRATEGY_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18BILLING_STRATEGY_CREDITS\x10\x01\x12\x1a\n" + + "\x16BILLING_STRATEGY_QUOTA\x10\x02\x12\x18\n" + + "\x14BILLING_STRATEGY_ACU\x10\x03*\xda\x01\n" + + "\x10ModelPricingType\x12\"\n" + + "\x1eMODEL_PRICING_TYPE_UNSPECIFIED\x10\x00\x12$\n" + + " MODEL_PRICING_TYPE_STATIC_CREDIT\x10\x01\x12\x1a\n" + + "\x16MODEL_PRICING_TYPE_API\x10\x02\x12\x1b\n" + + "\x17MODEL_PRICING_TYPE_BYOK\x10\x03\x12 \n" + + "\x1cMODEL_PRICING_TYPE_ACU_TOKEN\x10\x04\x12!\n" + + "\x1dMODEL_PRICING_TYPE_ACU_CREDIT\x10\x05*\x99\x01\n" + + "\rModelCostTier\x12\x1f\n" + + "\x1bMODEL_COST_TIER_UNSPECIFIED\x10\x00\x12\x17\n" + + "\x13MODEL_COST_TIER_LOW\x10\x01\x12\x1a\n" + + "\x16MODEL_COST_TIER_MEDIUM\x10\x02\x12\x18\n" + + "\x14MODEL_COST_TIER_HIGH\x10\x03\x12\x18\n" + + "\x14MODEL_COST_TIER_FREE\x10\x04*\xa2\x01\n" + + "\x12ModelDimensionKind\x12$\n" + + " MODEL_DIMENSION_KIND_UNSPECIFIED\x10\x00\x12\x1d\n" + + "\x19MODEL_DIMENSION_KIND_COST\x10\x01\x12#\n" + + "\x1fMODEL_DIMENSION_KIND_COST_FUZZY\x10\x02\x12\"\n" + + "\x1eMODEL_DIMENSION_KIND_COST_UNIT\x10\x03*\xe5\x01\n" + + "\x1fModelFamilyDimensionControlType\x123\n" + + "/MODEL_FAMILY_DIMENSION_CONTROL_TYPE_UNSPECIFIED\x10\x00\x12/\n" + + "+MODEL_FAMILY_DIMENSION_CONTROL_TYPE_STEPPER\x10\x01\x12.\n" + + "*MODEL_FAMILY_DIMENSION_CONTROL_TYPE_OPTION\x10\x02\x12,\n" + + "(MODEL_FAMILY_DIMENSION_CONTROL_TYPE_LIST\x10\x03*\xdf\x01\n" + + "\x14ModelComplianceLevel\x12&\n" + + "\"MODEL_COMPLIANCE_LEVEL_UNSPECIFIED\x10\x00\x12\x1e\n" + + "\x1aMODEL_COMPLIANCE_LEVEL_FRH\x10\x01\x12\x1e\n" + + "\x1aMODEL_COMPLIANCE_LEVEL_IL4\x10\x02\x12\x1e\n" + + "\x1aMODEL_COMPLIANCE_LEVEL_IL5\x10\x03\x12\x1e\n" + + "\x1aMODEL_COMPLIANCE_LEVEL_IL6\x10\x04\x12\x1f\n" + + "\x1bMODEL_COMPLIANCE_LEVEL_ITAR\x10\x05*\xbd\x01\n" + + "\x11TransactionStatus\x12\"\n" + + "\x1eTRANSACTION_STATUS_UNSPECIFIED\x10\x00\x12 \n" + + "\x1cTRANSACTION_STATUS_SUCCEEDED\x10\x01\x12!\n" + + "\x1dTRANSACTION_STATUS_PROCESSING\x10\x02\x12\x1d\n" + + "\x19TRANSACTION_STATUS_FAILED\x10\x03\x12 \n" + + "\x1cTRANSACTION_STATUS_NO_ACTIVE\x10\x04*\x97\x01\n" + + "\x11GracePeriodStatus\x12#\n" + + "\x1fGRACE_PERIOD_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18GRACE_PERIOD_STATUS_NONE\x10\x01\x12\x1e\n" + + "\x1aGRACE_PERIOD_STATUS_ACTIVE\x10\x02\x12\x1f\n" + + "\x1bGRACE_PERIOD_STATUS_EXPIRED\x10\x03*\xfb\x01\n" + + "\x1cCascadeCommandsAutoExecution\x12/\n" + + "+CASCADE_COMMANDS_AUTO_EXECUTION_UNSPECIFIED\x10\x00\x12'\n" + + "#CASCADE_COMMANDS_AUTO_EXECUTION_OFF\x10\x01\x12(\n" + + "$CASCADE_COMMANDS_AUTO_EXECUTION_AUTO\x10\x02\x12)\n" + + "%CASCADE_COMMANDS_AUTO_EXECUTION_EAGER\x10\x03\x12,\n" + + "(CASCADE_COMMANDS_AUTO_EXECUTION_DISABLED\x10\x04*\xc2\x02\n" + + "\x19ConversationalPlannerMode\x12+\n" + + "'CONVERSATIONAL_PLANNER_MODE_UNSPECIFIED\x10\x00\x12'\n" + + "#CONVERSATIONAL_PLANNER_MODE_DEFAULT\x10\x01\x12)\n" + + "%CONVERSATIONAL_PLANNER_MODE_READ_ONLY\x10\x02\x12'\n" + + "#CONVERSATIONAL_PLANNER_MODE_NO_TOOL\x10\x03\x12+\n" + + "#CONVERSATIONAL_PLANNER_MODE_EXPLORE\x10\x04\x1a\x02\b\x01\x12(\n" + + "$CONVERSATIONAL_PLANNER_MODE_PLANNING\x10\x05\x12$\n" + + " CONVERSATIONAL_PLANNER_MODE_AUTO\x10\x06*\x83\x01\n" + + "\tModelType\x12\x1a\n" + + "\x16MODEL_TYPE_UNSPECIFIED\x10\x00\x12\x19\n" + + "\x15MODEL_TYPE_COMPLETION\x10\x01\x12\x13\n" + + "\x0fMODEL_TYPE_CHAT\x10\x02\x12\x14\n" + + "\x10MODEL_TYPE_EMBED\x10\x03\x12\x14\n" + + "\x10MODEL_TYPE_QUERY\x10\x04*\xaf\x02\n" + + "\rDisplayOption\x12\x1e\n" + + "\x1aDISPLAY_OPTION_UNSPECIFIED\x10\x00\x12\x18\n" + + "\x14DISPLAY_OPTION_ARENA\x10\x01\x12$\n" + + " DISPLAY_OPTION_BATTLE_GROUP_ONLY\x10\x02\x12\x1f\n" + + "\x1bDISPLAY_OPTION_MODEL_ROUTER\x10\x03\x12\x1f\n" + + "\x1bDISPLAY_OPTION_QUICK_REVIEW\x10\x04\x12\x18\n" + + "\x14DISPLAY_OPTION_MIMIC\x10\x05\x12\x1e\n" + + "\x1aDISPLAY_OPTION_HIDDEN_TOOL\x10\x06\x12\x1c\n" + + "\x18DISPLAY_OPTION_COMPACTOR\x10\a\x12$\n" + + " DISPLAY_OPTION_MODERN_AGENT_CHAT\x10\b*\xac\x14\n" + + "\vAPIProvider\x12\x1c\n" + + "\x18API_PROVIDER_UNSPECIFIED\x10\x00\x12\x19\n" + + "\x15API_PROVIDER_INTERNAL\x10\x01\x12\x17\n" + + "\x13API_PROVIDER_OPENAI\x10\x02\x12\x1e\n" + + "\x1aAPI_PROVIDER_GOOGLE_VERTEX\x10\x03\x12\x1a\n" + + "\x16API_PROVIDER_ANTHROPIC\x10\x04\x12\x15\n" + + "\x11API_PROVIDER_VLLM\x10\x05\x12\x1c\n" + + "\x18API_PROVIDER_TOGETHER_AI\x10\x06\x12!\n" + + "\x19API_PROVIDER_HUGGING_FACE\x10\a\x1a\x02\b\x01\x12\x1a\n" + + "\x12API_PROVIDER_NOMIC\x10\b\x1a\x02\b\x01\x12\x18\n" + + "\x10API_PROVIDER_TEI\x10\t\x1a\x02\b\x01\x12+\n" + + "'API_PROVIDER_OPENAI_COMPATIBLE_EXTERNAL\x10\n" + + "\x12.\n" + + "*API_PROVIDER_ANTHROPIC_COMPATIBLE_EXTERNAL\x10\v\x12+\n" + + "'API_PROVIDER_VERTEX_COMPATIBLE_EXTERNAL\x10\f\x12,\n" + + "(API_PROVIDER_BEDROCK_COMPATIBLE_EXTERNAL\x10\r\x12*\n" + + "&API_PROVIDER_AZURE_COMPATIBLE_EXTERNAL\x10\x0e\x12&\n" + + "\x1eAPI_PROVIDER_ANTHROPIC_BEDROCK\x10\x0f\x1a\x02\b\x01\x12\x1a\n" + + "\x16API_PROVIDER_FIREWORKS\x10\x10\x12\x1c\n" + + "\x18API_PROVIDER_OPEN_ROUTER\x10\x11\x12\x14\n" + + "\x10API_PROVIDER_XAI\x10\x12\x12#\n" + + "\x1bAPI_PROVIDER_ANTHROPIC_BYOK\x10\x14\x1a\x02\b\x01\x12\x19\n" + + "\x15API_PROVIDER_CEREBRAS\x10\x15\x12\x19\n" + + "\x15API_PROVIDER_XAI_BYOK\x10\x16\x12\x1e\n" + + "\x1aAPI_PROVIDER_GEMINI_OPENAI\x10\x17\x12\"\n" + + "\x1aAPI_PROVIDER_GOOGLE_GEMINI\x10\x18\x1a\x02\b\x01\x12$\n" + + " API_PROVIDER_GOOGLE_GENAI_VERTEX\x10\x19\x12%\n" + + "\x1dAPI_PROVIDER_ANTHROPIC_VERTEX\x10\x1a\x1a\x02\b\x01\x12\x1b\n" + + "\x17API_PROVIDER_DATABRICKS\x10\x1b\x12!\n" + + "\x1dAPI_PROVIDER_OPEN_ROUTER_BYOK\x10\x1c\x12 \n" + + "\x1cAPI_PROVIDER_ANTHROPIC_DEVIN\x10\x1d\x12 \n" + + "\x1cAPI_PROVIDER_FIREWORKS_DEVIN\x10\x1e\x12\x15\n" + + "\x11API_PROVIDER_GROQ\x10\x1f\x12\x1d\n" + + "\x19API_PROVIDER_OPENAI_DEVIN\x10 \x12\"\n" + + "\x1eAPI_PROVIDER_LLAMA_FT_DEEPWIKI\x10!\x12\x1d\n" + + "\x19API_PROVIDER_XAI_INTERNAL\x10\"\x12\x1a\n" + + "\x16API_PROVIDER_FLOODGATE\x10$\x12%\n" + + "!API_PROVIDER_ANTHROPIC_BEDROCK_US\x10%\x12)\n" + + "%API_PROVIDER_ANTHROPIC_BEDROCK_GLOBAL\x10&\x12\x16\n" + + "\x12API_PROVIDER_MODAL\x10(\x12$\n" + + " API_PROVIDER_GOOGLE_GEMINI_DEVIN\x10)\x12$\n" + + " API_PROVIDER_FIREWORKS_COGNITION\x10*\x12+\n" + + "'API_PROVIDER_GOOGLE_GENAI_VERTEX_GLOBAL\x10+\x12$\n" + + " API_PROVIDER_ANTHROPIC_VERTEX_US\x10,\x12$\n" + + " API_PROVIDER_ANTHROPIC_VERTEX_EU\x10-\x12(\n" + + "$API_PROVIDER_ANTHROPIC_VERTEX_GLOBAL\x10.\x12-\n" + + ")API_PROVIDER_FIREWORKS_COGNITION_INTERNAL\x10/\x12%\n" + + "!API_PROVIDER_ANTHROPIC_DATABRICKS\x100\x12\"\n" + + "\x1eAPI_PROVIDER_GEMINI_DATABRICKS\x101\x12\x16\n" + + "\x12API_PROVIDER_MIMIC\x102\x12\"\n" + + "\x1eAPI_PROVIDER_ANTHROPIC_NON_ZDR\x103\x12(\n" + + "$API_PROVIDER_ANTHROPIC_DEVIN_NON_ZDR\x104\x123\n" + + "/API_PROVIDER_DATA_RETENTION_WORKSPACE_ANTHROPIC\x105\x12#\n" + + "\x1fAPI_PROVIDER_TOGETHER_AI_SHADOW\x106\x12\"\n" + + "\x1eAPI_PROVIDER_OPENAI_STRICT_ZDR\x107\x12*\n" + + "&API_PROVIDER_ANTHROPIC_VERTEX_US_MULTI\x108\x12-\n" + + ")API_PROVIDER_GOOGLE_GENAI_VERTEX_US_MULTI\x109\x12\x1a\n" + + "\x16API_PROVIDER_COREWEAVE\x10:\x12\x17\n" + + "\x13API_PROVIDER_NEBIUS\x10;\x12\x17\n" + + "\x13API_PROVIDER_SGLANG\x10<\x12'\n" + + "#API_PROVIDER_AZURE_OPENAI_FEDERATED\x10=\x12\x17\n" + + "\x13API_PROVIDER_DECART\x10>\x12+\n" + + "'API_PROVIDER_FIREWORKS_DEVIN_SERVERLESS\x10?\x12\x1b\n" + + "\x17API_PROVIDER_CLOUDFLARE\x10@\x12\x18\n" + + "\x14API_PROVIDER_BASETEN\x10A\x12(\n" + + "$API_PROVIDER_OPENAI_SAFETY_RETENTION\x10B\x12\"\n" + + "\x1eAPI_PROVIDER_DATABRICKS_OSS_US\x10C\x12'\n" + + "#API_PROVIDER_BEDROCK_MANTLE_FEDERAL\x10D\x12 \n" + + "\x1cAPI_PROVIDER_APPLIED_COMPUTE\x10E\x12(\n" + + "$API_PROVIDER_OPENAI_INTERNAL_TESTING\x10F\x12\x16\n" + + "\x12API_PROVIDER_MORPH\x10G\x121\n" + + "-API_PROVIDER_BEDROCK_MANTLE_FEDERAL_ANTHROPIC\x10H\x12+\n" + + "'API_PROVIDER_OPENAI_ZDR_US_IP_WHITELIST\x10I\x12\"\n" + + "\x1eAPI_PROVIDER_ANTHROPIC_EFS_ZDR\x10J\x12)\n" + + "%API_PROVIDER_ANTHROPIC_CYBER_VERIFIED\x10K\"\x04\b#\x10#\"\x04\b'\x10'\"\x04\b\x13\x10\x13*\x90\x01\n" + + "\x16SandboxEnforcementMode\x12(\n" + + "$SANDBOX_ENFORCEMENT_MODE_UNSPECIFIED\x10\x00\x12%\n" + + "!SANDBOX_ENFORCEMENT_MODE_OPTIONAL\x10\x01\x12%\n" + + "!SANDBOX_ENFORCEMENT_MODE_REQUIRED\x10\x02*\xa9\x01\n" + + "\x13CascadeAvailability\x12$\n" + + " CASCADE_AVAILABILITY_UNSPECIFIED\x10\x00\x12 \n" + + "\x1cCASCADE_AVAILABILITY_ENABLED\x10\x01\x12'\n" + + "#CASCADE_AVAILABILITY_JETBRAINS_ONLY\x10\x02\x12!\n" + + "\x1dCASCADE_AVAILABILITY_DISABLED\x10\x03*\xbd\x02\n" + + "\x13PromptTemplaterType\x12%\n" + + "!PROMPT_TEMPLATER_TYPE_UNSPECIFIED\x10\x00\x12!\n" + + "\x1dPROMPT_TEMPLATER_TYPE_LLAMA_2\x10\x01\x12!\n" + + "\x1dPROMPT_TEMPLATER_TYPE_LLAMA_3\x10\x02\x12 \n" + + "\x1cPROMPT_TEMPLATER_TYPE_CHATML\x10\x03\x12)\n" + + "%PROMPT_TEMPLATER_TYPE_CHAT_TRANSCRIPT\x10\x04\x12%\n" + + "!PROMPT_TEMPLATER_TYPE_DEEPSEEK_V2\x10\x05\x12%\n" + + "!PROMPT_TEMPLATER_TYPE_DEEPSEEK_V3\x10\x06\x12\x1e\n" + + "\x1aPROMPT_TEMPLATER_TYPE_KIMI\x10\a*\xa7\x02\n" + + "\x11ToolFormatterType\x12#\n" + + "\x1fTOOL_FORMATTER_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n" + + "\x1bTOOL_FORMATTER_TYPE_LLAMA_3\x10\x01\x12\x1e\n" + + "\x1aTOOL_FORMATTER_TYPE_HERMES\x10\x02\x12\x1b\n" + + "\x17TOOL_FORMATTER_TYPE_XML\x10\x03\x12'\n" + + "#TOOL_FORMATTER_TYPE_CHAT_TRANSCRIPT\x10\x04\x12\x1c\n" + + "\x18TOOL_FORMATTER_TYPE_KIMI\x10\x05\x12!\n" + + "\x1dTOOL_FORMATTER_TYPE_QWENCODER\x10\x06\x12%\n" + + "!TOOL_FORMATTER_TYPE_SUPERCOMPLETE\x10\aB:Z8github.com/Exafunction/Exafunction/exa/codeium_common_pbb\x06proto3" + +var ( + file_exa_codeium_common_pb_codeium_common_proto_rawDescOnce sync.Once + file_exa_codeium_common_pb_codeium_common_proto_rawDescData []byte +) + +func file_exa_codeium_common_pb_codeium_common_proto_rawDescGZIP() []byte { + file_exa_codeium_common_pb_codeium_common_proto_rawDescOnce.Do(func() { + file_exa_codeium_common_pb_codeium_common_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_exa_codeium_common_pb_codeium_common_proto_rawDesc), len(file_exa_codeium_common_pb_codeium_common_proto_rawDesc))) + }) + return file_exa_codeium_common_pb_codeium_common_proto_rawDescData +} + +var file_exa_codeium_common_pb_codeium_common_proto_enumTypes = make([]protoimpl.EnumInfo, 34) +var file_exa_codeium_common_pb_codeium_common_proto_msgTypes = make([]protoimpl.MessageInfo, 58) +var file_exa_codeium_common_pb_codeium_common_proto_goTypes = []any{ + (ProviderSource)(0), // 0: exa.codeium_common_pb.ProviderSource + (PromptAnnotationKind)(0), // 1: exa.codeium_common_pb.PromptAnnotationKind + (ExperimentKey)(0), // 2: exa.codeium_common_pb.ExperimentKey + (ExperimentSource)(0), // 3: exa.codeium_common_pb.ExperimentSource + (ModelAlias)(0), // 4: exa.codeium_common_pb.ModelAlias + (Model)(0), // 5: exa.codeium_common_pb.Model + (StopReason)(0), // 6: exa.codeium_common_pb.StopReason + (AuthSource)(0), // 7: exa.codeium_common_pb.AuthSource + (Language)(0), // 8: exa.codeium_common_pb.Language + (ChatMessageSource)(0), // 9: exa.codeium_common_pb.ChatMessageSource + (UserTeamStatus)(0), // 10: exa.codeium_common_pb.UserTeamStatus + (TeamsFeatures)(0), // 11: exa.codeium_common_pb.TeamsFeatures + (UserFeatures)(0), // 12: exa.codeium_common_pb.UserFeatures + (Permission)(0), // 13: exa.codeium_common_pb.Permission + (TeamsTier)(0), // 14: exa.codeium_common_pb.TeamsTier + (ModelProvider)(0), // 15: exa.codeium_common_pb.ModelProvider + (BillingStrategy)(0), // 16: exa.codeium_common_pb.BillingStrategy + (ModelPricingType)(0), // 17: exa.codeium_common_pb.ModelPricingType + (ModelCostTier)(0), // 18: exa.codeium_common_pb.ModelCostTier + (ModelDimensionKind)(0), // 19: exa.codeium_common_pb.ModelDimensionKind + (ModelFamilyDimensionControlType)(0), // 20: exa.codeium_common_pb.ModelFamilyDimensionControlType + (ModelComplianceLevel)(0), // 21: exa.codeium_common_pb.ModelComplianceLevel + (TransactionStatus)(0), // 22: exa.codeium_common_pb.TransactionStatus + (GracePeriodStatus)(0), // 23: exa.codeium_common_pb.GracePeriodStatus + (CascadeCommandsAutoExecution)(0), // 24: exa.codeium_common_pb.CascadeCommandsAutoExecution + (ConversationalPlannerMode)(0), // 25: exa.codeium_common_pb.ConversationalPlannerMode + (ModelType)(0), // 26: exa.codeium_common_pb.ModelType + (DisplayOption)(0), // 27: exa.codeium_common_pb.DisplayOption + (APIProvider)(0), // 28: exa.codeium_common_pb.APIProvider + (SandboxEnforcementMode)(0), // 29: exa.codeium_common_pb.SandboxEnforcementMode + (CascadeAvailability)(0), // 30: exa.codeium_common_pb.CascadeAvailability + (PromptTemplaterType)(0), // 31: exa.codeium_common_pb.PromptTemplaterType + (ToolFormatterType)(0), // 32: exa.codeium_common_pb.ToolFormatterType + (DevinAcuRequestAction_Kind)(0), // 33: exa.codeium_common_pb.DevinAcuRequestAction.Kind + (*CompletionConfiguration)(nil), // 34: exa.codeium_common_pb.CompletionConfiguration + (*PromptAnnotationRange)(nil), // 35: exa.codeium_common_pb.PromptAnnotationRange + (*ExperimentWithVariant)(nil), // 36: exa.codeium_common_pb.ExperimentWithVariant + (*ExperimentConfig)(nil), // 37: exa.codeium_common_pb.ExperimentConfig + (*ModelOrAlias)(nil), // 38: exa.codeium_common_pb.ModelOrAlias + (*SingleModelCompletionProfile)(nil), // 39: exa.codeium_common_pb.SingleModelCompletionProfile + (*CompletionProfile)(nil), // 40: exa.codeium_common_pb.CompletionProfile + (*Metadata)(nil), // 41: exa.codeium_common_pb.Metadata + (*TeamsFeaturesMetadata)(nil), // 42: exa.codeium_common_pb.TeamsFeaturesMetadata + (*PromoStatus)(nil), // 43: exa.codeium_common_pb.PromoStatus + (*FastStatus)(nil), // 44: exa.codeium_common_pb.FastStatus + (*ArenaConfig)(nil), // 45: exa.codeium_common_pb.ArenaConfig + (*ModelDimension)(nil), // 46: exa.codeium_common_pb.ModelDimension + (*ModelDisabledReason)(nil), // 47: exa.codeium_common_pb.ModelDisabledReason + (*ClientModelConfig)(nil), // 48: exa.codeium_common_pb.ClientModelConfig + (*DefaultOverrideModelConfig)(nil), // 49: exa.codeium_common_pb.DefaultOverrideModelConfig + (*ClientModelSort)(nil), // 50: exa.codeium_common_pb.ClientModelSort + (*ClientModelGroup)(nil), // 51: exa.codeium_common_pb.ClientModelGroup + (*CascadeModelConfigData)(nil), // 52: exa.codeium_common_pb.CascadeModelConfigData + (*PlanInfo)(nil), // 53: exa.codeium_common_pb.PlanInfo + (*DevinPlanInfo)(nil), // 54: exa.codeium_common_pb.DevinPlanInfo + (*DevinAcuRequestAction)(nil), // 55: exa.codeium_common_pb.DevinAcuRequestAction + (*TopUpStatus)(nil), // 56: exa.codeium_common_pb.TopUpStatus + (*PlanStatus)(nil), // 57: exa.codeium_common_pb.PlanStatus + (*UserStatus)(nil), // 58: exa.codeium_common_pb.UserStatus + (*ModelFeatures)(nil), // 59: exa.codeium_common_pb.ModelFeatures + (*OpenAIInferenceConfig)(nil), // 60: exa.codeium_common_pb.OpenAIInferenceConfig + (*GoogleInferenceConfig)(nil), // 61: exa.codeium_common_pb.GoogleInferenceConfig + (*AnthropicInferenceConfig)(nil), // 62: exa.codeium_common_pb.AnthropicInferenceConfig + (*ZaiInferenceConfig)(nil), // 63: exa.codeium_common_pb.ZaiInferenceConfig + (*XaiInferenceConfig)(nil), // 64: exa.codeium_common_pb.XaiInferenceConfig + (*ThinkingMachinesInferenceConfig)(nil), // 65: exa.codeium_common_pb.ThinkingMachinesInferenceConfig + (*MoonshotInferenceConfig)(nil), // 66: exa.codeium_common_pb.MoonshotInferenceConfig + (*NvidiaInferenceConfig)(nil), // 67: exa.codeium_common_pb.NvidiaInferenceConfig + (*DeepSeekInferenceConfig)(nil), // 68: exa.codeium_common_pb.DeepSeekInferenceConfig + (*InferenceConfig)(nil), // 69: exa.codeium_common_pb.InferenceConfig + (*ModelInfo)(nil), // 70: exa.codeium_common_pb.ModelInfo + (*ModelFamilyMetadataValue)(nil), // 71: exa.codeium_common_pb.ModelFamilyMetadataValue + (*ModelFamilyMetadataEntry)(nil), // 72: exa.codeium_common_pb.ModelFamilyMetadataEntry + (*ModelFamilyMetadata)(nil), // 73: exa.codeium_common_pb.ModelFamilyMetadata + (*ChatToolCall)(nil), // 74: exa.codeium_common_pb.ChatToolCall + (*ModelUsageStats)(nil), // 75: exa.codeium_common_pb.ModelUsageStats + (*ImageData)(nil), // 76: exa.codeium_common_pb.ImageData + (*VideoData)(nil), // 77: exa.codeium_common_pb.VideoData + (*DocumentData)(nil), // 78: exa.codeium_common_pb.DocumentData + (*TeamConfig)(nil), // 79: exa.codeium_common_pb.TeamConfig + (*McpServerConfig)(nil), // 80: exa.codeium_common_pb.McpServerConfig + (*McpLocalServer)(nil), // 81: exa.codeium_common_pb.McpLocalServer + (*McpRemoteServer)(nil), // 82: exa.codeium_common_pb.McpRemoteServer + (*ResponseDimensionGroup)(nil), // 83: exa.codeium_common_pb.ResponseDimensionGroup + (*ResponseDimension)(nil), // 84: exa.codeium_common_pb.ResponseDimension + (*ResponseDimensionCopyableCode)(nil), // 85: exa.codeium_common_pb.ResponseDimensionCopyableCode + (*ResponseDimensionMetric)(nil), // 86: exa.codeium_common_pb.ResponseDimensionMetric + (*ResponseDimensionCumulativeMetric)(nil), // 87: exa.codeium_common_pb.ResponseDimensionCumulativeMetric + nil, // 88: exa.codeium_common_pb.PlanInfo.DefaultTeamFeaturesEntry + nil, // 89: exa.codeium_common_pb.ModelUsageStats.ResponseHeaderEntry + nil, // 90: exa.codeium_common_pb.McpLocalServer.EnvEntry + nil, // 91: exa.codeium_common_pb.McpRemoteServer.HeadersEntry + (*timestamppb.Timestamp)(nil), // 92: google.protobuf.Timestamp +} +var file_exa_codeium_common_pb_codeium_common_proto_depIdxs = []int32{ + 1, // 0: exa.codeium_common_pb.PromptAnnotationRange.kind:type_name -> exa.codeium_common_pb.PromptAnnotationKind + 2, // 1: exa.codeium_common_pb.ExperimentWithVariant.key:type_name -> exa.codeium_common_pb.ExperimentKey + 3, // 2: exa.codeium_common_pb.ExperimentWithVariant.source:type_name -> exa.codeium_common_pb.ExperimentSource + 36, // 3: exa.codeium_common_pb.ExperimentConfig.experiments:type_name -> exa.codeium_common_pb.ExperimentWithVariant + 2, // 4: exa.codeium_common_pb.ExperimentConfig.force_enable_experiments:type_name -> exa.codeium_common_pb.ExperimentKey + 2, // 5: exa.codeium_common_pb.ExperimentConfig.force_disable_experiments:type_name -> exa.codeium_common_pb.ExperimentKey + 36, // 6: exa.codeium_common_pb.ExperimentConfig.force_enable_experiments_with_variants:type_name -> exa.codeium_common_pb.ExperimentWithVariant + 5, // 7: exa.codeium_common_pb.ModelOrAlias.model:type_name -> exa.codeium_common_pb.Model + 4, // 8: exa.codeium_common_pb.ModelOrAlias.alias:type_name -> exa.codeium_common_pb.ModelAlias + 39, // 9: exa.codeium_common_pb.CompletionProfile.model_profile:type_name -> exa.codeium_common_pb.SingleModelCompletionProfile + 39, // 10: exa.codeium_common_pb.CompletionProfile.draft_model_profile:type_name -> exa.codeium_common_pb.SingleModelCompletionProfile + 75, // 11: exa.codeium_common_pb.CompletionProfile.model_usage:type_name -> exa.codeium_common_pb.ModelUsageStats + 92, // 12: exa.codeium_common_pb.Metadata.ls_timestamp:type_name -> google.protobuf.Timestamp + 7, // 13: exa.codeium_common_pb.Metadata.auth_source:type_name -> exa.codeium_common_pb.AuthSource + 27, // 14: exa.codeium_common_pb.Metadata.supported_model_displays:type_name -> exa.codeium_common_pb.DisplayOption + 92, // 15: exa.codeium_common_pb.PromoStatus.end_date:type_name -> google.protobuf.Timestamp + 19, // 16: exa.codeium_common_pb.ModelDimension.kind:type_name -> exa.codeium_common_pb.ModelDimensionKind + 38, // 17: exa.codeium_common_pb.ClientModelConfig.model_or_alias:type_name -> exa.codeium_common_pb.ModelOrAlias + 17, // 18: exa.codeium_common_pb.ClientModelConfig.pricing_type:type_name -> exa.codeium_common_pb.ModelPricingType + 15, // 19: exa.codeium_common_pb.ClientModelConfig.provider:type_name -> exa.codeium_common_pb.ModelProvider + 14, // 20: exa.codeium_common_pb.ClientModelConfig.allowed_tiers:type_name -> exa.codeium_common_pb.TeamsTier + 28, // 21: exa.codeium_common_pb.ClientModelConfig.api_provider:type_name -> exa.codeium_common_pb.APIProvider + 43, // 22: exa.codeium_common_pb.ClientModelConfig.promo_status:type_name -> exa.codeium_common_pb.PromoStatus + 44, // 23: exa.codeium_common_pb.ClientModelConfig.fast_status:type_name -> exa.codeium_common_pb.FastStatus + 70, // 24: exa.codeium_common_pb.ClientModelConfig.model_info:type_name -> exa.codeium_common_pb.ModelInfo + 18, // 25: exa.codeium_common_pb.ClientModelConfig.model_cost_tier:type_name -> exa.codeium_common_pb.ModelCostTier + 73, // 26: exa.codeium_common_pb.ClientModelConfig.model_family_metadata:type_name -> exa.codeium_common_pb.ModelFamilyMetadata + 46, // 27: exa.codeium_common_pb.ClientModelConfig.model_dimensions:type_name -> exa.codeium_common_pb.ModelDimension + 47, // 28: exa.codeium_common_pb.ClientModelConfig.disabled_reason:type_name -> exa.codeium_common_pb.ModelDisabledReason + 21, // 29: exa.codeium_common_pb.ClientModelConfig.compliance_levels:type_name -> exa.codeium_common_pb.ModelComplianceLevel + 38, // 30: exa.codeium_common_pb.DefaultOverrideModelConfig.model_or_alias_deprecated:type_name -> exa.codeium_common_pb.ModelOrAlias + 51, // 31: exa.codeium_common_pb.ClientModelSort.groups:type_name -> exa.codeium_common_pb.ClientModelGroup + 48, // 32: exa.codeium_common_pb.CascadeModelConfigData.client_model_configs:type_name -> exa.codeium_common_pb.ClientModelConfig + 50, // 33: exa.codeium_common_pb.CascadeModelConfigData.client_model_sorts:type_name -> exa.codeium_common_pb.ClientModelSort + 49, // 34: exa.codeium_common_pb.CascadeModelConfigData.default_override_model_config:type_name -> exa.codeium_common_pb.DefaultOverrideModelConfig + 14, // 35: exa.codeium_common_pb.PlanInfo.teams_tier:type_name -> exa.codeium_common_pb.TeamsTier + 79, // 36: exa.codeium_common_pb.PlanInfo.default_team_config:type_name -> exa.codeium_common_pb.TeamConfig + 88, // 37: exa.codeium_common_pb.PlanInfo.default_team_features:type_name -> exa.codeium_common_pb.PlanInfo.DefaultTeamFeaturesEntry + 54, // 38: exa.codeium_common_pb.PlanInfo.devin_info:type_name -> exa.codeium_common_pb.DevinPlanInfo + 16, // 39: exa.codeium_common_pb.PlanInfo.billing_strategy:type_name -> exa.codeium_common_pb.BillingStrategy + 55, // 40: exa.codeium_common_pb.DevinPlanInfo.request_usage_action:type_name -> exa.codeium_common_pb.DevinAcuRequestAction + 33, // 41: exa.codeium_common_pb.DevinAcuRequestAction.kind:type_name -> exa.codeium_common_pb.DevinAcuRequestAction.Kind + 22, // 42: exa.codeium_common_pb.TopUpStatus.top_up_transaction_status:type_name -> exa.codeium_common_pb.TransactionStatus + 53, // 43: exa.codeium_common_pb.PlanStatus.plan_info:type_name -> exa.codeium_common_pb.PlanInfo + 92, // 44: exa.codeium_common_pb.PlanStatus.plan_start:type_name -> google.protobuf.Timestamp + 92, // 45: exa.codeium_common_pb.PlanStatus.plan_end:type_name -> google.protobuf.Timestamp + 56, // 46: exa.codeium_common_pb.PlanStatus.top_up_status:type_name -> exa.codeium_common_pb.TopUpStatus + 23, // 47: exa.codeium_common_pb.PlanStatus.grace_period_status:type_name -> exa.codeium_common_pb.GracePeriodStatus + 92, // 48: exa.codeium_common_pb.PlanStatus.grace_period_end:type_name -> google.protobuf.Timestamp + 10, // 49: exa.codeium_common_pb.UserStatus.team_status:type_name -> exa.codeium_common_pb.UserTeamStatus + 12, // 50: exa.codeium_common_pb.UserStatus.user_features:type_name -> exa.codeium_common_pb.UserFeatures + 11, // 51: exa.codeium_common_pb.UserStatus.teams_features:type_name -> exa.codeium_common_pb.TeamsFeatures + 14, // 52: exa.codeium_common_pb.UserStatus.teams_tier:type_name -> exa.codeium_common_pb.TeamsTier + 13, // 53: exa.codeium_common_pb.UserStatus.permissions:type_name -> exa.codeium_common_pb.Permission + 57, // 54: exa.codeium_common_pb.UserStatus.plan_status:type_name -> exa.codeium_common_pb.PlanStatus + 79, // 55: exa.codeium_common_pb.UserStatus.team_config:type_name -> exa.codeium_common_pb.TeamConfig + 52, // 56: exa.codeium_common_pb.UserStatus.cascade_model_config_data:type_name -> exa.codeium_common_pb.CascadeModelConfigData + 92, // 57: exa.codeium_common_pb.UserStatus.windsurf_pro_trial_end_time:type_name -> google.protobuf.Timestamp + 60, // 58: exa.codeium_common_pb.InferenceConfig.openai:type_name -> exa.codeium_common_pb.OpenAIInferenceConfig + 61, // 59: exa.codeium_common_pb.InferenceConfig.google:type_name -> exa.codeium_common_pb.GoogleInferenceConfig + 62, // 60: exa.codeium_common_pb.InferenceConfig.anthropic:type_name -> exa.codeium_common_pb.AnthropicInferenceConfig + 63, // 61: exa.codeium_common_pb.InferenceConfig.zai:type_name -> exa.codeium_common_pb.ZaiInferenceConfig + 64, // 62: exa.codeium_common_pb.InferenceConfig.xai:type_name -> exa.codeium_common_pb.XaiInferenceConfig + 65, // 63: exa.codeium_common_pb.InferenceConfig.thinking_machines:type_name -> exa.codeium_common_pb.ThinkingMachinesInferenceConfig + 66, // 64: exa.codeium_common_pb.InferenceConfig.moonshot:type_name -> exa.codeium_common_pb.MoonshotInferenceConfig + 67, // 65: exa.codeium_common_pb.InferenceConfig.nvidia:type_name -> exa.codeium_common_pb.NvidiaInferenceConfig + 68, // 66: exa.codeium_common_pb.InferenceConfig.deepseek:type_name -> exa.codeium_common_pb.DeepSeekInferenceConfig + 5, // 67: exa.codeium_common_pb.ModelInfo.model_id:type_name -> exa.codeium_common_pb.Model + 26, // 68: exa.codeium_common_pb.ModelInfo.model_type:type_name -> exa.codeium_common_pb.ModelType + 59, // 69: exa.codeium_common_pb.ModelInfo.model_features:type_name -> exa.codeium_common_pb.ModelFeatures + 28, // 70: exa.codeium_common_pb.ModelInfo.api_provider:type_name -> exa.codeium_common_pb.APIProvider + 31, // 71: exa.codeium_common_pb.ModelInfo.prompt_templater_type:type_name -> exa.codeium_common_pb.PromptTemplaterType + 32, // 72: exa.codeium_common_pb.ModelInfo.tool_formatter_type:type_name -> exa.codeium_common_pb.ToolFormatterType + 45, // 73: exa.codeium_common_pb.ModelInfo.arena_config:type_name -> exa.codeium_common_pb.ArenaConfig + 27, // 74: exa.codeium_common_pb.ModelInfo.display_option:type_name -> exa.codeium_common_pb.DisplayOption + 69, // 75: exa.codeium_common_pb.ModelInfo.inference_config:type_name -> exa.codeium_common_pb.InferenceConfig + 20, // 76: exa.codeium_common_pb.ModelFamilyMetadataValue.control_type:type_name -> exa.codeium_common_pb.ModelFamilyDimensionControlType + 71, // 77: exa.codeium_common_pb.ModelFamilyMetadataEntry.value:type_name -> exa.codeium_common_pb.ModelFamilyMetadataValue + 72, // 78: exa.codeium_common_pb.ModelFamilyMetadata.entries:type_name -> exa.codeium_common_pb.ModelFamilyMetadataEntry + 5, // 79: exa.codeium_common_pb.ModelUsageStats.model_deprecated:type_name -> exa.codeium_common_pb.Model + 28, // 80: exa.codeium_common_pb.ModelUsageStats.api_provider:type_name -> exa.codeium_common_pb.APIProvider + 89, // 81: exa.codeium_common_pb.ModelUsageStats.response_header:type_name -> exa.codeium_common_pb.ModelUsageStats.ResponseHeaderEntry + 80, // 82: exa.codeium_common_pb.TeamConfig.allowed_mcp_servers:type_name -> exa.codeium_common_pb.McpServerConfig + 24, // 83: exa.codeium_common_pb.TeamConfig.max_cascade_auto_execution_level:type_name -> exa.codeium_common_pb.CascadeCommandsAutoExecution + 29, // 84: exa.codeium_common_pb.TeamConfig.sandbox_enforcement_mode:type_name -> exa.codeium_common_pb.SandboxEnforcementMode + 30, // 85: exa.codeium_common_pb.TeamConfig.cascade_availability:type_name -> exa.codeium_common_pb.CascadeAvailability + 81, // 86: exa.codeium_common_pb.McpServerConfig.local:type_name -> exa.codeium_common_pb.McpLocalServer + 82, // 87: exa.codeium_common_pb.McpServerConfig.remote:type_name -> exa.codeium_common_pb.McpRemoteServer + 90, // 88: exa.codeium_common_pb.McpLocalServer.env:type_name -> exa.codeium_common_pb.McpLocalServer.EnvEntry + 91, // 89: exa.codeium_common_pb.McpRemoteServer.headers:type_name -> exa.codeium_common_pb.McpRemoteServer.HeadersEntry + 84, // 90: exa.codeium_common_pb.ResponseDimensionGroup.dimensions:type_name -> exa.codeium_common_pb.ResponseDimension + 85, // 91: exa.codeium_common_pb.ResponseDimension.copyable_code:type_name -> exa.codeium_common_pb.ResponseDimensionCopyableCode + 86, // 92: exa.codeium_common_pb.ResponseDimension.metric:type_name -> exa.codeium_common_pb.ResponseDimensionMetric + 87, // 93: exa.codeium_common_pb.ResponseDimension.cumulative_metric:type_name -> exa.codeium_common_pb.ResponseDimensionCumulativeMetric + 42, // 94: exa.codeium_common_pb.PlanInfo.DefaultTeamFeaturesEntry.value:type_name -> exa.codeium_common_pb.TeamsFeaturesMetadata + 95, // [95:95] is the sub-list for method output_type + 95, // [95:95] is the sub-list for method input_type + 95, // [95:95] is the sub-list for extension type_name + 95, // [95:95] is the sub-list for extension extendee + 0, // [0:95] is the sub-list for field type_name +} + +func init() { file_exa_codeium_common_pb_codeium_common_proto_init() } +func file_exa_codeium_common_pb_codeium_common_proto_init() { + if File_exa_codeium_common_pb_codeium_common_proto != nil { + return + } + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[2].OneofWrappers = []any{ + (*ExperimentWithVariant_String_)(nil), + (*ExperimentWithVariant_Json)(nil), + (*ExperimentWithVariant_Csv)(nil), + } + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[4].OneofWrappers = []any{ + (*ModelOrAlias_Model)(nil), + (*ModelOrAlias_Alias)(nil), + (*ModelOrAlias_ModelUid)(nil), + } + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[6].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[12].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[13].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[14].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[16].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[18].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[20].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[23].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[35].OneofWrappers = []any{ + (*InferenceConfig_Openai)(nil), + (*InferenceConfig_Google)(nil), + (*InferenceConfig_Anthropic)(nil), + (*InferenceConfig_Zai)(nil), + (*InferenceConfig_Xai)(nil), + (*InferenceConfig_ThinkingMachines)(nil), + (*InferenceConfig_Moonshot)(nil), + (*InferenceConfig_Nvidia)(nil), + (*InferenceConfig_Deepseek)(nil), + } + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[36].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[45].OneofWrappers = []any{} + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[46].OneofWrappers = []any{ + (*McpServerConfig_Local)(nil), + (*McpServerConfig_Remote)(nil), + } + file_exa_codeium_common_pb_codeium_common_proto_msgTypes[50].OneofWrappers = []any{ + (*ResponseDimension_CopyableCode)(nil), + (*ResponseDimension_Metric)(nil), + (*ResponseDimension_CumulativeMetric)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_exa_codeium_common_pb_codeium_common_proto_rawDesc), len(file_exa_codeium_common_pb_codeium_common_proto_rawDesc)), + NumEnums: 34, + NumMessages: 58, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_exa_codeium_common_pb_codeium_common_proto_goTypes, + DependencyIndexes: file_exa_codeium_common_pb_codeium_common_proto_depIdxs, + EnumInfos: file_exa_codeium_common_pb_codeium_common_proto_enumTypes, + MessageInfos: file_exa_codeium_common_pb_codeium_common_proto_msgTypes, + }.Build() + File_exa_codeium_common_pb_codeium_common_proto = out.File + file_exa_codeium_common_pb_codeium_common_proto_goTypes = nil + file_exa_codeium_common_pb_codeium_common_proto_depIdxs = nil +} diff --git a/internal/providers/devin/devinpb/cortex_pb/cortex.pb.go b/internal/providers/devin/devinpb/cortex_pb/cortex.pb.go new file mode 100644 index 0000000..73b26a0 --- /dev/null +++ b/internal/providers/devin/devinpb/cortex_pb/cortex.pb.go @@ -0,0 +1,695 @@ +// Devin Desktop 3.10.31, linux-x64: https://windsurf-stable.codeiumdata.com/linux-x64/stable/b98cc43128712ba73c60cca73876f58a710aaa27/Devin-linux-x64-3.10.31.tar.gz +// Archive SHA256 (locally calculated): b3ddf1098c11255354d60a0778d7033989eaed85a37bbd55df90167f42eb5346 +// Language server SHA256: aced58234bf6fac9cf5b65d9286e971d697b0a60baaee0a812ff0312dffb88de +// Extracted descriptor set SHA256: 9877811de3bc8055852f94aabd7c7affb3964c30f66c43b0cbcd49753abe211d +// Regenerate: bash scripts/update-devin-proto.sh --version 3.10.31 +// Recovered from Desktop, not an official proto source release or a CLI compatibility guarantee. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.10 +// protoc v7.34.1 +// source: exa/cortex_pb/cortex.proto + +package cortex_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 CortexTrajectoryType int32 + +const ( + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_UNSPECIFIED CortexTrajectoryType = 0 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_USER_MAINLINE CortexTrajectoryType = 1 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_USER_GRANULAR CortexTrajectoryType = 2 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_SUPERCOMPLETE CortexTrajectoryType = 3 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_CASCADE CortexTrajectoryType = 4 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_BACKGROUND_RESEARCH CortexTrajectoryType = 5 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_CHECKPOINT CortexTrajectoryType = 6 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_RETRIEVE_MEMORY CortexTrajectoryType = 7 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_CUSTOM_TOOL CortexTrajectoryType = 8 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_AUTO_CASCADE CortexTrajectoryType = 9 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_AUTO_CASCADE_MANAGER CortexTrajectoryType = 10 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_APPLIER CortexTrajectoryType = 11 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_TOOL_CALL_PROPOSAL CortexTrajectoryType = 12 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_TRAJECTORY_CHOICE CortexTrajectoryType = 13 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_LLM_JUDGE CortexTrajectoryType = 14 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_ARTIFACT_SUMMARY CortexTrajectoryType = 19 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_PASSIVE_CODER CortexTrajectoryType = 15 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_INTERACTIVE_CASCADE CortexTrajectoryType = 17 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_BRAIN_UPDATE CortexTrajectoryType = 16 + CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_AI_GATEWAY CortexTrajectoryType = 22 +) + +// Enum value maps for CortexTrajectoryType. +var ( + CortexTrajectoryType_name = map[int32]string{ + 0: "CORTEX_TRAJECTORY_TYPE_UNSPECIFIED", + 1: "CORTEX_TRAJECTORY_TYPE_USER_MAINLINE", + 2: "CORTEX_TRAJECTORY_TYPE_USER_GRANULAR", + 3: "CORTEX_TRAJECTORY_TYPE_SUPERCOMPLETE", + 4: "CORTEX_TRAJECTORY_TYPE_CASCADE", + 5: "CORTEX_TRAJECTORY_TYPE_BACKGROUND_RESEARCH", + 6: "CORTEX_TRAJECTORY_TYPE_CHECKPOINT", + 7: "CORTEX_TRAJECTORY_TYPE_RETRIEVE_MEMORY", + 8: "CORTEX_TRAJECTORY_TYPE_CUSTOM_TOOL", + 9: "CORTEX_TRAJECTORY_TYPE_AUTO_CASCADE", + 10: "CORTEX_TRAJECTORY_TYPE_AUTO_CASCADE_MANAGER", + 11: "CORTEX_TRAJECTORY_TYPE_APPLIER", + 12: "CORTEX_TRAJECTORY_TYPE_TOOL_CALL_PROPOSAL", + 13: "CORTEX_TRAJECTORY_TYPE_TRAJECTORY_CHOICE", + 14: "CORTEX_TRAJECTORY_TYPE_LLM_JUDGE", + 19: "CORTEX_TRAJECTORY_TYPE_ARTIFACT_SUMMARY", + 15: "CORTEX_TRAJECTORY_TYPE_PASSIVE_CODER", + 17: "CORTEX_TRAJECTORY_TYPE_INTERACTIVE_CASCADE", + 16: "CORTEX_TRAJECTORY_TYPE_BRAIN_UPDATE", + 22: "CORTEX_TRAJECTORY_TYPE_AI_GATEWAY", + } + CortexTrajectoryType_value = map[string]int32{ + "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_BACKGROUND_RESEARCH": 5, + "CORTEX_TRAJECTORY_TYPE_CHECKPOINT": 6, + "CORTEX_TRAJECTORY_TYPE_RETRIEVE_MEMORY": 7, + "CORTEX_TRAJECTORY_TYPE_CUSTOM_TOOL": 8, + "CORTEX_TRAJECTORY_TYPE_AUTO_CASCADE": 9, + "CORTEX_TRAJECTORY_TYPE_AUTO_CASCADE_MANAGER": 10, + "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_ARTIFACT_SUMMARY": 19, + "CORTEX_TRAJECTORY_TYPE_PASSIVE_CODER": 15, + "CORTEX_TRAJECTORY_TYPE_INTERACTIVE_CASCADE": 17, + "CORTEX_TRAJECTORY_TYPE_BRAIN_UPDATE": 16, + "CORTEX_TRAJECTORY_TYPE_AI_GATEWAY": 22, + } +) + +func (x CortexTrajectoryType) Enum() *CortexTrajectoryType { + p := new(CortexTrajectoryType) + *p = x + return p +} + +func (x CortexTrajectoryType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CortexTrajectoryType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_cortex_pb_cortex_proto_enumTypes[0].Descriptor() +} + +func (CortexTrajectoryType) Type() protoreflect.EnumType { + return &file_exa_cortex_pb_cortex_proto_enumTypes[0] +} + +func (x CortexTrajectoryType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CortexTrajectoryType.Descriptor instead. +func (CortexTrajectoryType) EnumDescriptor() ([]byte, []int) { + return file_exa_cortex_pb_cortex_proto_rawDescGZIP(), []int{0} +} + +type CortexStepType int32 + +const ( + CortexStepType_CORTEX_STEP_TYPE_UNSPECIFIED CortexStepType = 0 + CortexStepType_CORTEX_STEP_TYPE_DUMMY CortexStepType = 1 + CortexStepType_CORTEX_STEP_TYPE_FINISH CortexStepType = 2 + CortexStepType_CORTEX_STEP_TYPE_PLAN_INPUT CortexStepType = 3 + CortexStepType_CORTEX_STEP_TYPE_MQUERY CortexStepType = 4 + CortexStepType_CORTEX_STEP_TYPE_CODE_ACTION CortexStepType = 5 + CortexStepType_CORTEX_STEP_TYPE_GIT_COMMIT CortexStepType = 6 + CortexStepType_CORTEX_STEP_TYPE_GREP_SEARCH CortexStepType = 7 + CortexStepType_CORTEX_STEP_TYPE_VIEW_FILE CortexStepType = 8 + CortexStepType_CORTEX_STEP_TYPE_LIST_DIRECTORY CortexStepType = 9 + CortexStepType_CORTEX_STEP_TYPE_COMPILE CortexStepType = 10 + CortexStepType_CORTEX_STEP_TYPE_INFORM CortexStepType = 11 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_FILE_BREAKDOWN CortexStepType = 12 + CortexStepType_CORTEX_STEP_TYPE_VIEW_CODE_ITEM CortexStepType = 13 + CortexStepType_CORTEX_STEP_TYPE_USER_INPUT CortexStepType = 14 + CortexStepType_CORTEX_STEP_TYPE_PLANNER_RESPONSE CortexStepType = 15 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_WRITE_TO_FILE CortexStepType = 16 + CortexStepType_CORTEX_STEP_TYPE_ERROR_MESSAGE CortexStepType = 17 + CortexStepType_CORTEX_STEP_TYPE_CLUSTER_QUERY CortexStepType = 18 + CortexStepType_CORTEX_STEP_TYPE_LIST_CLUSTERS CortexStepType = 19 + CortexStepType_CORTEX_STEP_TYPE_INSPECT_CLUSTER CortexStepType = 20 + CortexStepType_CORTEX_STEP_TYPE_RUN_COMMAND CortexStepType = 21 + CortexStepType_CORTEX_STEP_TYPE_RELATED_FILES CortexStepType = 22 + CortexStepType_CORTEX_STEP_TYPE_CHECKPOINT CortexStepType = 23 + CortexStepType_CORTEX_STEP_TYPE_PROPOSE_CODE CortexStepType = 24 + CortexStepType_CORTEX_STEP_TYPE_FIND CortexStepType = 25 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_SEARCH_KNOWLEDGE_BASE CortexStepType = 26 + CortexStepType_CORTEX_STEP_TYPE_SUGGESTED_RESPONSES CortexStepType = 27 + CortexStepType_CORTEX_STEP_TYPE_COMMAND_STATUS CortexStepType = 28 + CortexStepType_CORTEX_STEP_TYPE_MEMORY CortexStepType = 29 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_LOOKUP_KNOWLEDGE_BASE CortexStepType = 30 + CortexStepType_CORTEX_STEP_TYPE_READ_URL_CONTENT CortexStepType = 31 + CortexStepType_CORTEX_STEP_TYPE_VIEW_CONTENT_CHUNK CortexStepType = 32 + CortexStepType_CORTEX_STEP_TYPE_SEARCH_WEB CortexStepType = 33 + CortexStepType_CORTEX_STEP_TYPE_RETRIEVE_MEMORY CortexStepType = 34 + CortexStepType_CORTEX_STEP_TYPE_AUTO_CASCADE_BROADCAST CortexStepType = 35 + CortexStepType_CORTEX_STEP_TYPE_CUSTOM_TOOL CortexStepType = 36 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_CREATE_RECIPE CortexStepType = 37 + CortexStepType_CORTEX_STEP_TYPE_MCP_TOOL CortexStepType = 38 + CortexStepType_CORTEX_STEP_TYPE_MANAGER_FEEDBACK CortexStepType = 39 + CortexStepType_CORTEX_STEP_TYPE_TOOL_CALL_PROPOSAL CortexStepType = 40 + CortexStepType_CORTEX_STEP_TYPE_TOOL_CALL_CHOICE CortexStepType = 41 + CortexStepType_CORTEX_STEP_TYPE_TRAJECTORY_CHOICE CortexStepType = 42 + CortexStepType_CORTEX_STEP_TYPE_PROXY_WEB_SERVER CortexStepType = 43 + CortexStepType_CORTEX_STEP_TYPE_DEPLOY_WEB_APP CortexStepType = 44 + CortexStepType_CORTEX_STEP_TYPE_CLIPBOARD CortexStepType = 45 + CortexStepType_CORTEX_STEP_TYPE_READ_DEPLOYMENT_CONFIG CortexStepType = 46 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_VIEW_FILE_OUTLINE CortexStepType = 47 + CortexStepType_CORTEX_STEP_TYPE_CHECK_DEPLOY_STATUS CortexStepType = 48 + CortexStepType_CORTEX_STEP_TYPE_POST_PR_REVIEW CortexStepType = 49 + CortexStepType_CORTEX_STEP_TYPE_READ_KNOWLEDGE_BASE_ITEM CortexStepType = 50 + CortexStepType_CORTEX_STEP_TYPE_LIST_RESOURCES CortexStepType = 51 + CortexStepType_CORTEX_STEP_TYPE_READ_RESOURCE CortexStepType = 52 + CortexStepType_CORTEX_STEP_TYPE_LINT_DIFF CortexStepType = 53 + CortexStepType_CORTEX_STEP_TYPE_FIND_ALL_REFERENCES CortexStepType = 54 + CortexStepType_CORTEX_STEP_TYPE_BRAIN_UPDATE CortexStepType = 55 + CortexStepType_CORTEX_STEP_TYPE_RUN_EXTENSION_CODE CortexStepType = 57 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_ADD_ANNOTATION CortexStepType = 58 + CortexStepType_CORTEX_STEP_TYPE_PROPOSAL_FEEDBACK CortexStepType = 59 + CortexStepType_CORTEX_STEP_TYPE_TRAJECTORY_SEARCH CortexStepType = 60 + CortexStepType_CORTEX_STEP_TYPE_READ_TERMINAL CortexStepType = 65 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_GET_DOM_TREE CortexStepType = 68 + // Deprecated: Marked as deprecated in exa/cortex_pb/cortex.proto. + CortexStepType_CORTEX_STEP_TYPE_ARTIFACT_SUMMARY CortexStepType = 71 + CortexStepType_CORTEX_STEP_TYPE_RESOLVE_TASK CortexStepType = 72 + CortexStepType_CORTEX_STEP_TYPE_TODO_LIST CortexStepType = 73 + CortexStepType_CORTEX_STEP_TYPE_BLOCKING CortexStepType = 74 + CortexStepType_CORTEX_STEP_TYPE_EXPLORE_RESPONSE CortexStepType = 80 + CortexStepType_CORTEX_STEP_TYPE_READ_NOTEBOOK CortexStepType = 82 + CortexStepType_CORTEX_STEP_TYPE_EDIT_NOTEBOOK CortexStepType = 83 + CortexStepType_CORTEX_STEP_TYPE_SUPERCOMPLETE_ACTIVE_DOC CortexStepType = 86 + CortexStepType_CORTEX_STEP_TYPE_FIND_CODE_CONTEXT CortexStepType = 87 + CortexStepType_CORTEX_STEP_TYPE_SUPERCOMPLETE_FEEDBACK CortexStepType = 89 + CortexStepType_CORTEX_STEP_TYPE_LINT_FIX_MESSAGE CortexStepType = 90 + CortexStepType_CORTEX_STEP_TYPE_GREP_SEARCH_V2 CortexStepType = 91 + CortexStepType_CORTEX_STEP_TYPE_UPSERT_CODEMAP CortexStepType = 92 + CortexStepType_CORTEX_STEP_TYPE_SUGGEST_CODEMAP CortexStepType = 93 + CortexStepType_CORTEX_STEP_TYPE_SMART_FRIEND CortexStepType = 94 + CortexStepType_CORTEX_STEP_TYPE_DO_TESTING CortexStepType = 95 + CortexStepType_CORTEX_STEP_TYPE_REPORT_BUGS CortexStepType = 97 + CortexStepType_CORTEX_STEP_TYPE_EXIT_PLAN_MODE CortexStepType = 99 + CortexStepType_CORTEX_STEP_TYPE_ASK_USER_QUESTION CortexStepType = 100 + CortexStepType_CORTEX_STEP_TYPE_SKILL CortexStepType = 101 + CortexStepType_CORTEX_STEP_TYPE_SUPERCOMPLETE_EPHEMERAL_FEEDBACK CortexStepType = 102 + CortexStepType_CORTEX_STEP_TYPE_ARENA_TRAJECTORY_CONVERGE CortexStepType = 103 + CortexStepType_CORTEX_STEP_TYPE_TASK_SUBAGENT CortexStepType = 104 + CortexStepType_CORTEX_STEP_TYPE_LIST_MEMORIES CortexStepType = 105 + CortexStepType_CORTEX_STEP_TYPE_AI_GATEWAY CortexStepType = 106 +) + +// Enum value maps for CortexStepType. +var ( + CortexStepType_name = map[int32]string{ + 0: "CORTEX_STEP_TYPE_UNSPECIFIED", + 1: "CORTEX_STEP_TYPE_DUMMY", + 2: "CORTEX_STEP_TYPE_FINISH", + 3: "CORTEX_STEP_TYPE_PLAN_INPUT", + 4: "CORTEX_STEP_TYPE_MQUERY", + 5: "CORTEX_STEP_TYPE_CODE_ACTION", + 6: "CORTEX_STEP_TYPE_GIT_COMMIT", + 7: "CORTEX_STEP_TYPE_GREP_SEARCH", + 8: "CORTEX_STEP_TYPE_VIEW_FILE", + 9: "CORTEX_STEP_TYPE_LIST_DIRECTORY", + 10: "CORTEX_STEP_TYPE_COMPILE", + 11: "CORTEX_STEP_TYPE_INFORM", + 12: "CORTEX_STEP_TYPE_FILE_BREAKDOWN", + 13: "CORTEX_STEP_TYPE_VIEW_CODE_ITEM", + 14: "CORTEX_STEP_TYPE_USER_INPUT", + 15: "CORTEX_STEP_TYPE_PLANNER_RESPONSE", + 16: "CORTEX_STEP_TYPE_WRITE_TO_FILE", + 17: "CORTEX_STEP_TYPE_ERROR_MESSAGE", + 18: "CORTEX_STEP_TYPE_CLUSTER_QUERY", + 19: "CORTEX_STEP_TYPE_LIST_CLUSTERS", + 20: "CORTEX_STEP_TYPE_INSPECT_CLUSTER", + 21: "CORTEX_STEP_TYPE_RUN_COMMAND", + 22: "CORTEX_STEP_TYPE_RELATED_FILES", + 23: "CORTEX_STEP_TYPE_CHECKPOINT", + 24: "CORTEX_STEP_TYPE_PROPOSE_CODE", + 25: "CORTEX_STEP_TYPE_FIND", + 26: "CORTEX_STEP_TYPE_SEARCH_KNOWLEDGE_BASE", + 27: "CORTEX_STEP_TYPE_SUGGESTED_RESPONSES", + 28: "CORTEX_STEP_TYPE_COMMAND_STATUS", + 29: "CORTEX_STEP_TYPE_MEMORY", + 30: "CORTEX_STEP_TYPE_LOOKUP_KNOWLEDGE_BASE", + 31: "CORTEX_STEP_TYPE_READ_URL_CONTENT", + 32: "CORTEX_STEP_TYPE_VIEW_CONTENT_CHUNK", + 33: "CORTEX_STEP_TYPE_SEARCH_WEB", + 34: "CORTEX_STEP_TYPE_RETRIEVE_MEMORY", + 35: "CORTEX_STEP_TYPE_AUTO_CASCADE_BROADCAST", + 36: "CORTEX_STEP_TYPE_CUSTOM_TOOL", + 37: "CORTEX_STEP_TYPE_CREATE_RECIPE", + 38: "CORTEX_STEP_TYPE_MCP_TOOL", + 39: "CORTEX_STEP_TYPE_MANAGER_FEEDBACK", + 40: "CORTEX_STEP_TYPE_TOOL_CALL_PROPOSAL", + 41: "CORTEX_STEP_TYPE_TOOL_CALL_CHOICE", + 42: "CORTEX_STEP_TYPE_TRAJECTORY_CHOICE", + 43: "CORTEX_STEP_TYPE_PROXY_WEB_SERVER", + 44: "CORTEX_STEP_TYPE_DEPLOY_WEB_APP", + 45: "CORTEX_STEP_TYPE_CLIPBOARD", + 46: "CORTEX_STEP_TYPE_READ_DEPLOYMENT_CONFIG", + 47: "CORTEX_STEP_TYPE_VIEW_FILE_OUTLINE", + 48: "CORTEX_STEP_TYPE_CHECK_DEPLOY_STATUS", + 49: "CORTEX_STEP_TYPE_POST_PR_REVIEW", + 50: "CORTEX_STEP_TYPE_READ_KNOWLEDGE_BASE_ITEM", + 51: "CORTEX_STEP_TYPE_LIST_RESOURCES", + 52: "CORTEX_STEP_TYPE_READ_RESOURCE", + 53: "CORTEX_STEP_TYPE_LINT_DIFF", + 54: "CORTEX_STEP_TYPE_FIND_ALL_REFERENCES", + 55: "CORTEX_STEP_TYPE_BRAIN_UPDATE", + 57: "CORTEX_STEP_TYPE_RUN_EXTENSION_CODE", + 58: "CORTEX_STEP_TYPE_ADD_ANNOTATION", + 59: "CORTEX_STEP_TYPE_PROPOSAL_FEEDBACK", + 60: "CORTEX_STEP_TYPE_TRAJECTORY_SEARCH", + 65: "CORTEX_STEP_TYPE_READ_TERMINAL", + 68: "CORTEX_STEP_TYPE_GET_DOM_TREE", + 71: "CORTEX_STEP_TYPE_ARTIFACT_SUMMARY", + 72: "CORTEX_STEP_TYPE_RESOLVE_TASK", + 73: "CORTEX_STEP_TYPE_TODO_LIST", + 74: "CORTEX_STEP_TYPE_BLOCKING", + 80: "CORTEX_STEP_TYPE_EXPLORE_RESPONSE", + 82: "CORTEX_STEP_TYPE_READ_NOTEBOOK", + 83: "CORTEX_STEP_TYPE_EDIT_NOTEBOOK", + 86: "CORTEX_STEP_TYPE_SUPERCOMPLETE_ACTIVE_DOC", + 87: "CORTEX_STEP_TYPE_FIND_CODE_CONTEXT", + 89: "CORTEX_STEP_TYPE_SUPERCOMPLETE_FEEDBACK", + 90: "CORTEX_STEP_TYPE_LINT_FIX_MESSAGE", + 91: "CORTEX_STEP_TYPE_GREP_SEARCH_V2", + 92: "CORTEX_STEP_TYPE_UPSERT_CODEMAP", + 93: "CORTEX_STEP_TYPE_SUGGEST_CODEMAP", + 94: "CORTEX_STEP_TYPE_SMART_FRIEND", + 95: "CORTEX_STEP_TYPE_DO_TESTING", + 97: "CORTEX_STEP_TYPE_REPORT_BUGS", + 99: "CORTEX_STEP_TYPE_EXIT_PLAN_MODE", + 100: "CORTEX_STEP_TYPE_ASK_USER_QUESTION", + 101: "CORTEX_STEP_TYPE_SKILL", + 102: "CORTEX_STEP_TYPE_SUPERCOMPLETE_EPHEMERAL_FEEDBACK", + 103: "CORTEX_STEP_TYPE_ARENA_TRAJECTORY_CONVERGE", + 104: "CORTEX_STEP_TYPE_TASK_SUBAGENT", + 105: "CORTEX_STEP_TYPE_LIST_MEMORIES", + 106: "CORTEX_STEP_TYPE_AI_GATEWAY", + } + CortexStepType_value = map[string]int32{ + "CORTEX_STEP_TYPE_UNSPECIFIED": 0, + "CORTEX_STEP_TYPE_DUMMY": 1, + "CORTEX_STEP_TYPE_FINISH": 2, + "CORTEX_STEP_TYPE_PLAN_INPUT": 3, + "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_VIEW_FILE": 8, + "CORTEX_STEP_TYPE_LIST_DIRECTORY": 9, + "CORTEX_STEP_TYPE_COMPILE": 10, + "CORTEX_STEP_TYPE_INFORM": 11, + "CORTEX_STEP_TYPE_FILE_BREAKDOWN": 12, + "CORTEX_STEP_TYPE_VIEW_CODE_ITEM": 13, + "CORTEX_STEP_TYPE_USER_INPUT": 14, + "CORTEX_STEP_TYPE_PLANNER_RESPONSE": 15, + "CORTEX_STEP_TYPE_WRITE_TO_FILE": 16, + "CORTEX_STEP_TYPE_ERROR_MESSAGE": 17, + "CORTEX_STEP_TYPE_CLUSTER_QUERY": 18, + "CORTEX_STEP_TYPE_LIST_CLUSTERS": 19, + "CORTEX_STEP_TYPE_INSPECT_CLUSTER": 20, + "CORTEX_STEP_TYPE_RUN_COMMAND": 21, + "CORTEX_STEP_TYPE_RELATED_FILES": 22, + "CORTEX_STEP_TYPE_CHECKPOINT": 23, + "CORTEX_STEP_TYPE_PROPOSE_CODE": 24, + "CORTEX_STEP_TYPE_FIND": 25, + "CORTEX_STEP_TYPE_SEARCH_KNOWLEDGE_BASE": 26, + "CORTEX_STEP_TYPE_SUGGESTED_RESPONSES": 27, + "CORTEX_STEP_TYPE_COMMAND_STATUS": 28, + "CORTEX_STEP_TYPE_MEMORY": 29, + "CORTEX_STEP_TYPE_LOOKUP_KNOWLEDGE_BASE": 30, + "CORTEX_STEP_TYPE_READ_URL_CONTENT": 31, + "CORTEX_STEP_TYPE_VIEW_CONTENT_CHUNK": 32, + "CORTEX_STEP_TYPE_SEARCH_WEB": 33, + "CORTEX_STEP_TYPE_RETRIEVE_MEMORY": 34, + "CORTEX_STEP_TYPE_AUTO_CASCADE_BROADCAST": 35, + "CORTEX_STEP_TYPE_CUSTOM_TOOL": 36, + "CORTEX_STEP_TYPE_CREATE_RECIPE": 37, + "CORTEX_STEP_TYPE_MCP_TOOL": 38, + "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_PROXY_WEB_SERVER": 43, + "CORTEX_STEP_TYPE_DEPLOY_WEB_APP": 44, + "CORTEX_STEP_TYPE_CLIPBOARD": 45, + "CORTEX_STEP_TYPE_READ_DEPLOYMENT_CONFIG": 46, + "CORTEX_STEP_TYPE_VIEW_FILE_OUTLINE": 47, + "CORTEX_STEP_TYPE_CHECK_DEPLOY_STATUS": 48, + "CORTEX_STEP_TYPE_POST_PR_REVIEW": 49, + "CORTEX_STEP_TYPE_READ_KNOWLEDGE_BASE_ITEM": 50, + "CORTEX_STEP_TYPE_LIST_RESOURCES": 51, + "CORTEX_STEP_TYPE_READ_RESOURCE": 52, + "CORTEX_STEP_TYPE_LINT_DIFF": 53, + "CORTEX_STEP_TYPE_FIND_ALL_REFERENCES": 54, + "CORTEX_STEP_TYPE_BRAIN_UPDATE": 55, + "CORTEX_STEP_TYPE_RUN_EXTENSION_CODE": 57, + "CORTEX_STEP_TYPE_ADD_ANNOTATION": 58, + "CORTEX_STEP_TYPE_PROPOSAL_FEEDBACK": 59, + "CORTEX_STEP_TYPE_TRAJECTORY_SEARCH": 60, + "CORTEX_STEP_TYPE_READ_TERMINAL": 65, + "CORTEX_STEP_TYPE_GET_DOM_TREE": 68, + "CORTEX_STEP_TYPE_ARTIFACT_SUMMARY": 71, + "CORTEX_STEP_TYPE_RESOLVE_TASK": 72, + "CORTEX_STEP_TYPE_TODO_LIST": 73, + "CORTEX_STEP_TYPE_BLOCKING": 74, + "CORTEX_STEP_TYPE_EXPLORE_RESPONSE": 80, + "CORTEX_STEP_TYPE_READ_NOTEBOOK": 82, + "CORTEX_STEP_TYPE_EDIT_NOTEBOOK": 83, + "CORTEX_STEP_TYPE_SUPERCOMPLETE_ACTIVE_DOC": 86, + "CORTEX_STEP_TYPE_FIND_CODE_CONTEXT": 87, + "CORTEX_STEP_TYPE_SUPERCOMPLETE_FEEDBACK": 89, + "CORTEX_STEP_TYPE_LINT_FIX_MESSAGE": 90, + "CORTEX_STEP_TYPE_GREP_SEARCH_V2": 91, + "CORTEX_STEP_TYPE_UPSERT_CODEMAP": 92, + "CORTEX_STEP_TYPE_SUGGEST_CODEMAP": 93, + "CORTEX_STEP_TYPE_SMART_FRIEND": 94, + "CORTEX_STEP_TYPE_DO_TESTING": 95, + "CORTEX_STEP_TYPE_REPORT_BUGS": 97, + "CORTEX_STEP_TYPE_EXIT_PLAN_MODE": 99, + "CORTEX_STEP_TYPE_ASK_USER_QUESTION": 100, + "CORTEX_STEP_TYPE_SKILL": 101, + "CORTEX_STEP_TYPE_SUPERCOMPLETE_EPHEMERAL_FEEDBACK": 102, + "CORTEX_STEP_TYPE_ARENA_TRAJECTORY_CONVERGE": 103, + "CORTEX_STEP_TYPE_TASK_SUBAGENT": 104, + "CORTEX_STEP_TYPE_LIST_MEMORIES": 105, + "CORTEX_STEP_TYPE_AI_GATEWAY": 106, + } +) + +func (x CortexStepType) Enum() *CortexStepType { + p := new(CortexStepType) + *p = x + return p +} + +func (x CortexStepType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CortexStepType) Descriptor() protoreflect.EnumDescriptor { + return file_exa_cortex_pb_cortex_proto_enumTypes[1].Descriptor() +} + +func (CortexStepType) Type() protoreflect.EnumType { + return &file_exa_cortex_pb_cortex_proto_enumTypes[1] +} + +func (x CortexStepType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CortexStepType.Descriptor instead. +func (CortexStepType) EnumDescriptor() ([]byte, []int) { + return file_exa_cortex_pb_cortex_proto_rawDescGZIP(), []int{1} +} + +type CortexTrajectoryReference struct { + state protoimpl.MessageState `protogen:"open.v1"` + TrajectoryId string `protobuf:"bytes,1,opt,name=trajectory_id,json=trajectoryId,proto3" json:"trajectory_id,omitempty"` + TrajectoryType CortexTrajectoryType `protobuf:"varint,3,opt,name=trajectory_type,json=trajectoryType,proto3,enum=exa.cortex_pb.CortexTrajectoryType" json:"trajectory_type,omitempty"` + StepIndex int32 `protobuf:"varint,2,opt,name=step_index,json=stepIndex,proto3" json:"step_index,omitempty"` + StepType CortexStepType `protobuf:"varint,4,opt,name=step_type,json=stepType,proto3,enum=exa.cortex_pb.CortexStepType" json:"step_type,omitempty"` + ForceBillable bool `protobuf:"varint,5,opt,name=force_billable,json=forceBillable,proto3" json:"force_billable,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CortexTrajectoryReference) Reset() { + *x = CortexTrajectoryReference{} + mi := &file_exa_cortex_pb_cortex_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CortexTrajectoryReference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CortexTrajectoryReference) ProtoMessage() {} + +func (x *CortexTrajectoryReference) ProtoReflect() protoreflect.Message { + mi := &file_exa_cortex_pb_cortex_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 CortexTrajectoryReference.ProtoReflect.Descriptor instead. +func (*CortexTrajectoryReference) Descriptor() ([]byte, []int) { + return file_exa_cortex_pb_cortex_proto_rawDescGZIP(), []int{0} +} + +func (x *CortexTrajectoryReference) GetTrajectoryId() string { + if x != nil { + return x.TrajectoryId + } + return "" +} + +func (x *CortexTrajectoryReference) GetTrajectoryType() CortexTrajectoryType { + if x != nil { + return x.TrajectoryType + } + return CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_UNSPECIFIED +} + +func (x *CortexTrajectoryReference) GetStepIndex() int32 { + if x != nil { + return x.StepIndex + } + return 0 +} + +func (x *CortexTrajectoryReference) GetStepType() CortexStepType { + if x != nil { + return x.StepType + } + return CortexStepType_CORTEX_STEP_TYPE_UNSPECIFIED +} + +func (x *CortexTrajectoryReference) GetForceBillable() bool { + if x != nil { + return x.ForceBillable + } + return false +} + +var File_exa_cortex_pb_cortex_proto protoreflect.FileDescriptor + +const file_exa_cortex_pb_cortex_proto_rawDesc = "" + + "\n" + + "\x1aexa/cortex_pb/cortex.proto\x12\rexa.cortex_pb\"\x90\x02\n" + + "\x19CortexTrajectoryReference\x12#\n" + + "\rtrajectory_id\x18\x01 \x01(\tR\ftrajectoryId\x12L\n" + + "\x0ftrajectory_type\x18\x03 \x01(\x0e2#.exa.cortex_pb.CortexTrajectoryTypeR\x0etrajectoryType\x12\x1d\n" + + "\n" + + "step_index\x18\x02 \x01(\x05R\tstepIndex\x12:\n" + + "\tstep_type\x18\x04 \x01(\x0e2\x1d.exa.cortex_pb.CortexStepTypeR\bstepType\x12%\n" + + "\x0eforce_billable\x18\x05 \x01(\bR\rforceBillable*\xeb\a\n" + + "\x14CortexTrajectoryType\x12&\n" + + "\"CORTEX_TRAJECTORY_TYPE_UNSPECIFIED\x10\x00\x12(\n" + + "$CORTEX_TRAJECTORY_TYPE_USER_MAINLINE\x10\x01\x12(\n" + + "$CORTEX_TRAJECTORY_TYPE_USER_GRANULAR\x10\x02\x12(\n" + + "$CORTEX_TRAJECTORY_TYPE_SUPERCOMPLETE\x10\x03\x12\"\n" + + "\x1eCORTEX_TRAJECTORY_TYPE_CASCADE\x10\x04\x122\n" + + "*CORTEX_TRAJECTORY_TYPE_BACKGROUND_RESEARCH\x10\x05\x1a\x02\b\x01\x12%\n" + + "!CORTEX_TRAJECTORY_TYPE_CHECKPOINT\x10\x06\x12*\n" + + "&CORTEX_TRAJECTORY_TYPE_RETRIEVE_MEMORY\x10\a\x12&\n" + + "\"CORTEX_TRAJECTORY_TYPE_CUSTOM_TOOL\x10\b\x12'\n" + + "#CORTEX_TRAJECTORY_TYPE_AUTO_CASCADE\x10\t\x12/\n" + + "+CORTEX_TRAJECTORY_TYPE_AUTO_CASCADE_MANAGER\x10\n" + + "\x12\"\n" + + "\x1eCORTEX_TRAJECTORY_TYPE_APPLIER\x10\v\x12-\n" + + ")CORTEX_TRAJECTORY_TYPE_TOOL_CALL_PROPOSAL\x10\f\x12,\n" + + "(CORTEX_TRAJECTORY_TYPE_TRAJECTORY_CHOICE\x10\r\x12$\n" + + " CORTEX_TRAJECTORY_TYPE_LLM_JUDGE\x10\x0e\x12/\n" + + "'CORTEX_TRAJECTORY_TYPE_ARTIFACT_SUMMARY\x10\x13\x1a\x02\b\x01\x12(\n" + + "$CORTEX_TRAJECTORY_TYPE_PASSIVE_CODER\x10\x0f\x12.\n" + + "*CORTEX_TRAJECTORY_TYPE_INTERACTIVE_CASCADE\x10\x11\x12'\n" + + "#CORTEX_TRAJECTORY_TYPE_BRAIN_UPDATE\x10\x10\x12%\n" + + "!CORTEX_TRAJECTORY_TYPE_AI_GATEWAY\x10\x16\"\x04\b\x12\x10\x12\"\x04\b\x14\x10\x14\"\x04\b\x15\x10\x15*!CORTEX_TRAJECTORY_TYPE_DEEP_THINK*'CORTEX_TRAJECTORY_TYPE_SUGGEST_CODE_MAP* CORTEX_TRAJECTORY_TYPE_LIFEGUARD*\xfb\x1c\n" + + "\x0eCortexStepType\x12 \n" + + "\x1cCORTEX_STEP_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n" + + "\x16CORTEX_STEP_TYPE_DUMMY\x10\x01\x12\x1b\n" + + "\x17CORTEX_STEP_TYPE_FINISH\x10\x02\x12\x1f\n" + + "\x1bCORTEX_STEP_TYPE_PLAN_INPUT\x10\x03\x12\x1b\n" + + "\x17CORTEX_STEP_TYPE_MQUERY\x10\x04\x12 \n" + + "\x1cCORTEX_STEP_TYPE_CODE_ACTION\x10\x05\x12\x1f\n" + + "\x1bCORTEX_STEP_TYPE_GIT_COMMIT\x10\x06\x12 \n" + + "\x1cCORTEX_STEP_TYPE_GREP_SEARCH\x10\a\x12\x1e\n" + + "\x1aCORTEX_STEP_TYPE_VIEW_FILE\x10\b\x12#\n" + + "\x1fCORTEX_STEP_TYPE_LIST_DIRECTORY\x10\t\x12\x1c\n" + + "\x18CORTEX_STEP_TYPE_COMPILE\x10\n" + + "\x12\x1b\n" + + "\x17CORTEX_STEP_TYPE_INFORM\x10\v\x12'\n" + + "\x1fCORTEX_STEP_TYPE_FILE_BREAKDOWN\x10\f\x1a\x02\b\x01\x12#\n" + + "\x1fCORTEX_STEP_TYPE_VIEW_CODE_ITEM\x10\r\x12\x1f\n" + + "\x1bCORTEX_STEP_TYPE_USER_INPUT\x10\x0e\x12%\n" + + "!CORTEX_STEP_TYPE_PLANNER_RESPONSE\x10\x0f\x12&\n" + + "\x1eCORTEX_STEP_TYPE_WRITE_TO_FILE\x10\x10\x1a\x02\b\x01\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_ERROR_MESSAGE\x10\x11\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_CLUSTER_QUERY\x10\x12\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_LIST_CLUSTERS\x10\x13\x12$\n" + + " CORTEX_STEP_TYPE_INSPECT_CLUSTER\x10\x14\x12 \n" + + "\x1cCORTEX_STEP_TYPE_RUN_COMMAND\x10\x15\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_RELATED_FILES\x10\x16\x12\x1f\n" + + "\x1bCORTEX_STEP_TYPE_CHECKPOINT\x10\x17\x12!\n" + + "\x1dCORTEX_STEP_TYPE_PROPOSE_CODE\x10\x18\x12\x19\n" + + "\x15CORTEX_STEP_TYPE_FIND\x10\x19\x12.\n" + + "&CORTEX_STEP_TYPE_SEARCH_KNOWLEDGE_BASE\x10\x1a\x1a\x02\b\x01\x12(\n" + + "$CORTEX_STEP_TYPE_SUGGESTED_RESPONSES\x10\x1b\x12#\n" + + "\x1fCORTEX_STEP_TYPE_COMMAND_STATUS\x10\x1c\x12\x1b\n" + + "\x17CORTEX_STEP_TYPE_MEMORY\x10\x1d\x12.\n" + + "&CORTEX_STEP_TYPE_LOOKUP_KNOWLEDGE_BASE\x10\x1e\x1a\x02\b\x01\x12%\n" + + "!CORTEX_STEP_TYPE_READ_URL_CONTENT\x10\x1f\x12'\n" + + "#CORTEX_STEP_TYPE_VIEW_CONTENT_CHUNK\x10 \x12\x1f\n" + + "\x1bCORTEX_STEP_TYPE_SEARCH_WEB\x10!\x12$\n" + + " CORTEX_STEP_TYPE_RETRIEVE_MEMORY\x10\"\x12+\n" + + "'CORTEX_STEP_TYPE_AUTO_CASCADE_BROADCAST\x10#\x12 \n" + + "\x1cCORTEX_STEP_TYPE_CUSTOM_TOOL\x10$\x12&\n" + + "\x1eCORTEX_STEP_TYPE_CREATE_RECIPE\x10%\x1a\x02\b\x01\x12\x1d\n" + + "\x19CORTEX_STEP_TYPE_MCP_TOOL\x10&\x12%\n" + + "!CORTEX_STEP_TYPE_MANAGER_FEEDBACK\x10'\x12'\n" + + "#CORTEX_STEP_TYPE_TOOL_CALL_PROPOSAL\x10(\x12%\n" + + "!CORTEX_STEP_TYPE_TOOL_CALL_CHOICE\x10)\x12&\n" + + "\"CORTEX_STEP_TYPE_TRAJECTORY_CHOICE\x10*\x12%\n" + + "!CORTEX_STEP_TYPE_PROXY_WEB_SERVER\x10+\x12#\n" + + "\x1fCORTEX_STEP_TYPE_DEPLOY_WEB_APP\x10,\x12\x1e\n" + + "\x1aCORTEX_STEP_TYPE_CLIPBOARD\x10-\x12+\n" + + "'CORTEX_STEP_TYPE_READ_DEPLOYMENT_CONFIG\x10.\x12*\n" + + "\"CORTEX_STEP_TYPE_VIEW_FILE_OUTLINE\x10/\x1a\x02\b\x01\x12(\n" + + "$CORTEX_STEP_TYPE_CHECK_DEPLOY_STATUS\x100\x12#\n" + + "\x1fCORTEX_STEP_TYPE_POST_PR_REVIEW\x101\x12-\n" + + ")CORTEX_STEP_TYPE_READ_KNOWLEDGE_BASE_ITEM\x102\x12#\n" + + "\x1fCORTEX_STEP_TYPE_LIST_RESOURCES\x103\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_READ_RESOURCE\x104\x12\x1e\n" + + "\x1aCORTEX_STEP_TYPE_LINT_DIFF\x105\x12(\n" + + "$CORTEX_STEP_TYPE_FIND_ALL_REFERENCES\x106\x12!\n" + + "\x1dCORTEX_STEP_TYPE_BRAIN_UPDATE\x107\x12'\n" + + "#CORTEX_STEP_TYPE_RUN_EXTENSION_CODE\x109\x12'\n" + + "\x1fCORTEX_STEP_TYPE_ADD_ANNOTATION\x10:\x1a\x02\b\x01\x12&\n" + + "\"CORTEX_STEP_TYPE_PROPOSAL_FEEDBACK\x10;\x12&\n" + + "\"CORTEX_STEP_TYPE_TRAJECTORY_SEARCH\x10<\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_READ_TERMINAL\x10A\x12%\n" + + "\x1dCORTEX_STEP_TYPE_GET_DOM_TREE\x10D\x1a\x02\b\x01\x12)\n" + + "!CORTEX_STEP_TYPE_ARTIFACT_SUMMARY\x10G\x1a\x02\b\x01\x12!\n" + + "\x1dCORTEX_STEP_TYPE_RESOLVE_TASK\x10H\x12\x1e\n" + + "\x1aCORTEX_STEP_TYPE_TODO_LIST\x10I\x12\x1d\n" + + "\x19CORTEX_STEP_TYPE_BLOCKING\x10J\x12%\n" + + "!CORTEX_STEP_TYPE_EXPLORE_RESPONSE\x10P\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_READ_NOTEBOOK\x10R\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_EDIT_NOTEBOOK\x10S\x12-\n" + + ")CORTEX_STEP_TYPE_SUPERCOMPLETE_ACTIVE_DOC\x10V\x12&\n" + + "\"CORTEX_STEP_TYPE_FIND_CODE_CONTEXT\x10W\x12+\n" + + "'CORTEX_STEP_TYPE_SUPERCOMPLETE_FEEDBACK\x10Y\x12%\n" + + "!CORTEX_STEP_TYPE_LINT_FIX_MESSAGE\x10Z\x12#\n" + + "\x1fCORTEX_STEP_TYPE_GREP_SEARCH_V2\x10[\x12#\n" + + "\x1fCORTEX_STEP_TYPE_UPSERT_CODEMAP\x10\\\x12$\n" + + " CORTEX_STEP_TYPE_SUGGEST_CODEMAP\x10]\x12!\n" + + "\x1dCORTEX_STEP_TYPE_SMART_FRIEND\x10^\x12\x1f\n" + + "\x1bCORTEX_STEP_TYPE_DO_TESTING\x10_\x12 \n" + + "\x1cCORTEX_STEP_TYPE_REPORT_BUGS\x10a\x12#\n" + + "\x1fCORTEX_STEP_TYPE_EXIT_PLAN_MODE\x10c\x12&\n" + + "\"CORTEX_STEP_TYPE_ASK_USER_QUESTION\x10d\x12\x1a\n" + + "\x16CORTEX_STEP_TYPE_SKILL\x10e\x125\n" + + "1CORTEX_STEP_TYPE_SUPERCOMPLETE_EPHEMERAL_FEEDBACK\x10f\x12.\n" + + "*CORTEX_STEP_TYPE_ARENA_TRAJECTORY_CONVERGE\x10g\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_TASK_SUBAGENT\x10h\x12\"\n" + + "\x1eCORTEX_STEP_TYPE_LIST_MEMORIES\x10i\x12\x1f\n" + + "\x1bCORTEX_STEP_TYPE_AI_GATEWAY\x10j\"\x04\b8\x108\"\x04\b=\x10=\"\x04\b>\x10>\"\x04\b?\x10?\"\x04\b@\x10@\"\x04\bB\x10B\"\x04\bC\x10C\"\x04\bE\x10E\"\x04\bF\x10F\"\x04\bT\x10T\"\x04\bU\x10U\"\x04\bX\x10X\"\x04\b`\x10`\"\x04\bb\x10b\"\x04\bK\x10K\"\x04\bL\x10L\"\x04\bM\x10M\"\x04\bN\x10N\"\x04\bO\x10O\"\x04\bQ\x10Q*\x1bCORTEX_STEP_TYPE_DEEP_THINK*$CORTEX_STEP_TYPE_SUPERFLOW_SHOW_USER*\"CORTEX_STEP_TYPE_SUPERFLOW_CONTEXT*\"CORTEX_STEP_TYPE_CLAUDE_CODE_AGENT*&CORTEX_STEP_TYPE_CLAUDE_CODE_TODO_LIST*!CORTEX_STEP_TYPE_CLAUDE_CODE_GLOB*!CORTEX_STEP_TYPE_CLAUDE_CODE_DONE*#CORTEX_STEP_TYPE_CLAUDE_CODE_RESULT*,CORTEX_STEP_TYPE_CLAUDE_CODE_TOOL_PERMISSIONB2Z0github.com/Exafunction/Exafunction/exa/cortex_pbb\x06proto3" + +var ( + file_exa_cortex_pb_cortex_proto_rawDescOnce sync.Once + file_exa_cortex_pb_cortex_proto_rawDescData []byte +) + +func file_exa_cortex_pb_cortex_proto_rawDescGZIP() []byte { + file_exa_cortex_pb_cortex_proto_rawDescOnce.Do(func() { + file_exa_cortex_pb_cortex_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_exa_cortex_pb_cortex_proto_rawDesc), len(file_exa_cortex_pb_cortex_proto_rawDesc))) + }) + return file_exa_cortex_pb_cortex_proto_rawDescData +} + +var file_exa_cortex_pb_cortex_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_exa_cortex_pb_cortex_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_exa_cortex_pb_cortex_proto_goTypes = []any{ + (CortexTrajectoryType)(0), // 0: exa.cortex_pb.CortexTrajectoryType + (CortexStepType)(0), // 1: exa.cortex_pb.CortexStepType + (*CortexTrajectoryReference)(nil), // 2: exa.cortex_pb.CortexTrajectoryReference +} +var file_exa_cortex_pb_cortex_proto_depIdxs = []int32{ + 0, // 0: exa.cortex_pb.CortexTrajectoryReference.trajectory_type:type_name -> exa.cortex_pb.CortexTrajectoryType + 1, // 1: exa.cortex_pb.CortexTrajectoryReference.step_type:type_name -> exa.cortex_pb.CortexStepType + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_exa_cortex_pb_cortex_proto_init() } +func file_exa_cortex_pb_cortex_proto_init() { + if File_exa_cortex_pb_cortex_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_exa_cortex_pb_cortex_proto_rawDesc), len(file_exa_cortex_pb_cortex_proto_rawDesc)), + NumEnums: 2, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_exa_cortex_pb_cortex_proto_goTypes, + DependencyIndexes: file_exa_cortex_pb_cortex_proto_depIdxs, + EnumInfos: file_exa_cortex_pb_cortex_proto_enumTypes, + MessageInfos: file_exa_cortex_pb_cortex_proto_msgTypes, + }.Build() + File_exa_cortex_pb_cortex_proto = out.File + file_exa_cortex_pb_cortex_proto_goTypes = nil + file_exa_cortex_pb_cortex_proto_depIdxs = nil +} diff --git a/internal/providers/devin/devinpb/seat_management_pb/seat_management.pb.go b/internal/providers/devin/devinpb/seat_management_pb/seat_management.pb.go new file mode 100644 index 0000000..eed8f89 --- /dev/null +++ b/internal/providers/devin/devinpb/seat_management_pb/seat_management.pb.go @@ -0,0 +1,197 @@ +// Devin Desktop 3.10.31, linux-x64: https://windsurf-stable.codeiumdata.com/linux-x64/stable/b98cc43128712ba73c60cca73876f58a710aaa27/Devin-linux-x64-3.10.31.tar.gz +// Archive SHA256 (locally calculated): b3ddf1098c11255354d60a0778d7033989eaed85a37bbd55df90167f42eb5346 +// Language server SHA256: aced58234bf6fac9cf5b65d9286e971d697b0a60baaee0a812ff0312dffb88de +// Extracted descriptor set SHA256: 9877811de3bc8055852f94aabd7c7affb3964c30f66c43b0cbcd49753abe211d +// Regenerate: bash scripts/update-devin-proto.sh --version 3.10.31 +// Recovered from Desktop, not an official proto source release or a CLI compatibility guarantee. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.10 +// protoc v7.34.1 +// source: exa/seat_management_pb/seat_management.proto + +package seat_management_pb + +import ( + codeium_common_pb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/codeium_common_pb" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 GetUserStatusRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *codeium_common_pb.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetUserStatusRequest) Reset() { + *x = GetUserStatusRequest{} + mi := &file_exa_seat_management_pb_seat_management_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetUserStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserStatusRequest) ProtoMessage() {} + +func (x *GetUserStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_exa_seat_management_pb_seat_management_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 GetUserStatusRequest.ProtoReflect.Descriptor instead. +func (*GetUserStatusRequest) Descriptor() ([]byte, []int) { + return file_exa_seat_management_pb_seat_management_proto_rawDescGZIP(), []int{0} +} + +func (x *GetUserStatusRequest) GetMetadata() *codeium_common_pb.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +type GetUserStatusResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + UserStatus *codeium_common_pb.UserStatus `protobuf:"bytes,1,opt,name=user_status,json=userStatus,proto3" json:"user_status,omitempty"` + PlanInfo *codeium_common_pb.PlanInfo `protobuf:"bytes,2,opt,name=plan_info,json=planInfo,proto3" json:"plan_info,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetUserStatusResponse) Reset() { + *x = GetUserStatusResponse{} + mi := &file_exa_seat_management_pb_seat_management_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetUserStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserStatusResponse) ProtoMessage() {} + +func (x *GetUserStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_exa_seat_management_pb_seat_management_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 GetUserStatusResponse.ProtoReflect.Descriptor instead. +func (*GetUserStatusResponse) Descriptor() ([]byte, []int) { + return file_exa_seat_management_pb_seat_management_proto_rawDescGZIP(), []int{1} +} + +func (x *GetUserStatusResponse) GetUserStatus() *codeium_common_pb.UserStatus { + if x != nil { + return x.UserStatus + } + return nil +} + +func (x *GetUserStatusResponse) GetPlanInfo() *codeium_common_pb.PlanInfo { + if x != nil { + return x.PlanInfo + } + return nil +} + +var File_exa_seat_management_pb_seat_management_proto protoreflect.FileDescriptor + +const file_exa_seat_management_pb_seat_management_proto_rawDesc = "" + + "\n" + + ",exa/seat_management_pb/seat_management.proto\x12\x16exa.seat_management_pb\x1a*exa/codeium_common_pb/codeium_common.proto\"[\n" + + "\x14GetUserStatusRequest\x12C\n" + + "\bmetadata\x18\x01 \x01(\v2\x1f.exa.codeium_common_pb.MetadataB\x06\xbaH\x03\xc8\x01\x01R\bmetadata\"\x99\x01\n" + + "\x15GetUserStatusResponse\x12B\n" + + "\vuser_status\x18\x01 \x01(\v2!.exa.codeium_common_pb.UserStatusR\n" + + "userStatus\x12<\n" + + "\tplan_info\x18\x02 \x01(\v2\x1f.exa.codeium_common_pb.PlanInfoR\bplanInfo2\x87\x01\n" + + "\x15SeatManagementService\x12n\n" + + "\rGetUserStatus\x12,.exa.seat_management_pb.GetUserStatusRequest\x1a-.exa.seat_management_pb.GetUserStatusResponse\"\x00B;Z9github.com/Exafunction/Exafunction/exa/seat_management_pbb\x06proto3" + +var ( + file_exa_seat_management_pb_seat_management_proto_rawDescOnce sync.Once + file_exa_seat_management_pb_seat_management_proto_rawDescData []byte +) + +func file_exa_seat_management_pb_seat_management_proto_rawDescGZIP() []byte { + file_exa_seat_management_pb_seat_management_proto_rawDescOnce.Do(func() { + file_exa_seat_management_pb_seat_management_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_exa_seat_management_pb_seat_management_proto_rawDesc), len(file_exa_seat_management_pb_seat_management_proto_rawDesc))) + }) + return file_exa_seat_management_pb_seat_management_proto_rawDescData +} + +var file_exa_seat_management_pb_seat_management_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_exa_seat_management_pb_seat_management_proto_goTypes = []any{ + (*GetUserStatusRequest)(nil), // 0: exa.seat_management_pb.GetUserStatusRequest + (*GetUserStatusResponse)(nil), // 1: exa.seat_management_pb.GetUserStatusResponse + (*codeium_common_pb.Metadata)(nil), // 2: exa.codeium_common_pb.Metadata + (*codeium_common_pb.UserStatus)(nil), // 3: exa.codeium_common_pb.UserStatus + (*codeium_common_pb.PlanInfo)(nil), // 4: exa.codeium_common_pb.PlanInfo +} +var file_exa_seat_management_pb_seat_management_proto_depIdxs = []int32{ + 2, // 0: exa.seat_management_pb.GetUserStatusRequest.metadata:type_name -> exa.codeium_common_pb.Metadata + 3, // 1: exa.seat_management_pb.GetUserStatusResponse.user_status:type_name -> exa.codeium_common_pb.UserStatus + 4, // 2: exa.seat_management_pb.GetUserStatusResponse.plan_info:type_name -> exa.codeium_common_pb.PlanInfo + 0, // 3: exa.seat_management_pb.SeatManagementService.GetUserStatus:input_type -> exa.seat_management_pb.GetUserStatusRequest + 1, // 4: exa.seat_management_pb.SeatManagementService.GetUserStatus:output_type -> exa.seat_management_pb.GetUserStatusResponse + 4, // [4:5] is the sub-list for method output_type + 3, // [3:4] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_exa_seat_management_pb_seat_management_proto_init() } +func file_exa_seat_management_pb_seat_management_proto_init() { + if File_exa_seat_management_pb_seat_management_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_exa_seat_management_pb_seat_management_proto_rawDesc), len(file_exa_seat_management_pb_seat_management_proto_rawDesc)), + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_exa_seat_management_pb_seat_management_proto_goTypes, + DependencyIndexes: file_exa_seat_management_pb_seat_management_proto_depIdxs, + MessageInfos: file_exa_seat_management_pb_seat_management_proto_msgTypes, + }.Build() + File_exa_seat_management_pb_seat_management_proto = out.File + file_exa_seat_management_pb_seat_management_proto_goTypes = nil + file_exa_seat_management_pb_seat_management_proto_depIdxs = nil +} diff --git a/internal/providers/devin/protowire.go b/internal/providers/devin/protowire.go deleted file mode 100644 index aaee832..0000000 --- a/internal/providers/devin/protowire.go +++ /dev/null @@ -1,135 +0,0 @@ -package devin - -import ( - "encoding/binary" - "errors" - "fmt" - "math" -) - -// Local protobuf wire helpers. google.golang.org/protobuf cannot be fetched in -// this environment; keep a minimal subset sufficient for Devin Connect payloads. - -type WireType int8 - -const ( - VarintType WireType = 0 - Fixed64Type WireType = 1 - BytesType WireType = 2 - Fixed32Type WireType = 5 -) - -var errParse = errors.New("protowire: parse error") - -func ParseError(n int) error { - if n < 0 { - return fmt.Errorf("%w (%d)", errParse, n) - } - if n == 0 { - return errParse - } - return nil -} - -func AppendVarint(b []byte, v uint64) []byte { - for v >= 0x80 { - b = append(b, byte(v)|0x80) - v >>= 7 - } - return append(b, byte(v)) -} - -func AppendTag(b []byte, num int, typ WireType) []byte { - return AppendVarint(b, uint64(num)<<3|uint64(typ)) -} - -func AppendBytes(b []byte, v []byte) []byte { - b = AppendVarint(b, uint64(len(v))) - return append(b, v...) -} - -func AppendString(b []byte, v string) []byte { - return AppendBytes(b, []byte(v)) -} - -func AppendFixed64(b []byte, v uint64) []byte { - var buf [8]byte - binary.LittleEndian.PutUint64(buf[:], v) - return append(b, buf[:]...) -} - -func AppendFixed32(b []byte, v uint32) []byte { - var buf [4]byte - binary.LittleEndian.PutUint32(buf[:], v) - return append(b, buf[:]...) -} - -func AppendFloat64(b []byte, v float64) []byte { - return AppendFixed64(b, math.Float64bits(v)) -} - -func ConsumeVarint(b []byte) (v uint64, n int) { - var y uint64 - for i := 0; i < len(b) && i < 10; i++ { - c := b[i] - y |= uint64(c&0x7f) << (7 * i) - if c < 0x80 { - return y, i + 1 - } - } - return 0, -1 -} - -func ConsumeTag(b []byte) (num int, typ WireType, n int) { - v, n := ConsumeVarint(b) - if n <= 0 { - return 0, 0, n - } - return int(v >> 3), WireType(v & 7), n -} - -func ConsumeBytes(b []byte) (v []byte, n int) { - size, sn := ConsumeVarint(b) - if sn <= 0 { - return nil, sn - } - if uint64(len(b)-sn) < size { - return nil, -1 - } - end := sn + int(size) - return b[sn:end], end -} - -func ConsumeFixed64(b []byte) (v uint64, n int) { - if len(b) < 8 { - return 0, -1 - } - return binary.LittleEndian.Uint64(b[:8]), 8 -} - -func ConsumeFixed32(b []byte) (v uint32, n int) { - if len(b) < 4 { - return 0, -1 - } - return binary.LittleEndian.Uint32(b[:4]), 4 -} - -func ConsumeFieldValue(num int, typ WireType, b []byte) (n int) { - _ = num - switch typ { - case VarintType: - _, n = ConsumeVarint(b) - return n - case Fixed64Type: - _, n = ConsumeFixed64(b) - return n - case BytesType: - _, n = ConsumeBytes(b) - return n - case Fixed32Type: - _, n = ConsumeFixed32(b) - return n - default: - return -1 - } -} diff --git a/internal/providers/devin/status.go b/internal/providers/devin/status.go index 164a5bb..14043b8 100644 --- a/internal/providers/devin/status.go +++ b/internal/providers/devin/status.go @@ -7,9 +7,12 @@ import ( "fmt" "io" "net/http" - "runtime" "strings" "time" + + seatpb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/seat_management_pb" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/timestamppb" ) // UserStatus contains plan, quota, and account metadata from GetUserStatus. @@ -29,243 +32,57 @@ type UserStatus struct { PlanEnd time.Time } -func BuildGetUserStatusRequest(sessionToken, deviceFingerprint string) []byte { +func BuildGetUserStatusRequest(sessionToken, deviceFingerprint string) ([]byte, error) { if deviceFingerprint == "" { deviceFingerprint = GenerateDeviceFingerprint(sessionToken) } - var f1Bytes []byte - f1Bytes = AppendTag(f1Bytes, 1, BytesType) - f1Bytes = AppendString(f1Bytes, ClientName) - f1Bytes = AppendTag(f1Bytes, 2, BytesType) - f1Bytes = AppendString(f1Bytes, ClientVersion) - f1Bytes = AppendTag(f1Bytes, 3, BytesType) - f1Bytes = AppendString(f1Bytes, sessionToken) - f1Bytes = AppendTag(f1Bytes, 4, BytesType) - f1Bytes = AppendString(f1Bytes, "en") - f1Bytes = AppendTag(f1Bytes, 5, BytesType) - f1Bytes = AppendString(f1Bytes, runtime.GOOS) - f1Bytes = AppendTag(f1Bytes, 7, BytesType) - f1Bytes = AppendString(f1Bytes, ClientVersion) - f1Bytes = AppendTag(f1Bytes, 12, BytesType) - f1Bytes = AppendString(f1Bytes, ClientName) - f1Bytes = AppendTag(f1Bytes, 31, BytesType) - f1Bytes = AppendString(f1Bytes, deviceFingerprint) - - var reqBytes []byte - reqBytes = AppendTag(reqBytes, 1, BytesType) - reqBytes = AppendBytes(reqBytes, f1Bytes) - return reqBytes + return proto.Marshal(&seatpb.GetUserStatusRequest{Metadata: statusMetadata(sessionToken, deviceFingerprint)}) } func ParseGetUserStatusResponse(data []byte) (*UserStatus, error) { if len(data) == 0 { return nil, errors.New("empty response data") } - status := &UserStatus{} - rem := data - for len(rem) > 0 { - num, wireType, n := ConsumeTag(rem) - if n <= 0 { - return nil, ParseError(n) - } - rem = rem[n:] - if num == 1 && wireType == BytesType { - userStatusBytes, m := ConsumeBytes(rem) - if m <= 0 { - return nil, ParseError(m) - } - rem = rem[m:] - parseUserStatus(userStatusBytes, status) - } else { - m := ConsumeFieldValue(num, wireType, rem) - if m <= 0 { - return nil, ParseError(m) - } - rem = rem[m:] - } + var response seatpb.GetUserStatusResponse + if err := proto.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("decode Devin user status: %w", err) } - return status, nil -} - -func parseUserStatus(data []byte, status *UserStatus) { - rem := data - for len(rem) > 0 { - num, wireType, n := ConsumeTag(rem) - if n <= 0 { - return - } - rem = rem[n:] - if wireType == BytesType { - bytesVal, m := ConsumeBytes(rem) - if m <= 0 { - return - } - rem = rem[m:] - switch num { - case 3: - status.UserName = string(bytesVal) - case 5: - status.TeamID = string(bytesVal) - case 7: - status.Email = string(bytesVal) - case 13: - parsePlanStatus(bytesVal, status) - case 36: - status.UserID = string(bytesVal) - } - } else { - m := ConsumeFieldValue(num, wireType, rem) - if m <= 0 { - return - } - rem = rem[m:] - } + user := response.GetUserStatus() + if user == nil { + return &UserStatus{}, nil } -} - -func parsePlanStatus(data []byte, status *UserStatus) { - rem := data - for len(rem) > 0 { - num, wireType, n := ConsumeTag(rem) - if n <= 0 { - return - } - rem = rem[n:] - switch wireType { - case BytesType: - bytesVal, m := ConsumeBytes(rem) - if m <= 0 { - return - } - rem = rem[m:] - switch num { - case 1: - parsePlanInfo(bytesVal, status) - case 2: - if sec := parseSecondsSubfield(bytesVal); sec > 0 { - status.PlanStart = time.Unix(sec, 0).UTC() - } - case 3: - if sec := parseSecondsSubfield(bytesVal); sec > 0 { - status.PlanEnd = time.Unix(sec, 0).UTC() - } - } - case VarintType: - val, m := ConsumeVarint(rem) - if m <= 0 { - return - } - rem = rem[m:] - switch num { - case 14: - status.DailyQuotaRemainingPercent = int64(val) - case 15: - status.WeeklyQuotaRemainingPercent = int64(val) - case 17: - if val > 0 { - status.DailyQuotaResetAt = time.Unix(int64(val), 0).UTC() - } - case 18: - if val > 0 { - status.WeeklyQuotaResetAt = time.Unix(int64(val), 0).UTC() - } - } - default: - m := ConsumeFieldValue(num, wireType, rem) - if m <= 0 { - return - } - rem = rem[m:] - } + status := &UserStatus{Email: user.GetEmail(), UserName: user.GetName(), UserID: user.GetUserId(), TeamID: user.GetTeamId()} + planStatus := user.GetPlanStatus() + if planStatus == nil { + return status, nil } -} - -func parsePlanInfo(data []byte, status *UserStatus) { - rem := data - for len(rem) > 0 { - num, wireType, n := ConsumeTag(rem) - if n <= 0 { - return - } - rem = rem[n:] - if wireType == BytesType { - bytesVal, m := ConsumeBytes(rem) - if m <= 0 { - return - } - rem = rem[m:] - switch num { - case 2: - status.Plan = string(bytesVal) - case 33: - parsePlanInfoOrg(bytesVal, status) - } - } else { - m := ConsumeFieldValue(num, wireType, rem) - if m <= 0 { - return - } - rem = rem[m:] + status.DailyQuotaRemainingPercent = int64(planStatus.GetDailyQuotaRemainingPercent()) + status.WeeklyQuotaRemainingPercent = int64(planStatus.GetWeeklyQuotaRemainingPercent()) + status.DailyQuotaResetAt = timeFromTimestamp(planStatus.GetDailyQuotaResetAtUnix()) + status.WeeklyQuotaResetAt = timeFromTimestamp(planStatus.GetWeeklyQuotaResetAtUnix()) + status.PlanStart = timestampTime(planStatus.GetPlanStart()) + status.PlanEnd = timestampTime(planStatus.GetPlanEnd()) + if plan := planStatus.GetPlanInfo(); plan != nil { + status.Plan = plan.GetPlanName() + if devin := plan.GetDevinInfo(); devin != nil { + status.OrgID, status.OrgName = devin.GetOrgId(), devin.GetAccountDisplayName() } } + return status, nil } -func parsePlanInfoOrg(data []byte, status *UserStatus) { - rem := data - for len(rem) > 0 { - num, wireType, n := ConsumeTag(rem) - if n <= 0 { - return - } - rem = rem[n:] - if wireType == BytesType { - bytesVal, m := ConsumeBytes(rem) - if m <= 0 { - return - } - rem = rem[m:] - switch num { - case 4: - status.OrgID = string(bytesVal) - case 8: - status.OrgName = string(bytesVal) - } - } else { - m := ConsumeFieldValue(num, wireType, rem) - if m <= 0 { - return - } - rem = rem[m:] - } +func timeFromTimestamp(seconds int64) time.Time { + if seconds <= 0 { + return time.Time{} } + return time.Unix(seconds, 0).UTC() } -func parseSecondsSubfield(data []byte) int64 { - rem := data - for len(rem) > 0 { - num, wireType, n := ConsumeTag(rem) - if n <= 0 { - return 0 - } - rem = rem[n:] - if wireType == VarintType { - val, m := ConsumeVarint(rem) - if m <= 0 { - return 0 - } - rem = rem[m:] - if num == 1 { - return int64(val) - } - } else { - m := ConsumeFieldValue(num, wireType, rem) - if m <= 0 { - return 0 - } - rem = rem[m:] - } +func timestampTime(timestamp *timestamppb.Timestamp) time.Time { + if timestamp == nil || timestamp.GetSeconds() <= 0 { + return time.Time{} } - return 0 + return time.Unix(timestamp.GetSeconds(), int64(timestamp.GetNanos())).UTC() } func FetchUserStatus(ctx context.Context, client *http.Client, serverBase, sessionToken, deviceSeed string) (*UserStatus, error) { @@ -276,7 +93,10 @@ func FetchUserStatus(ctx context.Context, client *http.Client, serverBase, sessi if sessionToken == "" { return nil, errors.New("devin session token is required") } - reqBody := BuildGetUserStatusRequest(sessionToken, GenerateDeviceFingerprint(deviceSeed)) + reqBody, err := BuildGetUserStatusRequest(sessionToken, GenerateDeviceFingerprint(deviceSeed)) + if err != nil { + return nil, fmt.Errorf("encode Devin user-status request: %w", err) + } endpoint := strings.TrimRight(firstNonEmpty(serverBase, ServerBase), "/") + PathGetUserStatus req, err := http.NewRequestWithContext(ctx, http.MethodPost, endpoint, bytes.NewReader(reqBody)) if err != nil { diff --git a/internal/providers/devin/status_test.go b/internal/providers/devin/status_test.go new file mode 100644 index 0000000..c64f890 --- /dev/null +++ b/internal/providers/devin/status_test.go @@ -0,0 +1,84 @@ +package devin + +import ( + "context" + "io" + "net/http" + "net/http/httptest" + "reflect" + "testing" + "time" + + "google.golang.org/protobuf/encoding/protowire" +) + +func TestFetchUserStatusMapsPlanAndQuota(t *testing.T) { + // Encode numeric fields independently of generated types so a schema or + // adapter mapping error cannot also change the fixture's wire contract. + bytesField := func(number protowire.Number, value []byte) []byte { + return protowire.AppendBytes(protowire.AppendTag(nil, number, protowire.BytesType), value) + } + intField := func(number protowire.Number, value uint64) []byte { + return protowire.AppendVarint(protowire.AppendTag(nil, number, protowire.VarintType), value) + } + timestamp := func(seconds uint64, nanos uint64) []byte { + return append(intField(1, seconds), intField(2, nanos)...) + } + org := append(bytesField(4, []byte("org-1")), bytesField(8, []byte("Example Org"))...) + plan := append(bytesField(2, []byte("Pro")), bytesField(33, org)...) + planStatus := bytesField(1, plan) + planStatus = append(planStatus, bytesField(2, timestamp(1700000000, 123000000))...) + planStatus = append(planStatus, bytesField(3, timestamp(1702592000, 0))...) + planStatus = append(planStatus, intField(14, 75)...) + planStatus = append(planStatus, intField(15, 42)...) + planStatus = append(planStatus, intField(17, 1700086400)...) + planStatus = append(planStatus, intField(18, 1700604800)...) + user := bytesField(3, []byte("Example User")) + user = append(user, bytesField(5, []byte("team-1"))...) + user = append(user, bytesField(7, []byte("user@example.invalid"))...) + user = append(user, bytesField(13, planStatus)...) + user = append(user, bytesField(36, []byte("user-1"))...) + response := append(bytesField(1, user), intField(99, 1)...) + + requests := make(chan []byte, 1) + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost || r.URL.Path != PathGetUserStatus { + t.Errorf("unexpected request: %s %s", r.Method, r.URL.Path) + } + if r.Header.Get("Content-Type") != ContentTypeProto || r.Header.Get("Connect-Protocol-Version") != ConnectProtocolVersion { + t.Error("missing protobuf Connect request headers") + } + body, err := io.ReadAll(r.Body) + if err != nil { + t.Error(err) + w.WriteHeader(http.StatusBadRequest) + return + } + requests <- body + w.Header().Set("Content-Type", ContentTypeProto) + _, _ = w.Write(response) + })) + defer server.Close() + + got, err := FetchUserStatus(context.Background(), server.Client(), server.URL, "fixture-token", "fixture-device") + if err != nil { + t.Fatal(err) + } + metadata := wireMessage(t, <-requests, 1) + if got := string(wireMessage(t, metadata, 1)); got != ClientName { + t.Errorf("status client = %q", got) + } + if got := string(wireMessage(t, metadata, 31)); got != GenerateDeviceFingerprint("fixture-device") { + t.Errorf("status fingerprint = %q", got) + } + want := &UserStatus{ + Email: "user@example.invalid", UserName: "Example User", UserID: "user-1", TeamID: "team-1", + OrgID: "org-1", OrgName: "Example Org", Plan: "Pro", + DailyQuotaRemainingPercent: 75, WeeklyQuotaRemainingPercent: 42, + DailyQuotaResetAt: time.Unix(1700086400, 0).UTC(), WeeklyQuotaResetAt: time.Unix(1700604800, 0).UTC(), + PlanStart: time.Unix(1700000000, 123000000).UTC(), PlanEnd: time.Unix(1702592000, 0).UTC(), + } + if !reflect.DeepEqual(got, want) { + t.Fatalf("status = %+v, want %+v", got, want) + } +} diff --git a/internal/providers/devin/wire.go b/internal/providers/devin/wire.go index 562db4f..8253554 100644 --- a/internal/providers/devin/wire.go +++ b/internal/providers/devin/wire.go @@ -10,12 +10,17 @@ import ( "encoding/json" "fmt" "io" - "math" "net/http" "runtime" "strings" "sync" "sync/atomic" + + apipb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/api_server_pb" + chatpb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/chat_pb" + commonpb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/codeium_common_pb" + cortexpb "github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/cortex_pb" + "google.golang.org/protobuf/proto" ) // Tool is a tool definition in GetChatMessageRequest. @@ -37,7 +42,6 @@ type ToolCallDelta struct { ID string Name string Arguments string - Index int } // Image is an image attachment on a prompt. @@ -65,7 +69,6 @@ type Usage struct { CompletionTokens int64 CachedTokens int64 CacheWriteTokens int64 - StatusCode uint64 RequestID string ModelName string Headers map[string]string @@ -187,31 +190,42 @@ func ReadConnectFrame(r io.Reader) (flag byte, payload []byte, err error) { return flag, payload, nil } -func BuildClientMetadata(sessionToken, deviceSeed, osName string) []byte { +func BuildClientMetadata(sessionToken, deviceSeed, osName string) ([]byte, error) { + return proto.Marshal(clientMetadata(sessionToken, deviceSeed, osName)) +} + +func clientMetadata(sessionToken, deviceSeed, osName string) *commonpb.Metadata { + return metadataWithFingerprint(sessionToken, GenerateDeviceFingerprint(deviceSeed), osName) +} + +func metadataWithFingerprint(sessionToken, deviceFingerprint, osName string) *commonpb.Metadata { if osName == "" { osName = runtime.GOOS } - deviceFingerprint := GenerateDeviceFingerprint(deviceSeed) - var f1Bytes []byte - f1Bytes = AppendTag(f1Bytes, 1, BytesType) - f1Bytes = AppendString(f1Bytes, ClientProductLabel) - f1Bytes = AppendTag(f1Bytes, 2, BytesType) - f1Bytes = AppendString(f1Bytes, ClientVersion) - f1Bytes = AppendTag(f1Bytes, 3, BytesType) - f1Bytes = AppendString(f1Bytes, sessionToken) - f1Bytes = AppendTag(f1Bytes, 4, BytesType) - f1Bytes = AppendString(f1Bytes, "en") - f1Bytes = AppendTag(f1Bytes, 5, BytesType) - f1Bytes = AppendString(f1Bytes, osName) - f1Bytes = AppendTag(f1Bytes, 7, BytesType) - f1Bytes = AppendString(f1Bytes, ClientVersion) - f1Bytes = AppendTag(f1Bytes, 12, BytesType) - f1Bytes = AppendString(f1Bytes, ClientName) - f1Bytes = AppendTag(f1Bytes, 28, BytesType) - f1Bytes = AppendString(f1Bytes, ClientName) - f1Bytes = AppendTag(f1Bytes, 31, BytesType) - f1Bytes = AppendString(f1Bytes, deviceFingerprint) - return f1Bytes + return &commonpb.Metadata{ + IdeName: ClientProductLabel, + ExtensionVersion: ClientVersion, + ApiKey: sessionToken, + Locale: "en", + Os: osName, + IdeVersion: ClientVersion, + ExtensionName: ClientName, + IdeType: ClientName, + F: deviceFingerprint, + } +} + +func statusMetadata(sessionToken, deviceFingerprint string) *commonpb.Metadata { + return &commonpb.Metadata{ + IdeName: ClientName, + ExtensionVersion: ClientVersion, + ApiKey: sessionToken, + Locale: "en", + Os: runtime.GOOS, + IdeVersion: ClientVersion, + ExtensionName: ClientName, + F: deviceFingerprint, + } } func BuildGetChatMessageRequest( @@ -225,7 +239,7 @@ func BuildGetChatMessageRequest( maxTokens int, sessionID string, cascadeID string, -) []byte { +) ([]byte, error) { if maxTokens <= 0 { maxTokens = DefaultMaxTokens } @@ -237,246 +251,135 @@ func BuildGetChatMessageRequest( } osName := runtime.GOOS - reqBytes := make([]byte, 0, 4096+len(systemPrompt)) - f1Bytes := BuildClientMetadata(sessionToken, deviceSeed, osName) - reqBytes = AppendTag(reqBytes, 1, BytesType) - reqBytes = AppendBytes(reqBytes, f1Bytes) - + req := &apipb.GetChatMessageRequest{ + Metadata: clientMetadata(sessionToken, deviceSeed, osName), + RequestType: apipb.ChatMessageRequestType_CHAT_MESSAGE_REQUEST_TYPE_CASCADE, + Configuration: &commonpb.CompletionConfiguration{ + NumCompletions: 1, MaxTokens: uint64(maxTokens), + MaxNewlines: 400, TopK: 40, + TopP: float64(float32(0.95)), + }, + CascadeId: cascadeID, + PlannerMode: commonpb.ConversationalPlannerMode_CONVERSATIONAL_PLANNER_MODE_DEFAULT, + ChatModelUid: chatModelUID, + } if strings.TrimSpace(systemPrompt) != "" { - reqBytes = AppendTag(reqBytes, 2, BytesType) - reqBytes = AppendString(reqBytes, systemPrompt) + req.Prompt = systemPrompt } - + tempVal := 1.0 + if temperature != nil { + tempVal = *temperature + } + req.Configuration.Temperature = tempVal for _, p := range prompts { - var pBytes []byte msgID := p.MessageID if msgID == "" { msgID = randomHex(16) } - pBytes = AppendTag(pBytes, 1, BytesType) - pBytes = AppendString(pBytes, msgID) - source := p.Source if source <= 0 { source = 1 } - pBytes = AppendTag(pBytes, 2, VarintType) - pBytes = AppendVarint(pBytes, uint64(source)) - - pBytes = AppendTag(pBytes, 3, BytesType) - pBytes = AppendString(pBytes, p.Content) - + prompt := &chatpb.ChatMessagePrompt{MessageId: msgID, Source: commonpb.ChatMessageSource(source), Prompt: p.Content} for _, tc := range p.ToolCalls { - var tcBytes []byte - if tc.ID != "" { - tcBytes = AppendTag(tcBytes, 1, BytesType) - tcBytes = AppendString(tcBytes, tc.ID) - } - if tc.Name != "" { - tcBytes = AppendTag(tcBytes, 2, BytesType) - tcBytes = AppendString(tcBytes, tc.Name) - } - if tc.Arguments != "" { - tcBytes = AppendTag(tcBytes, 3, BytesType) - tcBytes = AppendString(tcBytes, tc.Arguments) - } - pBytes = AppendTag(pBytes, 6, BytesType) - pBytes = AppendBytes(pBytes, tcBytes) + prompt.ToolCalls = append(prompt.ToolCalls, &commonpb.ChatToolCall{Id: tc.ID, Name: tc.Name, ArgumentsJson: tc.Arguments}) } - if p.ToolCallID != "" { - pBytes = AppendTag(pBytes, 7, BytesType) - pBytes = AppendString(pBytes, p.ToolCallID) + prompt.ToolCallId = p.ToolCallID } - for _, img := range p.Images { data := strings.TrimSpace(img.Base64Data) if data == "" { continue } - var imgBytes []byte - imgBytes = AppendTag(imgBytes, 1, BytesType) - imgBytes = AppendString(imgBytes, data) mime := strings.TrimSpace(img.MimeType) if mime == "" { mime = "image/png" } - imgBytes = AppendTag(imgBytes, 2, BytesType) - imgBytes = AppendString(imgBytes, mime) - pBytes = AppendTag(pBytes, 10, BytesType) - pBytes = AppendBytes(pBytes, imgBytes) + prompt.Images = append(prompt.Images, &commonpb.ImageData{Base64Data: data, MimeType: mime}) } - if p.Thinking != "" { - pBytes = AppendTag(pBytes, 11, BytesType) - pBytes = AppendString(pBytes, p.Thinking) + prompt.Thinking = p.Thinking } if len(p.Signature) > 0 { - pBytes = AppendTag(pBytes, 12, BytesType) - pBytes = AppendBytes(pBytes, p.Signature) + prompt.Signature = string(p.Signature) } if p.SignatureType != "" { - pBytes = AppendTag(pBytes, 18, BytesType) - pBytes = AppendString(pBytes, p.SignatureType) + prompt.SignatureType = p.SignatureType } - - reqBytes = AppendTag(reqBytes, 3, BytesType) - reqBytes = AppendBytes(reqBytes, pBytes) + req.ChatMessagePrompts = append(req.ChatMessagePrompts, prompt) } - - reqBytes = AppendTag(reqBytes, 7, VarintType) - reqBytes = AppendVarint(reqBytes, 5) - - var f8Bytes []byte - f8Bytes = AppendTag(f8Bytes, 1, VarintType) - f8Bytes = AppendVarint(f8Bytes, 1) - f8Bytes = AppendTag(f8Bytes, 2, VarintType) - f8Bytes = AppendVarint(f8Bytes, uint64(maxTokens)) - f8Bytes = AppendTag(f8Bytes, 3, VarintType) - f8Bytes = AppendVarint(f8Bytes, 400) - tempVal := 1.0 - if temperature != nil { - tempVal = *temperature - } - f8Bytes = AppendTag(f8Bytes, 5, Fixed64Type) - f8Bytes = AppendFloat64(f8Bytes, tempVal) - f8Bytes = AppendTag(f8Bytes, 7, VarintType) - f8Bytes = AppendVarint(f8Bytes, 40) - f8Bytes = AppendTag(f8Bytes, 8, Fixed64Type) - f8Bytes = AppendFixed64(f8Bytes, math.Float64bits(float64(float32(0.95)))) - reqBytes = AppendTag(reqBytes, 8, BytesType) - reqBytes = AppendBytes(reqBytes, f8Bytes) - for _, tool := range tools { - var tBytes []byte - if tool.Name != "" { - tBytes = AppendTag(tBytes, 1, BytesType) - tBytes = AppendString(tBytes, tool.Name) - } desc := tool.Description if strings.Contains(desc, "Takes a task_id parameter identifying the task") { desc = strings.ReplaceAll(desc, "Takes a task_id parameter identifying the task", "Takes a taskId parameter identifying the task") } - if desc != "" { - tBytes = AppendTag(tBytes, 2, BytesType) - tBytes = AppendString(tBytes, desc) - } + definition := &chatpb.ChatToolDefinition{Name: tool.Name, Description: desc} if len(tool.Parameters) > 0 { - tBytes = AppendTag(tBytes, 3, BytesType) - tBytes = AppendBytes(tBytes, tool.Parameters) + definition.JsonSchemaString = string(tool.Parameters) } - reqBytes = AppendTag(reqBytes, 10, BytesType) - reqBytes = AppendBytes(reqBytes, tBytes) + req.Tools = append(req.Tools, definition) } - turnIndex := NextSessionTurnIndex(sessionID) - var f15Bytes []byte - f15Bytes = AppendTag(f15Bytes, 1, BytesType) - f15Bytes = AppendString(f15Bytes, sessionID) + trajectory := &cortexpb.CortexTrajectoryReference{TrajectoryId: sessionID, TrajectoryType: cortexpb.CortexTrajectoryType_CORTEX_TRAJECTORY_TYPE_CASCADE} if turnIndex > 0 { - f15Bytes = AppendTag(f15Bytes, 2, VarintType) - f15Bytes = AppendVarint(f15Bytes, uint64(turnIndex)) + trajectory.StepIndex = int32(turnIndex) } - f15Bytes = AppendTag(f15Bytes, 3, VarintType) - f15Bytes = AppendVarint(f15Bytes, 4) if len(prompts) > 0 && prompts[len(prompts)-1].Source == 1 { if turnIndex == 0 || len(prompts) < 2 || prompts[len(prompts)-2].Source != 1 { - f15Bytes = AppendTag(f15Bytes, 4, VarintType) - f15Bytes = AppendVarint(f15Bytes, 14) + trajectory.StepType = cortexpb.CortexStepType_CORTEX_STEP_TYPE_USER_INPUT } } - reqBytes = AppendTag(reqBytes, 15, BytesType) - reqBytes = AppendBytes(reqBytes, f15Bytes) - - reqBytes = AppendTag(reqBytes, 16, BytesType) - reqBytes = AppendString(reqBytes, cascadeID) - reqBytes = AppendTag(reqBytes, 20, VarintType) - reqBytes = AppendVarint(reqBytes, 1) - reqBytes = AppendTag(reqBytes, 21, BytesType) - reqBytes = AppendString(reqBytes, chatModelUID) - return reqBytes + req.TrajectoryReference = trajectory + return proto.Marshal(req) } func ParseFrame(payload []byte) (FrameResult, error) { - var res FrameResult - var textParts []string - var thinkingParts []string - pos := 0 - for pos < len(payload) { - num, typ, n := ConsumeTag(payload[pos:]) - if n <= 0 { - return res, fmt.Errorf("consume tag error at offset %d: %w", pos, ParseError(n)) - } - pos += n - switch typ { - case VarintType: - v, vn := ConsumeVarint(payload[pos:]) - if vn <= 0 { - return res, fmt.Errorf("consume varint error at offset %d: %w", pos, ParseError(vn)) - } - pos += vn - switch num { - case 2: - res.Timestamp = v - case 4: - res.DeltaTokens = v - case 5: - res.StopReason = v - } - case Fixed64Type: - v, fn := ConsumeFixed64(payload[pos:]) - if fn <= 0 { - return res, fmt.Errorf("consume fixed64 error at offset %d: %w", pos, ParseError(fn)) - } - pos += fn - if num == 12 { - res.Latency = math.Float64frombits(v) - } - case Fixed32Type: - _, fn := ConsumeFixed32(payload[pos:]) - if fn <= 0 { - return res, fmt.Errorf("consume fixed32 error at offset %d: %w", pos, ParseError(fn)) - } - pos += fn - case BytesType: - val, bn := ConsumeBytes(payload[pos:]) - if bn <= 0 { - return res, fmt.Errorf("consume bytes error at offset %d: %w", pos, ParseError(bn)) + var frame apipb.GetChatMessageResponse + if err := proto.Unmarshal(payload, &frame); err != nil { + return FrameResult{}, fmt.Errorf("decode Devin response: %w", err) + } + result := FrameResult{ + OutputID: frame.GetOutputId(), + Timestamp: uint64(frame.GetTimestamp().GetSeconds()), + ContentText: frame.GetDeltaText(), + DeltaTokens: uint64(frame.GetDeltaTokens()), + StopReason: uint64(frame.GetStopReason()), + ThinkingText: frame.GetDeltaThinking(), + DeltaSignature: []byte(frame.GetDeltaSignature()), + DeltaSigType: frame.GetDeltaSignatureType(), + Latency: frame.GetLatency(), + MessageID: frame.GetMessageId(), + } + for _, call := range frame.GetDeltaToolCalls() { + result.ToolCallDeltas = append(result.ToolCallDeltas, ToolCallDelta{ID: call.GetId(), Name: call.GetName(), Arguments: call.GetArgumentsJson()}) + } + if usage := frame.GetUsage(); usage != nil { + result.Usage = usageFromProto(usage) + } + return result, nil +} + +func usageFromProto(usage *commonpb.ModelUsageStats) *Usage { + result := &Usage{ + PromptTokens: int64(usage.GetInputTokens() + usage.GetCacheWriteTokens() + usage.GetCacheReadTokens()), + CompletionTokens: int64(usage.GetOutputTokens()), + CachedTokens: int64(usage.GetCacheReadTokens()), + CacheWriteTokens: int64(usage.GetCacheWriteTokens()), + ModelName: usage.GetModelUid(), + } + for key, value := range usage.GetResponseHeader() { + if key != "" { + if result.Headers == nil { + result.Headers = map[string]string{} } - pos += bn - switch num { - case 1: - res.OutputID = string(val) - case 2: - res.Timestamp = parseTimestamp(val) - case 3: - textParts = append(textParts, string(val)) - case 6: - if tc, err := parseToolCallDelta(val); err == nil { - res.ToolCallDeltas = append(res.ToolCallDeltas, tc) - } - case 7: - res.Usage = parseUsageField(val) - case 9: - thinkingParts = append(thinkingParts, string(val)) - case 10: - res.DeltaSignature = append(res.DeltaSignature, val...) - case 17: - res.MessageID = string(val) - case 21: - res.DeltaSigType = string(val) + result.Headers[key] = value + if (strings.EqualFold(key, "x-request-id") || strings.EqualFold(key, "request-id")) && value != "" { + result.RequestID = value } - default: - return res, fmt.Errorf("unsupported wire type %d at offset %d", typ, pos) } } - if len(textParts) > 0 { - res.ContentText = strings.Join(textParts, "") - } - if len(thinkingParts) > 0 { - res.ThinkingText = strings.Join(thinkingParts, "") - } - return res, nil + return result } func ParseTrailerError(payload []byte) (statusCode int, err error) { @@ -531,182 +434,6 @@ func ParseTrailerError(payload []byte) (statusCode int, err error) { return httpCode, fmt.Errorf("devin upstream error (%s): %s", trailer.Error.Code, trailer.Error.Message) } -func parseToolCallDelta(data []byte) (ToolCallDelta, error) { - var tc ToolCallDelta - pos := 0 - for pos < len(data) { - num, typ, n := ConsumeTag(data[pos:]) - if n <= 0 { - return tc, ParseError(n) - } - pos += n - switch typ { - case VarintType: - v, vn := ConsumeVarint(data[pos:]) - if vn <= 0 { - return tc, ParseError(vn) - } - pos += vn - if num == 4 { - tc.Index = int(v) - } - case BytesType: - val, bn := ConsumeBytes(data[pos:]) - if bn <= 0 { - return tc, ParseError(bn) - } - pos += bn - switch num { - case 1: - tc.ID = string(val) - case 2: - tc.Name = string(val) - case 3: - tc.Arguments = string(val) - } - default: - nSkip := ConsumeFieldValue(num, typ, data[pos:]) - if nSkip <= 0 { - return tc, ParseError(nSkip) - } - pos += nSkip - } - } - return tc, nil -} - -func parseTimestamp(data []byte) uint64 { - pos := 0 - var secs uint64 - for pos < len(data) { - num, typ, n := ConsumeTag(data[pos:]) - if n <= 0 { - break - } - pos += n - if typ == VarintType { - v, vn := ConsumeVarint(data[pos:]) - if vn <= 0 { - break - } - pos += vn - if num == 1 { - secs = v - } - } else { - break - } - } - return secs -} - -func parseUsageField(data []byte) *Usage { - u := &Usage{} - pos := 0 - for pos < len(data) { - num, typ, n := ConsumeTag(data[pos:]) - if n <= 0 { - break - } - pos += n - switch typ { - case VarintType: - v, vn := ConsumeVarint(data[pos:]) - if vn <= 0 { - return u - } - pos += vn - switch num { - case 2: - u.PromptTokens += int64(v) - case 3: - u.CompletionTokens = int64(v) - case 4: - u.PromptTokens += int64(v) - u.CacheWriteTokens = int64(v) - case 5: - u.PromptTokens += int64(v) - u.CachedTokens = int64(v) - case 6: - u.StatusCode = v - } - case BytesType: - val, bn := ConsumeBytes(data[pos:]) - if bn <= 0 { - return u - } - pos += bn - switch num { - case 8: - k, v := parseHeaderField(val) - if k != "" { - if u.Headers == nil { - u.Headers = map[string]string{} - } - u.Headers[k] = v - if (strings.EqualFold(k, "x-request-id") || strings.EqualFold(k, "request-id")) && v != "" { - u.RequestID = v - } - } - case 9: - u.ModelName = string(val) - } - case Fixed64Type: - _, fn := ConsumeFixed64(data[pos:]) - if fn <= 0 { - return u - } - pos += fn - case Fixed32Type: - _, fn := ConsumeFixed32(data[pos:]) - if fn <= 0 { - return u - } - pos += fn - default: - nSkip := ConsumeFieldValue(num, typ, data[pos:]) - if nSkip <= 0 { - return u - } - pos += nSkip - } - } - return u -} - -func parseHeaderField(data []byte) (string, string) { - var key, val string - pos := 0 - for pos < len(data) { - num, typ, n := ConsumeTag(data[pos:]) - if n <= 0 { - break - } - pos += n - switch typ { - case BytesType: - b, bn := ConsumeBytes(data[pos:]) - if bn <= 0 { - return key, val - } - pos += bn - switch num { - case 1: - key = string(b) - case 2: - val = string(b) - } - default: - nSkip := ConsumeFieldValue(num, typ, data[pos:]) - if nSkip <= 0 { - return key, val - } - pos += nSkip - } - } - return key, val -} - func BasicAuthHeader(sessionToken string) string { token := strings.TrimSpace(sessionToken) return "Basic " + token + "-" + token diff --git a/internal/providers/devin/wire_test.go b/internal/providers/devin/wire_test.go new file mode 100644 index 0000000..d7e0c28 --- /dev/null +++ b/internal/providers/devin/wire_test.go @@ -0,0 +1,92 @@ +package devin + +import ( + "bytes" + "math" + "testing" + + "google.golang.org/protobuf/encoding/protowire" +) + +// Inspect numeric wire fields independently of the generated schema. +func wireField(t *testing.T, data []byte, wanted protowire.Number) []byte { + t.Helper() + for len(data) > 0 { + number, kind, n := protowire.ConsumeTag(data) + if n < 0 { + t.Fatal(protowire.ParseError(n)) + } + data = data[n:] + n = protowire.ConsumeFieldValue(number, kind, data) + if n < 0 { + t.Fatal(protowire.ParseError(n)) + } + if number == wanted { + return data[:n] + } + data = data[n:] + } + t.Fatalf("missing wire field %d", wanted) + return nil +} + +func wireMessage(t *testing.T, data []byte, number protowire.Number) []byte { + t.Helper() + value, n := protowire.ConsumeBytes(wireField(t, data, number)) + if n < 0 { + t.Fatal(protowire.ParseError(n)) + } + return value +} + +func TestChatRequestWireContract(t *testing.T) { + temperature := 0.25 + request, err := BuildGetChatMessageRequest("test-token", "test-device", "swe-2", "system", + []Prompt{{MessageID: "message", Source: 2, Content: "answer", ToolCallID: "result", + ToolCalls: []ToolCall{{ID: "call", Name: "lookup", Arguments: `{}`}}, + Images: []Image{{Base64Data: "aGVsbG8=", MimeType: "image/png"}}, + Thinking: "reason", Signature: []byte("signature"), SignatureType: "type"}}, + []Tool{{Name: "lookup", Description: "description", Parameters: []byte(`{"type":"object"}`)}}, + &temperature, 1234, t.Name(), "cascade") + if err != nil { + t.Fatal(err) + } + check := func(data []byte, fields map[protowire.Number][]byte) { + t.Helper() + for number, expected := range fields { + if actual := wireField(t, data, number); !bytes.Equal(actual, expected) { + t.Errorf("wire field %d = %x, want %x", number, actual, expected) + } + } + } + str := func(s string) []byte { return protowire.AppendString(nil, s) } + check(request, map[protowire.Number][]byte{2: str("system"), 7: {5}, 16: str("cascade"), 20: {1}, 21: str("swe-2")}) + check(wireMessage(t, request, 1), map[protowire.Number][]byte{1: str(ClientProductLabel), 3: str("test-token"), 31: str(GenerateDeviceFingerprint("test-device"))}) + check(wireMessage(t, request, 8), map[protowire.Number][]byte{ + 1: {1}, 2: protowire.AppendVarint(nil, 1234), 3: protowire.AppendVarint(nil, 400), + 5: protowire.AppendFixed64(nil, math.Float64bits(temperature)), 7: {40}, + 8: protowire.AppendFixed64(nil, math.Float64bits(float64(float32(0.95)))), + }) + prompt := wireMessage(t, request, 3) + check(prompt, map[protowire.Number][]byte{1: str("message"), 2: {2}, 3: str("answer"), 7: str("result"), 11: str("reason"), 12: str("signature"), 18: str("type")}) + check(wireMessage(t, prompt, 6), map[protowire.Number][]byte{1: str("call"), 2: str("lookup"), 3: str(`{}`)}) + check(wireMessage(t, prompt, 10), map[protowire.Number][]byte{1: str("aGVsbG8="), 2: str("image/png")}) + check(wireMessage(t, request, 10), map[protowire.Number][]byte{1: str("lookup"), 2: str("description"), 3: str(`{"type":"object"}`)}) + check(wireMessage(t, request, 15), map[protowire.Number][]byte{1: str(t.Name()), 3: {4}}) +} + +func TestResponseWireUnknownAndMalformedFields(t *testing.T) { + // Text plus a future field 99 must retain the known content. + frame, err := ParseFrame([]byte{0x1a, 0x02, 'o', 'k', 0x98, 0x06, 0x01}) + if err != nil || frame.ContentText != "ok" { + t.Fatalf("frame = %+v, error = %v", frame, err) + } + for _, payload := range [][]byte{{0x1a, 0x02, 'x'}, {0x3a, 0x01, 0x10}, {0x80}} { + if _, err := ParseFrame(payload); err == nil { + t.Errorf("accepted malformed response %x", payload) + } + } + if _, err := ParseGetUserStatusResponse([]byte{0x0a, 0x01, 0x1a}); err == nil { + t.Fatal("accepted malformed nested user status") + } +} diff --git a/scripts/devin-proto/download.go b/scripts/devin-proto/download.go new file mode 100644 index 0000000..4fc15d1 --- /dev/null +++ b/scripts/devin-proto/download.go @@ -0,0 +1,200 @@ +package main + +import ( + "archive/tar" + "compress/gzip" + "context" + "crypto/sha256" + "encoding/hex" + "errors" + "fmt" + "io" + "net/http" + "net/url" + "os" + "path/filepath" + "regexp" + "strings" + "time" +) + +const ( + desktopReleasesURL = "https://docs.devin.ai/desktop/releases.md" + desktopBinaryPath = "Devin/resources/app/extensions/windsurf/bin/language_server_linux_x64" + maxReleaseBytes = 4 << 20 + maxArchiveBytes = 512 << 20 + maxExpandedBytes = 2 << 30 + maxBinaryBytes = 256 << 20 +) + +var desktopReleaseRE = regexp.MustCompile(`(?s)]*\blabel="([^"]+)"[^>]*>.*?]*\blinuxX64="([^"]+)"[^>]*/>`) +var desktopVersionRE = regexp.MustCompile(`^v?([0-9]+\.[0-9]+\.[0-9]+)$`) + +type desktopSource struct { + Version, URL, BinaryPath, ArchiveSHA256, BinarySHA256 string +} + +func downloadDesktop(ctx context.Context, version, workDir string) (desktopSource, error) { + client := &http.Client{Timeout: 5 * time.Minute} + releases, err := getBody(ctx, client, desktopReleasesURL, maxReleaseBytes) + if err != nil { + return desktopSource{}, fmt.Errorf("fetch Devin Desktop releases: %w", err) + } + match, err := selectDesktopRelease(string(releases), version) + if err != nil { + return desktopSource{}, err + } + archiveURL := match.url + u, err := url.Parse(archiveURL) + if err != nil || u.Scheme != "https" || u.Hostname() != "windsurf-stable.codeiumdata.com" { + return desktopSource{}, fmt.Errorf("invalid Linux archive URL for %s", match.version) + } + + req, err := http.NewRequestWithContext(ctx, http.MethodGet, archiveURL, nil) + if err != nil { + return desktopSource{}, fmt.Errorf("create archive request: %w", err) + } + resp, err := client.Do(req) + if err != nil { + return desktopSource{}, fmt.Errorf("download Devin Desktop %s: %w", match.version, err) + } + defer resp.Body.Close() + if resp.StatusCode < http.StatusOK || resp.StatusCode >= http.StatusMultipleChoices { + return desktopSource{}, fmt.Errorf("download Devin Desktop %s: %s", match.version, resp.Status) + } + if resp.ContentLength > maxArchiveBytes { + return desktopSource{}, fmt.Errorf("Devin Desktop archive exceeds %d-byte limit", maxArchiveBytes) + } + if err := os.MkdirAll(workDir, 0o755); err != nil { + return desktopSource{}, fmt.Errorf("create work directory: %w", err) + } + tmp, err := os.CreateTemp(workDir, ".language_server-*") + if err != nil { + return desktopSource{}, fmt.Errorf("create binary destination: %w", err) + } + tmpPath := tmp.Name() + defer os.Remove(tmpPath) + + archiveHash := sha256.New() + counted := &countingReader{Reader: io.LimitReader(resp.Body, maxArchiveBytes+1)} + gz, err := gzip.NewReader(io.TeeReader(counted, archiveHash)) + if err != nil { + tmp.Close() + return desktopSource{}, fmt.Errorf("open Devin Desktop archive: %w", err) + } + expanded := &countingReader{Reader: io.LimitReader(gz, maxExpandedBytes+1)} + binaryHash, err := extractDesktopBinary(tar.NewReader(expanded), tmp) + if closeErr := tmp.Close(); err == nil && closeErr != nil { + err = closeErr + } + if err != nil { + return desktopSource{}, err + } + if _, err := io.Copy(io.Discard, expanded); err != nil { + return desktopSource{}, fmt.Errorf("validate Devin Desktop archive: %w", err) + } + if expanded.N > maxExpandedBytes { + return desktopSource{}, fmt.Errorf("Devin Desktop archive expands beyond %d-byte limit", maxExpandedBytes) + } + if _, err := io.Copy(io.Discard, io.TeeReader(counted, archiveHash)); err != nil { + return desktopSource{}, fmt.Errorf("finish Devin Desktop download: %w", err) + } + if counted.N > maxArchiveBytes { + return desktopSource{}, fmt.Errorf("Devin Desktop archive exceeds %d-byte limit", maxArchiveBytes) + } + binaryPath := filepath.Join(workDir, "language_server") + if err := os.Rename(tmpPath, binaryPath); err != nil { + return desktopSource{}, fmt.Errorf("install extracted language server: %w", err) + } + return desktopSource{match.version, archiveURL, binaryPath, hex.EncodeToString(archiveHash.Sum(nil)), hex.EncodeToString(binaryHash)}, nil +} + +type desktopRelease struct{ version, url string } + +func selectDesktopRelease(releases, version string) (desktopRelease, error) { + requested := strings.TrimPrefix(version, "v") + if version != "" && !desktopVersionRE.MatchString(requested) { + return desktopRelease{}, fmt.Errorf("invalid Devin Desktop version %q", version) + } + matches := desktopReleaseRE.FindAllStringSubmatch(releases, -1) + for _, match := range matches { + label := desktopVersionRE.FindStringSubmatch(match[1]) + if len(label) != 2 { + continue + } + if version == "" || label[1] == requested { + return desktopRelease{label[1], match[2]}, nil + } + } + if version == "" { + return desktopRelease{}, errors.New("no Linux x64 stable Devin Desktop release found") + } + return desktopRelease{}, fmt.Errorf("Devin Desktop version %q was not found", version) +} + +func getBody(ctx context.Context, client *http.Client, rawURL string, limit int64) ([]byte, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, rawURL, nil) + if err != nil { + return nil, err + } + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + if resp.StatusCode < http.StatusOK || resp.StatusCode >= http.StatusMultipleChoices { + return nil, fmt.Errorf("%s", resp.Status) + } + if resp.ContentLength > limit { + return nil, fmt.Errorf("response exceeds %d-byte limit", limit) + } + body, err := io.ReadAll(io.LimitReader(resp.Body, limit+1)) + if err != nil { + return nil, err + } + if int64(len(body)) > limit { + return nil, fmt.Errorf("response exceeds %d-byte limit", limit) + } + return body, nil +} + +func extractDesktopBinary(tr *tar.Reader, dst io.Writer) ([]byte, error) { + for { + hdr, err := tr.Next() + if errors.Is(err, io.EOF) { + return nil, fmt.Errorf("%s not found in Devin Desktop archive", desktopBinaryPath) + } + if err != nil { + return nil, fmt.Errorf("read Devin Desktop archive: %w", err) + } + if hdr.Name != desktopBinaryPath { + continue + } + if hdr.Typeflag != tar.TypeReg && hdr.Typeflag != tar.TypeRegA { + return nil, fmt.Errorf("%s is not a regular file", desktopBinaryPath) + } + if hdr.Size < 0 || hdr.Size > maxBinaryBytes { + return nil, fmt.Errorf("%s exceeds %d-byte limit", desktopBinaryPath, maxBinaryBytes) + } + hash := sha256.New() + n, err := io.Copy(io.MultiWriter(dst, hash), io.LimitReader(tr, hdr.Size)) + if err == nil && n != hdr.Size { + err = io.ErrUnexpectedEOF + } + if err != nil { + return nil, fmt.Errorf("extract %s: %w", desktopBinaryPath, err) + } + return hash.Sum(nil), nil + } +} + +type countingReader struct { + io.Reader + N int64 +} + +func (r *countingReader) Read(p []byte) (int, error) { + n, err := r.Reader.Read(p) + r.N += int64(n) + return n, err +} diff --git a/scripts/devin-proto/extract.go b/scripts/devin-proto/extract.go new file mode 100644 index 0000000..c114454 --- /dev/null +++ b/scripts/devin-proto/extract.go @@ -0,0 +1,102 @@ +package main + +import ( + "bytes" + "fmt" + "os" + "regexp" + "sort" + + "google.golang.org/protobuf/encoding/protowire" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protodesc" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/types/descriptorpb" +) + +var protoFilename = regexp.MustCompile(`^[A-Za-z0-9_./-]+\.proto$`) + +func extractDescriptors(path string) (*descriptorpb.FileDescriptorSet, error) { + data, err := os.ReadFile(path) + if err != nil { + return nil, err + } + files := map[string]*descriptorpb.FileDescriptorProto{} + for search := 0; search < len(data); { + match := bytes.Index(data[search:], []byte(".proto")) + if match < 0 { + break + } + end := search + match + len(".proto") + search = end + // LIMIT: embedded file names must fit in 4 KiB; revisit if a release + // uses longer names or stops embedding ordinary serialized descriptors. + for start := max(0, end-4096); start < end; start++ { + if data[start] != 0x0a { + continue + } + name, size := protowire.ConsumeBytes(data[start+1:]) + if size < 0 || start+1+size != end || !protoFilename.Match(name) { + continue + } + file := embeddedFile(data[start:], string(name)) + if file == nil { + continue + } + if previous := files[file.GetName()]; previous != nil && !proto.Equal(previous, file) { + // Desktop embeds two versions of Google's reflection schema. + // Keep the larger one; conflicting application schemas must fail. + if file.GetName() != "google/protobuf/descriptor.proto" || proto.Size(previous) == proto.Size(file) { + return nil, fmt.Errorf("conflicting embedded descriptors for %s", file.GetName()) + } + if proto.Size(previous) > proto.Size(file) { + continue + } + } + files[file.GetName()] = file + } + } + if len(files) == 0 { + return nil, fmt.Errorf("no embedded protobuf file descriptors found") + } + set := &descriptorpb.FileDescriptorSet{} + for _, file := range files { + set.File = append(set.File, file) + } + sort.Slice(set.File, func(i, j int) bool { return set.File[i].GetName() < set.File[j].GetName() }) + if _, err := protodesc.NewFiles(set); err != nil { + return nil, fmt.Errorf("invalid or incomplete extracted schema: %w", err) + } + return set, nil +} + +func embeddedFile(data []byte, name string) *descriptorpb.FileDescriptorProto { + file := &descriptorpb.FileDescriptorProto{} + fields := file.ProtoReflect().Descriptor().Fields() + offset, previous := 0, protowire.Number(0) + // LIMIT: expect tag-ordered descriptors; revisit if Desktop changes its + // serializer. A reset or repeated singular field marks the next object. + for offset < len(data) { + number, wire, size := protowire.ConsumeField(data[offset:]) + field := fields.ByNumber(number) + if size < 0 || field == nil || number < previous || (number == previous && !field.IsList()) { + break + } + want := protowire.VarintType + if field.Kind() == protoreflect.StringKind || field.Kind() == protoreflect.MessageKind { + want = protowire.BytesType + } + if wire != want && !(field.IsList() && wire == protowire.BytesType) { + break + } + offset += size + previous = number + } + if proto.Unmarshal(data[:offset], file) != nil || file.GetName() != name { + return nil + } + if len(file.MessageType)+len(file.EnumType)+len(file.Service)+len(file.Extension) == 0 { + return nil + } + return file +} diff --git a/scripts/devin-proto/main.go b/scripts/devin-proto/main.go new file mode 100644 index 0000000..3b9f19c --- /dev/null +++ b/scripts/devin-proto/main.go @@ -0,0 +1,376 @@ +// Command devin-proto updates committed wire types from a Devin Desktop release. +package main + +import ( + "context" + "crypto/sha256" + "errors" + "flag" + "fmt" + "os" + "os/exec" + "path/filepath" + "runtime" + "sort" + "strings" + "time" + + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/descriptorpb" +) + +const protocVersion = "libprotoc 34.1" +const pluginVersion = "protoc-gen-go v1.36.10" + +var generated = map[string]string{ + "exa/api_server_pb/api_server.proto": "internal/providers/devin/devinpb/api_server_pb/api_server.pb.go", + "exa/chat_pb/chat.proto": "internal/providers/devin/devinpb/chat_pb/chat.pb.go", + "exa/codeium_common_pb/codeium_common.proto": "internal/providers/devin/devinpb/codeium_common_pb/codeium_common.pb.go", + "exa/cortex_pb/cortex.proto": "internal/providers/devin/devinpb/cortex_pb/cortex.pb.go", + "exa/seat_management_pb/seat_management.proto": "internal/providers/devin/devinpb/seat_management_pb/seat_management.pb.go", +} + +var roots = []string{ + ".exa.api_server_pb.GetChatMessageRequest", ".exa.api_server_pb.GetChatMessageResponse", + ".exa.seat_management_pb.GetUserStatusRequest", ".exa.seat_management_pb.GetUserStatusResponse", +} + +func main() { + version := flag.String("version", "", "Desktop version to extract (default: latest stable)") + flag.Parse() + if flag.NArg() != 0 { + fatal(errors.New("unexpected arguments; use --version VERSION or no arguments for latest stable")) + } + if err := run(*version); err != nil { + fatal(err) + } +} + +func run(version string) error { + if err := requireVersion("protoc", protocVersion); err != nil { + return err + } + if err := requireVersion("protoc-gen-go", pluginVersion); err != nil { + return err + } + root, err := repositoryRoot() + if err != nil { + return err + } + work, err := os.MkdirTemp("", "devin-proto-update-") + if err != nil { + return err + } + defer os.RemoveAll(work) + ctx, cancel := context.WithTimeout(context.Background(), 15*time.Minute) + defer cancel() + source, err := downloadDesktop(ctx, version, work) + if err != nil { + return err + } + fmt.Printf("Extracting descriptors from Desktop %s\n", source.Version) + set, err := extractDescriptors(source.BinaryPath) + if err != nil { + return err + } + raw, err := proto.MarshalOptions{Deterministic: true}.Marshal(set) + if err != nil { + return err + } + if err := os.WriteFile(filepath.Join(work, "descriptors.pb"), raw, 0o600); err != nil { + return err + } + reduced, err := selectClosure(set) + if err != nil { + return err + } + if err := validateMappings(reduced); err != nil { + return err + } + b, err := proto.MarshalOptions{Deterministic: true}.Marshal(reduced) + if err != nil { + return err + } + descriptor := filepath.Join(work, "selected-descriptors.pb") + if err := os.WriteFile(descriptor, b, 0o600); err != nil { + return err + } + output := filepath.Join(work, "out") + if err := generate(descriptor, output); err != nil { + return err + } + header := fmt.Sprintf("// Devin Desktop %s, linux-x64: %s\n// Archive SHA256 (locally calculated): %s\n// Language server SHA256: %s\n// Extracted descriptor set SHA256: %x\n// Regenerate: bash scripts/update-devin-proto.sh --version %s\n// Recovered from Desktop, not an official proto source release or a CLI compatibility guarantee.\n\n", + source.Version, source.URL, source.ArchiveSHA256, source.BinarySHA256, sha256.Sum256(raw), source.Version) + if err := writeGenerated(root, output, header); err != nil { + return err + } + fmt.Printf("Updated %d Go files from %d extracted descriptor files; temporary artifacts removed on exit.\n", len(generated), len(set.File)) + return nil +} + +func repositoryRoot() (string, error) { + _, file, _, ok := runtime.Caller(0) + if !ok { + return "", errors.New("locate generator source") + } + return filepath.Clean(filepath.Join(filepath.Dir(file), "..", "..")), nil +} + +func validateMappings(set *descriptorpb.FileDescriptorSet) error { + for _, file := range set.File { + name := file.GetName() + if strings.HasPrefix(name, "exa/") { + if _, ok := generated[name]; !ok { + return fmt.Errorf("reachable Desktop file %q has no Go package mapping", name) + } + continue + } + if name != "google/protobuf/timestamp.proto" { + return fmt.Errorf("unsupported reachable non-Desktop file %q", name) + } + } + return nil +} + +type definition struct { + file, top string + topMessage *descriptorpb.DescriptorProto +} + +func selectClosure(source *descriptorpb.FileDescriptorSet) (*descriptorpb.FileDescriptorSet, error) { + definitions := map[string]definition{} + for _, file := range source.File { + prefix := "." + file.GetPackage() + for _, message := range file.MessageType { + indexMessage(definitions, file.GetName(), message.GetName(), prefix, message, message) + } + for _, enum := range file.EnumType { + definitions[prefix+"."+enum.GetName()] = definition{file: file.GetName(), top: enum.GetName()} + } + } + selected := map[string]bool{} + var visit func(string) error + visit = func(name string) error { + if selected[name] { + return nil + } + definition, ok := definitions[name] + if !ok { + return fmt.Errorf("selected type %q is absent from Desktop descriptors", name) + } + selected[name] = true + if definition.topMessage != nil { + if err := visitMessageTypes(definition.topMessage, visit); err != nil { + return err + } + } + return nil + } + for _, root := range roots { + if err := visit(root); err != nil { + return nil, err + } + } + keptTop := map[string]map[string]bool{} + requiredImports := map[string]map[string]bool{} + for name := range selected { + definition := definitions[name] + if keptTop[definition.file] == nil { + keptTop[definition.file] = map[string]bool{} + } + keptTop[definition.file][definition.top] = true + if definition.topMessage != nil { + for _, field := range messageFields(definition.topMessage) { + if typeName := field.GetTypeName(); typeName != "" && definitions[typeName].file != definition.file { + if requiredImports[definition.file] == nil { + requiredImports[definition.file] = map[string]bool{} + } + requiredImports[definition.file][definitions[typeName].file] = true + } + } + } + } + result := &descriptorpb.FileDescriptorSet{File: make([]*descriptorpb.FileDescriptorProto, 0, len(source.File))} + for _, file := range source.File { + top := keptTop[file.GetName()] + if top == nil { + continue + } + copy := proto.Clone(file).(*descriptorpb.FileDescriptorProto) + copy.MessageType = filterMessages(copy.MessageType, top) + copy.EnumType = filterEnums(copy.EnumType, top) + copy.Service = filterServices(copy.Service, selected) + dependencies, public, weak, err := filterDependencies(copy, requiredImports[file.GetName()]) + if err != nil { + return nil, err + } + copy.Dependency, copy.PublicDependency, copy.WeakDependency = dependencies, public, weak + result.File = append(result.File, copy) + } + return result, nil +} + +func visitMessageTypes(message *descriptorpb.DescriptorProto, visit func(string) error) error { + for _, field := range messageFields(message) { + if typeName := field.GetTypeName(); typeName != "" { + if err := visit(typeName); err != nil { + return err + } + } + } + return nil +} + +func messageFields(message *descriptorpb.DescriptorProto) []*descriptorpb.FieldDescriptorProto { + fields := append([]*descriptorpb.FieldDescriptorProto(nil), message.Field...) + for _, nested := range message.NestedType { + fields = append(fields, messageFields(nested)...) + } + return fields +} + +func filterDependencies(file *descriptorpb.FileDescriptorProto, keep map[string]bool) ([]string, []int32, []int32, error) { + filtered := make([]string, 0, len(file.Dependency)) + indices := map[int32]int32{} + for old, dependency := range file.Dependency { + if keep[dependency] { + indices[int32(old)] = int32(len(filtered)) + filtered = append(filtered, dependency) + } + } + remap := func(values []int32) ([]int32, error) { + mapped := make([]int32, 0, len(values)) + for _, old := range values { + if old < 0 || int(old) >= len(file.Dependency) { + return nil, fmt.Errorf("selected file %q has invalid dependency index %d", file.GetName(), old) + } + new, ok := indices[old] + if !ok { + return nil, fmt.Errorf("selected file %q has public or weak dependency %q outside its type closure", file.GetName(), file.Dependency[old]) + } + mapped = append(mapped, new) + } + return mapped, nil + } + public, err := remap(file.PublicDependency) + if err != nil { + return nil, nil, nil, err + } + weak, err := remap(file.WeakDependency) + if err != nil { + return nil, nil, nil, err + } + return filtered, public, weak, nil +} + +func indexMessage(definitions map[string]definition, file, top, prefix string, message, topMessage *descriptorpb.DescriptorProto) { + name := prefix + "." + message.GetName() + definitions[name] = definition{file: file, top: top, topMessage: topMessage} + for _, nested := range message.NestedType { + indexMessage(definitions, file, top, name, nested, topMessage) + } + for _, enum := range message.EnumType { + definitions[name+"."+enum.GetName()] = definition{file: file, top: top, topMessage: topMessage} + } +} + +func filterMessages(messages []*descriptorpb.DescriptorProto, keep map[string]bool) []*descriptorpb.DescriptorProto { + var filtered []*descriptorpb.DescriptorProto + for _, message := range messages { + if keep[message.GetName()] { + filtered = append(filtered, message) + } + } + return filtered +} + +func filterEnums(enums []*descriptorpb.EnumDescriptorProto, keep map[string]bool) []*descriptorpb.EnumDescriptorProto { + var filtered []*descriptorpb.EnumDescriptorProto + for _, enum := range enums { + if keep[enum.GetName()] { + filtered = append(filtered, enum) + } + } + return filtered +} + +func filterServices(services []*descriptorpb.ServiceDescriptorProto, selected map[string]bool) []*descriptorpb.ServiceDescriptorProto { + var filtered []*descriptorpb.ServiceDescriptorProto + for _, service := range services { + var methods []*descriptorpb.MethodDescriptorProto + for _, method := range service.Method { + if selected[method.GetInputType()] && selected[method.GetOutputType()] { + methods = append(methods, method) + } + } + if len(methods) != 0 { + copy := proto.Clone(service).(*descriptorpb.ServiceDescriptorProto) + copy.Method = methods + filtered = append(filtered, copy) + } + } + return filtered +} + +func generate(descriptor, output string) error { + if err := requireVersion("protoc", protocVersion); err != nil { + return err + } + if err := requireVersion("protoc-gen-go", pluginVersion); err != nil { + return err + } + if err := os.MkdirAll(output, 0o755); err != nil { + return err + } + args := []string{ + "--descriptor_set_in=" + descriptor, "--go_out=" + output, "--go_opt=paths=import", "--go_opt=module=github.com/caigee-cmd/cli2api", + "--go_opt=Mexa/api_server_pb/api_server.proto=github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/api_server_pb", + "--go_opt=Mexa/chat_pb/chat.proto=github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/chat_pb", + "--go_opt=Mexa/codeium_common_pb/codeium_common.proto=github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/codeium_common_pb", + "--go_opt=Mexa/cortex_pb/cortex.proto=github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/cortex_pb", + "--go_opt=Mexa/seat_management_pb/seat_management.proto=github.com/caigee-cmd/cli2api/internal/providers/devin/devinpb/seat_management_pb", + "--go_opt=Mgoogle/protobuf/timestamp.proto=google.golang.org/protobuf/types/known/timestamppb", + } + files := make([]string, 0, len(generated)) + for file := range generated { + files = append(files, file) + } + sort.Strings(files) + command := exec.Command("protoc", append(args, files...)...) + command.Stdout, command.Stderr = os.Stdout, os.Stderr + return command.Run() +} + +func requireVersion(command, want string) error { + output, err := exec.Command(command, "--version").CombinedOutput() + if err != nil { + return err + } + if got := strings.TrimSpace(string(output)); got != want { + return fmt.Errorf("%s version is %q, want %q", command, got, want) + } + return nil +} + +func writeGenerated(root, output, header string) error { + contents := make(map[string][]byte, len(generated)) + for _, destination := range generated { + b, err := os.ReadFile(filepath.Join(output, destination)) + if err != nil { + return err + } + contents[destination] = append([]byte(header), b...) + } + for destination, b := range contents { + path := filepath.Join(root, destination) + if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil { + return err + } + if err := os.WriteFile(path, b, 0o644); err != nil { + return err + } + } + return nil +} + +func fatal(err error) { fmt.Fprintln(os.Stderr, "update devin protobuf:", err); os.Exit(1) } diff --git a/scripts/update-devin-proto.sh b/scripts/update-devin-proto.sh new file mode 100755 index 0000000..6a8b93e --- /dev/null +++ b/scripts/update-devin-proto.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# Download Desktop, extract descriptors and generate Go bindings. Requires Go, +# protoc 34.1 and protoc-gen-go v1.36.10 on PATH: +# go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.36.10 +# bash scripts/update-devin-proto.sh # latest stable +# bash scripts/update-devin-proto.sh --version 3.10.31 # pinned release +# Only .pb.go files are written to the checkout; downloads/descriptors are temporary. +set -euo pipefail + +repo_root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +cd "$repo_root" +exec go run ./scripts/devin-proto "$@"