syntax = "proto3";
package running_process.independent_spawn.v1;
// Native strings are Unix bytes in this Linux broker version. This is not a
// cross-OS remote execution protocol. Fields never enter scheduler metadata.
message EnvironmentEntry { bytes name = 1; bytes value = 2; }
message ReadyFile { bytes path = 1; bytes value = 2; }
message Launch {
bytes program = 1;
repeated bytes args = 2;
bytes cwd = 3;
repeated EnvironmentEntry environment = 4;
optional bytes stdout = 5;
optional bytes stderr = 6;
ReadyFile readiness = 7; // Absent means ProcessStarted.
uint32 timeout_millis = 8; // Required range 1..30000, includes readiness.
}
enum Failure {
LAUNCH_FAILED = 0;
UNSUPPORTED = 1;
PERMISSION_DENIED = 2;
INVALID_INPUT = 3;
NOT_FOUND = 4;
TIMED_OUT = 5;
CANCELLED = 6;
}
message Empty {}
message Frame {
oneof body {
Launch launch = 1;
uint32 started = 2;
Empty commit = 3;
Empty committed = 4;
Failure failed = 5;
Empty stop = 6;
Empty stopped = 7;
}
}