# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

from mubit.v1 import control_pb2 as mubit_dot_v1_dot_control__pb2

GRPC_GENERATED_VERSION = '1.76.0'
GRPC_VERSION = grpc.__version__
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + ' but the generated code in mubit/v1/control_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
    )


class ControlServiceStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.SetVariable = channel.unary_unary(
                '/mubit.v1.ControlService/SetVariable',
                request_serializer=mubit_dot_v1_dot_control__pb2.SetVariableRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.Ack.FromString,
                _registered_method=True)
        self.GetVariable = channel.unary_unary(
                '/mubit.v1.ControlService/GetVariable',
                request_serializer=mubit_dot_v1_dot_control__pb2.GetVariableRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.VariableResponse.FromString,
                _registered_method=True)
        self.ListVariables = channel.unary_unary(
                '/mubit.v1.ControlService/ListVariables',
                request_serializer=mubit_dot_v1_dot_control__pb2.ListVariablesRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ListVariablesResponse.FromString,
                _registered_method=True)
        self.DeleteVariable = channel.unary_unary(
                '/mubit.v1.ControlService/DeleteVariable',
                request_serializer=mubit_dot_v1_dot_control__pb2.DeleteVariableRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.Ack.FromString,
                _registered_method=True)
        self.DefineConcept = channel.unary_unary(
                '/mubit.v1.ControlService/DefineConcept',
                request_serializer=mubit_dot_v1_dot_control__pb2.DefineConceptRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.Ack.FromString,
                _registered_method=True)
        self.ListConcepts = channel.unary_unary(
                '/mubit.v1.ControlService/ListConcepts',
                request_serializer=mubit_dot_v1_dot_control__pb2.ListConceptsRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ListConceptsResponse.FromString,
                _registered_method=True)
        self.AddGoal = channel.unary_unary(
                '/mubit.v1.ControlService/AddGoal',
                request_serializer=mubit_dot_v1_dot_control__pb2.AddGoalRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.GoalResponse.FromString,
                _registered_method=True)
        self.UpdateGoal = channel.unary_unary(
                '/mubit.v1.ControlService/UpdateGoal',
                request_serializer=mubit_dot_v1_dot_control__pb2.UpdateGoalRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.Ack.FromString,
                _registered_method=True)
        self.ListGoals = channel.unary_unary(
                '/mubit.v1.ControlService/ListGoals',
                request_serializer=mubit_dot_v1_dot_control__pb2.ListGoalsRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ListGoalsResponse.FromString,
                _registered_method=True)
        self.GetGoalTree = channel.unary_unary(
                '/mubit.v1.ControlService/GetGoalTree',
                request_serializer=mubit_dot_v1_dot_control__pb2.GetGoalTreeRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.GetGoalTreeResponse.FromString,
                _registered_method=True)
        self.SubmitAction = channel.unary_unary(
                '/mubit.v1.ControlService/SubmitAction',
                request_serializer=mubit_dot_v1_dot_control__pb2.ActionRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ActionResponse.FromString,
                _registered_method=True)
        self.GetActionLog = channel.unary_unary(
                '/mubit.v1.ControlService/GetActionLog',
                request_serializer=mubit_dot_v1_dot_control__pb2.ActionLogRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ActionLogResponse.FromString,
                _registered_method=True)
        self.RunCycle = channel.unary_unary(
                '/mubit.v1.ControlService/RunCycle',
                request_serializer=mubit_dot_v1_dot_control__pb2.RunCycleRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.CycleResponse.FromString,
                _registered_method=True)
        self.GetCycleHistory = channel.unary_unary(
                '/mubit.v1.ControlService/GetCycleHistory',
                request_serializer=mubit_dot_v1_dot_control__pb2.CycleHistoryRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.CycleHistoryResponse.FromString,
                _registered_method=True)
        self.DeleteRun = channel.unary_unary(
                '/mubit.v1.ControlService/DeleteRun',
                request_serializer=mubit_dot_v1_dot_control__pb2.RunRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.Ack.FromString,
                _registered_method=True)
        self.Subscribe = channel.unary_stream(
                '/mubit.v1.ControlService/Subscribe',
                request_serializer=mubit_dot_v1_dot_control__pb2.SubscribeRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.Event.FromString,
                _registered_method=True)
        self.RegisterAgent = channel.unary_unary(
                '/mubit.v1.ControlService/RegisterAgent',
                request_serializer=mubit_dot_v1_dot_control__pb2.AgentRegisterRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.AgentRegisterResponse.FromString,
                _registered_method=True)
        self.AgentHeartbeat = channel.unary_unary(
                '/mubit.v1.ControlService/AgentHeartbeat',
                request_serializer=mubit_dot_v1_dot_control__pb2.AgentHeartbeatRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.Ack.FromString,
                _registered_method=True)
        self.AppendActivity = channel.unary_unary(
                '/mubit.v1.ControlService/AppendActivity',
                request_serializer=mubit_dot_v1_dot_control__pb2.ActivityAppendRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ActivityAppendResponse.FromString,
                _registered_method=True)
        self.GetRunSnapshot = channel.unary_unary(
                '/mubit.v1.ControlService/GetRunSnapshot',
                request_serializer=mubit_dot_v1_dot_control__pb2.RunSnapshotRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.RunSnapshotResponse.FromString,
                _registered_method=True)
        self.LinkRun = channel.unary_unary(
                '/mubit.v1.ControlService/LinkRun',
                request_serializer=mubit_dot_v1_dot_control__pb2.LinkRunRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.LinkRunResponse.FromString,
                _registered_method=True)
        self.UnlinkRun = channel.unary_unary(
                '/mubit.v1.ControlService/UnlinkRun',
                request_serializer=mubit_dot_v1_dot_control__pb2.UnlinkRunRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.UnlinkRunResponse.FromString,
                _registered_method=True)
        self.Ingest = channel.unary_unary(
                '/mubit.v1.ControlService/Ingest',
                request_serializer=mubit_dot_v1_dot_control__pb2.IngestRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.IngestAccepted.FromString,
                _registered_method=True)
        self.BatchInsert = channel.unary_unary(
                '/mubit.v1.ControlService/BatchInsert',
                request_serializer=mubit_dot_v1_dot_control__pb2.ControlBatchInsertRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ControlBatchInsertResponse.FromString,
                _registered_method=True)
        self.GetIngestJob = channel.unary_unary(
                '/mubit.v1.ControlService/GetIngestJob',
                request_serializer=mubit_dot_v1_dot_control__pb2.GetIngestJobRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.IngestJobResponse.FromString,
                _registered_method=True)
        self.GetRunIngestStats = channel.unary_unary(
                '/mubit.v1.ControlService/GetRunIngestStats',
                request_serializer=mubit_dot_v1_dot_control__pb2.GetRunIngestStatsRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.RunIngestStatsResponse.FromString,
                _registered_method=True)
        self.Query = channel.unary_unary(
                '/mubit.v1.ControlService/Query',
                request_serializer=mubit_dot_v1_dot_control__pb2.AgentQueryRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.AgentQueryResponse.FromString,
                _registered_method=True)
        self.Diagnose = channel.unary_unary(
                '/mubit.v1.ControlService/Diagnose',
                request_serializer=mubit_dot_v1_dot_control__pb2.DiagnoseRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.DiagnoseResponse.FromString,
                _registered_method=True)
        self.Reflect = channel.unary_unary(
                '/mubit.v1.ControlService/Reflect',
                request_serializer=mubit_dot_v1_dot_control__pb2.ReflectRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ReflectResponse.FromString,
                _registered_method=True)
        self.ListLessons = channel.unary_unary(
                '/mubit.v1.ControlService/ListLessons',
                request_serializer=mubit_dot_v1_dot_control__pb2.ListLessonsRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ListLessonsResponse.FromString,
                _registered_method=True)
        self.DeleteLesson = channel.unary_unary(
                '/mubit.v1.ControlService/DeleteLesson',
                request_serializer=mubit_dot_v1_dot_control__pb2.DeleteLessonRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.Ack.FromString,
                _registered_method=True)
        self.GetContext = channel.unary_unary(
                '/mubit.v1.ControlService/GetContext',
                request_serializer=mubit_dot_v1_dot_control__pb2.ContextRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ContextResponse.FromString,
                _registered_method=True)
        self.ArchiveBlock = channel.unary_unary(
                '/mubit.v1.ControlService/ArchiveBlock',
                request_serializer=mubit_dot_v1_dot_control__pb2.ArchiveBlockRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ArchiveBlockResponse.FromString,
                _registered_method=True)
        self.Dereference = channel.unary_unary(
                '/mubit.v1.ControlService/Dereference',
                request_serializer=mubit_dot_v1_dot_control__pb2.DereferenceRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.DereferenceResponse.FromString,
                _registered_method=True)
        self.GetMemoryHealth = channel.unary_unary(
                '/mubit.v1.ControlService/GetMemoryHealth',
                request_serializer=mubit_dot_v1_dot_control__pb2.MemoryHealthRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.MemoryHealthResponse.FromString,
                _registered_method=True)
        self.Checkpoint = channel.unary_unary(
                '/mubit.v1.ControlService/Checkpoint',
                request_serializer=mubit_dot_v1_dot_control__pb2.CheckpointRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.CheckpointResponse.FromString,
                _registered_method=True)
        self.ListAgents = channel.unary_unary(
                '/mubit.v1.ControlService/ListAgents',
                request_serializer=mubit_dot_v1_dot_control__pb2.ListAgentsRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.ListAgentsResponse.FromString,
                _registered_method=True)
        self.CreateHandoff = channel.unary_unary(
                '/mubit.v1.ControlService/CreateHandoff',
                request_serializer=mubit_dot_v1_dot_control__pb2.HandoffRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.HandoffResponse.FromString,
                _registered_method=True)
        self.SubmitFeedback = channel.unary_unary(
                '/mubit.v1.ControlService/SubmitFeedback',
                request_serializer=mubit_dot_v1_dot_control__pb2.FeedbackRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.FeedbackResponse.FromString,
                _registered_method=True)
        self.RecordOutcome = channel.unary_unary(
                '/mubit.v1.ControlService/RecordOutcome',
                request_serializer=mubit_dot_v1_dot_control__pb2.RecordOutcomeRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.RecordOutcomeResponse.FromString,
                _registered_method=True)
        self.SurfaceStrategies = channel.unary_unary(
                '/mubit.v1.ControlService/SurfaceStrategies',
                request_serializer=mubit_dot_v1_dot_control__pb2.SurfaceStrategiesRequest.SerializeToString,
                response_deserializer=mubit_dot_v1_dot_control__pb2.SurfaceStrategiesResponse.FromString,
                _registered_method=True)


