aboutsummaryrefslogtreecommitdiffstats
path: root/crates/turtle/proto/semantic.proto
blob: 07e550c8286af97ac7a65db6b8ac7cad8807d202 (plain) (blame)
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
syntax = "proto3";
package semantic;

service Semantic {
  rpc RecordCommands(stream CommandCapture) returns (RecordCommandsReply);
  rpc CommandOutput(CommandOutputRequest) returns (CommandOutputReply);
}

message CommandCapture {
  string prompt = 1;
  string command = 2;
  string output = 3;
  optional int32 exit_code = 4;
  optional string history_id = 5;
  optional string session_id = 6;
  bool output_truncated = 7;
  uint64 output_observed_bytes = 8;
}

message RecordCommandsReply {
  uint64 accepted = 1;
}

message CommandOutputRequest {
  string history_id = 1;
  repeated OutputRange ranges = 2;
}

message OutputRange {
  int64 start = 1;
  int64 end = 2;
}

message OutputLine {
  uint64 line_number = 1;
  string content = 2;
}

message CommandOutputReply {
  bool found = 1;
  string output = 2;
  uint64 total_bytes = 3;
  uint64 total_lines = 4;
  repeated OutputLine lines = 5;
  bool output_truncated = 6;
  uint64 output_observed_bytes = 7;
}