* Fix syntax highlighting, process spawning, extensions, terminals * Replace colons in toISOString * Move pathSets included in task
143 lines
2.9 KiB
Protocol Buffer
143 lines
2.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
// Executes a command.
|
|
// Ensure the id field is unique for each new session. If a client reuses the id of an existing
|
|
// session, the connection will be closed.
|
|
// If env is provided, the environment variables will be set.
|
|
// If tty_dimensions is included, we will spawn a tty for the command using the given dimensions.
|
|
message NewSessionMessage {
|
|
uint64 id = 1;
|
|
string command = 2;
|
|
repeated string args = 3;
|
|
map<string, string> env = 4;
|
|
string cwd = 5;
|
|
TTYDimensions tty_dimensions = 6;
|
|
bool is_fork = 7;
|
|
|
|
// Janky, but required for having custom handling of the bootstrap fork
|
|
bool is_bootstrap_fork = 8;
|
|
}
|
|
|
|
// Sent when starting a session failed.
|
|
message NewSessionFailureMessage {
|
|
uint64 id = 1;
|
|
enum Reason {
|
|
Prohibited = 0;
|
|
ResourceShortage = 1;
|
|
}
|
|
Reason reason = 2;
|
|
string message = 3;
|
|
}
|
|
|
|
// Sent when a session has completed
|
|
message SessionDoneMessage {
|
|
uint64 id = 1;
|
|
int64 exit_status = 2;
|
|
}
|
|
|
|
// Identifies a session with a PID and a title.
|
|
// Can be sent multiple times when title changes.
|
|
message IdentifySessionMessage {
|
|
uint64 id = 1;
|
|
uint64 pid = 2;
|
|
string title = 3;
|
|
}
|
|
|
|
// Writes data to a session.
|
|
message WriteToSessionMessage {
|
|
uint64 id = 1;
|
|
bytes data = 2;
|
|
enum Source {
|
|
Stdin = 0;
|
|
Ipc = 1;
|
|
}
|
|
Source source = 3;
|
|
}
|
|
|
|
// Resizes the TTY of the session identified by the id.
|
|
// The connection will be closed if a TTY was not requested when the session was created.
|
|
message ResizeSessionTTYMessage {
|
|
uint64 id = 1;
|
|
TTYDimensions tty_dimensions = 2;
|
|
}
|
|
|
|
// CloseSessionInputMessage closes the stdin of the session by the ID.
|
|
message CloseSessionInputMessage {
|
|
uint64 id = 1;
|
|
}
|
|
|
|
message ShutdownSessionMessage {
|
|
uint64 id = 1;
|
|
string signal = 2;
|
|
}
|
|
|
|
// SessionOutputMessage carries data read from the stdout or stderr of the session identified by the id.
|
|
message SessionOutputMessage {
|
|
uint64 id = 1;
|
|
enum Source {
|
|
Stdout = 0;
|
|
Stderr = 1;
|
|
Ipc = 2;
|
|
}
|
|
Source source = 2;
|
|
bytes data = 3;
|
|
}
|
|
|
|
message TTYDimensions {
|
|
uint32 height = 1;
|
|
uint32 width = 2;
|
|
}
|
|
|
|
// Initializes a new connection to a port or path
|
|
message NewConnectionMessage {
|
|
uint64 id = 1;
|
|
uint64 port = 2;
|
|
string path = 3;
|
|
}
|
|
|
|
// Sent when a connection has successfully established
|
|
message ConnectionEstablishedMessage {
|
|
uint64 id = 1;
|
|
}
|
|
|
|
// Sent when a connection fails
|
|
message NewConnectionFailureMessage {
|
|
uint64 id = 1;
|
|
string message = 2;
|
|
}
|
|
|
|
// Sent for connection output
|
|
message ConnectionOutputMessage {
|
|
uint64 id = 1;
|
|
bytes data = 2;
|
|
}
|
|
|
|
// Sent to close a connection
|
|
message ConnectionCloseMessage {
|
|
uint64 id = 1;
|
|
}
|
|
|
|
message NewServerMessage {
|
|
uint64 id = 1;
|
|
uint64 port = 2;
|
|
string path = 3;
|
|
}
|
|
|
|
message NewServerFailureMessage {
|
|
uint64 id = 1;
|
|
string message = 2;
|
|
}
|
|
|
|
message ServerEstablishedMessage {
|
|
uint64 id = 1;
|
|
}
|
|
|
|
message ServerCloseMessage {
|
|
uint64 id = 1;
|
|
string reason = 2;
|
|
}
|
|
|
|
message ServerConnectionEstablishedMessage {
|
|
uint64 server_id = 1;
|
|
uint64 connection_id = 2;
|
|
} |