syntax = "proto3"; package runner.v1; // Messages sent from the VM runner agent to the orchestrator. message LogChunk { string line = 1; // One line of log output (stdout/stderr) bool stderr = 2; // True if this line came from stderr } message JobEnd { int32 exit_code = 1; // Exit code of the job script/process bool success = 2; // Convenience flag string repo_url = 3; // Convenience context for Integration layer string commit_sha = 4; // Convenience context for Integration layer } message LogItem { string request_id = 1; // UUID string to correlate the job oneof event { LogChunk log = 2; JobEnd end = 3; } } message Ack { bool ok = 1; } service Runner { // Client-streaming RPC: runner sends a stream of LogItem; orchestrator returns Ack rpc StreamLogs (stream LogItem) returns (Ack); }