syntax = "proto3";
package shell;
// The gRPC service definition.
service ShellExecutor {
// Runs a shell command and returns exit code, stdout, and stderr.
rpc ExecShell (ShellRequest) returns (ShellResponse) {}
}
// The request message containing the command to run.
message ShellRequest {
string command = 1;
bool env_clear = 3;
repeated string env_remove = 4;
map<string, string> envs = 5;
// Optional timeout in milliseconds for the command execution.
optional uint64 timeout_ms = 6;
// Optional working directory for the command execution.
optional string cwd = 7;
}
// The response message containing exit code, stdout, and stderr.
message ShellResponse {
int32 exit_code = 1;
string stdout = 2;
string stderr = 3;
}