syntax = "proto3";
import "node.proto";
import "vscode.proto";

// Messages that the client can send to the server.
message ClientMessage {
	oneof msg {
		// node.proto
		MethodMessage method = 20;
		Ping ping = 21;
	}
}

// Messages that the server can send to the client.
message ServerMessage {
	oneof msg {
		// node.proto
		FailMessage fail = 13;
		SuccessMessage success = 14;
		EventMessage event = 19;
		CallbackMessage callback = 22;
		Pong pong = 18;

		WorkingInitMessage init = 16;

		// vscode.proto
		SharedProcessActiveMessage shared_process_active = 17;
	}
}

message WorkingInitMessage {
	string home_directory = 1;
	string tmp_directory = 2;
	string data_directory = 3;
	string working_directory = 4;
	enum OperatingSystem {
		Windows = 0;
		Linux = 1;
		Mac = 2;
	}
	OperatingSystem operating_system = 5;
	string shell = 6;
	string builtin_extensions_dir = 7;
}
