Archived
1
0
This repository has been archived on 2024-09-09. You can view files and clone it, but cannot push or open issues or pull requests.
Kyle Carberry b4798d1a48
Fix syntax highlighting, process spawning, extensions, terminals (#22)
* Fix syntax highlighting, process spawning, extensions, terminals

* Replace colons in toISOString

* Move pathSets included in task
2019-02-05 11:15:59 -06:00

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;
}