syntax = "proto3";

package executor;

enum MessageType {
    UNKNOWN = 0;
    ACTIONSTART = 1;
    ACTIONEND = 2;
    FINISHED = 3;
    ERROR = 4;
    INPUT = 5;
}

service ExecutorService {
    rpc CreateExecutor (CreateExecutorRequest) returns (stream ExecutorResponse);
    rpc ExecutorInput (ExecutorInputRequest) returns (ExecutorInputResponse);
}

message CreateExecutorRequest {
    string query = 1;
}

message ExecutorResponse {
    MessageType type = 1;
    string message = 2;
    string answer = 3;
    int64 input_id = 4;
}

message ExecutorInputRequest {
    int64 id = 1;
    string input = 2;
}

message ExecutorInputResponse {
    int64 id = 1;
    bool success = 2;
}