diff --git a/livekit-protocol/generate_proto.sh b/livekit-protocol/generate_proto.sh index 8129775e..5d1d11a1 100755 --- a/livekit-protocol/generate_proto.sh +++ b/livekit-protocol/generate_proto.sh @@ -82,6 +82,7 @@ protoc \ $API_PROTOCOL/livekit_rtc.proto \ $API_PROTOCOL/livekit_cloud_agent.proto \ $API_PROTOCOL/livekit_agent_simulation.proto \ + $API_PROTOCOL/livekit_agentdb.proto \ $API_PROTOCOL/agent/livekit_agent_session.proto \ $API_PROTOCOL/agent/livekit_agent_inference.proto \ $API_PROTOCOL/agent/livekit_agent_text.proto \ @@ -125,6 +126,8 @@ mv "$API_OUT_PYTHON/livekit_cloud_agent_pb2.py" "$API_OUT_PYTHON/cloud_agent.py" mv "$API_OUT_PYTHON/livekit_cloud_agent_pb2.pyi" "$API_OUT_PYTHON/cloud_agent.pyi" mv "$API_OUT_PYTHON/livekit_agent_simulation_pb2.py" "$API_OUT_PYTHON/agent_simulation.py" mv "$API_OUT_PYTHON/livekit_agent_simulation_pb2.pyi" "$API_OUT_PYTHON/agent_simulation.pyi" +mv "$API_OUT_PYTHON/livekit_agentdb_pb2.py" "$API_OUT_PYTHON/agentdb.py" +mv "$API_OUT_PYTHON/livekit_agentdb_pb2.pyi" "$API_OUT_PYTHON/agentdb.pyi" mv "$API_OUT_PYTHON/livekit_sip_pb2.py" "$API_OUT_PYTHON/sip.py" mv "$API_OUT_PYTHON/livekit_sip_pb2.pyi" "$API_OUT_PYTHON/sip.pyi" mv "$API_OUT_PYTHON/livekit_metrics_pb2.py" "$API_OUT_PYTHON/metrics.py" @@ -152,7 +155,7 @@ mkdir -p "$API_OUT_PYTHON/logger_pb" mv "$API_OUT_PYTHON/logger/options_pb2.py" "$API_OUT_PYTHON/logger_pb/options.py" mv "$API_OUT_PYTHON/logger/options_pb2.pyi" "$API_OUT_PYTHON/logger_pb/options.pyi" -find "$API_OUT_PYTHON" -name '*.py' -o -name '*.pyi' | xargs perl -i -pe 's|^(import (livekit_egress_pb2\|livekit_room_pb2\|livekit_webhook_pb2\|livekit_ingress_pb2\|livekit_models_pb2\|livekit_agent_pb2\|livekit_agent_dispatch_pb2\|livekit_agent_worker_pb2\|livekit_analytics_pb2\|livekit_sip_pb2\|livekit_metrics_pb2\|livekit_rtc_pb2\|livekit_cloud_agent_pb2\|livekit_agent_simulation_pb2\|livekit_connector_whatsapp_pb2\|livekit_connector_twilio_pb2\|livekit_connector_pb2\|livekit_agent_session_pb2\|livekit_agent_inference_pb2\|livekit_agent_dev_pb2\|livekit_agent_text_pb2\|options_pb2))|from . $1|g' +find "$API_OUT_PYTHON" -name '*.py' -o -name '*.pyi' | xargs perl -i -pe 's|^(import (livekit_egress_pb2\|livekit_room_pb2\|livekit_webhook_pb2\|livekit_ingress_pb2\|livekit_models_pb2\|livekit_agent_pb2\|livekit_agent_dispatch_pb2\|livekit_agent_worker_pb2\|livekit_analytics_pb2\|livekit_sip_pb2\|livekit_metrics_pb2\|livekit_rtc_pb2\|livekit_cloud_agent_pb2\|livekit_agent_simulation_pb2\|livekit_agentdb_pb2\|livekit_connector_whatsapp_pb2\|livekit_connector_twilio_pb2\|livekit_connector_pb2\|livekit_agent_session_pb2\|livekit_agent_inference_pb2\|livekit_agent_dev_pb2\|livekit_agent_text_pb2\|options_pb2))|from . $1|g' find "$API_OUT_PYTHON" -name '*.py' -o -name '*.pyi' | xargs perl -i -pe 's|livekit_(\w+)_pb2|${1}|g' diff --git a/livekit-protocol/livekit/protocol/agentdb.py b/livekit-protocol/livekit/protocol/agentdb.py new file mode 100644 index 00000000..c74eb812 --- /dev/null +++ b/livekit-protocol/livekit/protocol/agentdb.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: livekit_agentdb.proto +# Protobuf Python Version: 5.29.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 3, + '', + 'livekit_agentdb.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15livekit_agentdb.proto\x12\x07livekit\"\x93\x14\n\x07\x41gentDB\x1a\x34\n\rCreateRequest\x12\x0e\n\x06region\x18\x01 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x02 \x01(\x03\x1a\x39\n\x0e\x43reateResponse\x12\x13\n\x0b\x64\x61tabase_id\x18\x01 \x01(\t\x12\x12\n\nexpires_at\x18\x02 \x01(\x03\x1a!\n\nGetRequest\x12\x13\n\x0b\x64\x61tabase_id\x18\x01 \x01(\t\x1a\x34\n\x0bListRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\x1aZ\n\x0cListResponse\x12\x31\n\tdatabases\x18\x01 \x03(\x0b\x32\x1e.livekit.AgentDB.AgentDatabase\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x1ai\n\rAgentDatabase\x12\x13\n\x0b\x64\x61tabase_id\x18\x01 \x01(\t\x12\x0e\n\x06region\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x03\x12\x12\n\nexpires_at\x18\x04 \x01(\x03\x12\x0b\n\x03tip\x18\x05 \x01(\x03\x1a$\n\rDeleteRequest\x12\x13\n\x0b\x64\x61tabase_id\x18\x01 \x01(\t\x1a\x10\n\x0e\x44\x65leteResponse\x1a\"\n\x0b\x44umpRequest\x12\x13\n\x0b\x64\x61tabase_id\x18\x01 \x01(\t\x1a\x45\n\x0c\x44umpResponse\x12\x14\n\x0c\x64ownload_url\x18\x01 \x01(\t\x12\x12\n\nexpires_at\x18\x02 \x01(\x03\x12\x0b\n\x03tip\x18\x03 \x01(\x03\x1a\xd3\x0f\n\x04Wire\x1a\x8b\x04\n\rClientMessage\x12\x12\n\nrequest_id\x18\x01 \x01(\r\x12,\n\x05hello\x18\x02 \x01(\x0b\x32\x1b.livekit.AgentDB.Wire.HelloH\x00\x12/\n\x04\x65xec\x18\x03 \x01(\x0b\x32\x1f.livekit.AgentDB.Wire.StatementH\x00\x12\x30\n\x05query\x18\x04 \x01(\x0b\x32\x1f.livekit.AgentDB.Wire.StatementH\x00\x12,\n\x05\x62\x61tch\x18\x05 \x01(\x0b\x32\x1b.livekit.AgentDB.Wire.BatchH\x00\x12,\n\x05\x62\x65gin\x18\x06 \x01(\x0b\x32\x1b.livekit.AgentDB.Wire.BeginH\x00\x12.\n\x06\x63ommit\x18\x07 \x01(\x0b\x32\x1c.livekit.AgentDB.Wire.CommitH\x00\x12\x32\n\x08rollback\x18\x08 \x01(\x0b\x32\x1e.livekit.AgentDB.Wire.RollbackH\x00\x12.\n\x06\x63\x61ncel\x18\t \x01(\x0b\x32\x1c.livekit.AgentDB.Wire.CancelH\x00\x12.\n\x06\x63redit\x18\n \x01(\x0b\x32\x1c.livekit.AgentDB.Wire.CreditH\x00\x12*\n\x04ping\x18\x0b \x01(\x0b\x32\x1a.livekit.AgentDB.Wire.PingH\x00\x42\t\n\x07message\x1a\x8d\x03\n\rServerMessage\x12\x12\n\nrequest_id\x18\x01 \x01(\r\x12\x31\n\x08hello_ok\x18\x02 \x01(\x0b\x32\x1d.livekit.AgentDB.Wire.HelloOkH\x00\x12\x30\n\x07\x63olumns\x18\x03 \x01(\x0b\x32\x1d.livekit.AgentDB.Wire.ColumnsH\x00\x12\x39\n\x0c\x63olumn_batch\x18\x04 \x01(\x0b\x32!.livekit.AgentDB.Wire.ColumnBatchH\x00\x12\x37\n\x0b\x65xec_result\x18\x05 \x01(\x0b\x32 .livekit.AgentDB.Wire.ExecResultH\x00\x12*\n\x04\x64one\x18\x06 \x01(\x0b\x32\x1a.livekit.AgentDB.Wire.DoneH\x00\x12,\n\x05\x65rror\x18\x07 \x01(\x0b\x32\x1b.livekit.AgentDB.Wire.ErrorH\x00\x12*\n\x04pong\x18\x08 \x01(\x0b\x32\x1a.livekit.AgentDB.Wire.PongH\x00\x42\t\n\x07message\x1a\x7f\n\x05Value\x12\x14\n\nnull_value\x18\x01 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x12\x14\n\ntext_value\x18\x04 \x01(\tH\x00\x12\x14\n\nblob_value\x18\x05 \x01(\x0cH\x00\x42\x07\n\x05value\x1at\n\tStatement\x12\x0b\n\x03sql\x18\x01 \x01(\t\x12+\n\x06params\x18\x02 \x03(\x0b\x32\x1b.livekit.AgentDB.Wire.Value\x12-\n\x04lang\x18\x03 \x01(\x0e\x32\x1f.livekit.AgentDB.Wire.QueryLang\x1a<\n\x05\x42\x61tch\x12\x33\n\nstatements\x18\x01 \x03(\x0b\x32\x1f.livekit.AgentDB.Wire.Statement\x1a\x07\n\x05\x42\x65gin\x1a\x08\n\x06\x43ommit\x1a\n\n\x08Rollback\x1a\x08\n\x06\x43\x61ncel\x1a\x19\n\x06\x43redit\x12\x0f\n\x07\x62\x61tches\x18\x01 \x01(\r\x1a\x1c\n\x04Ping\x12\x14\n\x0ctimestamp_ms\x18\x01 \x01(\x03\x1a<\n\x04Pong\x12\x1e\n\x16last_ping_timestamp_ms\x18\x01 \x01(\x03\x12\x14\n\x0ctimestamp_ms\x18\x02 \x01(\x03\x1a+\n\x05Hello\x12\r\n\x05token\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61tabase_id\x18\x02 \x01(\t\x1aI\n\x07HelloOk\x12\x0b\n\x03tip\x18\x01 \x01(\x03\x12\x18\n\x10ping_interval_ms\x18\x02 \x01(\r\x12\x17\n\x0fping_timeout_ms\x18\x03 \x01(\r\x1a\x18\n\x07\x43olumns\x12\r\n\x05names\x18\x01 \x03(\t\x1a\x82\x01\n\x06\x43olumn\x12\r\n\x05types\x18\x01 \x01(\x0c\x12\x0c\n\x04ints\x18\x02 \x03(\x12\x12\x0f\n\x07\x64oubles\x18\x03 \x03(\x01\x12\x11\n\ttext_data\x18\x04 \x01(\x0c\x12\x11\n\ttext_ends\x18\x05 \x03(\r\x12\x11\n\tblob_data\x18\x06 \x01(\x0c\x12\x11\n\tblob_ends\x18\x07 \x03(\r\x1aJ\n\x0b\x43olumnBatch\x12-\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\x1c.livekit.AgentDB.Wire.Column\x12\x0c\n\x04rows\x18\x02 \x01(\r\x1aH\n\nExecResult\x12\x15\n\rrows_affected\x18\x01 \x01(\x03\x12\x16\n\x0elast_insert_id\x18\x02 \x01(\x03\x12\x0b\n\x03tip\x18\x03 \x01(\x03\x1a\'\n\x04\x44one\x12\x0b\n\x03tip\x18\x01 \x01(\x03\x12\x12\n\ntotal_rows\x18\x02 \x01(\x04\x1a&\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\"\x1a\n\tQueryLang\x12\x07\n\x03SQL\x10\x00\"\x04\x08\x01\x10\x01\">\n\tValueType\x12\x08\n\x04NULL\x10\x00\x12\x07\n\x03INT\x10\x01\x12\n\n\x06\x44OUBLE\x10\x02\x12\x08\n\x04TEXT\x10\x03\x12\x08\n\x04\x42LOB\x10\x04\x32\x9d\x03\n\x0e\x41gentDBService\x12Q\n\x0e\x43reateDatabase\x12\x1e.livekit.AgentDB.CreateRequest\x1a\x1f.livekit.AgentDB.CreateResponse\x12J\n\x0bGetDatabase\x12\x1b.livekit.AgentDB.GetRequest\x1a\x1e.livekit.AgentDB.AgentDatabase\x12L\n\rListDatabases\x12\x1c.livekit.AgentDB.ListRequest\x1a\x1d.livekit.AgentDB.ListResponse\x12Q\n\x0e\x44\x65leteDatabase\x12\x1e.livekit.AgentDB.DeleteRequest\x1a\x1f.livekit.AgentDB.DeleteResponse\x12K\n\x0c\x44umpDatabase\x12\x1c.livekit.AgentDB.DumpRequest\x1a\x1d.livekit.AgentDB.DumpResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'agentdb', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'Z#github.com/livekit/protocol/livekit\252\002\rLiveKit.Proto\352\002\016LiveKit::Proto' + _globals['_AGENTDB']._serialized_start=35 + _globals['_AGENTDB']._serialized_end=2614 + _globals['_AGENTDB_CREATEREQUEST']._serialized_start=46 + _globals['_AGENTDB_CREATEREQUEST']._serialized_end=98 + _globals['_AGENTDB_CREATERESPONSE']._serialized_start=100 + _globals['_AGENTDB_CREATERESPONSE']._serialized_end=157 + _globals['_AGENTDB_GETREQUEST']._serialized_start=159 + _globals['_AGENTDB_GETREQUEST']._serialized_end=192 + _globals['_AGENTDB_LISTREQUEST']._serialized_start=194 + _globals['_AGENTDB_LISTREQUEST']._serialized_end=246 + _globals['_AGENTDB_LISTRESPONSE']._serialized_start=248 + _globals['_AGENTDB_LISTRESPONSE']._serialized_end=338 + _globals['_AGENTDB_AGENTDATABASE']._serialized_start=340 + _globals['_AGENTDB_AGENTDATABASE']._serialized_end=445 + _globals['_AGENTDB_DELETEREQUEST']._serialized_start=447 + _globals['_AGENTDB_DELETEREQUEST']._serialized_end=483 + _globals['_AGENTDB_DELETERESPONSE']._serialized_start=485 + _globals['_AGENTDB_DELETERESPONSE']._serialized_end=501 + _globals['_AGENTDB_DUMPREQUEST']._serialized_start=503 + _globals['_AGENTDB_DUMPREQUEST']._serialized_end=537 + _globals['_AGENTDB_DUMPRESPONSE']._serialized_start=539 + _globals['_AGENTDB_DUMPRESPONSE']._serialized_end=608 + _globals['_AGENTDB_WIRE']._serialized_start=611 + _globals['_AGENTDB_WIRE']._serialized_end=2614 + _globals['_AGENTDB_WIRE_CLIENTMESSAGE']._serialized_start=620 + _globals['_AGENTDB_WIRE_CLIENTMESSAGE']._serialized_end=1143 + _globals['_AGENTDB_WIRE_SERVERMESSAGE']._serialized_start=1146 + _globals['_AGENTDB_WIRE_SERVERMESSAGE']._serialized_end=1543 + _globals['_AGENTDB_WIRE_VALUE']._serialized_start=1545 + _globals['_AGENTDB_WIRE_VALUE']._serialized_end=1672 + _globals['_AGENTDB_WIRE_STATEMENT']._serialized_start=1674 + _globals['_AGENTDB_WIRE_STATEMENT']._serialized_end=1790 + _globals['_AGENTDB_WIRE_BATCH']._serialized_start=1792 + _globals['_AGENTDB_WIRE_BATCH']._serialized_end=1852 + _globals['_AGENTDB_WIRE_BEGIN']._serialized_start=1854 + _globals['_AGENTDB_WIRE_BEGIN']._serialized_end=1861 + _globals['_AGENTDB_WIRE_COMMIT']._serialized_start=1863 + _globals['_AGENTDB_WIRE_COMMIT']._serialized_end=1871 + _globals['_AGENTDB_WIRE_ROLLBACK']._serialized_start=1873 + _globals['_AGENTDB_WIRE_ROLLBACK']._serialized_end=1883 + _globals['_AGENTDB_WIRE_CANCEL']._serialized_start=1885 + _globals['_AGENTDB_WIRE_CANCEL']._serialized_end=1893 + _globals['_AGENTDB_WIRE_CREDIT']._serialized_start=1895 + _globals['_AGENTDB_WIRE_CREDIT']._serialized_end=1920 + _globals['_AGENTDB_WIRE_PING']._serialized_start=1922 + _globals['_AGENTDB_WIRE_PING']._serialized_end=1950 + _globals['_AGENTDB_WIRE_PONG']._serialized_start=1952 + _globals['_AGENTDB_WIRE_PONG']._serialized_end=2012 + _globals['_AGENTDB_WIRE_HELLO']._serialized_start=2014 + _globals['_AGENTDB_WIRE_HELLO']._serialized_end=2057 + _globals['_AGENTDB_WIRE_HELLOOK']._serialized_start=2059 + _globals['_AGENTDB_WIRE_HELLOOK']._serialized_end=2132 + _globals['_AGENTDB_WIRE_COLUMNS']._serialized_start=2134 + _globals['_AGENTDB_WIRE_COLUMNS']._serialized_end=2158 + _globals['_AGENTDB_WIRE_COLUMN']._serialized_start=2161 + _globals['_AGENTDB_WIRE_COLUMN']._serialized_end=2291 + _globals['_AGENTDB_WIRE_COLUMNBATCH']._serialized_start=2293 + _globals['_AGENTDB_WIRE_COLUMNBATCH']._serialized_end=2367 + _globals['_AGENTDB_WIRE_EXECRESULT']._serialized_start=2369 + _globals['_AGENTDB_WIRE_EXECRESULT']._serialized_end=2441 + _globals['_AGENTDB_WIRE_DONE']._serialized_start=2443 + _globals['_AGENTDB_WIRE_DONE']._serialized_end=2482 + _globals['_AGENTDB_WIRE_ERROR']._serialized_start=2484 + _globals['_AGENTDB_WIRE_ERROR']._serialized_end=2522 + _globals['_AGENTDB_WIRE_QUERYLANG']._serialized_start=2524 + _globals['_AGENTDB_WIRE_QUERYLANG']._serialized_end=2550 + _globals['_AGENTDB_WIRE_VALUETYPE']._serialized_start=2552 + _globals['_AGENTDB_WIRE_VALUETYPE']._serialized_end=2614 + _globals['_AGENTDBSERVICE']._serialized_start=2617 + _globals['_AGENTDBSERVICE']._serialized_end=3030 +# @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agentdb.pyi b/livekit-protocol/livekit/protocol/agentdb.pyi new file mode 100644 index 00000000..3bf756ba --- /dev/null +++ b/livekit-protocol/livekit/protocol/agentdb.pyi @@ -0,0 +1,266 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class AgentDB(_message.Message): + __slots__ = () + class CreateRequest(_message.Message): + __slots__ = ("region", "ttl_seconds") + REGION_FIELD_NUMBER: _ClassVar[int] + TTL_SECONDS_FIELD_NUMBER: _ClassVar[int] + region: str + ttl_seconds: int + def __init__(self, region: _Optional[str] = ..., ttl_seconds: _Optional[int] = ...) -> None: ... + class CreateResponse(_message.Message): + __slots__ = ("database_id", "expires_at") + DATABASE_ID_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + database_id: str + expires_at: int + def __init__(self, database_id: _Optional[str] = ..., expires_at: _Optional[int] = ...) -> None: ... + class GetRequest(_message.Message): + __slots__ = ("database_id",) + DATABASE_ID_FIELD_NUMBER: _ClassVar[int] + database_id: str + def __init__(self, database_id: _Optional[str] = ...) -> None: ... + class ListRequest(_message.Message): + __slots__ = ("page_size", "page_token") + PAGE_SIZE_FIELD_NUMBER: _ClassVar[int] + PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int] + page_size: int + page_token: str + def __init__(self, page_size: _Optional[int] = ..., page_token: _Optional[str] = ...) -> None: ... + class ListResponse(_message.Message): + __slots__ = ("databases", "next_page_token") + DATABASES_FIELD_NUMBER: _ClassVar[int] + NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int] + databases: _containers.RepeatedCompositeFieldContainer[AgentDB.AgentDatabase] + next_page_token: str + def __init__(self, databases: _Optional[_Iterable[_Union[AgentDB.AgentDatabase, _Mapping]]] = ..., next_page_token: _Optional[str] = ...) -> None: ... + class AgentDatabase(_message.Message): + __slots__ = ("database_id", "region", "created_at", "expires_at", "tip") + DATABASE_ID_FIELD_NUMBER: _ClassVar[int] + REGION_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + TIP_FIELD_NUMBER: _ClassVar[int] + database_id: str + region: str + created_at: int + expires_at: int + tip: int + def __init__(self, database_id: _Optional[str] = ..., region: _Optional[str] = ..., created_at: _Optional[int] = ..., expires_at: _Optional[int] = ..., tip: _Optional[int] = ...) -> None: ... + class DeleteRequest(_message.Message): + __slots__ = ("database_id",) + DATABASE_ID_FIELD_NUMBER: _ClassVar[int] + database_id: str + def __init__(self, database_id: _Optional[str] = ...) -> None: ... + class DeleteResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + class DumpRequest(_message.Message): + __slots__ = ("database_id",) + DATABASE_ID_FIELD_NUMBER: _ClassVar[int] + database_id: str + def __init__(self, database_id: _Optional[str] = ...) -> None: ... + class DumpResponse(_message.Message): + __slots__ = ("download_url", "expires_at", "tip") + DOWNLOAD_URL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + TIP_FIELD_NUMBER: _ClassVar[int] + download_url: str + expires_at: int + tip: int + def __init__(self, download_url: _Optional[str] = ..., expires_at: _Optional[int] = ..., tip: _Optional[int] = ...) -> None: ... + class Wire(_message.Message): + __slots__ = () + class QueryLang(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SQL: _ClassVar[AgentDB.Wire.QueryLang] + SQL: AgentDB.Wire.QueryLang + class ValueType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + NULL: _ClassVar[AgentDB.Wire.ValueType] + INT: _ClassVar[AgentDB.Wire.ValueType] + DOUBLE: _ClassVar[AgentDB.Wire.ValueType] + TEXT: _ClassVar[AgentDB.Wire.ValueType] + BLOB: _ClassVar[AgentDB.Wire.ValueType] + NULL: AgentDB.Wire.ValueType + INT: AgentDB.Wire.ValueType + DOUBLE: AgentDB.Wire.ValueType + TEXT: AgentDB.Wire.ValueType + BLOB: AgentDB.Wire.ValueType + class ClientMessage(_message.Message): + __slots__ = ("request_id", "hello", "exec", "query", "batch", "begin", "commit", "rollback", "cancel", "credit", "ping") + REQUEST_ID_FIELD_NUMBER: _ClassVar[int] + HELLO_FIELD_NUMBER: _ClassVar[int] + EXEC_FIELD_NUMBER: _ClassVar[int] + QUERY_FIELD_NUMBER: _ClassVar[int] + BATCH_FIELD_NUMBER: _ClassVar[int] + BEGIN_FIELD_NUMBER: _ClassVar[int] + COMMIT_FIELD_NUMBER: _ClassVar[int] + ROLLBACK_FIELD_NUMBER: _ClassVar[int] + CANCEL_FIELD_NUMBER: _ClassVar[int] + CREDIT_FIELD_NUMBER: _ClassVar[int] + PING_FIELD_NUMBER: _ClassVar[int] + request_id: int + hello: AgentDB.Wire.Hello + exec: AgentDB.Wire.Statement + query: AgentDB.Wire.Statement + batch: AgentDB.Wire.Batch + begin: AgentDB.Wire.Begin + commit: AgentDB.Wire.Commit + rollback: AgentDB.Wire.Rollback + cancel: AgentDB.Wire.Cancel + credit: AgentDB.Wire.Credit + ping: AgentDB.Wire.Ping + def __init__(self, request_id: _Optional[int] = ..., hello: _Optional[_Union[AgentDB.Wire.Hello, _Mapping]] = ..., exec: _Optional[_Union[AgentDB.Wire.Statement, _Mapping]] = ..., query: _Optional[_Union[AgentDB.Wire.Statement, _Mapping]] = ..., batch: _Optional[_Union[AgentDB.Wire.Batch, _Mapping]] = ..., begin: _Optional[_Union[AgentDB.Wire.Begin, _Mapping]] = ..., commit: _Optional[_Union[AgentDB.Wire.Commit, _Mapping]] = ..., rollback: _Optional[_Union[AgentDB.Wire.Rollback, _Mapping]] = ..., cancel: _Optional[_Union[AgentDB.Wire.Cancel, _Mapping]] = ..., credit: _Optional[_Union[AgentDB.Wire.Credit, _Mapping]] = ..., ping: _Optional[_Union[AgentDB.Wire.Ping, _Mapping]] = ...) -> None: ... + class ServerMessage(_message.Message): + __slots__ = ("request_id", "hello_ok", "columns", "column_batch", "exec_result", "done", "error", "pong") + REQUEST_ID_FIELD_NUMBER: _ClassVar[int] + HELLO_OK_FIELD_NUMBER: _ClassVar[int] + COLUMNS_FIELD_NUMBER: _ClassVar[int] + COLUMN_BATCH_FIELD_NUMBER: _ClassVar[int] + EXEC_RESULT_FIELD_NUMBER: _ClassVar[int] + DONE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + PONG_FIELD_NUMBER: _ClassVar[int] + request_id: int + hello_ok: AgentDB.Wire.HelloOk + columns: AgentDB.Wire.Columns + column_batch: AgentDB.Wire.ColumnBatch + exec_result: AgentDB.Wire.ExecResult + done: AgentDB.Wire.Done + error: AgentDB.Wire.Error + pong: AgentDB.Wire.Pong + def __init__(self, request_id: _Optional[int] = ..., hello_ok: _Optional[_Union[AgentDB.Wire.HelloOk, _Mapping]] = ..., columns: _Optional[_Union[AgentDB.Wire.Columns, _Mapping]] = ..., column_batch: _Optional[_Union[AgentDB.Wire.ColumnBatch, _Mapping]] = ..., exec_result: _Optional[_Union[AgentDB.Wire.ExecResult, _Mapping]] = ..., done: _Optional[_Union[AgentDB.Wire.Done, _Mapping]] = ..., error: _Optional[_Union[AgentDB.Wire.Error, _Mapping]] = ..., pong: _Optional[_Union[AgentDB.Wire.Pong, _Mapping]] = ...) -> None: ... + class Value(_message.Message): + __slots__ = ("null_value", "int_value", "double_value", "text_value", "blob_value") + NULL_VALUE_FIELD_NUMBER: _ClassVar[int] + INT_VALUE_FIELD_NUMBER: _ClassVar[int] + DOUBLE_VALUE_FIELD_NUMBER: _ClassVar[int] + TEXT_VALUE_FIELD_NUMBER: _ClassVar[int] + BLOB_VALUE_FIELD_NUMBER: _ClassVar[int] + null_value: bool + int_value: int + double_value: float + text_value: str + blob_value: bytes + def __init__(self, null_value: bool = ..., int_value: _Optional[int] = ..., double_value: _Optional[float] = ..., text_value: _Optional[str] = ..., blob_value: _Optional[bytes] = ...) -> None: ... + class Statement(_message.Message): + __slots__ = ("sql", "params", "lang") + SQL_FIELD_NUMBER: _ClassVar[int] + PARAMS_FIELD_NUMBER: _ClassVar[int] + LANG_FIELD_NUMBER: _ClassVar[int] + sql: str + params: _containers.RepeatedCompositeFieldContainer[AgentDB.Wire.Value] + lang: AgentDB.Wire.QueryLang + def __init__(self, sql: _Optional[str] = ..., params: _Optional[_Iterable[_Union[AgentDB.Wire.Value, _Mapping]]] = ..., lang: _Optional[_Union[AgentDB.Wire.QueryLang, str]] = ...) -> None: ... + class Batch(_message.Message): + __slots__ = ("statements",) + STATEMENTS_FIELD_NUMBER: _ClassVar[int] + statements: _containers.RepeatedCompositeFieldContainer[AgentDB.Wire.Statement] + def __init__(self, statements: _Optional[_Iterable[_Union[AgentDB.Wire.Statement, _Mapping]]] = ...) -> None: ... + class Begin(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + class Commit(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + class Rollback(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + class Cancel(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + class Credit(_message.Message): + __slots__ = ("batches",) + BATCHES_FIELD_NUMBER: _ClassVar[int] + batches: int + def __init__(self, batches: _Optional[int] = ...) -> None: ... + class Ping(_message.Message): + __slots__ = ("timestamp_ms",) + TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int] + timestamp_ms: int + def __init__(self, timestamp_ms: _Optional[int] = ...) -> None: ... + class Pong(_message.Message): + __slots__ = ("last_ping_timestamp_ms", "timestamp_ms") + LAST_PING_TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int] + last_ping_timestamp_ms: int + timestamp_ms: int + def __init__(self, last_ping_timestamp_ms: _Optional[int] = ..., timestamp_ms: _Optional[int] = ...) -> None: ... + class Hello(_message.Message): + __slots__ = ("token", "database_id") + TOKEN_FIELD_NUMBER: _ClassVar[int] + DATABASE_ID_FIELD_NUMBER: _ClassVar[int] + token: str + database_id: str + def __init__(self, token: _Optional[str] = ..., database_id: _Optional[str] = ...) -> None: ... + class HelloOk(_message.Message): + __slots__ = ("tip", "ping_interval_ms", "ping_timeout_ms") + TIP_FIELD_NUMBER: _ClassVar[int] + PING_INTERVAL_MS_FIELD_NUMBER: _ClassVar[int] + PING_TIMEOUT_MS_FIELD_NUMBER: _ClassVar[int] + tip: int + ping_interval_ms: int + ping_timeout_ms: int + def __init__(self, tip: _Optional[int] = ..., ping_interval_ms: _Optional[int] = ..., ping_timeout_ms: _Optional[int] = ...) -> None: ... + class Columns(_message.Message): + __slots__ = ("names",) + NAMES_FIELD_NUMBER: _ClassVar[int] + names: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, names: _Optional[_Iterable[str]] = ...) -> None: ... + class Column(_message.Message): + __slots__ = ("types", "ints", "doubles", "text_data", "text_ends", "blob_data", "blob_ends") + TYPES_FIELD_NUMBER: _ClassVar[int] + INTS_FIELD_NUMBER: _ClassVar[int] + DOUBLES_FIELD_NUMBER: _ClassVar[int] + TEXT_DATA_FIELD_NUMBER: _ClassVar[int] + TEXT_ENDS_FIELD_NUMBER: _ClassVar[int] + BLOB_DATA_FIELD_NUMBER: _ClassVar[int] + BLOB_ENDS_FIELD_NUMBER: _ClassVar[int] + types: bytes + ints: _containers.RepeatedScalarFieldContainer[int] + doubles: _containers.RepeatedScalarFieldContainer[float] + text_data: bytes + text_ends: _containers.RepeatedScalarFieldContainer[int] + blob_data: bytes + blob_ends: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, types: _Optional[bytes] = ..., ints: _Optional[_Iterable[int]] = ..., doubles: _Optional[_Iterable[float]] = ..., text_data: _Optional[bytes] = ..., text_ends: _Optional[_Iterable[int]] = ..., blob_data: _Optional[bytes] = ..., blob_ends: _Optional[_Iterable[int]] = ...) -> None: ... + class ColumnBatch(_message.Message): + __slots__ = ("columns", "rows") + COLUMNS_FIELD_NUMBER: _ClassVar[int] + ROWS_FIELD_NUMBER: _ClassVar[int] + columns: _containers.RepeatedCompositeFieldContainer[AgentDB.Wire.Column] + rows: int + def __init__(self, columns: _Optional[_Iterable[_Union[AgentDB.Wire.Column, _Mapping]]] = ..., rows: _Optional[int] = ...) -> None: ... + class ExecResult(_message.Message): + __slots__ = ("rows_affected", "last_insert_id", "tip") + ROWS_AFFECTED_FIELD_NUMBER: _ClassVar[int] + LAST_INSERT_ID_FIELD_NUMBER: _ClassVar[int] + TIP_FIELD_NUMBER: _ClassVar[int] + rows_affected: int + last_insert_id: int + tip: int + def __init__(self, rows_affected: _Optional[int] = ..., last_insert_id: _Optional[int] = ..., tip: _Optional[int] = ...) -> None: ... + class Done(_message.Message): + __slots__ = ("tip", "total_rows") + TIP_FIELD_NUMBER: _ClassVar[int] + TOTAL_ROWS_FIELD_NUMBER: _ClassVar[int] + tip: int + total_rows: int + def __init__(self, tip: _Optional[int] = ..., total_rows: _Optional[int] = ...) -> None: ... + class Error(_message.Message): + __slots__ = ("code", "message") + CODE_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + code: str + message: str + def __init__(self, code: _Optional[str] = ..., message: _Optional[str] = ...) -> None: ... + def __init__(self) -> None: ... + def __init__(self) -> None: ...