class ControlServiceServicer(object):
    """Missing associated documentation comment in .proto file."""

    def SetVariable(self, request, context):
        """State Memory (Structured Variables)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetVariable(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListVariables(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteVariable(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DefineConcept(self, request, context):
        """Concepts (Level 4 Agency)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListConcepts(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AddGoal(self, request, context):
        """Goals
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateGoal(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListGoals(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetGoalTree(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SubmitAction(self, request, context):
        """Actions
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetActionLog(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RunCycle(self, request, context):
        """Decision Cycle
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCycleHistory(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteRun(self, request, context):
        """Management
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Subscribe(self, request, context):
        """Events
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RegisterAgent(self, request, context):
        """Agent + control-plane primitives
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AgentHeartbeat(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AppendActivity(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRunSnapshot(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LinkRun(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UnlinkRun(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Ingest(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BatchInsert(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetIngestJob(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRunIngestStats(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Query(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Diagnose(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Reflect(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListLessons(self, request, context):
        """Lessons
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteLesson(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetContext(self, request, context):
        """Context Block — pre-assembled memory context for LLM injection
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ArchiveBlock(self, request, context):
        """Exact archive primitive — store a reusable exact artifact block
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Dereference(self, request, context):
        """Exact dereference — read exact stored content by stable reference ID
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetMemoryHealth(self, request, context):
        """Memory health — diagnostics for memory quality and lifecycle
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Checkpoint(self, request, context):
        """Pre-compaction checkpoint — durable snapshot of context before compaction
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListAgents(self, request, context):
        """List registered agents for a run
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateHandoff(self, request, context):
        """Agent-to-agent coordination primitives
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SubmitFeedback(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RecordOutcome(self, request, context):
        """Outcome feedback — record success/failure for a lesson or action
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SurfaceStrategies(self, request, context):
        """Strategy emergence — surface patterns from lesson clusters
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_ControlServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'SetVariable': grpc.unary_unary_rpc_method_handler(
                    servicer.SetVariable,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.SetVariableRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.Ack.SerializeToString,
            ),
            'GetVariable': grpc.unary_unary_rpc_method_handler(
                    servicer.GetVariable,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.GetVariableRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.VariableResponse.SerializeToString,
            ),
            'ListVariables': grpc.unary_unary_rpc_method_handler(
                    servicer.ListVariables,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ListVariablesRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ListVariablesResponse.SerializeToString,
            ),
            'DeleteVariable': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteVariable,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.DeleteVariableRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.Ack.SerializeToString,
            ),
            'DefineConcept': grpc.unary_unary_rpc_method_handler(
                    servicer.DefineConcept,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.DefineConceptRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.Ack.SerializeToString,
            ),
            'ListConcepts': grpc.unary_unary_rpc_method_handler(
                    servicer.ListConcepts,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ListConceptsRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ListConceptsResponse.SerializeToString,
            ),
            'AddGoal': grpc.unary_unary_rpc_method_handler(
                    servicer.AddGoal,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.AddGoalRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.GoalResponse.SerializeToString,
            ),
            'UpdateGoal': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateGoal,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.UpdateGoalRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.Ack.SerializeToString,
            ),
            'ListGoals': grpc.unary_unary_rpc_method_handler(
                    servicer.ListGoals,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ListGoalsRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ListGoalsResponse.SerializeToString,
            ),
            'GetGoalTree': grpc.unary_unary_rpc_method_handler(
                    servicer.GetGoalTree,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.GetGoalTreeRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.GetGoalTreeResponse.SerializeToString,
            ),
            'SubmitAction': grpc.unary_unary_rpc_method_handler(
                    servicer.SubmitAction,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ActionRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ActionResponse.SerializeToString,
            ),
            'GetActionLog': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActionLog,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ActionLogRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ActionLogResponse.SerializeToString,
            ),
            'RunCycle': grpc.unary_unary_rpc_method_handler(
                    servicer.RunCycle,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.RunCycleRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.CycleResponse.SerializeToString,
            ),
            'GetCycleHistory': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCycleHistory,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.CycleHistoryRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.CycleHistoryResponse.SerializeToString,
            ),
            'DeleteRun': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteRun,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.RunRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.Ack.SerializeToString,
            ),
            'Subscribe': grpc.unary_stream_rpc_method_handler(
                    servicer.Subscribe,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.SubscribeRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.Event.SerializeToString,
            ),
            'RegisterAgent': grpc.unary_unary_rpc_method_handler(
                    servicer.RegisterAgent,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.AgentRegisterRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.AgentRegisterResponse.SerializeToString,
            ),
            'AgentHeartbeat': grpc.unary_unary_rpc_method_handler(
                    servicer.AgentHeartbeat,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.AgentHeartbeatRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.Ack.SerializeToString,
            ),
            'AppendActivity': grpc.unary_unary_rpc_method_handler(
                    servicer.AppendActivity,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ActivityAppendRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ActivityAppendResponse.SerializeToString,
            ),
            'GetRunSnapshot': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRunSnapshot,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.RunSnapshotRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.RunSnapshotResponse.SerializeToString,
            ),
            'LinkRun': grpc.unary_unary_rpc_method_handler(
                    servicer.LinkRun,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.LinkRunRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.LinkRunResponse.SerializeToString,
            ),
            'UnlinkRun': grpc.unary_unary_rpc_method_handler(
                    servicer.UnlinkRun,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.UnlinkRunRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.UnlinkRunResponse.SerializeToString,
            ),
            'Ingest': grpc.unary_unary_rpc_method_handler(
                    servicer.Ingest,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.IngestRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.IngestAccepted.SerializeToString,
            ),
            'BatchInsert': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchInsert,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ControlBatchInsertRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ControlBatchInsertResponse.SerializeToString,
            ),
            'GetIngestJob': grpc.unary_unary_rpc_method_handler(
                    servicer.GetIngestJob,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.GetIngestJobRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.IngestJobResponse.SerializeToString,
            ),
            'GetRunIngestStats': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRunIngestStats,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.GetRunIngestStatsRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.RunIngestStatsResponse.SerializeToString,
            ),
            'Query': grpc.unary_unary_rpc_method_handler(
                    servicer.Query,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.AgentQueryRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.AgentQueryResponse.SerializeToString,
            ),
            'Diagnose': grpc.unary_unary_rpc_method_handler(
                    servicer.Diagnose,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.DiagnoseRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.DiagnoseResponse.SerializeToString,
            ),
            'Reflect': grpc.unary_unary_rpc_method_handler(
                    servicer.Reflect,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ReflectRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ReflectResponse.SerializeToString,
            ),
            'ListLessons': grpc.unary_unary_rpc_method_handler(
                    servicer.ListLessons,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ListLessonsRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ListLessonsResponse.SerializeToString,
            ),
            'DeleteLesson': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteLesson,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.DeleteLessonRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.Ack.SerializeToString,
            ),
            'GetContext': grpc.unary_unary_rpc_method_handler(
                    servicer.GetContext,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ContextRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ContextResponse.SerializeToString,
            ),
            'ArchiveBlock': grpc.unary_unary_rpc_method_handler(
                    servicer.ArchiveBlock,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ArchiveBlockRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ArchiveBlockResponse.SerializeToString,
            ),
            'Dereference': grpc.unary_unary_rpc_method_handler(
                    servicer.Dereference,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.DereferenceRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.DereferenceResponse.SerializeToString,
            ),
            'GetMemoryHealth': grpc.unary_unary_rpc_method_handler(
                    servicer.GetMemoryHealth,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.MemoryHealthRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.MemoryHealthResponse.SerializeToString,
            ),
            'Checkpoint': grpc.unary_unary_rpc_method_handler(
                    servicer.Checkpoint,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.CheckpointRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.CheckpointResponse.SerializeToString,
            ),
            'ListAgents': grpc.unary_unary_rpc_method_handler(
                    servicer.ListAgents,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.ListAgentsRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.ListAgentsResponse.SerializeToString,
            ),
            'CreateHandoff': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateHandoff,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.HandoffRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.HandoffResponse.SerializeToString,
            ),
            'SubmitFeedback': grpc.unary_unary_rpc_method_handler(
                    servicer.SubmitFeedback,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.FeedbackRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.FeedbackResponse.SerializeToString,
            ),
            'RecordOutcome': grpc.unary_unary_rpc_method_handler(
                    servicer.RecordOutcome,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.RecordOutcomeRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.RecordOutcomeResponse.SerializeToString,
            ),
            'SurfaceStrategies': grpc.unary_unary_rpc_method_handler(
                    servicer.SurfaceStrategies,
                    request_deserializer=mubit_dot_v1_dot_control__pb2.SurfaceStrategiesRequest.FromString,
                    response_serializer=mubit_dot_v1_dot_control__pb2.SurfaceStrategiesResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'mubit.v1.ControlService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('mubit.v1.ControlService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class ControlService(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def SetVariable(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/SetVariable',
            mubit_dot_v1_dot_control__pb2.SetVariableRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.Ack.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetVariable(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetVariable',
            mubit_dot_v1_dot_control__pb2.GetVariableRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.VariableResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListVariables(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/ListVariables',
            mubit_dot_v1_dot_control__pb2.ListVariablesRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ListVariablesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteVariable(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/DeleteVariable',
            mubit_dot_v1_dot_control__pb2.DeleteVariableRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.Ack.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DefineConcept(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/DefineConcept',
            mubit_dot_v1_dot_control__pb2.DefineConceptRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.Ack.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListConcepts(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/ListConcepts',
            mubit_dot_v1_dot_control__pb2.ListConceptsRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ListConceptsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AddGoal(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/AddGoal',
            mubit_dot_v1_dot_control__pb2.AddGoalRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.GoalResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UpdateGoal(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/UpdateGoal',
            mubit_dot_v1_dot_control__pb2.UpdateGoalRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.Ack.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListGoals(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/ListGoals',
            mubit_dot_v1_dot_control__pb2.ListGoalsRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ListGoalsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetGoalTree(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetGoalTree',
            mubit_dot_v1_dot_control__pb2.GetGoalTreeRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.GetGoalTreeResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SubmitAction(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/SubmitAction',
            mubit_dot_v1_dot_control__pb2.ActionRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ActionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetActionLog(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetActionLog',
            mubit_dot_v1_dot_control__pb2.ActionLogRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ActionLogResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RunCycle(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/RunCycle',
            mubit_dot_v1_dot_control__pb2.RunCycleRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.CycleResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetCycleHistory(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetCycleHistory',
            mubit_dot_v1_dot_control__pb2.CycleHistoryRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.CycleHistoryResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteRun(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/DeleteRun',
            mubit_dot_v1_dot_control__pb2.RunRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.Ack.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Subscribe(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/mubit.v1.ControlService/Subscribe',
            mubit_dot_v1_dot_control__pb2.SubscribeRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.Event.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RegisterAgent(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/RegisterAgent',
            mubit_dot_v1_dot_control__pb2.AgentRegisterRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.AgentRegisterResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AgentHeartbeat(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/AgentHeartbeat',
            mubit_dot_v1_dot_control__pb2.AgentHeartbeatRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.Ack.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AppendActivity(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/AppendActivity',
            mubit_dot_v1_dot_control__pb2.ActivityAppendRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ActivityAppendResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetRunSnapshot(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetRunSnapshot',
            mubit_dot_v1_dot_control__pb2.RunSnapshotRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.RunSnapshotResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LinkRun(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/LinkRun',
            mubit_dot_v1_dot_control__pb2.LinkRunRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.LinkRunResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UnlinkRun(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/UnlinkRun',
            mubit_dot_v1_dot_control__pb2.UnlinkRunRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.UnlinkRunResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Ingest(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/Ingest',
            mubit_dot_v1_dot_control__pb2.IngestRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.IngestAccepted.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def BatchInsert(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/BatchInsert',
            mubit_dot_v1_dot_control__pb2.ControlBatchInsertRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ControlBatchInsertResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetIngestJob(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetIngestJob',
            mubit_dot_v1_dot_control__pb2.GetIngestJobRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.IngestJobResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetRunIngestStats(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetRunIngestStats',
            mubit_dot_v1_dot_control__pb2.GetRunIngestStatsRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.RunIngestStatsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Query(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/Query',
            mubit_dot_v1_dot_control__pb2.AgentQueryRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.AgentQueryResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Diagnose(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/Diagnose',
            mubit_dot_v1_dot_control__pb2.DiagnoseRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.DiagnoseResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Reflect(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/Reflect',
            mubit_dot_v1_dot_control__pb2.ReflectRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ReflectResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListLessons(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/ListLessons',
            mubit_dot_v1_dot_control__pb2.ListLessonsRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ListLessonsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteLesson(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/DeleteLesson',
            mubit_dot_v1_dot_control__pb2.DeleteLessonRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.Ack.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetContext(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetContext',
            mubit_dot_v1_dot_control__pb2.ContextRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ContextResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ArchiveBlock(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/ArchiveBlock',
            mubit_dot_v1_dot_control__pb2.ArchiveBlockRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ArchiveBlockResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Dereference(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/Dereference',
            mubit_dot_v1_dot_control__pb2.DereferenceRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.DereferenceResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetMemoryHealth(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/GetMemoryHealth',
            mubit_dot_v1_dot_control__pb2.MemoryHealthRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.MemoryHealthResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Checkpoint(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/Checkpoint',
            mubit_dot_v1_dot_control__pb2.CheckpointRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.CheckpointResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListAgents(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/ListAgents',
            mubit_dot_v1_dot_control__pb2.ListAgentsRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.ListAgentsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CreateHandoff(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/CreateHandoff',
            mubit_dot_v1_dot_control__pb2.HandoffRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.HandoffResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SubmitFeedback(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/SubmitFeedback',
            mubit_dot_v1_dot_control__pb2.FeedbackRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.FeedbackResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RecordOutcome(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/RecordOutcome',
            mubit_dot_v1_dot_control__pb2.RecordOutcomeRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.RecordOutcomeResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SurfaceStrategies(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/mubit.v1.ControlService/SurfaceStrategies',
            mubit_dot_v1_dot_control__pb2.SurfaceStrategiesRequest.SerializeToString,
            mubit_dot_v1_dot_control__pb2.SurfaceStrategiesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
