syntax = "proto3"; package history; service History { rpc StartHistory(StartHistoryRequest) returns (StartHistoryReply); rpc EndHistory(EndHistoryRequest) returns (EndHistoryReply); rpc TailHistory(TailHistoryRequest) returns (stream TailHistoryReply); } message StartHistoryRequest { uint64 timestamp = 1; // nanosecond unix epoch string command = 2; string cwd = 3; string session = 4; string hostname = 5; string author = 6; string intent = 7; } message StartHistoryReply { string id = 1; string version = 2; uint32 protocol = 3; } message EndHistoryRequest { string id = 1; int64 exit = 2; uint64 duration = 3; } message EndHistoryReply { string id = 1; uint64 idx = 2; string version = 3; uint32 protocol = 4; } message TailHistoryRequest {} message TailHistoryReply { HistoryEventKind kind = 1; HistoryEntry history = 2; } enum HistoryEventKind { HISTORY_EVENT_KIND_UNSPECIFIED = 0; HISTORY_EVENT_KIND_STARTED = 1; HISTORY_EVENT_KIND_ENDED = 2; } message HistoryEntry { uint64 timestamp = 1; // nanosecond unix epoch string id = 2; string command = 3; string cwd = 4; string session = 5; string hostname = 6; string author = 7; string intent = 8; int64 exit = 9; int64 duration = 10; }