"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.message
import google.protobuf.timestamp_pb2
import insightproto.proto.common.v1.common_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class AgentEvent(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INVESTIGATION_ID_FIELD_NUMBER: builtins.int
    ORG_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    AGENTID_FIELD_NUMBER: builtins.int
    THOUGHT_FIELD_NUMBER: builtins.int
    TOOL_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    investigation_id: builtins.str
    """The investigation ID that this update relates to."""
    agentId: builtins.str
    """the agent id"""
    thought: builtins.str
    """a thought the agent has had"""
    tool: builtins.str
    """a tool the agent has called"""
    error: builtins.str
    """a recoverable error in the flow"""
    @property
    def org(self) -> insightproto.proto.common.v1.common_pb2.Organisation:
        """The organization that owns the investigation."""

    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the timestamp of the event"""

    def __init__(
        self,
        *,
        investigation_id: builtins.str = ...,
        org: insightproto.proto.common.v1.common_pb2.Organisation | None = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        agentId: builtins.str = ...,
        thought: builtins.str | None = ...,
        tool: builtins.str | None = ...,
        error: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_error", b"_error", "_thought", b"_thought", "_tool", b"_tool", "error", b"error", "org", b"org", "thought", b"thought", "timestamp", b"timestamp", "tool", b"tool"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_error", b"_error", "_thought", b"_thought", "_tool", b"_tool", "agentId", b"agentId", "error", b"error", "investigation_id", b"investigation_id", "org", b"org", "thought", b"thought", "timestamp", b"timestamp", "tool", b"tool"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_error", b"_error"]) -> typing.Literal["error"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_thought", b"_thought"]) -> typing.Literal["thought"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_tool", b"_tool"]) -> typing.Literal["tool"] | None: ...

Global___AgentEvent: typing_extensions.TypeAlias = AgentEvent

@typing.final
class AgentStartedEvent(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INVESTIGATION_ID_FIELD_NUMBER: builtins.int
    ORG_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    PARENTAGENTID_FIELD_NUMBER: builtins.int
    AGENTID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    GOAL_FIELD_NUMBER: builtins.int
    investigation_id: builtins.str
    """The investigation ID that this update relates to."""
    parentAgentId: builtins.str
    """the id of the agent that started this agent"""
    agentId: builtins.str
    """the agent id"""
    name: builtins.str
    """the agent display name"""
    goal: builtins.str
    """the goal of the agent"""
    @property
    def org(self) -> insightproto.proto.common.v1.common_pb2.Organisation:
        """The organization that owns the investigation."""

    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the timestamp of the event"""

    def __init__(
        self,
        *,
        investigation_id: builtins.str = ...,
        org: insightproto.proto.common.v1.common_pb2.Organisation | None = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        parentAgentId: builtins.str = ...,
        agentId: builtins.str = ...,
        name: builtins.str = ...,
        goal: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["org", b"org", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["agentId", b"agentId", "goal", b"goal", "investigation_id", b"investigation_id", "name", b"name", "org", b"org", "parentAgentId", b"parentAgentId", "timestamp", b"timestamp"]) -> None: ...

Global___AgentStartedEvent: typing_extensions.TypeAlias = AgentStartedEvent

@typing.final
class AgentStoppedEvent(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INVESTIGATION_ID_FIELD_NUMBER: builtins.int
    ORG_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    AGENTID_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    investigation_id: builtins.str
    """The investigation ID that this update relates to."""
    agentId: builtins.str
    """the agent id"""
    error: builtins.str
    """an error that prevented normal agent flow"""
    @property
    def org(self) -> insightproto.proto.common.v1.common_pb2.Organisation:
        """The organization that owns the investigation."""

    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the timestamp of the event"""

    def __init__(
        self,
        *,
        investigation_id: builtins.str = ...,
        org: insightproto.proto.common.v1.common_pb2.Organisation | None = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        agentId: builtins.str = ...,
        error: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_error", b"_error", "error", b"error", "org", b"org", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_error", b"_error", "agentId", b"agentId", "error", b"error", "investigation_id", b"investigation_id", "org", b"org", "timestamp", b"timestamp"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_error", b"_error"]) -> typing.Literal["error"] | None: ...

Global___AgentStoppedEvent: typing_extensions.TypeAlias = AgentStoppedEvent
