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/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..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)) @@ -117,12 +120,46 @@ type aggregateResult struct { FinishReason string PromptTokens int CompletionTokens int + CacheReadTokens *int + 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) @@ -150,25 +187,14 @@ 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) + out.CacheReadTokens, out.CacheWriteTokens = &cacheRead, &cacheWrite if frame.Usage.PromptTokens > 0 { out.PromptTokens = int(frame.Usage.PromptTokens) } @@ -188,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", @@ -226,6 +239,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 { @@ -267,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 @@ -317,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, @@ -348,21 +350,24 @@ 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 } } } - 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 9607d72..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,16 +204,17 @@ 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. + 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 +270,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) { @@ -285,37 +301,17 @@ 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 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,13 +362,13 @@ 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) { - 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") @@ -382,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(`{}`))) @@ -699,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 9b3cbbf..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. @@ -64,7 +68,7 @@ type Usage struct { PromptTokens int64 CompletionTokens int64 CachedTokens int64 - StatusCode uint64 + CacheWriteTokens int64 RequestID string ModelName string Headers map[string]string @@ -186,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( @@ -224,7 +239,7 @@ func BuildGetChatMessageRequest( maxTokens int, sessionID string, cascadeID string, -) []byte { +) ([]byte, error) { if maxTokens <= 0 { maxTokens = DefaultMaxTokens } @@ -236,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) { @@ -530,180 +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) - case 5: - 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/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 } 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 "$@"