File size: 40,436 Bytes
3c2af29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
syntax = "proto3";
package aiserver.v1;
enum ClientSideToolV2 { // aiserver.v1.ClientSideToolV2
	CLIENT_SIDE_TOOL_V2_UNSPECIFIED = 0;
	CLIENT_SIDE_TOOL_V2_READ_SEMSEARCH_FILES = 1;
	CLIENT_SIDE_TOOL_V2_READ_FILE_FOR_IMPORTS = 2;
	CLIENT_SIDE_TOOL_V2_RIPGREP_SEARCH = 3;
	CLIENT_SIDE_TOOL_V2_RUN_TERMINAL_COMMAND = 4;
	CLIENT_SIDE_TOOL_V2_READ_FILE = 5;
	CLIENT_SIDE_TOOL_V2_LIST_DIR = 6;
	CLIENT_SIDE_TOOL_V2_EDIT_FILE = 7;
	CLIENT_SIDE_TOOL_V2_FILE_SEARCH = 8;
	CLIENT_SIDE_TOOL_V2_SEMANTIC_SEARCH_FULL = 9;
	CLIENT_SIDE_TOOL_V2_CREATE_FILE = 10;
	CLIENT_SIDE_TOOL_V2_DELETE_FILE = 11;
}
enum EmbeddingModel { // aiserver.v1.EmbeddingModel
	EMBEDDING_MODEL_UNSPECIFIED = 0;
	EMBEDDING_MODEL_VOYAGE_CODE_2 = 1;
	EMBEDDING_MODEL_TEXT_EMBEDDINGS_LARGE_3 = 2;
	EMBEDDING_MODEL_QWEN_1_5B_CUSTOM = 3;
}
enum ChunkType { // aiserver.v1.ChunkType
	CHUNK_TYPE_UNSPECIFIED = 0;
	CHUNK_TYPE_CODEBASE = 1;
	CHUNK_TYPE_LONG_FILE = 2;
	CHUNK_TYPE_DOCS = 3;
}
enum FastApplySource { // aiserver.v1.FastApplySource
	FAST_APPLY_SOURCE_UNSPECIFIED = 0;
	FAST_APPLY_SOURCE_COMPOSER = 1;
	FAST_APPLY_SOURCE_CLICKED_APPLY = 2;
	FAST_APPLY_SOURCE_CACHED_APPLY = 3;
}
enum BuiltinTool { // aiserver.v1.BuiltinTool
	BUILTIN_TOOL_UNSPECIFIED = 0;
	BUILTIN_TOOL_SEARCH = 1;
	BUILTIN_TOOL_READ_CHUNK = 2;
	BUILTIN_TOOL_GOTODEF = 3;
	BUILTIN_TOOL_EDIT = 4;
	BUILTIN_TOOL_UNDO_EDIT = 5;
	BUILTIN_TOOL_END = 6;
	BUILTIN_TOOL_NEW_FILE = 7;
	BUILTIN_TOOL_ADD_TEST = 8;
	BUILTIN_TOOL_RUN_TEST = 9;
	BUILTIN_TOOL_DELETE_TEST = 10;
	BUILTIN_TOOL_SAVE_FILE = 11;
	BUILTIN_TOOL_GET_TESTS = 12;
	BUILTIN_TOOL_GET_SYMBOLS = 13;
	BUILTIN_TOOL_SEMANTIC_SEARCH = 14;
	BUILTIN_TOOL_GET_PROJECT_STRUCTURE = 15;
	BUILTIN_TOOL_CREATE_RM_FILES = 16;
	BUILTIN_TOOL_RUN_TERMINAL_COMMANDS = 17;
	BUILTIN_TOOL_NEW_EDIT = 18;
	BUILTIN_TOOL_READ_WITH_LINTER = 19;
}
enum FeatureType { // aiserver.v1.FeatureType
	FEATURE_TYPE_UNSPECIFIED = 0;
	FEATURE_TYPE_EDIT = 1;
	FEATURE_TYPE_GENERATE = 2;
	FEATURE_TYPE_INLINE_LONG_COMPLETION = 3;
}
enum TaskStatus { // aiserver.v1.TaskStatus
	TASK_STATUS_UNSPECIFIED = 0;
	TASK_STATUS_RUNNING = 1;
	TASK_STATUS_PAUSED = 2;
	TASK_STATUS_DONE = 3;
	TASK_STATUS_NOT_STARTED = 4;
}
enum RerankerAlgorithm { // aiserver.v1.RerankerAlgorithm
	RERANKER_ALGORITHM_UNSPECIFIED = 0;
	RERANKER_ALGORITHM_LULEA = 1;
	RERANKER_ALGORITHM_UMEA = 2;
	RERANKER_ALGORITHM_NONE = 3;
	RERANKER_ALGORITHM_LLAMA = 4;
	RERANKER_ALGORITHM_STARCODER_V1 = 5;
	RERANKER_ALGORITHM_GPT_3_5_LOGPROBS = 6;
	RERANKER_ALGORITHM_LULEA_HAIKU = 7;
	RERANKER_ALGORITHM_COHERE = 8;
	RERANKER_ALGORITHM_VOYAGE = 9;
	RERANKER_ALGORITHM_VOYAGE_EMBEDS = 10;
	RERANKER_ALGORITHM_IDENTITY = 11;
	RERANKER_ALGORITHM_ADA_EMBEDS = 12;
}
enum RechunkerChoice { // aiserver.v1.RechunkerChoice
	RECHUNKER_CHOICE_UNSPECIFIED = 0;
	RECHUNKER_CHOICE_IDENTITY = 1;
	RECHUNKER_CHOICE_600_TOKS = 2;
	RECHUNKER_CHOICE_2400_TOKS = 3;
	RECHUNKER_CHOICE_4000_TOKS = 4;
}
enum LintGenerator { // aiserver.v1.LintGenerator
	LINT_GENERATOR_UNSPECIFIED = 0;
	LINT_GENERATOR_NAIVE = 1;
	LINT_GENERATOR_COMMENT_PIPELINE = 2;
	LINT_GENERATOR_SIMPLE_BUG = 3;
	LINT_GENERATOR_SIMPLE_LINT_RULES = 4;
}
enum LintDiscriminator { // aiserver.v1.LintDiscriminator
	LINT_DISCRIMINATOR_UNSPECIFIED = 0;
	LINT_DISCRIMINATOR_SPECIFIC_RULES = 1;
	LINT_DISCRIMINATOR_COMPILE_ERRORS = 2;
	LINT_DISCRIMINATOR_CHANGE_BEHAVIOR = 3;
	LINT_DISCRIMINATOR_RELEVANCE = 4;
	LINT_DISCRIMINATOR_USER_AWARENESS = 5;
	LINT_DISCRIMINATOR_CORRECTNESS = 6;
	LINT_DISCRIMINATOR_CHUNKING = 7;
	LINT_DISCRIMINATOR_TYPO = 8;
	LINT_DISCRIMINATOR_CONFIDENCE = 9;
	LINT_DISCRIMINATOR_DISMISSED_BUGS = 10;
}
enum CppSource { // aiserver.v1.CppSource
	CPP_SOURCE_UNSPECIFIED = 0;
	CPP_SOURCE_LINE_CHANGE = 1;
	CPP_SOURCE_TYPING = 2;
	CPP_SOURCE_OPTION_HOLD = 3;
	CPP_SOURCE_LINTER_ERRORS = 4;
	CPP_SOURCE_PARAMETER_HINTS = 5;
	CPP_SOURCE_CURSOR_PREDICTION = 6;
	CPP_SOURCE_MANUAL_TRIGGER = 7;
	CPP_SOURCE_EDITOR_CHANGE = 8;
}
enum ChunkingStrategy { // aiserver.v1.ChunkingStrategy
	CHUNKING_STRATEGY_UNSPECIFIED = 0;
	CHUNKING_STRATEGY_DEFAULT = 1;
}
message ErrorDetails { // aiserver.v1.ErrorDetails
		enum Error { // aiserver.v1.ErrorDetails.Error
			ERROR_UNSPECIFIED = 0;
			ERROR_BAD_API_KEY = 1;
			ERROR_NOT_LOGGED_IN = 2;
			ERROR_INVALID_AUTH_ID = 3;
			ERROR_NOT_HIGH_ENOUGH_PERMISSIONS = 4;
			ERROR_BAD_MODEL_NAME = 5;
			ERROR_USER_NOT_FOUND = 6;
			ERROR_FREE_USER_RATE_LIMIT_EXCEEDED = 7;
			ERROR_PRO_USER_RATE_LIMIT_EXCEEDED = 8;
			ERROR_FREE_USER_USAGE_LIMIT = 9;
			ERROR_PRO_USER_USAGE_LIMIT = 10;
			ERROR_AUTH_TOKEN_NOT_FOUND = 11;
			ERROR_AUTH_TOKEN_EXPIRED = 12;
			ERROR_OPENAI = 13;
			ERROR_OPENAI_RATE_LIMIT_EXCEEDED = 14;
			ERROR_OPENAI_ACCOUNT_LIMIT_EXCEEDED = 15;
			ERROR_TASK_UUID_NOT_FOUND = 16;
			ERROR_TASK_NO_PERMISSIONS = 17;
			ERROR_AGENT_REQUIRES_LOGIN = 18;
			ERROR_AGENT_ENGINE_NOT_FOUND = 19;
			ERROR_MAX_TOKENS = 20;
			ERROR_USER_ABORTED_REQUEST = 21;
			ERROR_GENERIC_RATE_LIMIT_EXCEEDED = 22;
			ERROR_PRO_USER_ONLY = 23;
			ERROR_API_KEY_NOT_SUPPORTED = 24;
			ERROR_SLASH_EDIT_FILE_TOO_LONG = 26;
			ERROR_FILE_UNSUPPORTED = 27;
			ERROR_GPT_4_VISION_PREVIEW_RATE_LIMIT = 28;
			ERROR_CUSTOM_MESSAGE = 29;
			ERROR_OUTDATED_CLIENT = 30;
			ERROR_CLAUDE_IMAGE_TOO_LARGE = 31;
			ERROR_GITGRAPH_NOT_FOUND = 32;
			ERROR_FILE_NOT_FOUND = 33;
			ERROR_API_KEY_RATE_LIMIT = 34;
			ERROR_DEBOUNCED = 35;
			ERROR_BAD_REQUEST = 36;
			ERROR_REPOSITORY_SERVICE_REPOSITORY_IS_NOT_INITIALIZED = 37;
			ERROR_UNAUTHORIZED = 38;
			ERROR_NOT_FOUND = 39;
			ERROR_DEPRECATED = 40;
			ERROR_RESOURCE_EXHAUSTED = 41;
		}
	Error error = 1;
	CustomErrorDetails details = 2;
	optional bool is_expected = 3;
}

message CustomErrorDetails { // aiserver.v1.CustomErrorDetails
	string title = 1;
	string detail = 2;
	optional bool allow_command_links_potentially_unsafe_please_only_use_for_handwritten_trusted_markdown = 3;
	optional bool is_retryable = 4;
	optional bool show_request_id = 5;
}

message GetChatRequest { // aiserver.v1.GetChatRequest
	CurrentFileInfo current_file = 1;
	repeated ConversationMessage conversation = 2;
	repeated RepositoryInfo repositories = 3;
	ExplicitContext explicit_context = 4;
	optional string workspace_root_path = 5;
	repeated CodeBlock code_blocks = 6;
	ModelDetails model_details = 7;
	repeated string documentation_identifiers = 8;
	string request_id = 9;
	LinterErrors linter_errors = 10;
	optional string summary = 11;
	optional int32 summary_up_until_index = 12;
	optional bool allow_long_file_scan = 13;
	optional bool is_bash = 14;
	string conversation_id = 15;
	optional bool can_handle_filenames_after_language_ids = 16;
	optional string use_web = 17;
	repeated ChatQuote quotes = 18;
	optional DebugInfo debug_info = 19;
	optional string workspace_id = 20;
	repeated ChatExternalLink external_links = 21;
	repeated CommitNote commit_notes = 23;
	optional bool long_context_mode = 22;
	optional bool is_eval = 24;
	optional int32 desired_max_tokens = 26;
	ContextAST context_ast = 25;
	optional bool is_composer = 27;
	optional bool runnable_code_blocks = 28;
	optional bool should_cache = 29;
}
message CurrentFileInfo { // aiserver.v1.CurrentFileInfo
		message NotebookCell { // aiserver.v1.CurrentFileInfo.NotebookCell
		}
	string relative_workspace_path = 1;
	string contents = 2;
	bool rely_on_filesync = 18;
	optional string sha_256_hash = 17;
	repeated NotebookCell cells = 16;
	repeated BM25Chunk top_chunks = 10;
	int32 contents_start_at_line = 9;
	CursorPosition cursor_position = 3;
	repeated DataframeInfo dataframes = 4;
	int32 total_number_of_lines = 8;
	string language_id = 5;
	CursorRange selection = 6;
	optional int32 alternative_version_id = 11;
	repeated Diagnostic diagnostics = 7;
	optional int32 file_version = 14;
	repeated int32 cell_start_lines = 15;
	string workspace_root_path = 19;
}
message BM25Chunk { // aiserver.v1.BM25Chunk
	string content = 1;
	SimplestRange range = 2;
	int32 score = 3;
	string relative_path = 4;
}
message SimplestRange { // aiserver.v1.SimplestRange
	int32 start_line = 1;
	int32 end_line_inclusive = 2;
}
message CursorPosition { // aiserver.v1.CursorPosition
	int32 line = 1;
	int32 column = 2;
}
message DataframeInfo { // aiserver.v1.DataframeInfo
		message Column { // aiserver.v1.DataframeInfo.Column
			string key = 1;
			string type = 2;
		}
	string name = 1;
	string shape = 2;
	int32 data_dimensionality = 3;
	repeated Column columns = 6;
	int32 row_count = 7;
	string index_column = 8;
}
message CursorRange { // aiserver.v1.CursorRange
	CursorPosition start_position = 1;
	CursorPosition end_position = 2;
}
message Diagnostic { // aiserver.v1.Diagnostic
		enum DiagnosticSeverity { // aiserver.v1.Diagnostic.DiagnosticSeverity
			DIAGNOSTIC_SEVERITY_UNSPECIFIED = 0;
			DIAGNOSTIC_SEVERITY_ERROR = 1;
			DIAGNOSTIC_SEVERITY_WARNING = 2;
			DIAGNOSTIC_SEVERITY_INFORMATION = 3;
			DIAGNOSTIC_SEVERITY_HINT = 4;
		}
		message RelatedInformation { // aiserver.v1.Diagnostic.RelatedInformation
			string message = 1;
			CursorRange range = 2;
		}
	string message = 1;
	CursorRange range = 2;
	DiagnosticSeverity severity = 3;
	repeated RelatedInformation related_information = 4;
}
message ConversationMessage { // aiserver.v1.ConversationMessage
		enum MessageType { // aiserver.v1.ConversationMessage.MessageType
			MESSAGE_TYPE_UNSPECIFIED = 0;
			MESSAGE_TYPE_HUMAN = 1;
			MESSAGE_TYPE_AI = 2;
		}
		message CodeChunk { // aiserver.v1.ConversationMessage.CodeChunk
				enum SummarizationStrategy { // aiserver.v1.ConversationMessage.CodeChunk.SummarizationStrategy
					SUMMARIZATION_STRATEGY_NONE_UNSPECIFIED = 0;
					SUMMARIZATION_STRATEGY_SUMMARIZED = 1;
					SUMMARIZATION_STRATEGY_EMBEDDED = 2;
				}
				enum Intent { // aiserver.v1.ConversationMessage.CodeChunk.Intent
					INTENT_UNSPECIFIED = 0;
					INTENT_COMPOSER_FILE = 1;
					INTENT_COMPRESSED_COMPOSER_FILE = 2;
					INTENT_RECENTLY_VIEWED_FILE = 3;
					INTENT_OUTLINE = 4;
					INTENT_MENTIONED_FILE = 5;
				}
			string relative_workspace_path = 1;
			int32 start_line_number = 2;
			repeated string lines = 3;
			optional SummarizationStrategy summarization_strategy = 4;
			string language_identifier = 5;
			optional Intent intent = 6;
			optional bool is_final_version = 7;
			optional bool is_first_version = 8;
			optional bool contents_are_missing = 9;
		}
		message ApproximateLintError { // aiserver.v1.ConversationMessage.ApproximateLintError
			string message = 1;
			string value = 2;
			int32 start_line = 3;
			int32 end_line = 4;
			int32 start_column = 5;
			int32 end_column = 6;
		}
		message Lints { // aiserver.v1.ConversationMessage.Lints
			GetLintsForChangeResponse lints = 1;
			string chat_codeblock_model_value = 2;
		}
		message ToolResult { // aiserver.v1.ConversationMessage.ToolResult
				message CodeChunk { // aiserver.v1.ConversationMessage.CodeChunk
						enum SummarizationStrategy { // aiserver.v1.ConversationMessage.CodeChunk.SummarizationStrategy
							SUMMARIZATION_STRATEGY_NONE_UNSPECIFIED = 0;
							SUMMARIZATION_STRATEGY_SUMMARIZED = 1;
							SUMMARIZATION_STRATEGY_EMBEDDED = 2;
						}
						enum Intent { // aiserver.v1.ConversationMessage.CodeChunk.Intent
							INTENT_UNSPECIFIED = 0;
							INTENT_COMPOSER_FILE = 1;
							INTENT_COMPRESSED_COMPOSER_FILE = 2;
							INTENT_RECENTLY_VIEWED_FILE = 3;
							INTENT_OUTLINE = 4;
							INTENT_MENTIONED_FILE = 5;
						}
					string relative_workspace_path = 1;
					int32 start_line_number = 2;
					repeated string lines = 3;
					optional SummarizationStrategy summarization_strategy = 4;
					string language_identifier = 5;
					optional Intent intent = 6;
					optional bool is_final_version = 7;
					optional bool is_first_version = 8;
					optional bool contents_are_missing = 9;
				}
			string tool_call_id = 1;
			string tool_name = 2;
			uint32 tool_index = 3;
			string args = 4;
			string raw_args = 5;
			repeated CodeChunk attached_code_chunks = 6;
			optional string content = 7;
			ClientSideToolV2Result result = 8;
			optional ToolResultError error = 9;
		}
		message NotepadContext { // aiserver.v1.ConversationMessage.NotepadContext
				message CodeChunk { // aiserver.v1.ConversationMessage.CodeChunk
						enum SummarizationStrategy { // aiserver.v1.ConversationMessage.CodeChunk.SummarizationStrategy
							SUMMARIZATION_STRATEGY_NONE_UNSPECIFIED = 0;
							SUMMARIZATION_STRATEGY_SUMMARIZED = 1;
							SUMMARIZATION_STRATEGY_EMBEDDED = 2;
						}
						enum Intent { // aiserver.v1.ConversationMessage.CodeChunk.Intent
							INTENT_UNSPECIFIED = 0;
							INTENT_COMPOSER_FILE = 1;
							INTENT_COMPRESSED_COMPOSER_FILE = 2;
							INTENT_RECENTLY_VIEWED_FILE = 3;
							INTENT_OUTLINE = 4;
							INTENT_MENTIONED_FILE = 5;
						}
					string relative_workspace_path = 1;
					int32 start_line_number = 2;
					repeated string lines = 3;
					optional SummarizationStrategy summarization_strategy = 4;
					string language_identifier = 5;
					optional Intent intent = 6;
					optional bool is_final_version = 7;
					optional bool is_first_version = 8;
					optional bool contents_are_missing = 9;
				}
			string name = 1;
			string text = 2;
			repeated CodeChunk attached_code_chunks = 3;
			repeated string attached_folders = 4;
			repeated Commit commits = 5;
			repeated PullRequest pull_requests = 6;
			repeated GitDiff git_diffs = 7;
			repeated ImageProto images = 8;
		}
		message EditTrailContext { // aiserver.v1.ConversationMessage.EditTrailContext
				message EditLocation { // aiserver.v1.ConversationMessage.EditLocation
					string relative_workspace_path = 1;
					SimplestRange range = 3;
					SimplestRange initial_range = 4;
					string context_lines = 5;
					string text = 6;
					SimplestRange text_range = 7;
				}
			string unique_id = 1;
			repeated EditLocation edit_trail_sorted = 2;
		}
		message RecentLocation { // aiserver.v1.ConversationMessage.RecentLocation
			string relative_workspace_path = 1;
			int32 line_number = 2;
		}
	string text = 1;
	MessageType type = 2;
	repeated CodeChunk attached_code_chunks = 3;
	repeated CodeBlock codebase_context_chunks = 4;
	repeated Commit commits = 5;
	repeated PullRequest pull_requests = 6;
	repeated GitDiff git_diffs = 7;
	repeated SimpleFileDiff assistant_suggested_diffs = 8;
	repeated InterpreterResult interpreter_results = 9;
	repeated ImageProto images = 10;
	repeated string attached_folders = 11;
	repeated ApproximateLintError approximate_lint_errors = 12;
	string bubble_id = 13;
	optional string server_bubble_id = 32;
	repeated FolderInfo attached_folders_new = 14;
	repeated Lints lints = 15;
	repeated UserResponseToSuggestedCodeBlock user_responses_to_suggested_code_blocks = 16;
	repeated string relevant_files = 17;
	repeated ToolResult tool_results = 18;
	repeated NotepadContext notepads = 19;
	optional bool is_capability_iteration = 20;
	repeated ComposerCapabilityRequest capabilities = 21;
	repeated EditTrailContext edit_trail_contexts = 22;
	repeated SuggestedCodeBlock suggested_code_blocks = 23;
	repeated RedDiff diffs_for_compressing_files = 24;
	repeated LinterErrorsWithoutFileContents multi_file_linter_errors = 25;
	repeated DiffHistoryData diff_histories = 26;
	repeated CodeChunk recently_viewed_files = 27;
	repeated RecentLocation recent_locations_history = 28;
	bool is_agentic = 29;
	repeated ComposerFileDiffHistory file_diff_trajectories = 30;
	optional ConversationSummary conversation_summary = 31;
}
message CodeBlock { // aiserver.v1.CodeBlock
		message Signatures { // aiserver.v1.CodeBlock.Signatures
			repeated CursorRange ranges = 1;
		}
	string relative_workspace_path = 1;
	optional string file_contents = 2;
	CursorRange range = 3;
	string contents = 4;
	Signatures signatures = 5;
	optional string override_contents = 6;
	optional string original_contents = 7;
	repeated DetailedLine detailed_lines = 8;
}
message DetailedLine { // aiserver.v1.DetailedLine
	string text = 1;
	float line_number = 2;
	bool is_signature = 3;
}
message Commit { // aiserver.v1.Commit
	string sha = 1;
	string message = 2;
	string description = 3;
	repeated FileDiff diff = 4;
	string author = 5;
	string date = 6;
}
message FileDiff { // aiserver.v1.FileDiff
		message Chunk { // aiserver.v1.FileDiff.Chunk
			string content = 1;
			repeated string lines = 2;
			int32 old_start = 3;
			int32 old_lines = 4;
			int32 new_start = 5;
			int32 new_lines = 6;
		}
	string from = 1;
	string to = 2;
	repeated Chunk chunks = 3;
}
message PullRequest { // aiserver.v1.PullRequest
	string title = 1;
	string body = 2;
	repeated FileDiff diff = 3;
}
message GitDiff { // aiserver.v1.GitDiff
		enum DiffType { // aiserver.v1.GitDiff.DiffType
			DIFF_TYPE_UNSPECIFIED = 0;
			DIFF_TYPE_DIFF_TO_HEAD = 1;
			DIFF_TYPE_DIFF_FROM_BRANCH_TO_MAIN = 2;
		}
	repeated FileDiff diffs = 1;
	DiffType diff_type = 2;
}
message SimpleFileDiff { // aiserver.v1.SimpleFileDiff
		message Chunk { // aiserver.v1.SimpleFileDiff.Chunk
			repeated string old_lines = 1;
			repeated string new_lines = 2;
			LineRange old_range = 3;
			LineRange new_range = 4;
		}
	string relative_workspace_path = 1;
	repeated Chunk chunks = 3;
}
message LineRange { // aiserver.v1.LineRange
	int32 start_line_number = 1;
	int32 end_line_number_inclusive = 2;
}
message InterpreterResult { // aiserver.v1.InterpreterResult
	string output = 1;
	bool success = 2;
}
message ImageProto { // aiserver.v1.ImageProto
		message Dimension { // aiserver.v1.ImageProto.Dimension
			int32 width = 1;
			int32 height = 2;
		}
	bytes data = 1;
	Dimension dimension = 2;
}
message FolderInfo { // aiserver.v1.FolderInfo
	string relative_path = 1;
	repeated FolderFileInfo files = 2;
}
message FolderFileInfo { // aiserver.v1.FolderFileInfo
	string relative_path = 1;
	string content = 2;
	bool truncated = 3;
	float score = 4;
}
message GetLintsForChangeResponse { // aiserver.v1.GetLintsForChangeResponse
		message Lint { // aiserver.v1.GetLintsForChangeResponse.Lint
				message QuickFix { // aiserver.v1.GetLintsForChangeResponse.Lint.QuickFix
						message Edit { // aiserver.v1.GetLintsForChangeResponse.Lint.QuickFix.Edit
							string relative_workspace_path = 1;
							string text = 2;
							int32 start_line_number_one_indexed = 3;
							int32 start_column_one_indexed = 4;
							int32 end_line_number_inclusive_one_indexed = 5;
							int32 end_column_one_indexed = 6;
						}
					string message = 1;
					string kind = 2;
					bool is_preferred = 3;
					repeated Edit edits = 4;
				}
			string message = 1;
			string severity = 2;
			string relative_workspace_path = 3;
			int32 start_line_number_one_indexed = 4;
			int32 start_column_one_indexed = 5;
			int32 end_line_number_inclusive_one_indexed = 6;
			int32 end_column_one_indexed = 7;
			repeated QuickFix quick_fixes = 9;
		}
	repeated Lint lints = 1;
}
message UserResponseToSuggestedCodeBlock { // aiserver.v1.UserResponseToSuggestedCodeBlock
		enum UserResponseType { // aiserver.v1.UserResponseToSuggestedCodeBlock.UserResponseType
			USER_RESPONSE_TYPE_UNSPECIFIED = 0;
			USER_RESPONSE_TYPE_ACCEPT = 1;
			USER_RESPONSE_TYPE_REJECT = 2;
			USER_RESPONSE_TYPE_MODIFY = 3;
		}
	UserResponseType user_response_type = 1;
	string file_path = 2;
	optional FileDiff user_modifications_to_suggested_code_blocks = 3;
}
message ClientSideToolV2Result { // aiserver.v1.ClientSideToolV2Result
	ClientSideToolV2 tool = 1;
	ReadSemsearchFilesResult read_semsearch_files_result = 2;
	ReadFileForImportsResult read_file_for_imports_result = 3;
	RipgrepSearchResult ripgrep_search_result = 4;
	RunTerminalCommandResult run_terminal_command_result = 5;
	ReadFileResult read_file_result = 6;
	ListDirResult list_dir_result = 9;
	EditFileResult edit_file_result = 10;
	ToolCallFileSearchResult file_search_result = 11;
	SemanticSearchFullResult semantic_search_full_result = 18;
	CreateFileResult create_file_result = 19;
	DeleteFileResult delete_file_result = 20;
	optional ToolResultError error = 8;
}
message ReadSemsearchFilesResult { // aiserver.v1.ReadSemsearchFilesResult
	repeated CodeResult code_results = 1;
}
message CodeResult { // aiserver.v1.CodeResult
	CodeBlock code_block = 1;
	float score = 2;
}
message ReadFileForImportsResult { // aiserver.v1.ReadFileForImportsResult
	string contents = 1;
}
message RipgrepSearchResult { // aiserver.v1.RipgrepSearchResult
	RipgrepSearchResultInternal internal = 1;
}
message RipgrepSearchResultInternal { // aiserver.v1.RipgrepSearchResultInternal
		message IFileMatch { // aiserver.v1.RipgrepSearchResultInternal.IFileMatch
				message ITextSearchResult { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchResult
						message ITextSearchMatch { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchMatch
								message ISearchRangeSetPairing { // aiserver.v1.RipgrepSearchResultInternal.ISearchRangeSetPairing
										message ISearchRange { // aiserver.v1.RipgrepSearchResultInternal.ISearchRange
											int32 start_line_number = 1;
											int32 start_column = 2;
											int32 end_line_number = 3;
											int32 end_column = 4;
										}
									ISearchRange source = 1;
									ISearchRange preview = 2;
								}
							optional string uri = 1;
							repeated ISearchRangeSetPairing range_locations = 2;
							string preview_text = 3;
							optional int32 webview_index = 4;
							optional string cell_fragment = 5;
						}
						message ITextSearchContext { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchContext
							optional string uri = 1;
							string text = 2;
							int32 line_number = 3;
						}
					ITextSearchMatch match = 1;
					ITextSearchContext context = 2;
				}
			string resource = 1;
			repeated ITextSearchResult results = 2;
		}
		enum SearchCompletionExitCode { // aiserver.v1.RipgrepSearchResultInternal.SearchCompletionExitCode
			SEARCH_COMPLETION_EXIT_CODE_UNSPECIFIED = 0;
			SEARCH_COMPLETION_EXIT_CODE_NORMAL = 1;
			SEARCH_COMPLETION_EXIT_CODE_NEW_SEARCH_STARTED = 2;
		}
		message ITextSearchCompleteMessage { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchCompleteMessage
				enum TextSearchCompleteMessageType { // aiserver.v1.RipgrepSearchResultInternal.TextSearchCompleteMessageType
					TEXT_SEARCH_COMPLETE_MESSAGE_TYPE_UNSPECIFIED = 0;
					TEXT_SEARCH_COMPLETE_MESSAGE_TYPE_INFORMATION = 1;
					TEXT_SEARCH_COMPLETE_MESSAGE_TYPE_WARNING = 2;
				}
			string text = 1;
			TextSearchCompleteMessageType type = 2;
			optional bool trusted = 3;
		}
		message IFileSearchStats { // aiserver.v1.RipgrepSearchResultInternal.IFileSearchStats
				message ISearchEngineStats { // aiserver.v1.RipgrepSearchResultInternal.ISearchEngineStats
					int32 file_walk_time = 1;
					int32 directories_walked = 2;
					int32 files_walked = 3;
					int32 cmd_time = 4;
					optional int32 cmd_result_count = 5;
				}
				message ICachedSearchStats { // aiserver.v1.RipgrepSearchResultInternal.ICachedSearchStats
					bool cache_was_resolved = 1;
					int32 cache_lookup_time = 2;
					int32 cache_filter_time = 3;
					int32 cache_entry_count = 4;
				}
				message IFileSearchProviderStats { // aiserver.v1.RipgrepSearchResultInternal.IFileSearchProviderStats
					int32 provider_time = 1;
					int32 post_process_time = 2;
				}
				enum FileSearchProviderType { // aiserver.v1.RipgrepSearchResultInternal.IFileSearchStats.FileSearchProviderType
					FILE_SEARCH_PROVIDER_TYPE_UNSPECIFIED = 0;
					FILE_SEARCH_PROVIDER_TYPE_FILE_SEARCH_PROVIDER = 1;
					FILE_SEARCH_PROVIDER_TYPE_SEARCH_PROCESS = 2;
				}
			bool from_cache = 1;
			ISearchEngineStats search_engine_stats = 2;
			ICachedSearchStats cached_search_stats = 3;
			IFileSearchProviderStats file_search_provider_stats = 4;
			int32 result_count = 5;
			FileSearchProviderType type = 6;
			optional int32 sorting_time = 7;
		}
		message ITextSearchStats { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchStats
				enum TextSearchProviderType { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchStats.TextSearchProviderType
					TEXT_SEARCH_PROVIDER_TYPE_UNSPECIFIED = 0;
					TEXT_SEARCH_PROVIDER_TYPE_TEXT_SEARCH_PROVIDER = 1;
					TEXT_SEARCH_PROVIDER_TYPE_SEARCH_PROCESS = 2;
					TEXT_SEARCH_PROVIDER_TYPE_AI_TEXT_SEARCH_PROVIDER = 3;
				}
			TextSearchProviderType type = 1;
		}
	repeated IFileMatch results = 1;
	optional SearchCompletionExitCode exit = 2;
	optional bool limit_hit = 3;
	repeated ITextSearchCompleteMessage messages = 4;
	IFileSearchStats file_search_stats = 5;
	ITextSearchStats text_search_stats = 6;
}
message RunTerminalCommandResult { // aiserver.v1.RunTerminalCommandResult
	string output = 1;
	int32 exit_code = 2;
	optional bool rejected = 3;
	bool popped_out_into_background = 4;
}
message ReadFileResult { // aiserver.v1.ReadFileResult
	string contents = 1;
	bool did_downgrade_to_line_range = 2;
	bool did_shorten_line_range = 3;
	bool did_set_default_line_range = 4;
	optional string full_file_contents = 5;
	optional string outline = 6;
	optional int32 start_line_one_indexed = 7;
	optional int32 end_line_one_indexed_inclusive = 8;
	string relative_workspace_path = 9;
	bool did_shorten_char_range = 10;
}
message ListDirResult { // aiserver.v1.ListDirResult
		message File { // aiserver.v1.ListDirResult.File
				message Timestamp { // google.protobuf.Timestamp
					int64 seconds = 1;
					int32 nanos = 2;
				}
			string name = 1;
			bool is_directory = 2;
			optional int64 size = 3;
			optional Timestamp last_modified = 4;
			optional int32 num_children = 5;
			optional int32 num_lines = 6;
		}
	repeated File files = 1;
	string directory_relative_workspace_path = 2;
}
message EditFileResult { // aiserver.v1.EditFileResult
		message FileDiff { // aiserver.v1.EditFileResult.FileDiff
				message ChunkDiff { // aiserver.v1.EditFileResult.FileDiff.ChunkDiff
					string diff_string = 1;
					int32 old_start = 2;
					int32 new_start = 3;
					int32 old_lines = 4;
					int32 new_lines = 5;
					int32 lines_removed = 6;
					int32 lines_added = 7;
				}
				enum Editor { // aiserver.v1.EditFileResult.FileDiff.Editor
					EDITOR_UNSPECIFIED = 0;
					EDITOR_AI = 1;
					EDITOR_HUMAN = 2;
				}
			repeated ChunkDiff chunks = 1;
			Editor editor = 2;
			bool hit_timeout = 3;
		}
	FileDiff diff = 1;
	bool is_applied = 2;
	bool apply_failed = 3;
}
message ToolCallFileSearchResult { // aiserver.v1.ToolCallFileSearchResult
		message File { // aiserver.v1.ToolCallFileSearchResult.File
			string uri = 1;
		}
	repeated File files = 1;
	optional bool limit_hit = 2;
	int32 num_results = 3;
}
message SemanticSearchFullResult { // aiserver.v1.SemanticSearchFullResult
	repeated CodeResult code_results = 1;
}
message CreateFileResult { // aiserver.v1.CreateFileResult
	bool file_created_successfully = 1;
	bool file_already_exists = 2;
}
message DeleteFileResult { // aiserver.v1.DeleteFileResult
	bool rejected = 1;
	bool file_non_existent = 2;
	bool file_deleted_successfully = 3;
}
message ToolResultError { // aiserver.v1.ToolResultError
	string client_visible_error_message = 1;
	string model_visible_error_message = 2;
}
message ComposerCapabilityRequest { // aiserver.v1.ComposerCapabilityRequest
		enum ComposerCapabilityType { // aiserver.v1.ComposerCapabilityRequest.ComposerCapabilityType
			COMPOSER_CAPABILITY_TYPE_UNSPECIFIED = 0;
			COMPOSER_CAPABILITY_TYPE_LOOP_ON_LINTS = 1;
			COMPOSER_CAPABILITY_TYPE_LOOP_ON_TESTS = 2;
			COMPOSER_CAPABILITY_TYPE_MEGA_PLANNER = 3;
			COMPOSER_CAPABILITY_TYPE_LOOP_ON_COMMAND = 4;
			COMPOSER_CAPABILITY_TYPE_TOOL_CALL = 5;
			COMPOSER_CAPABILITY_TYPE_DIFF_REVIEW = 6;
			COMPOSER_CAPABILITY_TYPE_CONTEXT_PICKING = 7;
			COMPOSER_CAPABILITY_TYPE_EDIT_TRAIL = 8;
			COMPOSER_CAPABILITY_TYPE_AUTO_CONTEXT = 9;
			COMPOSER_CAPABILITY_TYPE_CONTEXT_PLANNER = 10;
			COMPOSER_CAPABILITY_TYPE_DIFF_HISTORY = 11;
			COMPOSER_CAPABILITY_TYPE_REMEMBER_THIS = 12;
			COMPOSER_CAPABILITY_TYPE_DECOMPOSER = 13;
			COMPOSER_CAPABILITY_TYPE_USES_CODEBASE = 14;
			COMPOSER_CAPABILITY_TYPE_TOOL_FORMER = 15;
		}
		message LoopOnLintsCapability { // aiserver.v1.ComposerCapabilityRequest.LoopOnLintsCapability
			repeated LinterErrors linter_errors = 1;
			optional string custom_instructions = 2;
		}
		message LoopOnTestsCapability { // aiserver.v1.ComposerCapabilityRequest.LoopOnTestsCapability
			repeated string test_names = 1;
			optional string custom_instructions = 2;
		}
		message MegaPlannerCapability { // aiserver.v1.ComposerCapabilityRequest.MegaPlannerCapability
			optional string custom_instructions = 1;
		}
		message LoopOnCommandCapability { // aiserver.v1.ComposerCapabilityRequest.LoopOnCommandCapability
			string command = 1;
			optional string custom_instructions = 2;
			optional string output = 3;
			optional int32 exit_code = 4;
		}
		message ToolCallCapability { // aiserver.v1.ComposerCapabilityRequest.ToolCallCapability
				message ToolSchema { // aiserver.v1.ComposerCapabilityRequest.ToolSchema
						enum ToolType { // aiserver.v1.ComposerCapabilityRequest.ToolType
							TOOL_TYPE_UNSPECIFIED = 0;
							TOOL_TYPE_ADD_FILE_TO_CONTEXT = 1;
							TOOL_TYPE_RUN_TERMINAL_COMMAND = 2;
							TOOL_TYPE_ITERATE = 3;
							TOOL_TYPE_REMOVE_FILE_FROM_CONTEXT = 4;
							TOOL_TYPE_SEMANTIC_SEARCH_CODEBASE = 5;
						}
					ToolType type = 1;
					string name = 2;
					repeated string required = 4;
				}
			optional string custom_instructions = 1;
			repeated ToolSchema tool_schemas = 2;
			repeated string relevant_files = 3;
			repeated string files_in_context = 4;
			repeated string semantic_search_files = 5;
		}
		message DiffReviewCapability { // aiserver.v1.ComposerCapabilityRequest.DiffReviewCapability
				message SimpleFileDiff { // aiserver.v1.ComposerCapabilityRequest.DiffReviewCapability.SimpleFileDiff
						message Chunk { // aiserver.v1.ComposerCapabilityRequest.DiffReviewCapability.SimpleFileDiff.Chunk
							repeated string old_lines = 1;
							repeated string new_lines = 2;
							LineRange old_range = 3;
							LineRange new_range = 4;
						}
					string relative_workspace_path = 1;
					repeated Chunk chunks = 3;
				}
			optional string custom_instructions = 1;
			repeated SimpleFileDiff diffs = 2;
		}
		message ContextPickingCapability { // aiserver.v1.ComposerCapabilityRequest.ContextPickingCapability
			optional string custom_instructions = 1;
			repeated string potential_context_files = 2;
			repeated CodeChunk potential_context_code_chunks = 3;
			repeated string files_in_context = 4;
		}
		message EditTrailCapability { // aiserver.v1.ComposerCapabilityRequest.EditTrailCapability
			optional string custom_instructions = 1;
		}
		message AutoContextCapability { // aiserver.v1.ComposerCapabilityRequest.AutoContextCapability
			optional string custom_instructions = 1;
			repeated string additional_files = 2;
		}
		message ContextPlannerCapability { // aiserver.v1.ComposerCapabilityRequest.ContextPlannerCapability
			optional string custom_instructions = 1;
			repeated CodeChunk attached_code_chunks = 2;
		}
		message RememberThisCapability { // aiserver.v1.ComposerCapabilityRequest.RememberThisCapability
			optional string custom_instructions = 1;
			string memory = 2;
		}
		message DecomposerCapability { // aiserver.v1.ComposerCapabilityRequest.DecomposerCapability
			optional string custom_instructions = 1;
		}
	ComposerCapabilityType type = 1;
	LoopOnLintsCapability loop_on_lints = 2;
	LoopOnTestsCapability loop_on_tests = 3;
	MegaPlannerCapability mega_planner = 4;
	LoopOnCommandCapability loop_on_command = 5;
	ToolCallCapability tool_call = 6;
	DiffReviewCapability diff_review = 7;
	ContextPickingCapability context_picking = 8;
	EditTrailCapability edit_trail = 9;
	AutoContextCapability auto_context = 10;
	ContextPlannerCapability context_planner = 11;
	RememberThisCapability remember_this = 12;
	DecomposerCapability decomposer = 13;
}
message LinterErrors { // aiserver.v1.LinterErrors
	string relative_workspace_path = 1;
	repeated LinterError errors = 2;
	string file_contents = 3;
}
message LinterError { // aiserver.v1.LinterError
		message RelatedInformation { // aiserver.v1.Diagnostic.RelatedInformation
			string message = 1;
			CursorRange range = 2;
		}
		enum DiagnosticSeverity { // aiserver.v1.Diagnostic.DiagnosticSeverity
			DIAGNOSTIC_SEVERITY_UNSPECIFIED = 0;
			DIAGNOSTIC_SEVERITY_ERROR = 1;
			DIAGNOSTIC_SEVERITY_WARNING = 2;
			DIAGNOSTIC_SEVERITY_INFORMATION = 3;
			DIAGNOSTIC_SEVERITY_HINT = 4;
		}
	string message = 1;
	CursorRange range = 2;
	optional string source = 3;
	repeated RelatedInformation related_information = 4;
	optional DiagnosticSeverity severity = 5;
}
message CodeChunk { // aiserver.v1.CodeChunk
		enum SummarizationStrategy { // aiserver.v1.CodeChunk.SummarizationStrategy
			SUMMARIZATION_STRATEGY_NONE_UNSPECIFIED = 0;
			SUMMARIZATION_STRATEGY_SUMMARIZED = 1;
			SUMMARIZATION_STRATEGY_EMBEDDED = 2;
		}
		enum Intent { // aiserver.v1.CodeChunk.Intent
			INTENT_UNSPECIFIED = 0;
			INTENT_COMPOSER_FILE = 1;
			INTENT_COMPRESSED_COMPOSER_FILE = 2;
		}
	string relative_workspace_path = 1;
	int32 start_line_number = 2;
	repeated string lines = 3;
	optional SummarizationStrategy summarization_strategy = 4;
	string language_identifier = 5;
	optional Intent intent = 6;
	optional bool is_final_version = 7;
	optional bool is_first_version = 8;
}
message SuggestedCodeBlock { // aiserver.v1.SuggestedCodeBlock
	string relative_workspace_path = 1;
}
message RedDiff { // aiserver.v1.RedDiff
	string relative_workspace_path = 1;
	repeated SimplestRange red_ranges = 2;
	repeated SimplestRange red_ranges_reversed = 3;
	string start_hash = 4;
	string end_hash = 5;
}
message LinterErrorsWithoutFileContents { // aiserver.v1.LinterErrorsWithoutFileContents
	string relative_workspace_path = 1;
	repeated LinterError errors = 2;
}
message DiffHistoryData { // aiserver.v1.DiffHistoryData
	string relative_workspace_path = 1;
	repeated ComposerFileDiff diffs = 2;
	double timestamp = 3;
	string unique_id = 4;
	ComposerFileDiff start_to_end_diff = 5;
}
message ComposerFileDiff { // aiserver.v1.ComposerFileDiff
		message ChunkDiff { // aiserver.v1.ComposerFileDiff.ChunkDiff
			string diff_string = 1;
			int32 old_start = 2;
			int32 new_start = 3;
			int32 old_lines = 4;
			int32 new_lines = 5;
			int32 lines_removed = 6;
			int32 lines_added = 7;
		}
		enum Editor { // aiserver.v1.ComposerFileDiff.Editor
			EDITOR_UNSPECIFIED = 0;
			EDITOR_AI = 1;
			EDITOR_HUMAN = 2;
		}
	repeated ChunkDiff chunks = 1;
	Editor editor = 2;
	bool hit_timeout = 3;
}
message ComposerFileDiffHistory { // aiserver.v1.ComposerFileDiffHistory
	string file_name = 1;
	repeated string diff_history = 2;
	repeated double diff_history_timestamps = 3;
}
message ConversationSummary { // aiserver.v1.ConversationSummary
	string summary = 1;
	string truncation_last_bubble_id_inclusive = 2;
	string client_should_start_sending_from_inclusive_bubble_id = 3;
}
message RepositoryInfo { // aiserver.v1.RepositoryInfo
	string relative_workspace_path = 1;
	repeated string remote_urls = 2;
	repeated string remote_names = 3;
	string repo_name = 4;
	string repo_owner = 5;
	bool is_tracked = 6;
	bool is_local = 7;
	optional int32 num_files = 8;
	optional double orthogonal_transform_seed = 9;
	optional EmbeddingModel preferred_embedding_model = 10;
}
message ExplicitContext { // aiserver.v1.ExplicitContext
	string context = 1;
	optional string repo_context = 2;
}
message ModelDetails { // aiserver.v1.ModelDetails
	optional string model_name = 1;
	optional string api_key = 2;
	optional bool enable_ghost_mode = 3;
	optional AzureState azure_state = 4;
	optional bool enable_slow_pool = 5;
	optional string openai_api_base_url = 6;
}
message AzureState { // aiserver.v1.AzureState
	string api_key = 1;
	string base_url = 2;
	string deployment = 3;
	bool use_azure = 4;
}
message ChatQuote { // aiserver.v1.ChatQuote
	string markdown = 1;
	string bubble_id = 2;
	int32 section_index = 3;
}
message DebugInfo { // aiserver.v1.DebugInfo
		message Breakpoint { // aiserver.v1.DebugInfo.Breakpoint
			string relative_workspace_path = 1;
			int32 line_number = 2;
			repeated string lines_before_breakpoint = 3;
			repeated string lines_after_breakpoint = 4;
			optional string exception_info = 5;
		}
		message CallStackFrame { // aiserver.v1.DebugInfo.CallStackFrame
				message Scope { // aiserver.v1.DebugInfo.Scope
						message Variable { // aiserver.v1.DebugInfo.Variable
							string name = 1;
							string value = 2;
							optional string type = 3;
						}
					string name = 1;
					repeated Variable variables = 2;
				}
			string relative_workspace_path = 1;
			int32 line_number = 2;
			string function_name = 3;
			repeated Scope scopes = 4;
		}
	Breakpoint breakpoint = 1;
	repeated CallStackFrame call_stack = 2;
	repeated CodeBlock history = 3;
}
message ChatExternalLink { // aiserver.v1.ChatExternalLink
	string url = 1;
	string uuid = 2;
}
message CommitNote { // aiserver.v1.CommitNote
	string note = 1;
	string commit_hash = 2;
}
message ContextAST { // aiserver.v1.ContextAST
	repeated ContainerTree files = 1;
}
message ContainerTree { // aiserver.v1.ContainerTree
	string relative_workspace_path = 1;
	repeated ContainerTreeNode nodes = 2;
}
message ContainerTreeNode { // aiserver.v1.ContainerTreeNode
		message Container { // aiserver.v1.ContainerTreeNode.Container
				message Reference { // aiserver.v1.ContainerTreeNode.Reference
					string value = 1;
					string relative_workspace_path = 2;
				}
			string doc_string = 1;
			string header = 2;
			string trailer = 3;
			repeated ContainerTreeNode children = 5;
			repeated Reference references = 6;
			double score = 7;
		}
		message Blob { // aiserver.v1.ContainerTreeNode.Blob
			optional string value = 1;
		}
		message Symbol { // aiserver.v1.ContainerTreeNode.Symbol
				message Reference { // aiserver.v1.ContainerTreeNode.Reference
					string value = 1;
					string relative_workspace_path = 2;
				}
			string doc_string = 1;
			string value = 2;
			repeated Reference references = 6;
			double score = 7;
		}
	Container container = 1;
	Blob blob = 2;
	Symbol symbol = 3;
}
message StreamChatResponse { // aiserver.v1.StreamChatResponse
		message ChunkIdentity { // aiserver.v1.StreamChatResponse.ChunkIdentity
			string file_name = 1;
			int32 start_line = 2;
			int32 end_line = 3;
			string text = 4;
			ChunkType chunk_type = 5;
		}
	string text = 1;
	optional string server_bubble_id = 22;
	optional string debugging_only_chat_prompt = 2;
	optional int32 debugging_only_token_count = 3;
	DocumentationCitation document_citation = 4;
	optional string filled_prompt = 5;
	optional bool is_big_file = 6;
	optional string intermediate_text = 7;
	optional bool is_using_slow_request = 10;
	optional ChunkIdentity chunk_identity = 8;
	optional DocsReference docs_reference = 9;
	optional WebCitation web_citation = 11;
	optional StatusUpdates status_updates = 12;
	optional ServerTimingInfo timing_info = 13;
	optional SymbolLink symbol_link = 14;
	optional FileLink file_link = 15;
	optional ConversationSummary conversation_summary = 16;
	optional ServiceStatusUpdate service_status_update = 17;
}
message DocumentationCitation { // aiserver.v1.DocumentationCitation
	repeated DocumentationChunk chunks = 1;
}
message DocumentationChunk { // aiserver.v1.DocumentationChunk
	string doc_name = 1;
	string page_url = 2;
	string documentation_chunk = 3;
	float score = 4;
	string page_title = 5;
}
message DocsReference { // aiserver.v1.DocsReference
	string title = 1;
	string url = 2;
}
message WebCitation { // aiserver.v1.WebCitation
	repeated WebReference references = 1;
}
message WebReference { // aiserver.v1.WebReference
	string title = 2;
	string url = 1;
}
message StatusUpdates { // aiserver.v1.StatusUpdates
	repeated StatusUpdate updates = 1;
}
message StatusUpdate { // aiserver.v1.StatusUpdate
	string message = 1;
	optional string metadata = 2;
}
message ServerTimingInfo { // aiserver.v1.ServerTimingInfo
	double server_start_time = 1;
	double server_first_token_time = 2;
	double server_request_sent_time = 3;
	double server_end_time = 4;
}
message SymbolLink { // aiserver.v1.SymbolLink
	string symbol_name = 1;
	string symbol_search_string = 2;
	string relative_workspace_path = 3;
	int32 rough_line_number = 4;
}
message FileLink { // aiserver.v1.FileLink
	string display_name = 1;
	string relative_workspace_path = 2;
}
message ServiceStatusUpdate { // aiserver.v1.ServiceStatusUpdate
	string message = 1;
	string codicon = 2;
	optional bool allow_command_links_potentially_unsafe_please_only_use_for_handwritten_trusted_markdown = 3;
}