@dxos/protocols 0.1.17 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/proto/gen/dxos/devtools/host.d.ts +31 -31
- package/dist/src/proto/gen/dxos/devtools/host.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/service/publisher.d.ts +5 -0
- package/dist/src/proto/gen/dxos/service/publisher.d.ts.map +1 -1
- package/dist/src/proto/gen/index.d.ts.map +1 -1
- package/dist/src/proto/gen/index.js +1 -1
- package/dist/src/proto/gen/index.js.map +1 -1
- package/package.json +5 -5
- package/src/proto/dxos/service/publisher.proto +2 -0
- package/src/proto/gen/dxos/devtools/host.ts +31 -31
- package/src/proto/gen/dxos/service/publisher.ts +5 -0
- package/src/proto/gen/index.ts +1 -1
|
@@ -6,6 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.schema = exports.schemaJson = void 0;
|
|
7
7
|
const codec_protobuf_1 = require("@dxos/codec-protobuf");
|
|
8
8
|
const substitutions_1 = __importDefault(require("../substitutions"));
|
|
9
|
-
exports.schemaJson = JSON.parse("{\"nested\":{\"dxos\":{\"nested\":{\"bot\":{\"nested\":{\"Bot\":{\"oneofs\":{\"_status\":{\"oneof\":[\"status\"]},\"_desiredState\":{\"oneof\":[\"desiredState\"]},\"_attemptsToAchieveDesiredState\":{\"oneof\":[\"attemptsToAchieveDesiredState\"]},\"_packageSpecifier\":{\"oneof\":[\"packageSpecifier\"]},\"_lastStart\":{\"oneof\":[\"lastStart\"]},\"_spaceKey\":{\"oneof\":[\"spaceKey\"]},\"_runtime\":{\"oneof\":[\"runtime\"]},\"_report\":{\"oneof\":[\"report\"]}},\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"status\":{\"type\":\"Status\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"desiredState\":{\"type\":\"Status\",\"id\":55,\"options\":{\"proto3_optional\":true},\"comment\":\"The state that the bot aims to be in. Can be only either RUNNING or STOPPED.\"},\"attemptsToAchieveDesiredState\":{\"type\":\"int32\",\"id\":56,\"options\":{\"proto3_optional\":true},\"comment\":null},\"packageSpecifier\":{\"type\":\"BotPackageSpecifier\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"lastStart\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"runtime\":{\"type\":\"Runtime\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"report\":{\"type\":\"BotReport\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Runtime\":{\"oneofs\":{\"_exitCode\":{\"oneof\":[\"exitCode\"]},\"_exitSignal\":{\"oneof\":[\"exitSignal\"]},\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"exitCode\":{\"type\":\"int32\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"exitSignal\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Status\":{\"values\":{\"STOPPED\":0,\"STARTING\":1,\"RUNNING\":2,\"STOPPING\":3,\"SPAWNING\":4},\"comment\":null,\"comments\":{\"STOPPED\":null,\"STARTING\":\"Starting bot process.\",\"RUNNING\":\"Bot is running.\",\"STOPPING\":\"Bot is stopping.\",\"SPAWNING\":\"Bot is being spawned. Bot factory is downloading the bot bundle and initializing resources.\"}}},\"comment\":null},\"BotFactoryService\":{\"methods\":{\"GetBots\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"GetBotsResponse\",\"comment\":null},\"SpawnBot\":{\"requestType\":\"SpawnBotRequest\",\"responseType\":\"Bot\",\"comment\":null},\"Start\":{\"requestType\":\"Bot\",\"responseType\":\"Bot\",\"comment\":null},\"Stop\":{\"requestType\":\"Bot\",\"responseType\":\"Bot\",\"comment\":null},\"Remove\":{\"requestType\":\"Bot\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"GetLogs\":{\"requestType\":\"GetLogsRequest\",\"responseType\":\"GetLogsResponse\",\"responseStream\":true,\"comment\":null},\"SendCommand\":{\"requestType\":\"SendCommandRequest\",\"responseType\":\"SendCommandResponse\",\"comment\":null},\"RemoveAll\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Service that is used by clients to communicate with bot factory.\"},\"BotPackageSpecifier\":{\"oneofs\":{\"kind\":{\"oneof\":[\"name\",\"ipfsCid\",\"localPath\"],\"comment\":null}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"comment\":\"DXN of the bot in the DXNS registry.\"},\"ipfsCid\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"localPath\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null},\"BotReport\":{\"oneofs\":{\"_spaceDetails\":{\"oneof\":[\"spaceDetails\"]}},\"fields\":{\"spaceDetails\":{\"type\":\"dxos.client.SpaceDetails\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Details of the space the bot was spawned for.\"}},\"comment\":null},\"BotService\":{\"methods\":{\"Initialize\":{\"requestType\":\"InitializeRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Initialize Client, create profile, and join a space.\"},\"Start\":{\"requestType\":\"StartRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Start an initialized bot.\"},\"Command\":{\"requestType\":\"SendCommandRequest\",\"responseType\":\"SendCommandResponse\",\"comment\":\"Custom commands sent to the bot factory.\"},\"Stop\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Stop the bot.\"},\"StartReporting\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"BotReport\",\"responseStream\":true,\"comment\":\"Send periodic reports of the bot's state.\"}},\"comment\":\"Service that is used by bots communicating with bot factory.\"},\"GetBotsResponse\":{\"fields\":{\"bots\":{\"rule\":\"repeated\",\"type\":\"Bot\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetLogsRequest\":{\"fields\":{\"botId\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetLogsResponse\":{\"fields\":{\"chunk\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"InitializeRequest\":{\"oneofs\":{\"_config\":{\"oneof\":[\"config\"]},\"_invitation\":{\"oneof\":[\"invitation\"]},\"_id\":{\"oneof\":[\"id\"]}},\"fields\":{\"config\":{\"type\":\"dxos.config.Config\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Bot runtime configuration.\"},\"invitation\":{\"type\":\"dxos.client.services.Invitation\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Invitation for the bot to join the target space.\"},\"id\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"ID of the bot.\"}},\"comment\":null},\"SendCommandRequest\":{\"oneofs\":{\"_botId\":{\"oneof\":[\"botId\"]},\"_command\":{\"oneof\":[\"command\"]}},\"fields\":{\"botId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"command\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SendCommandResponse\":{\"oneofs\":{\"_response\":{\"oneof\":[\"response\"]}},\"fields\":{\"response\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SpawnBotRequest\":{\"oneofs\":{\"_package\":{\"oneof\":[\"package\"]},\"_invitation\":{\"oneof\":[\"invitation\"]},\"_spaceKey\":{\"oneof\":[\"spaceKey\"]}},\"fields\":{\"package\":{\"type\":\"BotPackageSpecifier\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"invitation\":{\"type\":\"dxos.client.services.Invitation\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Invitation for the bot to join the target space.\"},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the space bot is invited to.\"}},\"comment\":null},\"StartRequest\":{\"fields\":{\"config\":{\"type\":\"dxos.config.Config\",\"id\":1,\"comment\":\"Bot runtime configuration.\"}},\"comment\":null}}},\"client\":{\"nested\":{\"AddKeyRecordRequest\":{\"fields\":{\"keyRecord\":{\"type\":\"dxos.halo.keys.KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"AuthenticateInvitationRequest\":{\"fields\":{\"processId\":{\"type\":\"string\",\"id\":1,\"comment\":\"Id from corresponding RedeemedInvitation.\"},\"secret\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Contact\":{\"oneofs\":{\"_displayName\":{\"oneof\":[\"displayName\"]}},\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Contacts\":{\"fields\":{\"contacts\":{\"rule\":\"repeated\",\"type\":\"Contact\",\"id\":1,\"comment\":null}},\"comment\":null},\"CreateInvitationRequest\":{\"oneofs\":{\"_inviteeKey\":{\"oneof\":[\"inviteeKey\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"inviteeKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"When specified the invitation will be of OFFLINE type, not requiring secret exchange.\"}},\"comment\":null},\"CreateProfileRequest\":{\"oneofs\":{\"_publicKey\":{\"oneof\":[\"publicKey\"]},\"_secretKey\":{\"oneof\":[\"secretKey\"]},\"_displayName\":{\"oneof\":[\"displayName\"]}},\"fields\":{\"publicKey\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"secretKey\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"CreateSnapshotRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetPreferenceRequest\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetPreferenceResponse\":{\"fields\":{\"value\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetSpaceDetailsRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"HaloService\":{\"methods\":{\"Sign\":{\"requestType\":\"SignRequest\",\"responseType\":\"SignResponse\",\"comment\":null},\"AddKeyRecord\":{\"requestType\":\"AddKeyRecordRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"SubscribeContacts\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Contacts\",\"responseStream\":true,\"comment\":null},\"SetGlobalPreference\":{\"requestType\":\"SetPreferenceRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"GetGlobalPreference\":{\"requestType\":\"GetPreferenceRequest\",\"responseType\":\"GetPreferenceResponse\",\"comment\":null},\"SetDevicePreference\":{\"requestType\":\"SetPreferenceRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"GetDevicePreference\":{\"requestType\":\"GetPreferenceRequest\",\"responseType\":\"GetPreferenceResponse\",\"comment\":null}},\"comment\":null},\"InvitationRequest\":{\"oneofs\":{\"_descriptor\":{\"oneof\":[\"descriptor\"]},\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"descriptor\":{\"type\":\"dxos.client.services.Invitation\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"state\":{\"type\":\"InvitationState\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Only if state == ERROR.\"}},\"comment\":\"Invitation process created by sender.\"},\"InvitationState\":{\"values\":{\"WAITING_FOR_CONNECTION\":0,\"CONNECTED\":1,\"SUCCESS\":2,\"ERROR\":3},\"comment\":null,\"comments\":{\"WAITING_FOR_CONNECTION\":null,\"CONNECTED\":null,\"SUCCESS\":null,\"ERROR\":null}},\"Profile\":{\"oneofs\":{\"_displayName\":{\"oneof\":[\"displayName\"]},\"_deviceKey\":{\"oneof\":[\"deviceKey\"]}},\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ProfileService\":{\"methods\":{\"CreateProfile\":{\"requestType\":\"CreateProfileRequest\",\"responseType\":\"Profile\",\"comment\":null},\"RecoverProfile\":{\"requestType\":\"RecoverProfileRequest\",\"responseType\":\"Profile\",\"comment\":null},\"SubscribeProfile\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeProfileResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"RecoverProfileRequest\":{\"fields\":{\"seedPhrase\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"RedeemedInvitation\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]},\"_spaceKey\":{\"oneof\":[\"spaceKey\"]}},\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"InvitationState\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Only if state == ERROR.\"},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Only on space invitations that are finished.\"}},\"comment\":\"Invitation that is being redeemed.\"},\"services\":{\"nested\":{\"AuthenticationRequest\":{\"fields\":{\"invitationId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"authenticationCode\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"CancelInvitationRequest\":{\"fields\":{\"invitationId\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"Contact\":{\"fields\":{\"profile\":{\"type\":\"halo.credentials.ProfileDocument\",\"id\":1,\"comment\":null}},\"comment\":null},\"ContactsService\":{\"methods\":{\"UpdateContact\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Contact\",\"comment\":null},\"QueryContacts\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Contact\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"Device\":{\"fields\":{\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"DevicesService\":{\"methods\":{\"UpdateDevice\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Device\",\"comment\":null},\"QueryDevices\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"QueryDevicesResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"HaloInvitationsService\":{\"methods\":{\"CreateInvitation\":{\"requestType\":\"Invitation\",\"responseType\":\"Invitation\",\"responseStream\":true,\"comment\":null},\"Authenticate\":{\"requestType\":\"AuthenticationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"AcceptInvitation\":{\"requestType\":\"Invitation\",\"responseType\":\"Invitation\",\"responseStream\":true,\"comment\":null},\"CancelInvitation\":{\"requestType\":\"CancelInvitationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"HaloService\":{\"methods\":{\"RecoverProfile\":{\"requestType\":\"RecoverProfileRequest\",\"responseType\":\"Identity\",\"comment\":null},\"UpdateProfile\":{\"requestType\":\"Identity\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"QueryProfile\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Identity\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"Identity\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"profile\":{\"type\":\"halo.credentials.ProfileDocument\",\"id\":2,\"comment\":null}},\"comment\":null},\"Invitation\":{\"oneofs\":{\"_invitationId\":{\"oneof\":[\"invitationId\"]},\"_type\":{\"oneof\":[\"type\"]},\"_state\":{\"oneof\":[\"state\"]},\"_error\":{\"oneof\":[\"error\"]},\"_swarmKey\":{\"oneof\":[\"swarmKey\"]},\"_identityKey\":{\"oneof\":[\"identityKey\"]},\"_spaceKey\":{\"oneof\":[\"spaceKey\"]},\"_authenticationCode\":{\"oneof\":[\"authenticationCode\"]},\"_timeout\":{\"oneof\":[\"timeout\"]}},\"fields\":{\"invitationId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Local identifier.\"},\"type\":{\"type\":\"Type\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Determined when created.\"},\"state\":{\"type\":\"State\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Local state.\"},\"error\":{\"type\":\"Error\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Error.\"},\"swarmKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Swarm rendezvous (random).\"},\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Guest's identity (only present if OFFLINE).\"},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":\"Space to join.\"},\"authenticationCode\":{\"type\":\"string\",\"id\":8,\"options\":{\"proto3_optional\":true},\"comment\":\"Authentication code created by host.\"},\"timeout\":{\"type\":\"int32\",\"id\":9,\"options\":{\"proto3_optional\":true},\"comment\":\"Timeout (ms).\"}},\"nested\":{\"Error\":{\"values\":{\"OK\":0,\"TIMEOUT\":1,\"INVALID_OTP\":2,\"INVALID_OPT_ATTEMPTS\":3,\"INVALID_CREDENTIALS\":4},\"comment\":null,\"comments\":{\"OK\":null,\"TIMEOUT\":null,\"INVALID_OTP\":null,\"INVALID_OPT_ATTEMPTS\":null,\"INVALID_CREDENTIALS\":null}},\"State\":{\"values\":{\"INIT\":0,\"CONNECTING\":1,\"CONNECTED\":2,\"AUTHENTICATING\":3,\"SUCCESS\":4,\"CANCELLED\":5,\"TIMEOUT\":6,\"ERROR\":7},\"comment\":null,\"comments\":{\"INIT\":null,\"CONNECTING\":null,\"CONNECTED\":null,\"AUTHENTICATING\":null,\"SUCCESS\":null,\"CANCELLED\":null,\"TIMEOUT\":null,\"ERROR\":null}},\"Type\":{\"values\":{\"INTERACTIVE\":0,\"INTERACTIVE_TESTING\":1,\"OFFLINE\":2},\"comment\":null,\"comments\":{\"INTERACTIVE\":\"Requires both to be online with OTP to complete key exchange.\",\"INTERACTIVE_TESTING\":\"Interactive without OTP.\",\"OFFLINE\":\"Guest's identity key is known; invitation can be accepted by any valid peer.\"}}},\"comment\":\"Represents the invitation state passed between client and service.\"},\"KeyRecord\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"QueryDevicesResponse\":{\"fields\":{\"devices\":{\"rule\":\"repeated\",\"type\":\"Device\",\"id\":1,\"comment\":null}},\"comment\":null},\"QueryMembersRequest\":{\"fields\":{},\"comment\":null},\"QueryMembersResponse\":{\"fields\":{\"members\":{\"type\":\"dxos.halo.credentials.IdentityProfile\",\"id\":1,\"comment\":null}},\"comment\":null},\"RecoverProfileRequest\":{\"fields\":{\"recoveryKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"SigningService\":{\"methods\":{\"UpdateKeyRecord\":{\"requestType\":\"KeyRecord\",\"responseType\":\"KeyRecord\",\"comment\":null},\"Sign\":{\"requestType\":\"SignRequest\",\"responseType\":\"SignResponse\",\"comment\":null}},\"comment\":null},\"SignRequest\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"SignResponse\":{\"fields\":{\"signed\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Space\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SpaceInvitationsService\":{\"methods\":{\"CreateInvitation\":{\"requestType\":\"Invitation\",\"responseType\":\"Invitation\",\"responseStream\":true,\"comment\":null},\"Authenticate\":{\"requestType\":\"AuthenticationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"AcceptInvitation\":{\"requestType\":\"Invitation\",\"responseType\":\"Invitation\",\"responseStream\":true,\"comment\":null},\"CancelInvitation\":{\"requestType\":\"CancelInvitationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"SpacesService\":{\"methods\":{\"CreateSpace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Space\",\"comment\":null},\"QuerySpaces\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Space\",\"responseStream\":true,\"comment\":null},\"QueryMembers\":{\"requestType\":\"QueryMembersRequest\",\"responseType\":\"QueryMembersResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"SystemService\":{\"methods\":{\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"dxos.config.Config\",\"comment\":null},\"Reset\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null}}},\"SetPreferenceRequest\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SetSpaceStateRequest\":{\"oneofs\":{\"_open\":{\"oneof\":[\"open\"]},\"_activeGlobal\":{\"oneof\":[\"activeGlobal\"]},\"_activeDevice\":{\"oneof\":[\"activeDevice\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"open\":{\"type\":\"bool\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"activeGlobal\":{\"type\":\"bool\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"activeDevice\":{\"type\":\"bool\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SignRequest\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"The public key of the key that is supposed to be used for signing.\"},\"payload\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"SignResponse\":{\"fields\":{\"signed\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Space\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"isOpen\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"isActive\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"members\":{\"rule\":\"repeated\",\"type\":\"SpaceMember\",\"id\":4,\"comment\":null}},\"comment\":null},\"SpaceActivationOptions\":{\"fields\":{\"global\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"device\":{\"type\":\"bool\",\"id\":2,\"comment\":null}},\"comment\":null},\"SpaceDetails\":{\"fields\":{\"processedTimeframe\":{\"type\":\"dxos.echo.timeframe.TimeframeVector\",\"id\":1,\"comment\":\"The timeframe of mutations processed by the client.\"}},\"comment\":null},\"SpaceMember\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"profile\":{\"type\":\"Profile\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SpaceService\":{\"methods\":{\"SubscribeToSpace\":{\"requestType\":\"SubscribeSpaceRequest\",\"responseType\":\"SubscribeSpaceResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeSpaces\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeSpacesResponse\",\"responseStream\":true,\"comment\":null},\"GetSpaceDetails\":{\"requestType\":\"GetSpaceDetailsRequest\",\"responseType\":\"SpaceDetails\",\"comment\":null},\"CreateSpace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Space\",\"comment\":null},\"CloneSpace\":{\"requestType\":\"dxos.echo.snapshot.SpaceSnapshot\",\"responseType\":\"Space\",\"comment\":null},\"SetSpaceState\":{\"requestType\":\"SetSpaceStateRequest\",\"responseType\":\"Space\",\"comment\":\"Open and close or activate and deactivate a space.\"},\"SubscribeMembers\":{\"requestType\":\"SubscribeMembersRequest\",\"responseType\":\"SubscribeMembersResponse\",\"responseStream\":true,\"comment\":null},\"CreateSnapshot\":{\"requestType\":\"CreateSnapshotRequest\",\"responseType\":\"echo.snapshot.SpaceSnapshot\",\"comment\":null}},\"comment\":null},\"Status\":{\"fields\":{\"message\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeMembersRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeMembersResponse\":{\"fields\":{\"members\":{\"rule\":\"repeated\",\"type\":\"SpaceMember\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeProfileResponse\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"profile\":{\"type\":\"Profile\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeSpaceRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeSpaceResponse\":{\"oneofs\":{\"_space\":{\"oneof\":[\"space\"]}},\"fields\":{\"space\":{\"type\":\"Space\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeSpacesResponse\":{\"fields\":{\"spaces\":{\"rule\":\"repeated\",\"type\":\"Space\",\"id\":1,\"comment\":null}},\"comment\":null},\"SystemService\":{\"methods\":{\"InitSession\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Called at the start of the session. Service should block until it is fully initialized.\"},\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"dxos.config.Config\",\"comment\":null},\"GetStatus\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Status\",\"comment\":null},\"Reset\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null}}},\"config\":{\"nested\":{\"Config\":{\"oneofs\":{\"_version\":{\"oneof\":[\"version\"]},\"_package\":{\"oneof\":[\"package\"]},\"_runtime\":{\"oneof\":[\"runtime\"]}},\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"package\":{\"type\":\"Package\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"runtime\":{\"type\":\"Runtime\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Module\":{\"oneofs\":{\"_name\":{\"oneof\":[\"name\"]},\"_type\":{\"oneof\":[\"type\"]},\"_displayName\":{\"oneof\":[\"displayName\"]},\"_description\":{\"oneof\":[\"description\"]},\"_bundle\":{\"oneof\":[\"bundle\"]},\"_build\":{\"oneof\":[\"build\"]},\"_record\":{\"oneof\":[\"record\"]}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"type\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"description\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"tags\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":5,\"comment\":null},\"bundle\":{\"type\":\"bytes\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"build\":{\"type\":\"Build\",\"id\":100,\"options\":{\"proto3_optional\":true},\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":101,\"comment\":null},\"record\":{\"type\":\"google.protobuf.Any\",\"id\":200,\"options\":{\"proto3_optional\":true},\"comment\":\"The data will be validated based on the type when being published.\"}},\"nested\":{\"Build\":{\"oneofs\":{\"_command\":{\"oneof\":[\"command\"]},\"_outdir\":{\"oneof\":[\"outdir\"]},\"_version\":{\"oneof\":[\"version\"]},\"_tag\":{\"oneof\":[\"tag\"]}},\"fields\":{\"command\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"outdir\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"version\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"tag\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"Package\":{\"oneofs\":{\"_license\":{\"oneof\":[\"license\"]}},\"fields\":{\"license\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":2,\"comment\":null},\"modules\":{\"rule\":\"repeated\",\"type\":\"Module\",\"id\":3,\"comment\":null}},\"comment\":null},\"Repo\":{\"oneofs\":{\"_name\":{\"oneof\":[\"name\"]},\"_url\":{\"oneof\":[\"url\"]},\"_version\":{\"oneof\":[\"version\"]}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"url\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"version\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Runtime\":{\"oneofs\":{\"_client\":{\"oneof\":[\"client\"]},\"_app\":{\"oneof\":[\"app\"]},\"_cli\":{\"oneof\":[\"cli\"]},\"_props\":{\"oneof\":[\"props\"]},\"_services\":{\"oneof\":[\"services\"]},\"_system\":{\"oneof\":[\"system\"]},\"_kube\":{\"oneof\":[\"kube\"]}},\"fields\":{\"client\":{\"type\":\"Client\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"app\":{\"type\":\"App\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"cli\":{\"type\":\"CLI\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"props\":{\"type\":\"Props\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"services\":{\"type\":\"Services\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"system\":{\"type\":\"System\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"kube\":{\"type\":\"Kube\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"App\":{\"oneofs\":{\"_org\":{\"oneof\":[\"org\"]},\"_theme\":{\"oneof\":[\"theme\"]},\"_website\":{\"oneof\":[\"website\"]},\"_publicUrl\":{\"oneof\":[\"publicUrl\"]}},\"fields\":{\"org\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"theme\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"website\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"publicUrl\":{\"type\":\"string\",\"id\":4,\"options\":{\"(env)\":\"PUBLIC_URL\",\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"CLI\":{\"oneofs\":{\"_nodePath\":{\"oneof\":[\"nodePath\"]},\"_app\":{\"oneof\":[\"app\"]},\"_console\":{\"oneof\":[\"console\"]},\"_mdns\":{\"oneof\":[\"mdns\"]},\"_signal\":{\"oneof\":[\"signal\"]},\"_npmClient\":{\"oneof\":[\"npmClient\"]},\"_channel\":{\"oneof\":[\"channel\"]}},\"fields\":{\"nodePath\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"app\":{\"type\":\"AppServe\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"console\":{\"type\":\"Package\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"mdns\":{\"type\":\"Package\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"signal\":{\"type\":\"Package\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"npmClient\":{\"type\":\"string\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"channel\":{\"type\":\"string\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"AppServe\":{\"oneofs\":{\"_serve\":{\"oneof\":[\"serve\"]}},\"fields\":{\"serve\":{\"type\":\"Serve\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Serve\":{\"oneofs\":{\"_config\":{\"oneof\":[\"config\"]},\"_loginApp\":{\"oneof\":[\"loginApp\"]},\"_keyPhrase\":{\"oneof\":[\"keyPhrase\"]}},\"fields\":{\"config\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"loginApp\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"keyPhrase\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"Package\":{\"oneofs\":{\"_package\":{\"oneof\":[\"package\"]},\"_channel\":{\"oneof\":[\"channel\"]},\"_bin\":{\"oneof\":[\"bin\"]},\"_config\":{\"oneof\":[\"config\"]}},\"fields\":{\"package\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"channel\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"bin\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"config\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"Client\":{\"oneofs\":{\"_debug\":{\"oneof\":[\"debug\"]},\"_storage\":{\"oneof\":[\"storage\"]},\"_enableSnapshots\":{\"oneof\":[\"enableSnapshots\"]},\"_snapshotInterval\":{\"oneof\":[\"snapshotInterval\"]},\"_invitationExpiration\":{\"oneof\":[\"invitationExpiration\"]},\"_remoteSource\":{\"oneof\":[\"remoteSource\"]}},\"fields\":{\"debug\":{\"type\":\"string\",\"id\":1,\"options\":{\"(env)\":\"DEBUG\",\"proto3_optional\":true},\"comment\":null},\"storage\":{\"type\":\"Storage\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"enableSnapshots\":{\"type\":\"bool\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"snapshotInterval\":{\"type\":\"int32\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Milliseconds\"},\"invitationExpiration\":{\"type\":\"int32\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Milliseconds\"},\"remoteSource\":{\"type\":\"string\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Storage\":{\"oneofs\":{\"_persistent\":{\"oneof\":[\"persistent\"]},\"_keyStorage\":{\"oneof\":[\"keyStorage\"]},\"_storageType\":{\"oneof\":[\"storageType\"]},\"_path\":{\"oneof\":[\"path\"]}},\"fields\":{\"persistent\":{\"type\":\"bool\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"keyStorage\":{\"type\":\"StorageDriver\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"storageType\":{\"type\":\"StorageDriver\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"path\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"StorageDriver\":{\"values\":{\"RAM\":0,\"IDB\":1,\"CHROME\":2,\"FIREFOX\":3,\"NODE\":4,\"LEVELJS\":11,\"JSONDOWN\":12},\"comment\":null,\"comments\":{\"RAM\":null,\"IDB\":null,\"CHROME\":null,\"FIREFOX\":null,\"NODE\":null,\"LEVELJS\":null,\"JSONDOWN\":null}}},\"comment\":null}},\"comment\":null},\"Kube\":{\"oneofs\":{\"_host\":{\"oneof\":[\"host\"]},\"_port\":{\"oneof\":[\"port\"]},\"_autoupdate\":{\"oneof\":[\"autoupdate\"]},\"_https\":{\"oneof\":[\"https\"]},\"_p2p\":{\"oneof\":[\"p2p\"]},\"_confhost\":{\"oneof\":[\"confhost\"]},\"_monitoring\":{\"oneof\":[\"monitoring\"]},\"_trace\":{\"oneof\":[\"trace\"]},\"_telemetry\":{\"oneof\":[\"telemetry\"]}},\"fields\":{\"host\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"port\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"autoupdate\":{\"type\":\"Autoupdate\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"https\":{\"type\":\"Https\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"p2p\":{\"type\":\"P2P\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"confhost\":{\"type\":\"string\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"env\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":7,\"comment\":null},\"alias\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":8,\"comment\":null},\"monitoring\":{\"type\":\"Monitoring\",\"id\":9,\"options\":{\"proto3_optional\":true},\"comment\":null},\"trace\":{\"type\":\"Trace\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"telemetry\":{\"type\":\"Telemetry\",\"id\":11,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Autoupdate\":{\"oneofs\":{\"_enabled\":{\"oneof\":[\"enabled\"]},\"_interval\":{\"oneof\":[\"interval\"]}},\"fields\":{\"enabled\":{\"type\":\"bool\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"interval\":{\"type\":\"int64\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Seconds\"}},\"comment\":null},\"Https\":{\"oneofs\":{\"_enabled\":{\"oneof\":[\"enabled\"]},\"_port\":{\"oneof\":[\"port\"]},\"_email\":{\"oneof\":[\"email\"]},\"_certfile\":{\"oneof\":[\"certfile\"]},\"_keyfile\":{\"oneof\":[\"keyfile\"]},\"_dnsprovider\":{\"oneof\":[\"dnsprovider\"]}},\"fields\":{\"enabled\":{\"type\":\"bool\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"port\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"email\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"certfile\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"keyfile\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"dnsprovider\":{\"type\":\"string\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Monitoring\":{\"fields\":{\"enabled\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"endpoint\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"interval\":{\"type\":\"int64\",\"id\":3,\"comment\":\"Seconds\"}},\"comment\":null},\"P2P\":{\"oneofs\":{\"_privateKey\":{\"oneof\":[\"privateKey\"]},\"_port\":{\"oneof\":[\"port\"]}},\"fields\":{\"privateKey\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"port\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"bootstrap\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null},\"Telemetry\":{\"fields\":{\"disabled\":{\"type\":\"bool\",\"id\":1,\"comment\":null}},\"comment\":null},\"Trace\":{\"fields\":{\"disabled\":{\"type\":\"bool\",\"id\":1,\"comment\":null}},\"comment\":null}},\"comment\":null},\"Props\":{\"oneofs\":{\"_title\":{\"oneof\":[\"title\"]}},\"fields\":{\"title\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Services\":{\"oneofs\":{\"_kube\":{\"oneof\":[\"kube\"]},\"_app\":{\"oneof\":[\"app\"]},\"_dxns\":{\"oneof\":[\"dxns\"]},\"_ipfs\":{\"oneof\":[\"ipfs\"]},\"_signal\":{\"oneof\":[\"signal\"]},\"_machine\":{\"oneof\":[\"machine\"]},\"_bot\":{\"oneof\":[\"bot\"]},\"_publisher\":{\"oneof\":[\"publisher\"]}},\"fields\":{\"kube\":{\"type\":\"Kube\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"app\":{\"type\":\"AppServer\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"dxns\":{\"type\":\"Dxns\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"ipfs\":{\"type\":\"Ipfs\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"signal\":{\"type\":\"Signal\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"ice\":{\"rule\":\"repeated\",\"type\":\"Ice\",\"id\":6,\"comment\":null},\"machine\":{\"type\":\"Machine\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null},\"bot\":{\"type\":\"BotFactory\",\"id\":8,\"options\":{\"proto3_optional\":true},\"comment\":null},\"publisher\":{\"type\":\"Publisher\",\"id\":9,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"AppServer\":{\"oneofs\":{\"_prefix\":{\"oneof\":[\"prefix\"]},\"_server\":{\"oneof\":[\"server\"]}},\"fields\":{\"prefix\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"server\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"BotFactory\":{\"oneofs\":{\"_topic\":{\"oneof\":[\"topic\"]},\"_persistent\":{\"oneof\":[\"persistent\"]},\"_retryAttempts\":{\"oneof\":[\"retryAttempts\"]},\"_retryInterval\":{\"oneof\":[\"retryInterval\"]}},\"fields\":{\"topic\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"persistent\":{\"type\":\"bool\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"retryAttempts\":{\"type\":\"int32\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"retryInterval\":{\"type\":\"int32\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Dxns\":{\"oneofs\":{\"_server\":{\"oneof\":[\"server\"]},\"_accountUri\":{\"oneof\":[\"accountUri\"]},\"_address\":{\"oneof\":[\"address\"]},\"_account\":{\"oneof\":[\"account\"]},\"_faucet\":{\"oneof\":[\"faucet\"]}},\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"DXNS endpoint.\"},\"accountUri\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Substrate account URI. This is a secret.\\nKUBEs do not serve this with the config but we store it in profile.yml.\\n\\nTODO(dmaretskyi): Deprecate this and move it to keyring.\"},\"address\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Public Polkadot Address.\"},\"account\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Public address of a DXNS Account.\"},\"faucet\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Ice\":{\"oneofs\":{\"_urls\":{\"oneof\":[\"urls\"]},\"_username\":{\"oneof\":[\"username\"]},\"_credential\":{\"oneof\":[\"credential\"]}},\"fields\":{\"urls\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"username\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"credential\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Ipfs\":{\"oneofs\":{\"_server\":{\"oneof\":[\"server\"]},\"_gateway\":{\"oneof\":[\"gateway\"]}},\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"gateway\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Kube\":{\"oneofs\":{\"_endpoints\":{\"oneof\":[\"endpoints\"]},\"_publicUrl\":{\"oneof\":[\"publicUrl\"]}},\"fields\":{\"endpoints\":{\"type\":\"Endpoints\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"publicUrl\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Endpoints\":{\"oneofs\":{\"_logs\":{\"oneof\":[\"logs\"]},\"_services\":{\"oneof\":[\"services\"]},\"_cert\":{\"oneof\":[\"cert\"]}},\"fields\":{\"logs\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"services\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"cert\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"Machine\":{\"oneofs\":{\"_doAccessToken\":{\"oneof\":[\"doAccessToken\"]},\"_githubAccessToken\":{\"oneof\":[\"githubAccessToken\"]},\"_githubUsername\":{\"oneof\":[\"githubUsername\"]},\"_dnsDomain\":{\"oneof\":[\"dnsDomain\"]},\"_npmAccessToken\":{\"oneof\":[\"npmAccessToken\"]}},\"fields\":{\"doAccessToken\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"githubAccessToken\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"githubUsername\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"dnsDomain\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"npmAccessToken\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Publisher\":{\"oneofs\":{\"_server\":{\"oneof\":[\"server\"]}},\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Signal\":{\"oneofs\":{\"_server\":{\"oneof\":[\"server\"]},\"_api\":{\"oneof\":[\"api\"]},\"_status\":{\"oneof\":[\"status\"]}},\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"api\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"status\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"System\":{\"oneofs\":{\"_debug\":{\"oneof\":[\"debug\"]}},\"fields\":{\"debug\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null}}},\"devtools\":{\"nested\":{\"host\":{\"nested\":{\"ClearSnapshotsRequest\":{\"fields\":{},\"comment\":null},\"DevtoolsHost\":{\"methods\":{\"Events\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Event\",\"responseStream\":true,\"comment\":null},\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"GetConfigResponse\",\"comment\":null},\"ResetStorage\":{\"requestType\":\"ResetStorageRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"EnableDebugLogging\":{\"requestType\":\"EnableDebugLoggingRequest\",\"responseType\":\"EnableDebugLoggingResponse\",\"comment\":null},\"DisableDebugLogging\":{\"requestType\":\"EnableDebugLoggingRequest\",\"responseType\":\"EnableDebugLoggingResponse\",\"comment\":null},\"SubscribeToKeyringKeys\":{\"requestType\":\"SubscribeToKeyringKeysRequest\",\"responseType\":\"SubscribeToKeyringKeysResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToCredentialMessages\":{\"requestType\":\"SubscribeToCredentialMessagesRequest\",\"responseType\":\"SubscribeToCredentialMessagesResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToSpaces\":{\"requestType\":\"SubscribeToSpacesRequest\",\"responseType\":\"SubscribeToSpacesResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToItems\":{\"requestType\":\"SubscribeToItemsRequest\",\"responseType\":\"SubscribeToItemsResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToFeeds\":{\"requestType\":\"SubscribeToFeedsRequest\",\"responseType\":\"SubscribeToFeedsResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToFeedBlocks\":{\"requestType\":\"SubscribeToFeedBlocksRequest\",\"responseType\":\"SubscribeToFeedBlocksResponse\",\"responseStream\":true,\"comment\":null},\"GetSpaceSnapshot\":{\"requestType\":\"GetSpaceSnapshotRequest\",\"responseType\":\"GetSpaceSnapshotResponse\",\"comment\":null},\"SaveSpaceSnapshot\":{\"requestType\":\"SaveSpaceSnapshotRequest\",\"responseType\":\"SaveSpaceSnapshotResponse\",\"comment\":null},\"ClearSnapshots\":{\"requestType\":\"ClearSnapshotsRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"GetNetworkPeers\":{\"requestType\":\"GetNetworkPeersRequest\",\"responseType\":\"GetNetworkPeersResponse\",\"comment\":null},\"SubscribeToNetworkTopics\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeToNetworkTopicsResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToSignalStatus\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeToSignalStatusResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToSignalTrace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeToSignalTraceResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToSwarmInfo\":{\"requestType\":\"SubscribeToSwarmInfoRequest\",\"responseType\":\"SubscribeToSwarmInfoResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"DisableDebugLoggingRequest\":{\"oneofs\":{\"_namespaces\":{\"oneof\":[\"namespaces\"]}},\"fields\":{\"namespaces\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"DisableDebugLoggingResponse\":{\"oneofs\":{\"_enabledNamespaces\":{\"oneof\":[\"enabledNamespaces\"]}},\"fields\":{\"enabledNamespaces\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"EnableDebugLoggingRequest\":{\"oneofs\":{\"_namespaces\":{\"oneof\":[\"namespaces\"]}},\"fields\":{\"namespaces\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"EnableDebugLoggingResponse\":{\"oneofs\":{\"_enabledNamespaces\":{\"oneof\":[\"enabledNamespaces\"]}},\"fields\":{\"enabledNamespaces\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Event\":{\"oneofs\":{\"payload\":{\"oneof\":[\"ready\"],\"comment\":null}},\"fields\":{\"ready\":{\"type\":\"ReadyEvent\",\"id\":1,\"comment\":null}},\"comment\":null},\"FeedStats\":{\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"length\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"GetConfigResponse\":{\"fields\":{\"config\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetNetworkPeersRequest\":{\"fields\":{\"topic\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetNetworkPeersResponse\":{\"fields\":{\"peers\":{\"rule\":\"repeated\",\"type\":\"PeerInfo\",\"id\":1,\"comment\":null}},\"nested\":{\"PeerInfo\":{\"fields\":{\"id\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"bytes\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"GetSpaceSnapshotRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetSpaceSnapshotResponse\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"dxos.echo.snapshot.SpaceSnapshot\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"PeerStats\":{\"fields\":{\"controlFeed\":{\"type\":\"FeedStats\",\"id\":1,\"comment\":null},\"dataFeed\":{\"type\":\"FeedStats\",\"id\":2,\"comment\":null}},\"comment\":null},\"ReadyEvent\":{\"fields\":{},\"comment\":null},\"ResetStorageRequest\":{\"fields\":{},\"comment\":null},\"SaveSpaceSnapshotRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SaveSpaceSnapshotResponse\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"dxos.echo.snapshot.SpaceSnapshot\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Services\":{\"fields\":{\"spaces\":{\"rule\":\"repeated\",\"type\":\"SpaceStats\",\"id\":1,\"comment\":null}},\"comment\":null},\"SetTracingOptionsRequest\":{\"fields\":{\"enable\":{\"type\":\"bool\",\"id\":1,\"comment\":null}},\"comment\":null},\"SpaceStats\":{\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"peers\":{\"rule\":\"repeated\",\"type\":\"PeerStats\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeToCredentialMessagesRequest\":{\"oneofs\":{\"_spaceKey\":{\"oneof\":[\"spaceKey\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeToCredentialMessagesResponse\":{\"fields\":{\"messages\":{\"rule\":\"repeated\",\"type\":\"dxos.halo.signed.SignedMessage\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToFeedBlocksRequest\":{\"oneofs\":{\"_spaceKey\":{\"oneof\":[\"spaceKey\"]},\"_feedKey\":{\"oneof\":[\"feedKey\"]},\"_maxBlocks\":{\"oneof\":[\"maxBlocks\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"maxBlocks\":{\"type\":\"int32\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeToFeedBlocksResponse\":{\"fields\":{\"blocks\":{\"rule\":\"repeated\",\"type\":\"Block\",\"id\":1,\"comment\":null}},\"nested\":{\"Block\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null},\"data\":{\"type\":\"dxos.echo.feed.FeedMessage\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToFeedsRequest\":{\"fields\":{\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToFeedsResponse\":{\"fields\":{\"feeds\":{\"rule\":\"repeated\",\"type\":\"Feed\",\"id\":1,\"comment\":null}},\"nested\":{\"Feed\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"length\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToItemsRequest\":{\"fields\":{},\"comment\":null},\"SubscribeToItemsResponse\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToKeyringKeysRequest\":{\"fields\":{},\"comment\":null},\"SubscribeToKeyringKeysResponse\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"dxos.halo.keyring.KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToNetworkTopicsResponse\":{\"fields\":{\"topics\":{\"rule\":\"repeated\",\"type\":\"Topic\",\"id\":1,\"comment\":null}},\"nested\":{\"Topic\":{\"oneofs\":{\"_label\":{\"oneof\":[\"label\"]}},\"fields\":{\"topic\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"label\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToSignalStatusResponse\":{\"fields\":{\"servers\":{\"rule\":\"repeated\",\"type\":\"SignalServer\",\"id\":1,\"comment\":null}},\"nested\":{\"SignalServer\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"host\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"reconnectIn\":{\"type\":\"int32\",\"id\":4,\"comment\":null},\"connectionStarted\":{\"type\":\"int32\",\"id\":5,\"comment\":null},\"lastStateChange\":{\"type\":\"int32\",\"id\":6,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToSignalTraceResponse\":{\"fields\":{\"events\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToSpacesRequest\":{\"fields\":{\"spaceKeys\":{\"rule\":\"repeated\",\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToSpacesResponse\":{\"fields\":{\"spaces\":{\"rule\":\"repeated\",\"type\":\"SpaceInfo\",\"id\":1,\"comment\":null}},\"nested\":{\"SpaceInfo\":{\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"isOpen\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"timeframe\":{\"type\":\"dxos.echo.timeframe.TimeframeVector\",\"id\":3,\"comment\":null},\"genesisFeed\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":null},\"controlFeed\":{\"type\":\"dxos.keys.PublicKey\",\"id\":5,\"comment\":null},\"dataFeed\":{\"type\":\"dxos.keys.PublicKey\",\"id\":6,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToSwarmInfoRequest\":{\"fields\":{},\"comment\":null},\"SubscribeToSwarmInfoResponse\":{\"fields\":{\"data\":{\"rule\":\"repeated\",\"type\":\"SwarmInfo\",\"id\":1,\"comment\":null}},\"comment\":null},\"TracingService\":{\"methods\":{\"SetTracingOptions\":{\"requestType\":\"SetTracingOptionsRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"SubscribeToRpcTrace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"dxos.rpc.RpcMessage\",\"responseStream\":true,\"comment\":null}},\"comment\":null}}},\"swarm\":{\"nested\":{\"ConnectionEvent\":{\"oneofs\":{\"_newState\":{\"oneof\":[\"newState\"]},\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"type\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"newState\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ConnectionInfo\":{\"oneofs\":{\"_transport\":{\"oneof\":[\"transport\"]}},\"fields\":{\"state\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"sessionId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"remotePeerId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null},\"transport\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"protocolExtensions\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":5,\"comment\":null},\"events\":{\"rule\":\"repeated\",\"type\":\"ConnectionEvent\",\"id\":6,\"comment\":null}},\"comment\":null},\"SwarmInfo\":{\"oneofs\":{\"_label\":{\"oneof\":[\"label\"]}},\"fields\":{\"id\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"topic\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"label\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"isActive\":{\"type\":\"bool\",\"id\":4,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"ConnectionInfo\",\"id\":5,\"comment\":null}},\"comment\":null}}}}},\"echo\":{\"nested\":{\"feed\":{\"nested\":{\"CredentialsMessage\":{\"fields\":{\"credential\":{\"type\":\"dxos.halo.credentials.Credential\",\"id\":1,\"comment\":null}},\"comment\":\"A container for dxos.credentials.Message\"},\"EchoEnvelope\":{\"oneofs\":{\"_genesis\":{\"oneof\":[\"genesis\"]},\"_itemMutation\":{\"oneof\":[\"itemMutation\"]},\"_mutation\":{\"oneof\":[\"mutation\"]},\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"genesis\":{\"type\":\"ItemGenesis\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"itemMutation\":{\"type\":\"ItemMutation\",\"id\":11,\"options\":{\"proto3_optional\":true},\"comment\":null},\"mutation\":{\"type\":\"bytes\",\"id\":12,\"options\":{\"proto3_optional\":true},\"comment\":null},\"snapshot\":{\"type\":\"snapshot.ModelSnapshot\",\"id\":13,\"options\":{\"proto3_optional\":true},\"comment\":\"Set the model to the provided snapshot.\"}},\"comment\":null},\"FeedMessage\":{\"fields\":{\"timeframe\":{\"type\":\"dxos.echo.timeframe.TimeframeVector\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":\"Outer message type decoded by Codec.\\nThis is what is written to the feeds.\"},\"ItemGenesis\":{\"oneofs\":{\"_itemType\":{\"oneof\":[\"itemType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_link\":{\"oneof\":[\"link\"]}},\"fields\":{\"itemType\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"link\":{\"type\":\"LinkData\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ItemMutation\":{\"oneofs\":{\"_parentId\":{\"oneof\":[\"parentId\"]},\"_action\":{\"oneof\":[\"action\"]}},\"fields\":{\"parentId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"action\":{\"type\":\"Action\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Action\":{\"values\":{\"NOOP\":0,\"DELETE\":1,\"RESTORE\":2},\"comment\":null,\"comments\":{\"NOOP\":null,\"DELETE\":null,\"RESTORE\":null}}},\"comment\":\"Item mutation.\"},\"LinkData\":{\"fields\":{\"source\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"target\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"metadata\":{\"nested\":{\"EchoMetadata\":{\"oneofs\":{\"_identity\":{\"oneof\":[\"identity\"]}},\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Version number that is inceremnted every time there's a breaking change to the storage schema.\\nThis is used to detect if the storage schema has changed since the last time the client was run.\\nLoading data from a different version will might result in an error.\"},\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":2,\"comment\":null},\"updated\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"comment\":null},\"identity\":{\"type\":\"dxos.halo.credentials.IdentityRecord\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"spaces\":{\"rule\":\"repeated\",\"type\":\"SpaceMetadata\",\"id\":11,\"comment\":\"List of the data spaces.\"}},\"comment\":null},\"SpaceMetadata\":{\"oneofs\":{\"_genesisFeedKey\":{\"oneof\":[\"genesisFeedKey\"]},\"_controlFeedKey\":{\"oneof\":[\"controlFeedKey\"]},\"_dataFeedKey\":{\"oneof\":[\"dataFeedKey\"]},\"_latestTimeframe\":{\"oneof\":[\"latestTimeframe\"]}},\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"Space key.\"},\"genesisFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"controlFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the wriatable control feed.\"},\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"List of all feed associated with the space.\"},\"dataFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the wriatable data feed.\"},\"latestTimeframe\":{\"type\":\"timeframe.TimeframeVector\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}}},\"model\":{\"nested\":{\"messenger\":{\"nested\":{\"Message\":{\"fields\":{\"timestamp\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"text\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"sender\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null}}},\"object\":{\"nested\":{\"Array\":{\"fields\":{\"values\":{\"rule\":\"repeated\",\"type\":\"Value\",\"id\":1,\"comment\":null}},\"comment\":\"Ordered collection of values.\"},\"KeyValue\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"Value\",\"id\":2,\"comment\":null}},\"comment\":\"Key x Value tuple.\"},\"KeyValueObject\":{\"fields\":{\"properties\":{\"rule\":\"repeated\",\"type\":\"KeyValue\",\"id\":1,\"comment\":null}},\"comment\":\"Object data definition.\"},\"ObjectMutation\":{\"oneofs\":{\"_value\":{\"oneof\":[\"value\"]}},\"fields\":{\"operation\":{\"type\":\"Operation\",\"id\":1,\"comment\":null},\"key\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"value\":{\"type\":\"Value\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Operation\":{\"values\":{\"SET\":0,\"DELETE\":1,\"ARRAY_PUSH\":2,\"SET_ADD\":4,\"SET_DELETE\":5},\"comment\":null,\"comments\":{\"SET\":null,\"DELETE\":null,\"ARRAY_PUSH\":null,\"SET_ADD\":null,\"SET_DELETE\":null}}},\"comment\":\"Atomic mutation.\"},\"ObjectMutationSet\":{\"fields\":{\"mutations\":{\"rule\":\"repeated\",\"type\":\"ObjectMutation\",\"id\":1,\"comment\":null}},\"comment\":\"Set of mutations.\"},\"ObjectSnapshot\":{\"fields\":{\"root\":{\"type\":\"Value\",\"id\":1,\"comment\":null}},\"comment\":\"State snapshot.\"},\"Predicate\":{\"oneofs\":{\"_key\":{\"oneof\":[\"key\"]},\"_value\":{\"oneof\":[\"value\"]}},\"fields\":{\"op\":{\"type\":\"Operation\",\"id\":1,\"comment\":null},\"key\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"value\":{\"type\":\"Value\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"predicates\":{\"rule\":\"repeated\",\"type\":\"Predicate\",\"id\":4,\"comment\":null}},\"nested\":{\"Operation\":{\"values\":{\"OR\":0,\"AND\":1,\"NOT\":2,\"IN\":10,\"EQUALS\":11,\"GTE\":12,\"GT\":13,\"LTE\":14,\"LT\":15,\"PREFIX_MATCH\":20,\"TEXT_MATCH\":21},\"comment\":null,\"comments\":{\"OR\":null,\"AND\":null,\"NOT\":null,\"IN\":null,\"EQUALS\":null,\"GTE\":null,\"GT\":null,\"LTE\":null,\"LT\":null,\"PREFIX_MATCH\":null,\"TEXT_MATCH\":null}}},\"comment\":\"Query predicate.\"},\"Query\":{\"fields\":{\"root\":{\"type\":\"Predicate\",\"id\":1,\"comment\":null}},\"comment\":\"Query.\"},\"Value\":{\"oneofs\":{\"Type\":{\"oneof\":[\"null\",\"bool\",\"int\",\"float\",\"string\",\"timestamp\",\"datetime\",\"bytes\",\"object\",\"array\"],\"comment\":null}},\"fields\":{\"null\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"bool\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"int\":{\"type\":\"int64\",\"id\":3,\"comment\":null},\"float\":{\"type\":\"float\",\"id\":4,\"comment\":null},\"string\":{\"type\":\"string\",\"id\":5,\"comment\":null},\"timestamp\":{\"type\":\"string\",\"id\":10,\"comment\":null},\"datetime\":{\"type\":\"string\",\"id\":11,\"comment\":null},\"bytes\":{\"type\":\"bytes\",\"id\":12,\"comment\":null},\"object\":{\"type\":\"KeyValueObject\",\"id\":20,\"comment\":null},\"array\":{\"type\":\"Array\",\"id\":21,\"comment\":null}},\"comment\":\"Generic value.\"}}},\"text\":{\"nested\":{\"Mutation\":{\"fields\":{\"update\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"clientId\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"Snapshot\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}}}}},\"service\":{\"nested\":{\"DataService\":{\"methods\":{\"SubscribeEntitySet\":{\"requestType\":\"SubscribeEntitySetRequest\",\"responseType\":\"SubscribeEntitySetResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeEntityStream\":{\"requestType\":\"SubscribeEntityStreamRequest\",\"responseType\":\"SubscribeEntityStreamResponse\",\"responseStream\":true,\"comment\":null},\"Write\":{\"requestType\":\"WriteRequest\",\"responseType\":\"MutationReceipt\",\"comment\":null}},\"comment\":null},\"MutationReceipt\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetResponse\":{\"fields\":{\"added\":{\"rule\":\"repeated\",\"type\":\"feed.EchoEnvelope\",\"id\":1,\"comment\":null},\"deleted\":{\"rule\":\"repeated\",\"type\":\"feed.EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"itemId\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamResponse\":{\"oneofs\":{\"kind\":{\"oneof\":[\"snapshot\",\"mutation\"],\"comment\":null}},\"fields\":{\"snapshot\":{\"type\":\"snapshot.ItemSnapshot\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"Mutation\",\"id\":2,\"comment\":null}},\"nested\":{\"Mutation\":{\"fields\":{\"data\":{\"type\":\"feed.EchoEnvelope\",\"id\":1,\"comment\":null},\"meta\":{\"type\":\"Metadata\",\"id\":2,\"comment\":null}},\"nested\":{\"Metadata\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"memberKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null},\"timeframe\":{\"type\":\"timeframe.TimeframeVector\",\"id\":4,\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null},\"WriteRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"feed.EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"snapshot\":{\"nested\":{\"DatabaseSnapshot\":{\"fields\":{\"items\":{\"rule\":\"repeated\",\"type\":\"ItemSnapshot\",\"id\":1,\"comment\":null},\"links\":{\"rule\":\"repeated\",\"type\":\"LinkSnapshot\",\"id\":2,\"comment\":null}},\"comment\":null},\"HaloStateSnapshot\":{\"fields\":{\"messages\":{\"rule\":\"repeated\",\"type\":\"dxos.halo.signed.Message\",\"id\":1,\"comment\":null}},\"comment\":null},\"ItemSnapshot\":{\"oneofs\":{\"_itemId\":{\"oneof\":[\"itemId\"]},\"_itemType\":{\"oneof\":[\"itemType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_parentId\":{\"oneof\":[\"parentId\"]},\"_model\":{\"oneof\":[\"model\"]}},\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"itemType\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"parentId\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"LinkSnapshot\":{\"oneofs\":{\"_linkId\":{\"oneof\":[\"linkId\"]},\"_linkType\":{\"oneof\":[\"linkType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_model\":{\"oneof\":[\"model\"]}},\"fields\":{\"linkId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"linkType\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"source\":{\"type\":\"string\",\"id\":5,\"comment\":null},\"target\":{\"type\":\"string\",\"id\":6,\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ModelMutation\":{\"fields\":{\"mutation\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"meta\":{\"type\":\"ModelMutationMeta\",\"id\":2,\"comment\":null}},\"comment\":null},\"ModelMutationMeta\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null},\"memberKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null}},\"comment\":null},\"ModelSnapshot\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Encoded model snapshot (defined by the model's codec).\\nIf undefined the state machine will be initialized with it's default state.\"},\"mutations\":{\"rule\":\"repeated\",\"type\":\"ModelMutation\",\"id\":2,\"comment\":\"Mutations to be applied on top of the snapshot, or on top of initial state if the snapshot is undefined.\"}},\"comment\":null},\"SpaceSnapshot\":{\"oneofs\":{\"_timeframe\":{\"oneof\":[\"timeframe\"]},\"_timestamp\":{\"oneof\":[\"timestamp\"]}},\"fields\":{\"spaceKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"timeframe\":{\"type\":\"timeframe.TimeframeVector\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"timestamp\":{\"type\":\"int32\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"halo\":{\"type\":\"HaloStateSnapshot\",\"id\":11,\"comment\":null},\"database\":{\"type\":\"DatabaseSnapshot\",\"id\":12,\"comment\":null}},\"comment\":null}}},\"timeframe\":{\"nested\":{\"TimeframeVector\":{\"fields\":{\"frames\":{\"rule\":\"repeated\",\"type\":\"Frame\",\"id\":1,\"comment\":null}},\"nested\":{\"Frame\":{\"fields\":{\"feedKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":\"Vector timestamp used to order messages.\"}}}}},\"gravity\":{\"nested\":{\"AcceptSpaceInvitationCommand\":{\"fields\":{\"swarmKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"AgentSpec\":{\"oneofs\":{\"_version\":{\"oneof\":[\"version\"]},\"_stateMachine\":{\"oneof\":[\"stateMachine\"]},\"_startSequence\":{\"oneof\":[\"startSequence\"]},\"_stopSequence\":{\"oneof\":[\"stopSequence\"]}},\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"stateMachine\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"startSequence\":{\"type\":\"CommandSequence\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"stopSequence\":{\"type\":\"CommandSequence\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"testSequences\":{\"rule\":\"repeated\",\"type\":\"CommandSequence\",\"id\":5,\"comment\":null}},\"comment\":\"Root specification for Agent.\"},\"Command\":{\"oneofs\":{\"Cmd\":{\"oneof\":[\"createProfile\",\"createSpace\",\"createSpaceInvitation\",\"acceptSpaceInvitation\"],\"comment\":null}},\"fields\":{\"createProfile\":{\"type\":\"CreateProfileCommand\",\"id\":1,\"comment\":null},\"createSpace\":{\"type\":\"CreateSpaceCommand\",\"id\":2,\"comment\":null},\"createSpaceInvitation\":{\"type\":\"CreateSpaceInvitationCommand\",\"id\":3,\"comment\":null},\"acceptSpaceInvitation\":{\"type\":\"AcceptSpaceInvitationCommand\",\"id\":4,\"comment\":null}},\"comment\":\"Atomic async command.\"},\"CommandSequence\":{\"fields\":{\"commands\":{\"rule\":\"repeated\",\"type\":\"Command\",\"id\":1,\"comment\":null}},\"comment\":\"Commands that must be run sequentially.\"},\"CreateProfileCommand\":{\"fields\":{},\"comment\":null},\"CreateSpaceCommand\":{\"oneofs\":{\"_id\":{\"oneof\":[\"id\"]}},\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"CreateSpaceInvitationCommand\":{\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"swarmKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"halo\":{\"nested\":{\"credentials\":{\"nested\":{\"AdmittedFeed\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"Owning identity.\"},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null},\"designation\":{\"type\":\"Designation\",\"id\":4,\"comment\":\"Feeds with different designations are consumed by separate pipelines.\"}},\"nested\":{\"Designation\":{\"values\":{\"GENERAL\":0,\"CONTROL\":1,\"DATA\":2},\"comment\":null,\"comments\":{\"GENERAL\":\"Classic general purpose feeds for both HALO and ECHO messages together. To be deprecated.\",\"CONTROL\":\"Contain system-level messages messages, such as credentials and epochs.\",\"DATA\":\"Database mutations.\"}}},\"comment\":null},\"auth\":{\"nested\":{\"Auth\":{\"oneofs\":{\"_feedKey\":{\"oneof\":[\"feedKey\"]},\"_feedAdmit\":{\"oneof\":[\"feedAdmit\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"The publicKey of the target Space for these credentials.\"},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"The publicKey of the authenticating Device.\"},\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedAdmit\":{\"type\":\"google.protobuf.Any\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"FeedAdmit message to the should be written to a control feed in case the `feed_key` is not admitted to the space.\"}},\"comment\":\"The payload for a SignedMessage sent during handshake for replication authentication.\"}}},\"Auth\":{\"fields\":{},\"comment\":\"Assertion for agents authenticating in the space swarm.\"},\"AuthorizedDevice\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"Chain\":{\"fields\":{\"credential\":{\"type\":\"Credential\",\"id\":1,\"comment\":\"Credential that authorizes the subject to issue new credentials (can be recursive).\"}},\"comment\":\"A chain of credentials that establishes the delegated authority to issue new credentials.\\nEach key in the chain has an assotiated credential that establishes the authrity of that specific key.\\n\\nExample:\\nAlice/Device-2 => Alice/Device-1 => Alice\\n\\nThis chain would include 2 credentials:\\n1. Giving Alice/Device-2 the authority to issue credentials on behalf of Alice, signed by Alice/Device-1.\\n2. Giving Alice/Device-1 the authority to issue credentials on behalf of Alice, signed by Alice.\"},\"Claim\":{\"fields\":{\"id\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"assertion\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":null},\"Credential\":{\"oneofs\":{\"_id\":{\"oneof\":[\"id\"]},\"_expirationDate\":{\"oneof\":[\"expirationDate\"]},\"_expirationRef\":{\"oneof\":[\"expirationRef\"]}},\"fields\":{\"id\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"issuer\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"issuanceDate\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"comment\":null},\"expirationDate\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"expirationRef\":{\"type\":\"bytes\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"subject\":{\"type\":\"Claim\",\"id\":10,\"comment\":null},\"proof\":{\"type\":\"Proof\",\"id\":11,\"comment\":null}},\"comment\":null},\"greet\":{\"nested\":{\"BeginResponse\":{\"fields\":{\"info\":{\"keyType\":\"string\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"ClaimResponse\":{\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"rendezvousKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Command\":{\"oneofs\":{\"_secret\":{\"oneof\":[\"secret\"]}},\"fields\":{\"command\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"secret\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"params\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":null}},\"nested\":{\"Type\":{\"values\":{\"BEGIN\":0,\"HANDSHAKE\":1,\"NOTARIZE\":2,\"FINISH\":3,\"CLAIM\":10},\"comment\":null,\"comments\":{\"BEGIN\":null,\"HANDSHAKE\":null,\"NOTARIZE\":null,\"FINISH\":null,\"CLAIM\":null}}},\"comment\":\"A Greeter command.\"},\"HandshakeResponse\":{\"fields\":{\"nonce\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyHint\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"type\":{\"type\":\"keys.KeyType\",\"id\":2,\"comment\":null}},\"comment\":null},\"NotarizeResponse\":{\"fields\":{\"copies\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null},\"genesisFeed\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null}},\"comment\":null}}},\"HaloSpace\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"haloKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"Space key.\"}},\"comment\":\"[ASSERTION]: Associtaes a space that will implement Agent's HALO with an Identity.\"},\"identity\":{\"nested\":{\"DeviceInfo\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"IdentityInfo\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"IdentityProfile\":{\"fields\":{\"profile\":{\"type\":\"ProfileDocument\",\"id\":1,\"comment\":null}},\"comment\":\"[ASSERTION]: Sets profile information.\"},\"IdentityRecord\":{\"oneofs\":{\"_profileSpace\":{\"oneof\":[\"profileSpace\"]},\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"haloSpace\":{\"type\":\"SpaceRecord\",\"id\":3,\"comment\":null},\"profileSpace\":{\"type\":\"SpaceRecord\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"TODO(burdon): Not yet implemented. Must be null.\"},\"profile\":{\"type\":\"ProfileDocument\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Cached profile.\"}},\"comment\":\"Information needed to bootstrap an Identity.\"},\"IdentityRecovery\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"recoveryKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"Public key derrived from the recovery seedphrase.\"}},\"comment\":\"[ASSERTION]: Grants recovery permissions to a recovery key.\"},\"KeyInfo\":{\"oneofs\":{\"_name\":{\"oneof\":[\"name\"]}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":\"Subject must be a key being referenced.\"},\"Presentation\":{\"fields\":{\"credentials\":{\"rule\":\"repeated\",\"type\":\"Credential\",\"id\":1,\"comment\":null},\"proofs\":{\"rule\":\"repeated\",\"type\":\"Proof\",\"id\":2,\"comment\":null}},\"comment\":null},\"ProfileDocument\":{\"oneofs\":{\"_displayName\":{\"oneof\":[\"displayName\"]},\"_avatarCid\":{\"oneof\":[\"avatarCid\"]}},\"fields\":{\"displayName\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"avatarCid\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Proof\":{\"oneofs\":{\"_nonce\":{\"oneof\":[\"nonce\"]},\"_chain\":{\"oneof\":[\"chain\"]}},\"fields\":{\"type\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"creationDate\":{\"type\":\"google.protobuf.Timestamp\",\"id\":2,\"comment\":null},\"signer\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null},\"nonce\":{\"type\":\"bytes\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"value\":{\"type\":\"bytes\",\"id\":5,\"comment\":\"Signature (excluded from signed data).\"},\"chain\":{\"type\":\"Chain\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Must be present if signer is not credential issuer.\\nEstablishes the authority of the signer. Proves that the signer can issue such credentials.\\nExcluded from signed data.\"}},\"comment\":null},\"SpaceGenesis\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SpaceMember\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"role\":{\"type\":\"Role\",\"id\":2,\"comment\":null},\"profile\":{\"type\":\"ProfileDocument\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"genesisFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":\"Genesis feed of the space. Needed so that the admitted member can start replicating the space based on this credential alone.\"}},\"nested\":{\"Role\":{\"values\":{\"INVALID\":0,\"ADMIN\":1,\"MEMBER\":2,\"READER\":3},\"comment\":null,\"comments\":{\"INVALID\":null,\"ADMIN\":\"Manage members.\",\"MEMBER\":\"Read and write.\",\"READER\":\"Read-only.\"}}},\"comment\":null},\"SpaceRecord\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"genesisFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"This is the root feed of that structure.\"},\"writeControlFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":\"Keyring must have the associated private key.\"},\"writeDataFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":\"Keyring must have the associated private key.\"}},\"comment\":\"Information needed to bootstrap a Space.\"}}},\"invitations\":{\"nested\":{\"AuthenticationRequest\":{\"fields\":{\"authenticationCode\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"AuthenticationResponse\":{\"oneofs\":{\"_status\":{\"oneof\":[\"status\"]}},\"fields\":{\"status\":{\"type\":\"Status\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Status\":{\"values\":{\"OK\":0,\"INVALID_OTP\":1,\"INVALID_OPT_ATTEMPTS\":2},\"comment\":null,\"comments\":{\"OK\":null,\"INVALID_OTP\":null,\"INVALID_OPT_ATTEMPTS\":null}}},\"comment\":null},\"HaloAdmissionCredentials\":{\"fields\":{\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"controlFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"dataFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null}},\"comment\":null},\"HaloAdmissionOffer\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"haloSpaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"genesisFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null}},\"comment\":null},\"HaloHostService\":{\"methods\":{\"RequestAdmission\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"HaloAdmissionOffer\",\"comment\":\"Process admission offer from host.\"},\"Authenticate\":{\"requestType\":\"AuthenticationRequest\",\"responseType\":\"AuthenticationResponse\",\"comment\":\"Authenticate request.\"},\"PresentAdmissionCredentials\":{\"requestType\":\"HaloAdmissionCredentials\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Process admission request from guest.\"}},\"comment\":null},\"Introduction\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"profile\":{\"type\":\"halo.credentials.ProfileDocument\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Guest's profile.\"}},\"comment\":null},\"SpaceAdmissionCredentials\":{\"fields\":{\"credential\":{\"type\":\"dxos.halo.credentials.Credential\",\"id\":1,\"comment\":\"Credential of type `SpaceMember` that grants Guest's identity access to the space.\"}},\"comment\":null},\"SpaceAdmissionRequest\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"controlFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null},\"dataFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":null}},\"comment\":null},\"SpaceHostService\":{\"methods\":{\"Introduce\":{\"requestType\":\"Introduction\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Introduce Guest to the host.\"},\"Authenticate\":{\"requestType\":\"AuthenticationRequest\",\"responseType\":\"AuthenticationResponse\",\"comment\":\"Authenticate request.\"},\"RequestAdmission\":{\"requestType\":\"SpaceAdmissionRequest\",\"responseType\":\"SpaceAdmissionCredentials\",\"comment\":\"Process admission credentials.\"}},\"comment\":null}}},\"keyring\":{\"nested\":{\"KeyRecord\":{\"oneofs\":{\"_privateKey\":{\"oneof\":[\"privateKey\"]}},\"fields\":{\"publicKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"privateKey\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}}},\"keys\":{\"nested\":{\"KeyChain\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"dxos.halo.signed.SignedMessage\",\"id\":2,\"comment\":null},\"parents\":{\"rule\":\"repeated\",\"type\":\"KeyChain\",\"id\":3,\"comment\":null}},\"comment\":null},\"KeyRecord\":{\"oneofs\":{\"_secretKey\":{\"oneof\":[\"secretKey\"]},\"_hint\":{\"oneof\":[\"hint\"]},\"_own\":{\"oneof\":[\"own\"]},\"_trusted\":{\"oneof\":[\"trusted\"]},\"_added\":{\"oneof\":[\"added\"]},\"_created\":{\"oneof\":[\"created\"]}},\"fields\":{\"type\":{\"type\":\"KeyType\",\"id\":1,\"comment\":\"The `KeyType` type of the key. This is often unknown for keys from other sources.\"},\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"The public key as a Buffer (required).\"},\"secretKey\":{\"type\":\"dxos.keys.PrivateKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"The secret key as a Buffer (this will never be visible outside the Keyring).\"},\"hint\":{\"type\":\"bool\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Is this key from a Greeting \\\"hint\\\"?\"},\"own\":{\"type\":\"bool\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Determines if this is our key?\\nUsually true if `secret_key` is present; may be false for \\\"inception keys\\\" such as the Space key.\"},\"trusted\":{\"type\":\"bool\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Is this key to be trusted?\"},\"added\":{\"type\":\"string\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":\"An RFC-3339 date/time string for when the key was added to the Keyring.\"},\"created\":{\"type\":\"string\",\"id\":8,\"options\":{\"proto3_optional\":true},\"comment\":\"An RFC-3339 date/time string for when the key was created.\"}},\"comment\":null},\"KeyRecordList\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"KeyType\":{\"values\":{\"UNKNOWN\":0,\"IDENTITY\":1,\"DEVICE\":2,\"SPACE\":3,\"FEED\":4,\"DXNS_ADDRESS\":5},\"comment\":null,\"comments\":{\"UNKNOWN\":null,\"IDENTITY\":null,\"DEVICE\":null,\"SPACE\":null,\"FEED\":null,\"DXNS_ADDRESS\":null}}}},\"signed\":{\"nested\":{\"Message\":{\"fields\":{\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"SignedMessage\":{\"fields\":{\"signed\":{\"type\":\"Signed\",\"id\":1,\"comment\":\"The signed message contents.\"},\"signatures\":{\"rule\":\"repeated\",\"type\":\"Signature\",\"id\":2,\"comment\":\"An array of Signatures, one for each key that signed the message.\"}},\"nested\":{\"Signature\":{\"oneofs\":{\"_keyChain\":{\"oneof\":[\"keyChain\"]}},\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"The publicKey of the keypair that made this signature.\"},\"signature\":{\"type\":\"bytes\",\"id\":2,\"comment\":\"The bytes of the signature.\"},\"keyChain\":{\"type\":\"keys.KeyChain\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"The certification chain of SignedMessages for this key.\"}},\"comment\":null},\"Signed\":{\"fields\":{\"created\":{\"type\":\"string\",\"id\":1,\"comment\":\"RFC-3339 datetime string.\"},\"nonce\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":\"The payload to be signed.\"}},\"comment\":null}},\"comment\":\"A generic container message used whenever messages are signed (e.g. SpaceCredential)\"}}}}},\"iframe\":{\"nested\":{\"IframeService\":{\"methods\":{\"Heartbeat\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Worker-to-iframe RPCs.\"},\"StartRequest\":{\"fields\":{\"origin\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"WorkerService\":{\"methods\":{\"Start\":{\"requestType\":\"StartRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"Stop\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Iframe-to-worker RPCs.\"}}},\"keys\":{\"nested\":{\"PrivateKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"PublicKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"mesh\":{\"nested\":{\"bridge\":{\"nested\":{\"BridgeEvent\":{\"oneofs\":{\"type\":{\"oneof\":[\"connection\",\"signal\",\"data\"],\"comment\":null}},\"fields\":{\"connection\":{\"type\":\"ConnectionEvent\",\"id\":1,\"comment\":null},\"signal\":{\"type\":\"SignalEvent\",\"id\":2,\"comment\":null},\"data\":{\"type\":\"DataEvent\",\"id\":3,\"comment\":null}},\"nested\":{\"ConnectionEvent\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"state\":{\"type\":\"ConnectionState\",\"id\":1,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"DataEvent\":{\"fields\":{\"payload\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"SignalEvent\":{\"fields\":{\"payload\":{\"type\":\"dxos.mesh.swarm.Signal\",\"id\":1,\"comment\":null}},\"comment\":null}},\"comment\":null},\"BridgeService\":{\"methods\":{\"Open\":{\"requestType\":\"ConnectionRequest\",\"responseType\":\"BridgeEvent\",\"responseStream\":true,\"comment\":\"\"},\"SendSignal\":{\"requestType\":\"SignalRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"\"},\"SendData\":{\"requestType\":\"DataRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"\"},\"Close\":{\"requestType\":\"CloseRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"\"}},\"comment\":null},\"CloseRequest\":{\"fields\":{\"proxyId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"ConnectionRequest\":{\"fields\":{\"proxyId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"initiator\":{\"type\":\"bool\",\"id\":2,\"comment\":null}},\"comment\":null},\"ConnectionState\":{\"values\":{\"INVALID\":0,\"CONNECTING\":1,\"CONNECTED\":2,\"CLOSED\":3},\"comment\":null,\"comments\":{\"INVALID\":null,\"CONNECTING\":null,\"CONNECTED\":null,\"CLOSED\":null}},\"DataRequest\":{\"fields\":{\"proxyId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"SignalRequest\":{\"fields\":{\"proxyId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"signal\":{\"type\":\"dxos.mesh.swarm.Signal\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"broadcast\":{\"nested\":{\"Packet\":{\"oneofs\":{\"_from\":{\"oneof\":[\"from\"]}},\"fields\":{\"seq\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"origin\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"from\":{\"type\":\"bytes\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"data\":{\"type\":\"bytes\",\"id\":4,\"comment\":null}},\"comment\":null}}},\"messaging\":{\"nested\":{\"Acknowledgement\":{\"fields\":{\"messageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"MessageId of the Message that is being acknowledged.\"}},\"comment\":null},\"ReliablePayload\":{\"fields\":{\"messageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"Unique message identifier. Used for Acknolegment.\"},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":\"Payload for signal server netwrok.\"}},\"comment\":null}}},\"muxer\":{\"nested\":{\"Command\":{\"oneofs\":{\"payload\":{\"oneof\":[\"openChannel\",\"data\",\"destroy\"],\"comment\":null}},\"fields\":{\"openChannel\":{\"type\":\"OpenChannel\",\"id\":1,\"comment\":null},\"data\":{\"type\":\"Data\",\"id\":2,\"comment\":null},\"destroy\":{\"type\":\"Destroy\",\"id\":3,\"comment\":null}},\"comment\":\"Root type for messages sent over the stream.\"},\"Data\":{\"fields\":{\"channelId\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Identifier for the channel as assigned by the remote peer.\\nNOTE: An OpenChannel message must received before any data is sent on a channel.\\nAny data messages sent before that, should be ignored.\"},\"data\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Destroy\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"error\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Error that caused the termination.\"}},\"comment\":\"Terminate the connection. The other peer can expect the connection to be closed.\"},\"OpenChannel\":{\"oneofs\":{\"_contentType\":{\"oneof\":[\"contentType\"]}},\"fields\":{\"id\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Session-specific ID for the channel.\"},\"tag\":{\"type\":\"string\",\"id\":2,\"comment\":\"Stable identifier for the channel that is agreed upon by both peers.\"},\"contentType\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Optional Mime-type or URL describing the protocol that is hosted ober this stream. Used for introspection.\"}},\"comment\":\"Notify the remote peer that we are opening a channel.\\n\\nMeans that we are ready to receive data on the channel.\\nThe remote peer could now send data messages with this channel id that will be atributed to this channel.\\n\\nThe local peer must buffer any data messages until the remote peer replies with OpenChannel for this tag.\"}}},\"presence\":{\"nested\":{\"Alive\":{\"oneofs\":{\"_metadata\":{\"oneof\":[\"metadata\"]}},\"fields\":{\"peerId\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"Connection\",\"id\":2,\"comment\":null},\"metadata\":{\"type\":\"bytes\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Connection\":{\"oneofs\":{\"_initiator\":{\"oneof\":[\"initiator\"]}},\"fields\":{\"peerId\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"initiator\":{\"type\":\"bool\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null}}},\"protocol\":{\"nested\":{\"Buffer\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"Error\":{\"fields\":{\"code\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"Message\":{\"fields\":{\"nmId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"nmResponse\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"nmEphemeral\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"nmData\":{\"type\":\"google.protobuf.Any\",\"id\":4,\"comment\":null}},\"comment\":null}}},\"replicator\":{\"nested\":{\"Container\":{\"fields\":{\"type\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"data\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":null},\"Feed\":{\"oneofs\":{\"_key\":{\"oneof\":[\"key\"]},\"_discoveryKey\":{\"oneof\":[\"discoveryKey\"]}},\"fields\":{\"key\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"discoveryKey\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}}},\"signal\":{\"options\":{\"go_package\":\"github.com/dxos/kube/go/signal/pb\"},\"nested\":{\"HostEvent\":{\"oneofs\":{\"event\":{\"oneof\":[\"peerAvailable\"],\"comment\":null}},\"fields\":{\"peerAvailable\":{\"type\":\"SwarmEvent.PeerAvailable\",\"id\":1,\"comment\":null}},\"comment\":\"Goes on a Pub/Sub host topic.\"},\"JoinRequest\":{\"fields\":{\"swarm\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"peer\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Message\":{\"fields\":{\"author\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"recipient\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":3,\"comment\":null}},\"comment\":null},\"PeerEvent\":{\"oneofs\":{\"event\":{\"oneof\":[\"message\"],\"comment\":null}},\"fields\":{\"message\":{\"type\":\"Message\",\"id\":1,\"comment\":null}},\"comment\":\"Goes on Pub/Sub peer topic.\"},\"ReceptionRequest\":{\"fields\":{\"peer\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"Signal\":{\"methods\":{\"Join\":{\"requestType\":\"JoinRequest\",\"responseType\":\"SwarmEvent\",\"responseStream\":true,\"comment\":null},\"ReceiveMessages\":{\"requestType\":\"ReceptionRequest\",\"responseType\":\"Message\",\"responseStream\":true,\"comment\":null},\"SendMessage\":{\"requestType\":\"Message\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"SwarmEvent\":{\"oneofs\":{\"event\":{\"oneof\":[\"peerAvailable\",\"peerLeft\"],\"comment\":null}},\"fields\":{\"peerAvailable\":{\"type\":\"PeerAvailable\",\"id\":1,\"comment\":\"The peer was announced as available on the swarm.\"},\"peerLeft\":{\"type\":\"PeerLeft\",\"id\":2,\"comment\":\"The peer left, or their announcement timed out.\"}},\"nested\":{\"PeerAvailable\":{\"oneofs\":{\"_until\":{\"oneof\":[\"until\"]},\"_announceBackToHost\":{\"oneof\":[\"announceBackToHost\"]}},\"fields\":{\"peer\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"since\":{\"type\":\"google.protobuf.Timestamp\",\"id\":2,\"comment\":null},\"until\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"announceBackToHost\":{\"type\":\"bytes\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Only relevant in Pub/Sub. Optional, the host topic to eagerly send PeerAvailable messages back to.\"}},\"comment\":null},\"PeerLeft\":{\"fields\":{\"peer\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}},\"comment\":\"Goes on Pub/Sub swarm topic and as a Join stream in RPC.\"}}},\"swarm\":{\"nested\":{\"Answer\":{\"oneofs\":{\"_offerMessageId\":{\"oneof\":[\"offerMessageId\"]}},\"fields\":{\"accept\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"offerMessageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"MessageId of the Offer being answered.\"}},\"comment\":null},\"MessageData\":{\"oneofs\":{\"payload\":{\"oneof\":[\"offer\",\"answer\",\"signal\"],\"comment\":null}},\"fields\":{\"offer\":{\"type\":\"Offer\",\"id\":1,\"comment\":null},\"answer\":{\"type\":\"Answer\",\"id\":2,\"comment\":null},\"signal\":{\"type\":\"Signal\",\"id\":3,\"comment\":null}},\"comment\":null},\"Offer\":{\"fields\":{},\"comment\":null},\"Signal\":{\"fields\":{\"payload\":{\"type\":\"google.protobuf.Struct\",\"id\":1,\"comment\":null}},\"comment\":null},\"SwarmMessage\":{\"fields\":{\"topic\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":\"Swarm identefier.\"},\"sessionId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":\"Unique connection identifier.\"},\"data\":{\"type\":\"MessageData\",\"id\":5,\"comment\":\"Message payload.\"},\"messageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":6,\"comment\":\"Unique message identifier. Used for Acknolegment and matching Anwers to Offers.\"}},\"comment\":null}}},\"teleport\":{\"nested\":{\"control\":{\"nested\":{\"ControlService\":{\"methods\":{\"RegisterExtension\":{\"requestType\":\"RegisterExtensionRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"Heartbeat\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Controls the lifycycle of the teleport session and its exentsions.\"},\"RegisterExtensionRequest\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"comment\":\"Must not contain slashes: /[\\\\w_.]+/. Example: `dxos.mesh.teleport.control`.\"}},\"comment\":null}}},\"presence\":{\"nested\":{\"PeerState\":{\"fields\":{\"peerId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"Will be used to build network graph\"},\"messageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":\"Peer tracks what had been sent by message id\"},\"timestamp\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"comment\":null}},\"comment\":null},\"PresenceService\":{\"methods\":{\"Announce\":{\"requestType\":\"PeerState\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null}}},\"replicator\":{\"nested\":{\"FeedInfo\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"download\":{\"type\":\"bool\",\"id\":2,\"comment\":\"set if the peer whishes to download the data from the feed.\"},\"upload\":{\"type\":\"bool\",\"id\":3,\"comment\":\"set if the peer whishes to updload the data from the feed.\"}},\"comment\":null},\"ReplicatorService\":{\"methods\":{\"UpdateFeeds\":{\"requestType\":\"UpdateFeedsRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Notify about available feeds.\"},\"StartReplication\":{\"requestType\":\"StartReplicationRequest\",\"responseType\":\"StartReplicationResponse\",\"comment\":\"Start replicating feed. If this feed is already being replicated, the existing replication session must be stopped.\"},\"StopReplication\":{\"requestType\":\"StopReplicationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Stop replicating feed.\"}},\"comment\":\"RPC verbs for replication teleport extension.\\nAssumes one peer is designated an initiator.\\nThe initiator will start and stop replication streams.\\nThe other peer will send updates using the UpdateFeeds method.\"},\"StartReplicationRequest\":{\"fields\":{\"info\":{\"type\":\"FeedInfo\",\"id\":1,\"comment\":null}},\"comment\":null},\"StartReplicationResponse\":{\"oneofs\":{\"_streamTag\":{\"oneof\":[\"streamTag\"]}},\"fields\":{\"streamTag\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Tag of the stream the peers will use for the replication.\\nSet to null or \\\"\\\" (empty string) of the peer does not wish to replicate the feed.\\n\\nA new stream must be open with unique tag to start replicating. Existing streams cannot be reused.\"}},\"comment\":null},\"StopReplicationRequest\":{\"fields\":{\"info\":{\"type\":\"FeedInfo\",\"id\":1,\"comment\":null}},\"comment\":null},\"UpdateFeedsRequest\":{\"fields\":{\"feeds\":{\"rule\":\"repeated\",\"type\":\"FeedInfo\",\"id\":1,\"comment\":null}},\"comment\":null}}}}}}},\"registry\":{\"nested\":{\"Record\":{\"oneofs\":{\"_created\":{\"oneof\":[\"created\"]},\"_displayName\":{\"oneof\":[\"displayName\"]},\"_description\":{\"oneof\":[\"description\"]},\"kind\":{\"oneof\":[\"type\",\"payload\"],\"comment\":null}},\"fields\":{\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Record creation timetstamp.\"},\"displayName\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Human-readable name of record.\"},\"description\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Record description.\"},\"tags\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":4,\"comment\":\"Optional record tags.\"},\"type\":{\"type\":\"Type\",\"id\":100,\"comment\":\"Type record variant.\"},\"payload\":{\"type\":\"Extension\",\"id\":101,\"comment\":\"Data record variant.\"}},\"nested\":{\"Extension\":{\"fields\":{\"typeRecord\":{\"type\":\"bytes\",\"id\":1,\"comment\":\"CID of type record.\"},\"data\":{\"type\":\"bytes\",\"id\":2,\"comment\":\"Serialized payload data.\"}},\"comment\":\"Data with a reference to a type record that defines the encoding.\"},\"Type\":{\"oneofs\":{\"_protobufIpfsCid\":{\"oneof\":[\"protobufIpfsCid\"]}},\"fields\":{\"messageName\":{\"type\":\"string\",\"id\":1,\"comment\":\"FQ protobuf message name.\"},\"protobufDefs\":{\"type\":\"google.protobuf.Struct\",\"id\":2,\"comment\":\"Set of protobuf messages encoded.\"},\"protobufIpfsCid\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"CID of protobuf source file.\"}},\"comment\":\"Types are system records that define protocol-buffer schema of other records.\"}},\"comment\":null}}},\"rpc\":{\"options\":{\"go_package\":\"github.com/dxos/kube/go/dxrpc/pb\"},\"nested\":{\"Error\":{\"oneofs\":{\"_name\":{\"oneof\":[\"name\"]},\"_message\":{\"oneof\":[\"message\"]},\"_stack\":{\"oneof\":[\"stack\"]}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"message\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"stack\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"MessageTrace\":{\"fields\":{\"direction\":{\"type\":\"Direction\",\"id\":1,\"comment\":null},\"data\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"nested\":{\"Direction\":{\"values\":{\"INCOMING\":0,\"OUTGOING\":1},\"comment\":null,\"comments\":{\"INCOMING\":null,\"OUTGOING\":null}}},\"comment\":null},\"Request\":{\"fields\":{\"id\":{\"type\":\"int32\",\"id\":1,\"comment\":null},\"method\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":3,\"comment\":null},\"stream\":{\"type\":\"bool\",\"id\":4,\"comment\":null}},\"comment\":null},\"Response\":{\"oneofs\":{\"content\":{\"oneof\":[\"payload\",\"error\",\"close\",\"streamReady\"],\"comment\":null}},\"fields\":{\"id\":{\"type\":\"int32\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"Error\",\"id\":3,\"comment\":null},\"close\":{\"type\":\"bool\",\"id\":4,\"comment\":\"Sent when stream is closed without an error.\"},\"streamReady\":{\"type\":\"bool\",\"id\":5,\"comment\":\"Sent when the server has processed a request with a streaming response.\\nCan be skipped by the server.\\nIn this case the first payload should be treated as the server being ready.\"}},\"comment\":null},\"RpcMessage\":{\"oneofs\":{\"content\":{\"oneof\":[\"request\",\"response\",\"open\",\"openAck\",\"streamClose\"],\"comment\":null}},\"fields\":{\"request\":{\"type\":\"Request\",\"id\":1,\"comment\":null},\"response\":{\"type\":\"Response\",\"id\":2,\"comment\":null},\"open\":{\"type\":\"bool\",\"id\":3,\"comment\":\"Means that the node is trying to open the connection.\"},\"openAck\":{\"type\":\"bool\",\"id\":4,\"comment\":\"Means that the node has received the \\\"open\\\" message and is ready to perform requests.\"},\"streamClose\":{\"type\":\"StreamClose\",\"id\":5,\"comment\":null}},\"comment\":null},\"StreamClose\":{\"fields\":{\"id\":{\"type\":\"int32\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"service\":{\"nested\":{\"publisher\":{\"options\":{\"go_package\":\"github.com/dxos/kube/publisher/pb\"},\"nested\":{\"ListResponse\":{\"fields\":{\"modules\":{\"rule\":\"repeated\",\"type\":\"dxos.config.Module\",\"id\":1,\"comment\":null}},\"comment\":null},\"Publisher\":{\"methods\":{\"Publish\":{\"requestType\":\"PublishRequest\",\"responseType\":\"PublishResponse\",\"comment\":null},\"List\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"ListResponse\",\"comment\":null},\"Reset\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"ResetResponse\",\"comment\":null}},\"comment\":null},\"PublishRequest\":{\"fields\":{\"package\":{\"type\":\"dxos.config.Package\",\"id\":1,\"comment\":null},\"skipExisting\":{\"type\":\"bool\",\"id\":2,\"comment\":null}},\"comment\":null},\"PublishResponse\":{\"fields\":{\"modules\":{\"rule\":\"repeated\",\"type\":\"PublishedModule\",\"id\":1,\"comment\":null}},\"nested\":{\"PublishedModule\":{\"fields\":{\"module\":{\"type\":\"dxos.config.Module\",\"id\":1,\"comment\":null},\"urls\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"ResetResponse\":{\"fields\":{\"count\":{\"type\":\"int32\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"scheduler\":{\"options\":{\"go_package\":\"github.com/dxos/kube/scheduler/pb\"},\"nested\":{\"Bot\":{\"oneofs\":{\"_spec\":{\"oneof\":[\"spec\"]},\"_stats\":{\"oneof\":[\"stats\"]},\"_identityKey\":{\"oneof\":[\"identityKey\"]}},\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":\"Scheduler\"},\"state\":{\"type\":\"State\",\"id\":2,\"comment\":\"Current state.\"},\"desiredState\":{\"type\":\"State\",\"id\":3,\"comment\":\"Desired state.\"},\"spec\":{\"type\":\"Spec\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Omitted when returned from the Query RPC.\"},\"stats\":{\"type\":\"Stats\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Omitted when returned from the Query RPC.\"},\"identityKey\":{\"type\":\"bytes\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Identity key of the bot profile.\"}},\"nested\":{\"Spec\":{\"fields\":{\"executable\":{\"type\":\"string\",\"id\":1,\"comment\":\"URL to the bot executable. KUBEs support file:// and ipfs:// urls.\"},\"echo\":{\"type\":\"Echo\",\"id\":2,\"comment\":null}},\"nested\":{\"Echo\":{\"fields\":{\"spaceKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"invitation\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"Stats\":{\"oneofs\":{\"_pid\":{\"oneof\":[\"pid\"]},\"_executableDownloaded\":{\"oneof\":[\"executableDownloaded\"]},\"_created\":{\"oneof\":[\"created\"]},\"_started\":{\"oneof\":[\"started\"]},\"_stopped\":{\"oneof\":[\"stopped\"]},\"_lastPingTime\":{\"oneof\":[\"lastPingTime\"]},\"_exitCode\":{\"oneof\":[\"exitCode\"]},\"_errorMessage\":{\"oneof\":[\"errorMessage\"]}},\"fields\":{\"pid\":{\"type\":\"int64\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"executableDownloaded\":{\"type\":\"google.protobuf.Timestamp\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":11,\"options\":{\"proto3_optional\":true},\"comment\":null},\"started\":{\"type\":\"google.protobuf.Timestamp\",\"id\":12,\"options\":{\"proto3_optional\":true},\"comment\":null},\"stopped\":{\"type\":\"google.protobuf.Timestamp\",\"id\":13,\"options\":{\"proto3_optional\":true},\"comment\":null},\"lastPingTime\":{\"type\":\"google.protobuf.Timestamp\",\"id\":14,\"options\":{\"proto3_optional\":true},\"comment\":null},\"exitCode\":{\"type\":\"int32\",\"id\":30,\"options\":{\"proto3_optional\":true},\"comment\":null},\"errorMessage\":{\"type\":\"string\",\"id\":31,\"options\":{\"proto3_optional\":true},\"comment\":null},\"cpuUsage\":{\"type\":\"CPUUsage\",\"id\":40,\"comment\":null},\"memoryUsage\":{\"type\":\"MemoryUsage\",\"id\":41,\"comment\":null},\"diskUsage\":{\"type\":\"DiskUsage\",\"id\":42,\"comment\":null},\"networkUsage\":{\"type\":\"NetworkUsage\",\"id\":43,\"comment\":null},\"echo\":{\"type\":\"Echo\",\"id\":44,\"comment\":null}},\"nested\":{\"CPUUsage\":{\"fields\":{\"cores\":{\"type\":\"double\",\"id\":1,\"comment\":null}},\"comment\":null},\"DiskUsage\":{\"fields\":{\"bytes\":{\"type\":\"int64\",\"id\":1,\"comment\":null}},\"comment\":null},\"Echo\":{\"fields\":{},\"comment\":\"Echo stats.\"},\"MemoryUsage\":{\"fields\":{\"bytes\":{\"type\":\"int64\",\"id\":1,\"comment\":null}},\"comment\":null},\"NetworkUsage\":{\"fields\":{},\"comment\":null}},\"comment\":null}},\"comment\":null},\"BotConfig\":{\"fields\":{\"spec\":{\"type\":\"Bot.Spec.Echo\",\"id\":1,\"comment\":null},\"clientConfig\":{\"type\":\"dxos.config.Config\",\"id\":2,\"comment\":null}},\"comment\":null},\"BotController\":{\"methods\":{\"Query\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"QueryResponse\",\"comment\":\"Enumerate all services.\"},\"Describe\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"Bot\",\"comment\":\"Query information about a specific service\"},\"Create\":{\"requestType\":\"CreateRequest\",\"responseType\":\"Progress\",\"responseStream\":true,\"comment\":\"Create a new service.\"},\"Remove\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Remove a service with its identity and persistent storage.\"},\"Start\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"Progress\",\"responseStream\":true,\"comment\":\"Start the bot.\"},\"Stop\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"Progress\",\"responseStream\":true,\"comment\":\"Start the bot.\"},\"Restart\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"Progress\",\"responseStream\":true,\"comment\":\"Start the bot.\"},\"Call\":{\"requestType\":\"Request\",\"responseType\":\"Reply\",\"responseStream\":true,\"comment\":\"Issue an RPC request to the bot instance.\"}},\"comment\":\"Exposed by bot controller to clients. Allows creation and management of bots.\"},\"BotHost\":{\"methods\":{\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"BotConfig\",\"comment\":null},\"SendReport\":{\"requestType\":\"Report\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Internal service exposed by bot controller to the bot.\"},\"BotService\":{\"methods\":{\"Call\":{\"requestType\":\"Request\",\"responseType\":\"Reply\",\"responseStream\":true,\"comment\":\"Issue an RPC request to the bot instance.\"},\"Healthcheck\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Called by the bot controller to verify that the bot is functional.\"}},\"comment\":\"Internal service exposed by bot to the bot controller.\"},\"CreateRequest\":{\"oneofs\":{\"_desiredState\":{\"oneof\":[\"desiredState\"]}},\"fields\":{\"spec\":{\"type\":\"Bot.Spec\",\"id\":1,\"comment\":null},\"desiredState\":{\"type\":\"State\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Progress\":{\"fields\":{\"state\":{\"type\":\"Bot\",\"id\":1,\"comment\":null}},\"comment\":null},\"QueryResponse\":{\"fields\":{\"services\":{\"rule\":\"repeated\",\"type\":\"Bot\",\"id\":1,\"comment\":null}},\"comment\":null},\"Reply\":{\"fields\":{\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"Report\":{\"oneofs\":{\"_identityKey\":{\"oneof\":[\"identityKey\"]}},\"fields\":{\"identityKey\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Identity key of the bot profile.\"}},\"comment\":null},\"Request\":{\"fields\":{\"serviceId\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":null},\"ServiceRequest\":{\"fields\":{\"serviceId\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"State\":{\"values\":{\"INVALID\":0,\"STOPPED\":1,\"STARTING\":2,\"RUNNING\":3,\"FAILING\":4},\"comment\":null,\"comments\":{\"INVALID\":null,\"STOPPED\":null,\"STARTING\":null,\"RUNNING\":null,\"FAILING\":null}}}}}},\"type\":{\"nested\":{\"App\":{\"oneofs\":{\"_version\":{\"oneof\":[\"version\"]},\"_license\":{\"oneof\":[\"license\"]},\"_bundle\":{\"oneof\":[\"bundle\"]},\"kind\":{\"oneof\":[\"web\"],\"comment\":null},\"_extension\":{\"oneof\":[\"extension\"]}},\"fields\":{\"version\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Optional **semver 2.0** compliant record version.\\nShould conform to the semver regex (see https://semver.org/).\"},\"license\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":3,\"comment\":null},\"bundle\":{\"type\":\"bytes\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"App bundle content Id in the CID v0 format (https://docs.ipfs.io/concepts/content-addressing/#identifier-formats).\"},\"web\":{\"type\":\"Web\",\"id\":100,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":200,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Web\":{\"oneofs\":{\"_indexFile\":{\"oneof\":[\"indexFile\"]},\"_entryPoint\":{\"oneof\":[\"entryPoint\"]}},\"fields\":{\"indexFile\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Relative path in resource to entrypoint, defaults to index.html.\"},\"entryPoint\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Relative path in resource to entrypoint, defaults to main.js.\"}},\"comment\":null}},\"comment\":null},\"AppServer\":{\"fields\":{\"url\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"Bot\":{\"fields\":{\"version\":{\"type\":\"string\",\"id\":1,\"comment\":\"Optional **semver 2.0** compliant record version.\\nShould conform to the semver regex (see https://semver.org/).\"},\"license\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":3,\"comment\":null},\"bundle\":{\"type\":\"bytes\",\"id\":4,\"comment\":\"Bot bundle content Id in the CID v0 format (https://docs.ipfs.io/concepts/content-addressing/#identifier-formats).\"},\"localPath\":{\"type\":\"string\",\"id\":5,\"comment\":\"This would be the path to the bot executable in bot-factory's file-system.\"},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"BotFactory\":{\"fields\":{\"topic\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"File\":{\"fields\":{\"contentType\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"fileName\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"bundle\":{\"type\":\"bytes\",\"id\":3,\"comment\":\"File content Id in the CID v0 format (https://docs.ipfs.io/concepts/content-addressing/#identifier-formats).\"},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"IPFS\":{\"fields\":{\"protocol\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"addresses\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":2,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"KUBE\":{\"fields\":{\"url\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"Repo\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"url\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"version\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null},\"Service\":{\"fields\":{\"type\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"kube\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"Signal\":{\"fields\":{\"bootstrap\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"url\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"StateMachine\":{\"fields\":{\"mutationProtobufDefs\":{\"type\":\"google.protobuf.Struct\",\"id\":1,\"comment\":\"Set of protobuf messages.\"},\"snapshotProtobufDefs\":{\"type\":\"google.protobuf.Struct\",\"id\":2,\"comment\":\"Set of protobuf messages.\"},\"codeIpfsCid\":{\"type\":\"bytes\",\"id\":3,\"comment\":null}},\"comment\":null}}}}},\"example\":{\"nested\":{\"testing\":{\"nested\":{\"data\":{\"nested\":{\"TestItemMutation\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"TestItemSnapshot\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"TestItemMutation\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestListMutation\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"rpc\":{\"nested\":{\"MessageWithAny\":{\"fields\":{\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"PingReponse\":{\"fields\":{\"nonce\":{\"type\":\"int32\",\"id\":1,\"comment\":null}},\"comment\":null},\"PingRequest\":{\"fields\":{\"nonce\":{\"type\":\"int32\",\"id\":1,\"comment\":null}},\"comment\":null},\"PingService\":{\"methods\":{\"Ping\":{\"requestType\":\"PingRequest\",\"responseType\":\"PingReponse\",\"comment\":null}},\"comment\":null},\"TestAnyService\":{\"methods\":{\"TestCall\":{\"requestType\":\"MessageWithAny\",\"responseType\":\"MessageWithAny\",\"comment\":null}},\"comment\":null},\"TestRpcRequest\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestRpcResponse\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestService\":{\"methods\":{\"TestCall\":{\"requestType\":\"TestRpcRequest\",\"responseType\":\"TestRpcResponse\",\"comment\":null},\"VoidCall\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"TestStreamService\":{\"methods\":{\"TestCall\":{\"requestType\":\"TestRpcRequest\",\"responseType\":\"TestRpcResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null}}}}}}},\"google\":{\"nested\":{\"protobuf\":{\"nested\":{\"Any\":{\"fields\":{\"type_url\":{\"type\":\"string\",\"id\":1},\"value\":{\"type\":\"bytes\",\"id\":2}},\"comment\":null},\"BoolValue\":{\"fields\":{\"value\":{\"type\":\"bool\",\"id\":1}},\"comment\":null},\"BytesValue\":{\"fields\":{\"value\":{\"type\":\"bytes\",\"id\":1}},\"comment\":null},\"DoubleValue\":{\"fields\":{\"value\":{\"type\":\"double\",\"id\":1}},\"comment\":null},\"Empty\":{\"fields\":{},\"comment\":null},\"FloatValue\":{\"fields\":{\"value\":{\"type\":\"float\",\"id\":1}},\"comment\":null},\"Int32Value\":{\"fields\":{\"value\":{\"type\":\"int32\",\"id\":1}},\"comment\":null},\"Int64Value\":{\"fields\":{\"value\":{\"type\":\"int64\",\"id\":1}},\"comment\":null},\"ListValue\":{\"fields\":{\"values\":{\"rule\":\"repeated\",\"type\":\"Value\",\"id\":1}},\"comment\":null},\"NullValue\":{\"values\":{\"NULL_VALUE\":0},\"comments\":{}},\"StringValue\":{\"fields\":{\"value\":{\"type\":\"string\",\"id\":1}},\"comment\":null},\"Struct\":{\"fields\":{\"fields\":{\"keyType\":\"string\",\"type\":\"Value\",\"id\":1}},\"comment\":null},\"Timestamp\":{\"fields\":{\"seconds\":{\"type\":\"int64\",\"id\":1},\"nanos\":{\"type\":\"int32\",\"id\":2}},\"comment\":null},\"UInt32Value\":{\"fields\":{\"value\":{\"type\":\"uint32\",\"id\":1}},\"comment\":null},\"UInt64Value\":{\"fields\":{\"value\":{\"type\":\"uint64\",\"id\":1}},\"comment\":null},\"Value\":{\"oneofs\":{\"kind\":{\"oneof\":[\"nullValue\",\"numberValue\",\"stringValue\",\"boolValue\",\"structValue\",\"listValue\"]}},\"fields\":{\"nullValue\":{\"type\":\"NullValue\",\"id\":1},\"numberValue\":{\"type\":\"double\",\"id\":2},\"stringValue\":{\"type\":\"string\",\"id\":3},\"boolValue\":{\"type\":\"bool\",\"id\":4},\"structValue\":{\"type\":\"Struct\",\"id\":5},\"listValue\":{\"type\":\"ListValue\",\"id\":6}},\"comment\":null}}}}}}}");
|
|
9
|
+
exports.schemaJson = JSON.parse("{\"nested\":{\"dxos\":{\"nested\":{\"bot\":{\"nested\":{\"Bot\":{\"oneofs\":{\"_status\":{\"oneof\":[\"status\"]},\"_desiredState\":{\"oneof\":[\"desiredState\"]},\"_attemptsToAchieveDesiredState\":{\"oneof\":[\"attemptsToAchieveDesiredState\"]},\"_packageSpecifier\":{\"oneof\":[\"packageSpecifier\"]},\"_lastStart\":{\"oneof\":[\"lastStart\"]},\"_spaceKey\":{\"oneof\":[\"spaceKey\"]},\"_runtime\":{\"oneof\":[\"runtime\"]},\"_report\":{\"oneof\":[\"report\"]}},\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"status\":{\"type\":\"Status\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"desiredState\":{\"type\":\"Status\",\"id\":55,\"options\":{\"proto3_optional\":true},\"comment\":\"The state that the bot aims to be in. Can be only either RUNNING or STOPPED.\"},\"attemptsToAchieveDesiredState\":{\"type\":\"int32\",\"id\":56,\"options\":{\"proto3_optional\":true},\"comment\":null},\"packageSpecifier\":{\"type\":\"BotPackageSpecifier\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"lastStart\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"runtime\":{\"type\":\"Runtime\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"report\":{\"type\":\"BotReport\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Runtime\":{\"oneofs\":{\"_exitCode\":{\"oneof\":[\"exitCode\"]},\"_exitSignal\":{\"oneof\":[\"exitSignal\"]},\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"exitCode\":{\"type\":\"int32\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"exitSignal\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Status\":{\"values\":{\"STOPPED\":0,\"STARTING\":1,\"RUNNING\":2,\"STOPPING\":3,\"SPAWNING\":4},\"comment\":null,\"comments\":{\"STOPPED\":null,\"STARTING\":\"Starting bot process.\",\"RUNNING\":\"Bot is running.\",\"STOPPING\":\"Bot is stopping.\",\"SPAWNING\":\"Bot is being spawned. Bot factory is downloading the bot bundle and initializing resources.\"}}},\"comment\":null},\"BotFactoryService\":{\"methods\":{\"GetBots\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"GetBotsResponse\",\"comment\":null},\"SpawnBot\":{\"requestType\":\"SpawnBotRequest\",\"responseType\":\"Bot\",\"comment\":null},\"Start\":{\"requestType\":\"Bot\",\"responseType\":\"Bot\",\"comment\":null},\"Stop\":{\"requestType\":\"Bot\",\"responseType\":\"Bot\",\"comment\":null},\"Remove\":{\"requestType\":\"Bot\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"GetLogs\":{\"requestType\":\"GetLogsRequest\",\"responseType\":\"GetLogsResponse\",\"responseStream\":true,\"comment\":null},\"SendCommand\":{\"requestType\":\"SendCommandRequest\",\"responseType\":\"SendCommandResponse\",\"comment\":null},\"RemoveAll\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Service that is used by clients to communicate with bot factory.\"},\"BotPackageSpecifier\":{\"oneofs\":{\"kind\":{\"oneof\":[\"name\",\"ipfsCid\",\"localPath\"],\"comment\":null}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"comment\":\"DXN of the bot in the DXNS registry.\"},\"ipfsCid\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"localPath\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null},\"BotReport\":{\"oneofs\":{\"_spaceDetails\":{\"oneof\":[\"spaceDetails\"]}},\"fields\":{\"spaceDetails\":{\"type\":\"dxos.client.SpaceDetails\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Details of the space the bot was spawned for.\"}},\"comment\":null},\"BotService\":{\"methods\":{\"Initialize\":{\"requestType\":\"InitializeRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Initialize Client, create profile, and join a space.\"},\"Start\":{\"requestType\":\"StartRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Start an initialized bot.\"},\"Command\":{\"requestType\":\"SendCommandRequest\",\"responseType\":\"SendCommandResponse\",\"comment\":\"Custom commands sent to the bot factory.\"},\"Stop\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Stop the bot.\"},\"StartReporting\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"BotReport\",\"responseStream\":true,\"comment\":\"Send periodic reports of the bot's state.\"}},\"comment\":\"Service that is used by bots communicating with bot factory.\"},\"GetBotsResponse\":{\"fields\":{\"bots\":{\"rule\":\"repeated\",\"type\":\"Bot\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetLogsRequest\":{\"fields\":{\"botId\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetLogsResponse\":{\"fields\":{\"chunk\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"InitializeRequest\":{\"oneofs\":{\"_config\":{\"oneof\":[\"config\"]},\"_invitation\":{\"oneof\":[\"invitation\"]},\"_id\":{\"oneof\":[\"id\"]}},\"fields\":{\"config\":{\"type\":\"dxos.config.Config\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Bot runtime configuration.\"},\"invitation\":{\"type\":\"dxos.client.services.Invitation\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Invitation for the bot to join the target space.\"},\"id\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"ID of the bot.\"}},\"comment\":null},\"SendCommandRequest\":{\"oneofs\":{\"_botId\":{\"oneof\":[\"botId\"]},\"_command\":{\"oneof\":[\"command\"]}},\"fields\":{\"botId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"command\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SendCommandResponse\":{\"oneofs\":{\"_response\":{\"oneof\":[\"response\"]}},\"fields\":{\"response\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SpawnBotRequest\":{\"oneofs\":{\"_package\":{\"oneof\":[\"package\"]},\"_invitation\":{\"oneof\":[\"invitation\"]},\"_spaceKey\":{\"oneof\":[\"spaceKey\"]}},\"fields\":{\"package\":{\"type\":\"BotPackageSpecifier\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"invitation\":{\"type\":\"dxos.client.services.Invitation\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Invitation for the bot to join the target space.\"},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the space bot is invited to.\"}},\"comment\":null},\"StartRequest\":{\"fields\":{\"config\":{\"type\":\"dxos.config.Config\",\"id\":1,\"comment\":\"Bot runtime configuration.\"}},\"comment\":null}}},\"client\":{\"nested\":{\"AddKeyRecordRequest\":{\"fields\":{\"keyRecord\":{\"type\":\"dxos.halo.keys.KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"AuthenticateInvitationRequest\":{\"fields\":{\"processId\":{\"type\":\"string\",\"id\":1,\"comment\":\"Id from corresponding RedeemedInvitation.\"},\"secret\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Contact\":{\"oneofs\":{\"_displayName\":{\"oneof\":[\"displayName\"]}},\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Contacts\":{\"fields\":{\"contacts\":{\"rule\":\"repeated\",\"type\":\"Contact\",\"id\":1,\"comment\":null}},\"comment\":null},\"CreateInvitationRequest\":{\"oneofs\":{\"_inviteeKey\":{\"oneof\":[\"inviteeKey\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"inviteeKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"When specified the invitation will be of OFFLINE type, not requiring secret exchange.\"}},\"comment\":null},\"CreateProfileRequest\":{\"oneofs\":{\"_publicKey\":{\"oneof\":[\"publicKey\"]},\"_secretKey\":{\"oneof\":[\"secretKey\"]},\"_displayName\":{\"oneof\":[\"displayName\"]}},\"fields\":{\"publicKey\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"secretKey\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"CreateSnapshotRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetPreferenceRequest\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetPreferenceResponse\":{\"fields\":{\"value\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetSpaceDetailsRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"HaloService\":{\"methods\":{\"Sign\":{\"requestType\":\"SignRequest\",\"responseType\":\"SignResponse\",\"comment\":null},\"AddKeyRecord\":{\"requestType\":\"AddKeyRecordRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"SubscribeContacts\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Contacts\",\"responseStream\":true,\"comment\":null},\"SetGlobalPreference\":{\"requestType\":\"SetPreferenceRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"GetGlobalPreference\":{\"requestType\":\"GetPreferenceRequest\",\"responseType\":\"GetPreferenceResponse\",\"comment\":null},\"SetDevicePreference\":{\"requestType\":\"SetPreferenceRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"GetDevicePreference\":{\"requestType\":\"GetPreferenceRequest\",\"responseType\":\"GetPreferenceResponse\",\"comment\":null}},\"comment\":null},\"InvitationRequest\":{\"oneofs\":{\"_descriptor\":{\"oneof\":[\"descriptor\"]},\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"descriptor\":{\"type\":\"dxos.client.services.Invitation\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"state\":{\"type\":\"InvitationState\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Only if state == ERROR.\"}},\"comment\":\"Invitation process created by sender.\"},\"InvitationState\":{\"values\":{\"WAITING_FOR_CONNECTION\":0,\"CONNECTED\":1,\"SUCCESS\":2,\"ERROR\":3},\"comment\":null,\"comments\":{\"WAITING_FOR_CONNECTION\":null,\"CONNECTED\":null,\"SUCCESS\":null,\"ERROR\":null}},\"Profile\":{\"oneofs\":{\"_displayName\":{\"oneof\":[\"displayName\"]},\"_deviceKey\":{\"oneof\":[\"deviceKey\"]}},\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ProfileService\":{\"methods\":{\"CreateProfile\":{\"requestType\":\"CreateProfileRequest\",\"responseType\":\"Profile\",\"comment\":null},\"RecoverProfile\":{\"requestType\":\"RecoverProfileRequest\",\"responseType\":\"Profile\",\"comment\":null},\"SubscribeProfile\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeProfileResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"RecoverProfileRequest\":{\"fields\":{\"seedPhrase\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"RedeemedInvitation\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]},\"_spaceKey\":{\"oneof\":[\"spaceKey\"]}},\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"InvitationState\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Only if state == ERROR.\"},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Only on space invitations that are finished.\"}},\"comment\":\"Invitation that is being redeemed.\"},\"services\":{\"nested\":{\"AuthenticationRequest\":{\"fields\":{\"invitationId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"authenticationCode\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"CancelInvitationRequest\":{\"fields\":{\"invitationId\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"Contact\":{\"fields\":{\"profile\":{\"type\":\"halo.credentials.ProfileDocument\",\"id\":1,\"comment\":null}},\"comment\":null},\"ContactsService\":{\"methods\":{\"UpdateContact\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Contact\",\"comment\":null},\"QueryContacts\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Contact\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"Device\":{\"fields\":{\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"DevicesService\":{\"methods\":{\"UpdateDevice\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Device\",\"comment\":null},\"QueryDevices\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"QueryDevicesResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"HaloInvitationsService\":{\"methods\":{\"CreateInvitation\":{\"requestType\":\"Invitation\",\"responseType\":\"Invitation\",\"responseStream\":true,\"comment\":null},\"Authenticate\":{\"requestType\":\"AuthenticationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"AcceptInvitation\":{\"requestType\":\"Invitation\",\"responseType\":\"Invitation\",\"responseStream\":true,\"comment\":null},\"CancelInvitation\":{\"requestType\":\"CancelInvitationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"HaloService\":{\"methods\":{\"RecoverProfile\":{\"requestType\":\"RecoverProfileRequest\",\"responseType\":\"Identity\",\"comment\":null},\"UpdateProfile\":{\"requestType\":\"Identity\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"QueryProfile\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Identity\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"Identity\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"profile\":{\"type\":\"halo.credentials.ProfileDocument\",\"id\":2,\"comment\":null}},\"comment\":null},\"Invitation\":{\"oneofs\":{\"_invitationId\":{\"oneof\":[\"invitationId\"]},\"_type\":{\"oneof\":[\"type\"]},\"_state\":{\"oneof\":[\"state\"]},\"_error\":{\"oneof\":[\"error\"]},\"_swarmKey\":{\"oneof\":[\"swarmKey\"]},\"_identityKey\":{\"oneof\":[\"identityKey\"]},\"_spaceKey\":{\"oneof\":[\"spaceKey\"]},\"_authenticationCode\":{\"oneof\":[\"authenticationCode\"]},\"_timeout\":{\"oneof\":[\"timeout\"]}},\"fields\":{\"invitationId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Local identifier.\"},\"type\":{\"type\":\"Type\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Determined when created.\"},\"state\":{\"type\":\"State\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Local state.\"},\"error\":{\"type\":\"Error\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Error.\"},\"swarmKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Swarm rendezvous (random).\"},\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Guest's identity (only present if OFFLINE).\"},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":\"Space to join.\"},\"authenticationCode\":{\"type\":\"string\",\"id\":8,\"options\":{\"proto3_optional\":true},\"comment\":\"Authentication code created by host.\"},\"timeout\":{\"type\":\"int32\",\"id\":9,\"options\":{\"proto3_optional\":true},\"comment\":\"Timeout (ms).\"}},\"nested\":{\"Error\":{\"values\":{\"OK\":0,\"TIMEOUT\":1,\"INVALID_OTP\":2,\"INVALID_OPT_ATTEMPTS\":3,\"INVALID_CREDENTIALS\":4},\"comment\":null,\"comments\":{\"OK\":null,\"TIMEOUT\":null,\"INVALID_OTP\":null,\"INVALID_OPT_ATTEMPTS\":null,\"INVALID_CREDENTIALS\":null}},\"State\":{\"values\":{\"INIT\":0,\"CONNECTING\":1,\"CONNECTED\":2,\"AUTHENTICATING\":3,\"SUCCESS\":4,\"CANCELLED\":5,\"TIMEOUT\":6,\"ERROR\":7},\"comment\":null,\"comments\":{\"INIT\":null,\"CONNECTING\":null,\"CONNECTED\":null,\"AUTHENTICATING\":null,\"SUCCESS\":null,\"CANCELLED\":null,\"TIMEOUT\":null,\"ERROR\":null}},\"Type\":{\"values\":{\"INTERACTIVE\":0,\"INTERACTIVE_TESTING\":1,\"OFFLINE\":2},\"comment\":null,\"comments\":{\"INTERACTIVE\":\"Requires both to be online with OTP to complete key exchange.\",\"INTERACTIVE_TESTING\":\"Interactive without OTP.\",\"OFFLINE\":\"Guest's identity key is known; invitation can be accepted by any valid peer.\"}}},\"comment\":\"Represents the invitation state passed between client and service.\"},\"KeyRecord\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"QueryDevicesResponse\":{\"fields\":{\"devices\":{\"rule\":\"repeated\",\"type\":\"Device\",\"id\":1,\"comment\":null}},\"comment\":null},\"QueryMembersRequest\":{\"fields\":{},\"comment\":null},\"QueryMembersResponse\":{\"fields\":{\"members\":{\"type\":\"dxos.halo.credentials.IdentityProfile\",\"id\":1,\"comment\":null}},\"comment\":null},\"RecoverProfileRequest\":{\"fields\":{\"recoveryKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"SigningService\":{\"methods\":{\"UpdateKeyRecord\":{\"requestType\":\"KeyRecord\",\"responseType\":\"KeyRecord\",\"comment\":null},\"Sign\":{\"requestType\":\"SignRequest\",\"responseType\":\"SignResponse\",\"comment\":null}},\"comment\":null},\"SignRequest\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"SignResponse\":{\"fields\":{\"signed\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Space\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SpaceInvitationsService\":{\"methods\":{\"CreateInvitation\":{\"requestType\":\"Invitation\",\"responseType\":\"Invitation\",\"responseStream\":true,\"comment\":null},\"Authenticate\":{\"requestType\":\"AuthenticationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"AcceptInvitation\":{\"requestType\":\"Invitation\",\"responseType\":\"Invitation\",\"responseStream\":true,\"comment\":null},\"CancelInvitation\":{\"requestType\":\"CancelInvitationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"SpacesService\":{\"methods\":{\"CreateSpace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Space\",\"comment\":null},\"QuerySpaces\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Space\",\"responseStream\":true,\"comment\":null},\"QueryMembers\":{\"requestType\":\"QueryMembersRequest\",\"responseType\":\"QueryMembersResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"SystemService\":{\"methods\":{\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"dxos.config.Config\",\"comment\":null},\"Reset\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null}}},\"SetPreferenceRequest\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SetSpaceStateRequest\":{\"oneofs\":{\"_open\":{\"oneof\":[\"open\"]},\"_activeGlobal\":{\"oneof\":[\"activeGlobal\"]},\"_activeDevice\":{\"oneof\":[\"activeDevice\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"open\":{\"type\":\"bool\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"activeGlobal\":{\"type\":\"bool\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"activeDevice\":{\"type\":\"bool\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SignRequest\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"The public key of the key that is supposed to be used for signing.\"},\"payload\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"SignResponse\":{\"fields\":{\"signed\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Space\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"isOpen\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"isActive\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"members\":{\"rule\":\"repeated\",\"type\":\"SpaceMember\",\"id\":4,\"comment\":null}},\"comment\":null},\"SpaceActivationOptions\":{\"fields\":{\"global\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"device\":{\"type\":\"bool\",\"id\":2,\"comment\":null}},\"comment\":null},\"SpaceDetails\":{\"fields\":{\"processedTimeframe\":{\"type\":\"dxos.echo.timeframe.TimeframeVector\",\"id\":1,\"comment\":\"The timeframe of mutations processed by the client.\"}},\"comment\":null},\"SpaceMember\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"profile\":{\"type\":\"Profile\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SpaceService\":{\"methods\":{\"SubscribeToSpace\":{\"requestType\":\"SubscribeSpaceRequest\",\"responseType\":\"SubscribeSpaceResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeSpaces\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeSpacesResponse\",\"responseStream\":true,\"comment\":null},\"GetSpaceDetails\":{\"requestType\":\"GetSpaceDetailsRequest\",\"responseType\":\"SpaceDetails\",\"comment\":null},\"CreateSpace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Space\",\"comment\":null},\"CloneSpace\":{\"requestType\":\"dxos.echo.snapshot.SpaceSnapshot\",\"responseType\":\"Space\",\"comment\":null},\"SetSpaceState\":{\"requestType\":\"SetSpaceStateRequest\",\"responseType\":\"Space\",\"comment\":\"Open and close or activate and deactivate a space.\"},\"SubscribeMembers\":{\"requestType\":\"SubscribeMembersRequest\",\"responseType\":\"SubscribeMembersResponse\",\"responseStream\":true,\"comment\":null},\"CreateSnapshot\":{\"requestType\":\"CreateSnapshotRequest\",\"responseType\":\"echo.snapshot.SpaceSnapshot\",\"comment\":null}},\"comment\":null},\"Status\":{\"fields\":{\"message\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeMembersRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeMembersResponse\":{\"fields\":{\"members\":{\"rule\":\"repeated\",\"type\":\"SpaceMember\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeProfileResponse\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"profile\":{\"type\":\"Profile\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeSpaceRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeSpaceResponse\":{\"oneofs\":{\"_space\":{\"oneof\":[\"space\"]}},\"fields\":{\"space\":{\"type\":\"Space\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeSpacesResponse\":{\"fields\":{\"spaces\":{\"rule\":\"repeated\",\"type\":\"Space\",\"id\":1,\"comment\":null}},\"comment\":null},\"SystemService\":{\"methods\":{\"InitSession\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Called at the start of the session. Service should block until it is fully initialized.\"},\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"dxos.config.Config\",\"comment\":null},\"GetStatus\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Status\",\"comment\":null},\"Reset\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null}}},\"config\":{\"nested\":{\"Config\":{\"oneofs\":{\"_version\":{\"oneof\":[\"version\"]},\"_package\":{\"oneof\":[\"package\"]},\"_runtime\":{\"oneof\":[\"runtime\"]}},\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"package\":{\"type\":\"Package\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"runtime\":{\"type\":\"Runtime\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Module\":{\"oneofs\":{\"_name\":{\"oneof\":[\"name\"]},\"_type\":{\"oneof\":[\"type\"]},\"_displayName\":{\"oneof\":[\"displayName\"]},\"_description\":{\"oneof\":[\"description\"]},\"_bundle\":{\"oneof\":[\"bundle\"]},\"_build\":{\"oneof\":[\"build\"]},\"_record\":{\"oneof\":[\"record\"]}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"type\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"description\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"tags\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":5,\"comment\":null},\"bundle\":{\"type\":\"bytes\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"build\":{\"type\":\"Build\",\"id\":100,\"options\":{\"proto3_optional\":true},\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":101,\"comment\":null},\"record\":{\"type\":\"google.protobuf.Any\",\"id\":200,\"options\":{\"proto3_optional\":true},\"comment\":\"The data will be validated based on the type when being published.\"}},\"nested\":{\"Build\":{\"oneofs\":{\"_command\":{\"oneof\":[\"command\"]},\"_outdir\":{\"oneof\":[\"outdir\"]},\"_version\":{\"oneof\":[\"version\"]},\"_tag\":{\"oneof\":[\"tag\"]}},\"fields\":{\"command\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"outdir\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"version\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"tag\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"Package\":{\"oneofs\":{\"_license\":{\"oneof\":[\"license\"]}},\"fields\":{\"license\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":2,\"comment\":null},\"modules\":{\"rule\":\"repeated\",\"type\":\"Module\",\"id\":3,\"comment\":null}},\"comment\":null},\"Repo\":{\"oneofs\":{\"_name\":{\"oneof\":[\"name\"]},\"_url\":{\"oneof\":[\"url\"]},\"_version\":{\"oneof\":[\"version\"]}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"url\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"version\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Runtime\":{\"oneofs\":{\"_client\":{\"oneof\":[\"client\"]},\"_app\":{\"oneof\":[\"app\"]},\"_cli\":{\"oneof\":[\"cli\"]},\"_props\":{\"oneof\":[\"props\"]},\"_services\":{\"oneof\":[\"services\"]},\"_system\":{\"oneof\":[\"system\"]},\"_kube\":{\"oneof\":[\"kube\"]}},\"fields\":{\"client\":{\"type\":\"Client\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"app\":{\"type\":\"App\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"cli\":{\"type\":\"CLI\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"props\":{\"type\":\"Props\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"services\":{\"type\":\"Services\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"system\":{\"type\":\"System\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"kube\":{\"type\":\"Kube\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"App\":{\"oneofs\":{\"_org\":{\"oneof\":[\"org\"]},\"_theme\":{\"oneof\":[\"theme\"]},\"_website\":{\"oneof\":[\"website\"]},\"_publicUrl\":{\"oneof\":[\"publicUrl\"]}},\"fields\":{\"org\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"theme\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"website\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"publicUrl\":{\"type\":\"string\",\"id\":4,\"options\":{\"(env)\":\"PUBLIC_URL\",\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"CLI\":{\"oneofs\":{\"_nodePath\":{\"oneof\":[\"nodePath\"]},\"_app\":{\"oneof\":[\"app\"]},\"_console\":{\"oneof\":[\"console\"]},\"_mdns\":{\"oneof\":[\"mdns\"]},\"_signal\":{\"oneof\":[\"signal\"]},\"_npmClient\":{\"oneof\":[\"npmClient\"]},\"_channel\":{\"oneof\":[\"channel\"]}},\"fields\":{\"nodePath\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"app\":{\"type\":\"AppServe\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"console\":{\"type\":\"Package\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"mdns\":{\"type\":\"Package\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"signal\":{\"type\":\"Package\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"npmClient\":{\"type\":\"string\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"channel\":{\"type\":\"string\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"AppServe\":{\"oneofs\":{\"_serve\":{\"oneof\":[\"serve\"]}},\"fields\":{\"serve\":{\"type\":\"Serve\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Serve\":{\"oneofs\":{\"_config\":{\"oneof\":[\"config\"]},\"_loginApp\":{\"oneof\":[\"loginApp\"]},\"_keyPhrase\":{\"oneof\":[\"keyPhrase\"]}},\"fields\":{\"config\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"loginApp\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"keyPhrase\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"Package\":{\"oneofs\":{\"_package\":{\"oneof\":[\"package\"]},\"_channel\":{\"oneof\":[\"channel\"]},\"_bin\":{\"oneof\":[\"bin\"]},\"_config\":{\"oneof\":[\"config\"]}},\"fields\":{\"package\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"channel\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"bin\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"config\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"Client\":{\"oneofs\":{\"_debug\":{\"oneof\":[\"debug\"]},\"_storage\":{\"oneof\":[\"storage\"]},\"_enableSnapshots\":{\"oneof\":[\"enableSnapshots\"]},\"_snapshotInterval\":{\"oneof\":[\"snapshotInterval\"]},\"_invitationExpiration\":{\"oneof\":[\"invitationExpiration\"]},\"_remoteSource\":{\"oneof\":[\"remoteSource\"]}},\"fields\":{\"debug\":{\"type\":\"string\",\"id\":1,\"options\":{\"(env)\":\"DEBUG\",\"proto3_optional\":true},\"comment\":null},\"storage\":{\"type\":\"Storage\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"enableSnapshots\":{\"type\":\"bool\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"snapshotInterval\":{\"type\":\"int32\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Milliseconds\"},\"invitationExpiration\":{\"type\":\"int32\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Milliseconds\"},\"remoteSource\":{\"type\":\"string\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Storage\":{\"oneofs\":{\"_persistent\":{\"oneof\":[\"persistent\"]},\"_keyStorage\":{\"oneof\":[\"keyStorage\"]},\"_storageType\":{\"oneof\":[\"storageType\"]},\"_path\":{\"oneof\":[\"path\"]}},\"fields\":{\"persistent\":{\"type\":\"bool\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"keyStorage\":{\"type\":\"StorageDriver\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"storageType\":{\"type\":\"StorageDriver\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"path\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"StorageDriver\":{\"values\":{\"RAM\":0,\"IDB\":1,\"CHROME\":2,\"FIREFOX\":3,\"NODE\":4,\"LEVELJS\":11,\"JSONDOWN\":12},\"comment\":null,\"comments\":{\"RAM\":null,\"IDB\":null,\"CHROME\":null,\"FIREFOX\":null,\"NODE\":null,\"LEVELJS\":null,\"JSONDOWN\":null}}},\"comment\":null}},\"comment\":null},\"Kube\":{\"oneofs\":{\"_host\":{\"oneof\":[\"host\"]},\"_port\":{\"oneof\":[\"port\"]},\"_autoupdate\":{\"oneof\":[\"autoupdate\"]},\"_https\":{\"oneof\":[\"https\"]},\"_p2p\":{\"oneof\":[\"p2p\"]},\"_confhost\":{\"oneof\":[\"confhost\"]},\"_monitoring\":{\"oneof\":[\"monitoring\"]},\"_trace\":{\"oneof\":[\"trace\"]},\"_telemetry\":{\"oneof\":[\"telemetry\"]}},\"fields\":{\"host\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"port\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"autoupdate\":{\"type\":\"Autoupdate\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"https\":{\"type\":\"Https\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"p2p\":{\"type\":\"P2P\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"confhost\":{\"type\":\"string\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"env\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":7,\"comment\":null},\"alias\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":8,\"comment\":null},\"monitoring\":{\"type\":\"Monitoring\",\"id\":9,\"options\":{\"proto3_optional\":true},\"comment\":null},\"trace\":{\"type\":\"Trace\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"telemetry\":{\"type\":\"Telemetry\",\"id\":11,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Autoupdate\":{\"oneofs\":{\"_enabled\":{\"oneof\":[\"enabled\"]},\"_interval\":{\"oneof\":[\"interval\"]}},\"fields\":{\"enabled\":{\"type\":\"bool\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"interval\":{\"type\":\"int64\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Seconds\"}},\"comment\":null},\"Https\":{\"oneofs\":{\"_enabled\":{\"oneof\":[\"enabled\"]},\"_port\":{\"oneof\":[\"port\"]},\"_email\":{\"oneof\":[\"email\"]},\"_certfile\":{\"oneof\":[\"certfile\"]},\"_keyfile\":{\"oneof\":[\"keyfile\"]},\"_dnsprovider\":{\"oneof\":[\"dnsprovider\"]}},\"fields\":{\"enabled\":{\"type\":\"bool\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"port\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"email\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"certfile\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"keyfile\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"dnsprovider\":{\"type\":\"string\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Monitoring\":{\"fields\":{\"enabled\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"endpoint\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"interval\":{\"type\":\"int64\",\"id\":3,\"comment\":\"Seconds\"}},\"comment\":null},\"P2P\":{\"oneofs\":{\"_privateKey\":{\"oneof\":[\"privateKey\"]},\"_port\":{\"oneof\":[\"port\"]}},\"fields\":{\"privateKey\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"port\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"bootstrap\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null},\"Telemetry\":{\"fields\":{\"disabled\":{\"type\":\"bool\",\"id\":1,\"comment\":null}},\"comment\":null},\"Trace\":{\"fields\":{\"disabled\":{\"type\":\"bool\",\"id\":1,\"comment\":null}},\"comment\":null}},\"comment\":null},\"Props\":{\"oneofs\":{\"_title\":{\"oneof\":[\"title\"]}},\"fields\":{\"title\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Services\":{\"oneofs\":{\"_kube\":{\"oneof\":[\"kube\"]},\"_app\":{\"oneof\":[\"app\"]},\"_dxns\":{\"oneof\":[\"dxns\"]},\"_ipfs\":{\"oneof\":[\"ipfs\"]},\"_signal\":{\"oneof\":[\"signal\"]},\"_machine\":{\"oneof\":[\"machine\"]},\"_bot\":{\"oneof\":[\"bot\"]},\"_publisher\":{\"oneof\":[\"publisher\"]}},\"fields\":{\"kube\":{\"type\":\"Kube\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"app\":{\"type\":\"AppServer\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"dxns\":{\"type\":\"Dxns\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"ipfs\":{\"type\":\"Ipfs\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"signal\":{\"type\":\"Signal\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"ice\":{\"rule\":\"repeated\",\"type\":\"Ice\",\"id\":6,\"comment\":null},\"machine\":{\"type\":\"Machine\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null},\"bot\":{\"type\":\"BotFactory\",\"id\":8,\"options\":{\"proto3_optional\":true},\"comment\":null},\"publisher\":{\"type\":\"Publisher\",\"id\":9,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"AppServer\":{\"oneofs\":{\"_prefix\":{\"oneof\":[\"prefix\"]},\"_server\":{\"oneof\":[\"server\"]}},\"fields\":{\"prefix\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"server\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"BotFactory\":{\"oneofs\":{\"_topic\":{\"oneof\":[\"topic\"]},\"_persistent\":{\"oneof\":[\"persistent\"]},\"_retryAttempts\":{\"oneof\":[\"retryAttempts\"]},\"_retryInterval\":{\"oneof\":[\"retryInterval\"]}},\"fields\":{\"topic\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"persistent\":{\"type\":\"bool\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"retryAttempts\":{\"type\":\"int32\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"retryInterval\":{\"type\":\"int32\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Dxns\":{\"oneofs\":{\"_server\":{\"oneof\":[\"server\"]},\"_accountUri\":{\"oneof\":[\"accountUri\"]},\"_address\":{\"oneof\":[\"address\"]},\"_account\":{\"oneof\":[\"account\"]},\"_faucet\":{\"oneof\":[\"faucet\"]}},\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"DXNS endpoint.\"},\"accountUri\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Substrate account URI. This is a secret.\\nKUBEs do not serve this with the config but we store it in profile.yml.\\n\\nTODO(dmaretskyi): Deprecate this and move it to keyring.\"},\"address\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Public Polkadot Address.\"},\"account\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Public address of a DXNS Account.\"},\"faucet\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Ice\":{\"oneofs\":{\"_urls\":{\"oneof\":[\"urls\"]},\"_username\":{\"oneof\":[\"username\"]},\"_credential\":{\"oneof\":[\"credential\"]}},\"fields\":{\"urls\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"username\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"credential\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Ipfs\":{\"oneofs\":{\"_server\":{\"oneof\":[\"server\"]},\"_gateway\":{\"oneof\":[\"gateway\"]}},\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"gateway\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Kube\":{\"oneofs\":{\"_endpoints\":{\"oneof\":[\"endpoints\"]},\"_publicUrl\":{\"oneof\":[\"publicUrl\"]}},\"fields\":{\"endpoints\":{\"type\":\"Endpoints\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"publicUrl\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Endpoints\":{\"oneofs\":{\"_logs\":{\"oneof\":[\"logs\"]},\"_services\":{\"oneof\":[\"services\"]},\"_cert\":{\"oneof\":[\"cert\"]}},\"fields\":{\"logs\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"services\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"cert\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"Machine\":{\"oneofs\":{\"_doAccessToken\":{\"oneof\":[\"doAccessToken\"]},\"_githubAccessToken\":{\"oneof\":[\"githubAccessToken\"]},\"_githubUsername\":{\"oneof\":[\"githubUsername\"]},\"_dnsDomain\":{\"oneof\":[\"dnsDomain\"]},\"_npmAccessToken\":{\"oneof\":[\"npmAccessToken\"]}},\"fields\":{\"doAccessToken\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"githubAccessToken\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"githubUsername\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"dnsDomain\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"npmAccessToken\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Publisher\":{\"oneofs\":{\"_server\":{\"oneof\":[\"server\"]}},\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Signal\":{\"oneofs\":{\"_server\":{\"oneof\":[\"server\"]},\"_api\":{\"oneof\":[\"api\"]},\"_status\":{\"oneof\":[\"status\"]}},\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"api\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"status\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"System\":{\"oneofs\":{\"_debug\":{\"oneof\":[\"debug\"]}},\"fields\":{\"debug\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null}}},\"devtools\":{\"nested\":{\"host\":{\"nested\":{\"ClearSnapshotsRequest\":{\"fields\":{},\"comment\":null},\"DevtoolsHost\":{\"methods\":{\"Events\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Event\",\"responseStream\":true,\"comment\":null},\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"GetConfigResponse\",\"comment\":null},\"ResetStorage\":{\"requestType\":\"ResetStorageRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"EnableDebugLogging\":{\"requestType\":\"EnableDebugLoggingRequest\",\"responseType\":\"EnableDebugLoggingResponse\",\"comment\":null},\"DisableDebugLogging\":{\"requestType\":\"EnableDebugLoggingRequest\",\"responseType\":\"EnableDebugLoggingResponse\",\"comment\":null},\"SubscribeToKeyringKeys\":{\"requestType\":\"SubscribeToKeyringKeysRequest\",\"responseType\":\"SubscribeToKeyringKeysResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToCredentialMessages\":{\"requestType\":\"SubscribeToCredentialMessagesRequest\",\"responseType\":\"SubscribeToCredentialMessagesResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToSpaces\":{\"requestType\":\"SubscribeToSpacesRequest\",\"responseType\":\"SubscribeToSpacesResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToItems\":{\"requestType\":\"SubscribeToItemsRequest\",\"responseType\":\"SubscribeToItemsResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToFeeds\":{\"requestType\":\"SubscribeToFeedsRequest\",\"responseType\":\"SubscribeToFeedsResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToFeedBlocks\":{\"requestType\":\"SubscribeToFeedBlocksRequest\",\"responseType\":\"SubscribeToFeedBlocksResponse\",\"responseStream\":true,\"comment\":null},\"GetSpaceSnapshot\":{\"requestType\":\"GetSpaceSnapshotRequest\",\"responseType\":\"GetSpaceSnapshotResponse\",\"comment\":null},\"SaveSpaceSnapshot\":{\"requestType\":\"SaveSpaceSnapshotRequest\",\"responseType\":\"SaveSpaceSnapshotResponse\",\"comment\":null},\"ClearSnapshots\":{\"requestType\":\"ClearSnapshotsRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"GetNetworkPeers\":{\"requestType\":\"GetNetworkPeersRequest\",\"responseType\":\"GetNetworkPeersResponse\",\"comment\":null},\"SubscribeToNetworkTopics\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeToNetworkTopicsResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToSignalStatus\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeToSignalStatusResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToSignalTrace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeToSignalTraceResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeToSwarmInfo\":{\"requestType\":\"SubscribeToSwarmInfoRequest\",\"responseType\":\"SubscribeToSwarmInfoResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null},\"DisableDebugLoggingRequest\":{\"oneofs\":{\"_namespaces\":{\"oneof\":[\"namespaces\"]}},\"fields\":{\"namespaces\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"DisableDebugLoggingResponse\":{\"oneofs\":{\"_enabledNamespaces\":{\"oneof\":[\"enabledNamespaces\"]}},\"fields\":{\"enabledNamespaces\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"EnableDebugLoggingRequest\":{\"oneofs\":{\"_namespaces\":{\"oneof\":[\"namespaces\"]}},\"fields\":{\"namespaces\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"EnableDebugLoggingResponse\":{\"oneofs\":{\"_enabledNamespaces\":{\"oneof\":[\"enabledNamespaces\"]}},\"fields\":{\"enabledNamespaces\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Event\":{\"oneofs\":{\"payload\":{\"oneof\":[\"ready\"],\"comment\":null}},\"fields\":{\"ready\":{\"type\":\"ReadyEvent\",\"id\":1,\"comment\":null}},\"comment\":null},\"FeedStats\":{\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"length\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"GetConfigResponse\":{\"fields\":{\"config\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetNetworkPeersRequest\":{\"fields\":{\"topic\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetNetworkPeersResponse\":{\"fields\":{\"peers\":{\"rule\":\"repeated\",\"type\":\"PeerInfo\",\"id\":1,\"comment\":null}},\"nested\":{\"PeerInfo\":{\"fields\":{\"id\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"bytes\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"GetSpaceSnapshotRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetSpaceSnapshotResponse\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"dxos.echo.snapshot.SpaceSnapshot\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"PeerStats\":{\"fields\":{\"controlFeed\":{\"type\":\"FeedStats\",\"id\":1,\"comment\":null},\"dataFeed\":{\"type\":\"FeedStats\",\"id\":2,\"comment\":null}},\"comment\":null},\"ReadyEvent\":{\"fields\":{},\"comment\":null},\"ResetStorageRequest\":{\"fields\":{},\"comment\":null},\"SaveSpaceSnapshotRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SaveSpaceSnapshotResponse\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"dxos.echo.snapshot.SpaceSnapshot\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Services\":{\"fields\":{\"spaces\":{\"rule\":\"repeated\",\"type\":\"SpaceStats\",\"id\":1,\"comment\":null}},\"comment\":null},\"SetTracingOptionsRequest\":{\"fields\":{\"enable\":{\"type\":\"bool\",\"id\":1,\"comment\":null}},\"comment\":null},\"SpaceStats\":{\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"peers\":{\"rule\":\"repeated\",\"type\":\"PeerStats\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeToCredentialMessagesRequest\":{\"oneofs\":{\"_spaceKey\":{\"oneof\":[\"spaceKey\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeToCredentialMessagesResponse\":{\"fields\":{\"messages\":{\"rule\":\"repeated\",\"type\":\"dxos.halo.signed.SignedMessage\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToFeedBlocksRequest\":{\"oneofs\":{\"_spaceKey\":{\"oneof\":[\"spaceKey\"]},\"_feedKey\":{\"oneof\":[\"feedKey\"]},\"_maxBlocks\":{\"oneof\":[\"maxBlocks\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"maxBlocks\":{\"type\":\"int32\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeToFeedBlocksResponse\":{\"fields\":{\"blocks\":{\"rule\":\"repeated\",\"type\":\"Block\",\"id\":1,\"comment\":null}},\"nested\":{\"Block\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null},\"data\":{\"type\":\"dxos.echo.feed.FeedMessage\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToFeedsRequest\":{\"fields\":{\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToFeedsResponse\":{\"fields\":{\"feeds\":{\"rule\":\"repeated\",\"type\":\"Feed\",\"id\":1,\"comment\":null}},\"nested\":{\"Feed\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"length\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToItemsRequest\":{\"fields\":{},\"comment\":null},\"SubscribeToItemsResponse\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToKeyringKeysRequest\":{\"fields\":{},\"comment\":null},\"SubscribeToKeyringKeysResponse\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"dxos.halo.keyring.KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToNetworkTopicsResponse\":{\"fields\":{\"topics\":{\"rule\":\"repeated\",\"type\":\"Topic\",\"id\":1,\"comment\":null}},\"nested\":{\"Topic\":{\"oneofs\":{\"_label\":{\"oneof\":[\"label\"]}},\"fields\":{\"topic\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"label\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToSignalStatusResponse\":{\"fields\":{\"servers\":{\"rule\":\"repeated\",\"type\":\"SignalServer\",\"id\":1,\"comment\":null}},\"nested\":{\"SignalServer\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"host\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"reconnectIn\":{\"type\":\"int32\",\"id\":4,\"comment\":null},\"connectionStarted\":{\"type\":\"int32\",\"id\":5,\"comment\":null},\"lastStateChange\":{\"type\":\"int32\",\"id\":6,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToSignalTraceResponse\":{\"fields\":{\"events\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToSpacesRequest\":{\"fields\":{\"spaceKeys\":{\"rule\":\"repeated\",\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToSpacesResponse\":{\"fields\":{\"spaces\":{\"rule\":\"repeated\",\"type\":\"SpaceInfo\",\"id\":1,\"comment\":null}},\"nested\":{\"SpaceInfo\":{\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"isOpen\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"timeframe\":{\"type\":\"dxos.echo.timeframe.TimeframeVector\",\"id\":3,\"comment\":null},\"genesisFeed\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":null},\"controlFeed\":{\"type\":\"dxos.keys.PublicKey\",\"id\":5,\"comment\":null},\"dataFeed\":{\"type\":\"dxos.keys.PublicKey\",\"id\":6,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToSwarmInfoRequest\":{\"fields\":{},\"comment\":null},\"SubscribeToSwarmInfoResponse\":{\"fields\":{\"data\":{\"rule\":\"repeated\",\"type\":\"SwarmInfo\",\"id\":1,\"comment\":null}},\"comment\":null},\"TracingService\":{\"methods\":{\"SetTracingOptions\":{\"requestType\":\"SetTracingOptionsRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"SubscribeToRpcTrace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"dxos.rpc.RpcMessage\",\"responseStream\":true,\"comment\":null}},\"comment\":null}}},\"swarm\":{\"nested\":{\"ConnectionEvent\":{\"oneofs\":{\"_newState\":{\"oneof\":[\"newState\"]},\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"type\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"newState\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ConnectionInfo\":{\"oneofs\":{\"_transport\":{\"oneof\":[\"transport\"]}},\"fields\":{\"state\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"sessionId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"remotePeerId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null},\"transport\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"protocolExtensions\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":5,\"comment\":null},\"events\":{\"rule\":\"repeated\",\"type\":\"ConnectionEvent\",\"id\":6,\"comment\":null}},\"comment\":null},\"SwarmInfo\":{\"oneofs\":{\"_label\":{\"oneof\":[\"label\"]}},\"fields\":{\"id\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"topic\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"label\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"isActive\":{\"type\":\"bool\",\"id\":4,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"ConnectionInfo\",\"id\":5,\"comment\":null}},\"comment\":null}}}}},\"echo\":{\"nested\":{\"feed\":{\"nested\":{\"CredentialsMessage\":{\"fields\":{\"credential\":{\"type\":\"dxos.halo.credentials.Credential\",\"id\":1,\"comment\":null}},\"comment\":\"A container for dxos.credentials.Message\"},\"EchoEnvelope\":{\"oneofs\":{\"_genesis\":{\"oneof\":[\"genesis\"]},\"_itemMutation\":{\"oneof\":[\"itemMutation\"]},\"_mutation\":{\"oneof\":[\"mutation\"]},\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"genesis\":{\"type\":\"ItemGenesis\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"itemMutation\":{\"type\":\"ItemMutation\",\"id\":11,\"options\":{\"proto3_optional\":true},\"comment\":null},\"mutation\":{\"type\":\"bytes\",\"id\":12,\"options\":{\"proto3_optional\":true},\"comment\":null},\"snapshot\":{\"type\":\"snapshot.ModelSnapshot\",\"id\":13,\"options\":{\"proto3_optional\":true},\"comment\":\"Set the model to the provided snapshot.\"}},\"comment\":null},\"FeedMessage\":{\"fields\":{\"timeframe\":{\"type\":\"dxos.echo.timeframe.TimeframeVector\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":\"Outer message type decoded by Codec.\\nThis is what is written to the feeds.\"},\"ItemGenesis\":{\"oneofs\":{\"_itemType\":{\"oneof\":[\"itemType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_link\":{\"oneof\":[\"link\"]}},\"fields\":{\"itemType\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"link\":{\"type\":\"LinkData\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ItemMutation\":{\"oneofs\":{\"_parentId\":{\"oneof\":[\"parentId\"]},\"_action\":{\"oneof\":[\"action\"]}},\"fields\":{\"parentId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"action\":{\"type\":\"Action\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Action\":{\"values\":{\"NOOP\":0,\"DELETE\":1,\"RESTORE\":2},\"comment\":null,\"comments\":{\"NOOP\":null,\"DELETE\":null,\"RESTORE\":null}}},\"comment\":\"Item mutation.\"},\"LinkData\":{\"fields\":{\"source\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"target\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"metadata\":{\"nested\":{\"EchoMetadata\":{\"oneofs\":{\"_identity\":{\"oneof\":[\"identity\"]}},\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Version number that is inceremnted every time there's a breaking change to the storage schema.\\nThis is used to detect if the storage schema has changed since the last time the client was run.\\nLoading data from a different version will might result in an error.\"},\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":2,\"comment\":null},\"updated\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"comment\":null},\"identity\":{\"type\":\"dxos.halo.credentials.IdentityRecord\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"spaces\":{\"rule\":\"repeated\",\"type\":\"SpaceMetadata\",\"id\":11,\"comment\":\"List of the data spaces.\"}},\"comment\":null},\"SpaceMetadata\":{\"oneofs\":{\"_genesisFeedKey\":{\"oneof\":[\"genesisFeedKey\"]},\"_controlFeedKey\":{\"oneof\":[\"controlFeedKey\"]},\"_dataFeedKey\":{\"oneof\":[\"dataFeedKey\"]},\"_latestTimeframe\":{\"oneof\":[\"latestTimeframe\"]}},\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"Space key.\"},\"genesisFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"controlFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the wriatable control feed.\"},\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"List of all feed associated with the space.\"},\"dataFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the wriatable data feed.\"},\"latestTimeframe\":{\"type\":\"timeframe.TimeframeVector\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}}},\"model\":{\"nested\":{\"messenger\":{\"nested\":{\"Message\":{\"fields\":{\"timestamp\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"text\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"sender\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null}}},\"object\":{\"nested\":{\"Array\":{\"fields\":{\"values\":{\"rule\":\"repeated\",\"type\":\"Value\",\"id\":1,\"comment\":null}},\"comment\":\"Ordered collection of values.\"},\"KeyValue\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"Value\",\"id\":2,\"comment\":null}},\"comment\":\"Key x Value tuple.\"},\"KeyValueObject\":{\"fields\":{\"properties\":{\"rule\":\"repeated\",\"type\":\"KeyValue\",\"id\":1,\"comment\":null}},\"comment\":\"Object data definition.\"},\"ObjectMutation\":{\"oneofs\":{\"_value\":{\"oneof\":[\"value\"]}},\"fields\":{\"operation\":{\"type\":\"Operation\",\"id\":1,\"comment\":null},\"key\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"value\":{\"type\":\"Value\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Operation\":{\"values\":{\"SET\":0,\"DELETE\":1,\"ARRAY_PUSH\":2,\"SET_ADD\":4,\"SET_DELETE\":5},\"comment\":null,\"comments\":{\"SET\":null,\"DELETE\":null,\"ARRAY_PUSH\":null,\"SET_ADD\":null,\"SET_DELETE\":null}}},\"comment\":\"Atomic mutation.\"},\"ObjectMutationSet\":{\"fields\":{\"mutations\":{\"rule\":\"repeated\",\"type\":\"ObjectMutation\",\"id\":1,\"comment\":null}},\"comment\":\"Set of mutations.\"},\"ObjectSnapshot\":{\"fields\":{\"root\":{\"type\":\"Value\",\"id\":1,\"comment\":null}},\"comment\":\"State snapshot.\"},\"Predicate\":{\"oneofs\":{\"_key\":{\"oneof\":[\"key\"]},\"_value\":{\"oneof\":[\"value\"]}},\"fields\":{\"op\":{\"type\":\"Operation\",\"id\":1,\"comment\":null},\"key\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"value\":{\"type\":\"Value\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"predicates\":{\"rule\":\"repeated\",\"type\":\"Predicate\",\"id\":4,\"comment\":null}},\"nested\":{\"Operation\":{\"values\":{\"OR\":0,\"AND\":1,\"NOT\":2,\"IN\":10,\"EQUALS\":11,\"GTE\":12,\"GT\":13,\"LTE\":14,\"LT\":15,\"PREFIX_MATCH\":20,\"TEXT_MATCH\":21},\"comment\":null,\"comments\":{\"OR\":null,\"AND\":null,\"NOT\":null,\"IN\":null,\"EQUALS\":null,\"GTE\":null,\"GT\":null,\"LTE\":null,\"LT\":null,\"PREFIX_MATCH\":null,\"TEXT_MATCH\":null}}},\"comment\":\"Query predicate.\"},\"Query\":{\"fields\":{\"root\":{\"type\":\"Predicate\",\"id\":1,\"comment\":null}},\"comment\":\"Query.\"},\"Value\":{\"oneofs\":{\"Type\":{\"oneof\":[\"null\",\"bool\",\"int\",\"float\",\"string\",\"timestamp\",\"datetime\",\"bytes\",\"object\",\"array\"],\"comment\":null}},\"fields\":{\"null\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"bool\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"int\":{\"type\":\"int64\",\"id\":3,\"comment\":null},\"float\":{\"type\":\"float\",\"id\":4,\"comment\":null},\"string\":{\"type\":\"string\",\"id\":5,\"comment\":null},\"timestamp\":{\"type\":\"string\",\"id\":10,\"comment\":null},\"datetime\":{\"type\":\"string\",\"id\":11,\"comment\":null},\"bytes\":{\"type\":\"bytes\",\"id\":12,\"comment\":null},\"object\":{\"type\":\"KeyValueObject\",\"id\":20,\"comment\":null},\"array\":{\"type\":\"Array\",\"id\":21,\"comment\":null}},\"comment\":\"Generic value.\"}}},\"text\":{\"nested\":{\"Mutation\":{\"fields\":{\"update\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"clientId\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"Snapshot\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}}}}},\"service\":{\"nested\":{\"DataService\":{\"methods\":{\"SubscribeEntitySet\":{\"requestType\":\"SubscribeEntitySetRequest\",\"responseType\":\"SubscribeEntitySetResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeEntityStream\":{\"requestType\":\"SubscribeEntityStreamRequest\",\"responseType\":\"SubscribeEntityStreamResponse\",\"responseStream\":true,\"comment\":null},\"Write\":{\"requestType\":\"WriteRequest\",\"responseType\":\"MutationReceipt\",\"comment\":null}},\"comment\":null},\"MutationReceipt\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetResponse\":{\"fields\":{\"added\":{\"rule\":\"repeated\",\"type\":\"feed.EchoEnvelope\",\"id\":1,\"comment\":null},\"deleted\":{\"rule\":\"repeated\",\"type\":\"feed.EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"itemId\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamResponse\":{\"oneofs\":{\"kind\":{\"oneof\":[\"snapshot\",\"mutation\"],\"comment\":null}},\"fields\":{\"snapshot\":{\"type\":\"snapshot.ItemSnapshot\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"Mutation\",\"id\":2,\"comment\":null}},\"nested\":{\"Mutation\":{\"fields\":{\"data\":{\"type\":\"feed.EchoEnvelope\",\"id\":1,\"comment\":null},\"meta\":{\"type\":\"Metadata\",\"id\":2,\"comment\":null}},\"nested\":{\"Metadata\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"memberKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null},\"timeframe\":{\"type\":\"timeframe.TimeframeVector\",\"id\":4,\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null},\"WriteRequest\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"feed.EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"snapshot\":{\"nested\":{\"DatabaseSnapshot\":{\"fields\":{\"items\":{\"rule\":\"repeated\",\"type\":\"ItemSnapshot\",\"id\":1,\"comment\":null},\"links\":{\"rule\":\"repeated\",\"type\":\"LinkSnapshot\",\"id\":2,\"comment\":null}},\"comment\":null},\"HaloStateSnapshot\":{\"fields\":{\"messages\":{\"rule\":\"repeated\",\"type\":\"dxos.halo.signed.Message\",\"id\":1,\"comment\":null}},\"comment\":null},\"ItemSnapshot\":{\"oneofs\":{\"_itemId\":{\"oneof\":[\"itemId\"]},\"_itemType\":{\"oneof\":[\"itemType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_parentId\":{\"oneof\":[\"parentId\"]},\"_model\":{\"oneof\":[\"model\"]}},\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"itemType\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"parentId\":{\"type\":\"string\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"LinkSnapshot\":{\"oneofs\":{\"_linkId\":{\"oneof\":[\"linkId\"]},\"_linkType\":{\"oneof\":[\"linkType\"]},\"_modelVersion\":{\"oneof\":[\"modelVersion\"]},\"_model\":{\"oneof\":[\"model\"]}},\"fields\":{\"linkId\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"linkType\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"source\":{\"type\":\"string\",\"id\":5,\"comment\":null},\"target\":{\"type\":\"string\",\"id\":6,\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ModelMutation\":{\"fields\":{\"mutation\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"meta\":{\"type\":\"ModelMutationMeta\",\"id\":2,\"comment\":null}},\"comment\":null},\"ModelMutationMeta\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null},\"memberKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null}},\"comment\":null},\"ModelSnapshot\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Encoded model snapshot (defined by the model's codec).\\nIf undefined the state machine will be initialized with it's default state.\"},\"mutations\":{\"rule\":\"repeated\",\"type\":\"ModelMutation\",\"id\":2,\"comment\":\"Mutations to be applied on top of the snapshot, or on top of initial state if the snapshot is undefined.\"}},\"comment\":null},\"SpaceSnapshot\":{\"oneofs\":{\"_timeframe\":{\"oneof\":[\"timeframe\"]},\"_timestamp\":{\"oneof\":[\"timestamp\"]}},\"fields\":{\"spaceKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"timeframe\":{\"type\":\"timeframe.TimeframeVector\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"timestamp\":{\"type\":\"int32\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"halo\":{\"type\":\"HaloStateSnapshot\",\"id\":11,\"comment\":null},\"database\":{\"type\":\"DatabaseSnapshot\",\"id\":12,\"comment\":null}},\"comment\":null}}},\"timeframe\":{\"nested\":{\"TimeframeVector\":{\"fields\":{\"frames\":{\"rule\":\"repeated\",\"type\":\"Frame\",\"id\":1,\"comment\":null}},\"nested\":{\"Frame\":{\"fields\":{\"feedKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":\"Vector timestamp used to order messages.\"}}}}},\"gravity\":{\"nested\":{\"AcceptSpaceInvitationCommand\":{\"fields\":{\"swarmKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"AgentSpec\":{\"oneofs\":{\"_version\":{\"oneof\":[\"version\"]},\"_stateMachine\":{\"oneof\":[\"stateMachine\"]},\"_startSequence\":{\"oneof\":[\"startSequence\"]},\"_stopSequence\":{\"oneof\":[\"stopSequence\"]}},\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"stateMachine\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"startSequence\":{\"type\":\"CommandSequence\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"stopSequence\":{\"type\":\"CommandSequence\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"testSequences\":{\"rule\":\"repeated\",\"type\":\"CommandSequence\",\"id\":5,\"comment\":null}},\"comment\":\"Root specification for Agent.\"},\"Command\":{\"oneofs\":{\"Cmd\":{\"oneof\":[\"createProfile\",\"createSpace\",\"createSpaceInvitation\",\"acceptSpaceInvitation\"],\"comment\":null}},\"fields\":{\"createProfile\":{\"type\":\"CreateProfileCommand\",\"id\":1,\"comment\":null},\"createSpace\":{\"type\":\"CreateSpaceCommand\",\"id\":2,\"comment\":null},\"createSpaceInvitation\":{\"type\":\"CreateSpaceInvitationCommand\",\"id\":3,\"comment\":null},\"acceptSpaceInvitation\":{\"type\":\"AcceptSpaceInvitationCommand\",\"id\":4,\"comment\":null}},\"comment\":\"Atomic async command.\"},\"CommandSequence\":{\"fields\":{\"commands\":{\"rule\":\"repeated\",\"type\":\"Command\",\"id\":1,\"comment\":null}},\"comment\":\"Commands that must be run sequentially.\"},\"CreateProfileCommand\":{\"fields\":{},\"comment\":null},\"CreateSpaceCommand\":{\"oneofs\":{\"_id\":{\"oneof\":[\"id\"]}},\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"CreateSpaceInvitationCommand\":{\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"swarmKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"halo\":{\"nested\":{\"credentials\":{\"nested\":{\"AdmittedFeed\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"Owning identity.\"},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null},\"designation\":{\"type\":\"Designation\",\"id\":4,\"comment\":\"Feeds with different designations are consumed by separate pipelines.\"}},\"nested\":{\"Designation\":{\"values\":{\"GENERAL\":0,\"CONTROL\":1,\"DATA\":2},\"comment\":null,\"comments\":{\"GENERAL\":\"Classic general purpose feeds for both HALO and ECHO messages together. To be deprecated.\",\"CONTROL\":\"Contain system-level messages messages, such as credentials and epochs.\",\"DATA\":\"Database mutations.\"}}},\"comment\":null},\"auth\":{\"nested\":{\"Auth\":{\"oneofs\":{\"_feedKey\":{\"oneof\":[\"feedKey\"]},\"_feedAdmit\":{\"oneof\":[\"feedAdmit\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"The publicKey of the target Space for these credentials.\"},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"The publicKey of the authenticating Device.\"},\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedAdmit\":{\"type\":\"google.protobuf.Any\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"FeedAdmit message to the should be written to a control feed in case the `feed_key` is not admitted to the space.\"}},\"comment\":\"The payload for a SignedMessage sent during handshake for replication authentication.\"}}},\"Auth\":{\"fields\":{},\"comment\":\"Assertion for agents authenticating in the space swarm.\"},\"AuthorizedDevice\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"Chain\":{\"fields\":{\"credential\":{\"type\":\"Credential\",\"id\":1,\"comment\":\"Credential that authorizes the subject to issue new credentials (can be recursive).\"}},\"comment\":\"A chain of credentials that establishes the delegated authority to issue new credentials.\\nEach key in the chain has an assotiated credential that establishes the authrity of that specific key.\\n\\nExample:\\nAlice/Device-2 => Alice/Device-1 => Alice\\n\\nThis chain would include 2 credentials:\\n1. Giving Alice/Device-2 the authority to issue credentials on behalf of Alice, signed by Alice/Device-1.\\n2. Giving Alice/Device-1 the authority to issue credentials on behalf of Alice, signed by Alice.\"},\"Claim\":{\"fields\":{\"id\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"assertion\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":null},\"Credential\":{\"oneofs\":{\"_id\":{\"oneof\":[\"id\"]},\"_expirationDate\":{\"oneof\":[\"expirationDate\"]},\"_expirationRef\":{\"oneof\":[\"expirationRef\"]}},\"fields\":{\"id\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"issuer\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"issuanceDate\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"comment\":null},\"expirationDate\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"expirationRef\":{\"type\":\"bytes\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"subject\":{\"type\":\"Claim\",\"id\":10,\"comment\":null},\"proof\":{\"type\":\"Proof\",\"id\":11,\"comment\":null}},\"comment\":null},\"greet\":{\"nested\":{\"BeginResponse\":{\"fields\":{\"info\":{\"keyType\":\"string\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"ClaimResponse\":{\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"rendezvousKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Command\":{\"oneofs\":{\"_secret\":{\"oneof\":[\"secret\"]}},\"fields\":{\"command\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"secret\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"params\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":null}},\"nested\":{\"Type\":{\"values\":{\"BEGIN\":0,\"HANDSHAKE\":1,\"NOTARIZE\":2,\"FINISH\":3,\"CLAIM\":10},\"comment\":null,\"comments\":{\"BEGIN\":null,\"HANDSHAKE\":null,\"NOTARIZE\":null,\"FINISH\":null,\"CLAIM\":null}}},\"comment\":\"A Greeter command.\"},\"HandshakeResponse\":{\"fields\":{\"nonce\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyHint\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"type\":{\"type\":\"keys.KeyType\",\"id\":2,\"comment\":null}},\"comment\":null},\"NotarizeResponse\":{\"fields\":{\"copies\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null},\"genesisFeed\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null}},\"comment\":null}}},\"HaloSpace\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"haloKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"Space key.\"}},\"comment\":\"[ASSERTION]: Associtaes a space that will implement Agent's HALO with an Identity.\"},\"identity\":{\"nested\":{\"DeviceInfo\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"IdentityInfo\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"IdentityProfile\":{\"fields\":{\"profile\":{\"type\":\"ProfileDocument\",\"id\":1,\"comment\":null}},\"comment\":\"[ASSERTION]: Sets profile information.\"},\"IdentityRecord\":{\"oneofs\":{\"_profileSpace\":{\"oneof\":[\"profileSpace\"]},\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"haloSpace\":{\"type\":\"SpaceRecord\",\"id\":3,\"comment\":null},\"profileSpace\":{\"type\":\"SpaceRecord\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"TODO(burdon): Not yet implemented. Must be null.\"},\"profile\":{\"type\":\"ProfileDocument\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Cached profile.\"}},\"comment\":\"Information needed to bootstrap an Identity.\"},\"IdentityRecovery\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"recoveryKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"Public key derrived from the recovery seedphrase.\"}},\"comment\":\"[ASSERTION]: Grants recovery permissions to a recovery key.\"},\"KeyInfo\":{\"oneofs\":{\"_name\":{\"oneof\":[\"name\"]}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":\"Subject must be a key being referenced.\"},\"Presentation\":{\"fields\":{\"credentials\":{\"rule\":\"repeated\",\"type\":\"Credential\",\"id\":1,\"comment\":null},\"proofs\":{\"rule\":\"repeated\",\"type\":\"Proof\",\"id\":2,\"comment\":null}},\"comment\":null},\"ProfileDocument\":{\"oneofs\":{\"_displayName\":{\"oneof\":[\"displayName\"]},\"_avatarCid\":{\"oneof\":[\"avatarCid\"]}},\"fields\":{\"displayName\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"avatarCid\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Proof\":{\"oneofs\":{\"_nonce\":{\"oneof\":[\"nonce\"]},\"_chain\":{\"oneof\":[\"chain\"]}},\"fields\":{\"type\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"creationDate\":{\"type\":\"google.protobuf.Timestamp\",\"id\":2,\"comment\":null},\"signer\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null},\"nonce\":{\"type\":\"bytes\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"value\":{\"type\":\"bytes\",\"id\":5,\"comment\":\"Signature (excluded from signed data).\"},\"chain\":{\"type\":\"Chain\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Must be present if signer is not credential issuer.\\nEstablishes the authority of the signer. Proves that the signer can issue such credentials.\\nExcluded from signed data.\"}},\"comment\":null},\"SpaceGenesis\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SpaceMember\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"role\":{\"type\":\"Role\",\"id\":2,\"comment\":null},\"profile\":{\"type\":\"ProfileDocument\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"genesisFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":\"Genesis feed of the space. Needed so that the admitted member can start replicating the space based on this credential alone.\"}},\"nested\":{\"Role\":{\"values\":{\"INVALID\":0,\"ADMIN\":1,\"MEMBER\":2,\"READER\":3},\"comment\":null,\"comments\":{\"INVALID\":null,\"ADMIN\":\"Manage members.\",\"MEMBER\":\"Read and write.\",\"READER\":\"Read-only.\"}}},\"comment\":null},\"SpaceRecord\":{\"fields\":{\"spaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"genesisFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"This is the root feed of that structure.\"},\"writeControlFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":\"Keyring must have the associated private key.\"},\"writeDataFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":\"Keyring must have the associated private key.\"}},\"comment\":\"Information needed to bootstrap a Space.\"}}},\"invitations\":{\"nested\":{\"AuthenticationRequest\":{\"fields\":{\"authenticationCode\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"AuthenticationResponse\":{\"oneofs\":{\"_status\":{\"oneof\":[\"status\"]}},\"fields\":{\"status\":{\"type\":\"Status\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Status\":{\"values\":{\"OK\":0,\"INVALID_OTP\":1,\"INVALID_OPT_ATTEMPTS\":2},\"comment\":null,\"comments\":{\"OK\":null,\"INVALID_OTP\":null,\"INVALID_OPT_ATTEMPTS\":null}}},\"comment\":null},\"HaloAdmissionCredentials\":{\"fields\":{\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"controlFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"dataFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null}},\"comment\":null},\"HaloAdmissionOffer\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"haloSpaceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"genesisFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null}},\"comment\":null},\"HaloHostService\":{\"methods\":{\"RequestAdmission\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"HaloAdmissionOffer\",\"comment\":\"Process admission offer from host.\"},\"Authenticate\":{\"requestType\":\"AuthenticationRequest\",\"responseType\":\"AuthenticationResponse\",\"comment\":\"Authenticate request.\"},\"PresentAdmissionCredentials\":{\"requestType\":\"HaloAdmissionCredentials\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Process admission request from guest.\"}},\"comment\":null},\"Introduction\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"profile\":{\"type\":\"halo.credentials.ProfileDocument\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Guest's profile.\"}},\"comment\":null},\"SpaceAdmissionCredentials\":{\"fields\":{\"credential\":{\"type\":\"dxos.halo.credentials.Credential\",\"id\":1,\"comment\":\"Credential of type `SpaceMember` that grants Guest's identity access to the space.\"}},\"comment\":null},\"SpaceAdmissionRequest\":{\"fields\":{\"identityKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"deviceKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":null},\"controlFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":null},\"dataFeedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":null}},\"comment\":null},\"SpaceHostService\":{\"methods\":{\"Introduce\":{\"requestType\":\"Introduction\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Introduce Guest to the host.\"},\"Authenticate\":{\"requestType\":\"AuthenticationRequest\",\"responseType\":\"AuthenticationResponse\",\"comment\":\"Authenticate request.\"},\"RequestAdmission\":{\"requestType\":\"SpaceAdmissionRequest\",\"responseType\":\"SpaceAdmissionCredentials\",\"comment\":\"Process admission credentials.\"}},\"comment\":null}}},\"keyring\":{\"nested\":{\"KeyRecord\":{\"oneofs\":{\"_privateKey\":{\"oneof\":[\"privateKey\"]}},\"fields\":{\"publicKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"privateKey\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}}},\"keys\":{\"nested\":{\"KeyChain\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"dxos.halo.signed.SignedMessage\",\"id\":2,\"comment\":null},\"parents\":{\"rule\":\"repeated\",\"type\":\"KeyChain\",\"id\":3,\"comment\":null}},\"comment\":null},\"KeyRecord\":{\"oneofs\":{\"_secretKey\":{\"oneof\":[\"secretKey\"]},\"_hint\":{\"oneof\":[\"hint\"]},\"_own\":{\"oneof\":[\"own\"]},\"_trusted\":{\"oneof\":[\"trusted\"]},\"_added\":{\"oneof\":[\"added\"]},\"_created\":{\"oneof\":[\"created\"]}},\"fields\":{\"type\":{\"type\":\"KeyType\",\"id\":1,\"comment\":\"The `KeyType` type of the key. This is often unknown for keys from other sources.\"},\"publicKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"The public key as a Buffer (required).\"},\"secretKey\":{\"type\":\"dxos.keys.PrivateKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"The secret key as a Buffer (this will never be visible outside the Keyring).\"},\"hint\":{\"type\":\"bool\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Is this key from a Greeting \\\"hint\\\"?\"},\"own\":{\"type\":\"bool\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Determines if this is our key?\\nUsually true if `secret_key` is present; may be false for \\\"inception keys\\\" such as the Space key.\"},\"trusted\":{\"type\":\"bool\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Is this key to be trusted?\"},\"added\":{\"type\":\"string\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":\"An RFC-3339 date/time string for when the key was added to the Keyring.\"},\"created\":{\"type\":\"string\",\"id\":8,\"options\":{\"proto3_optional\":true},\"comment\":\"An RFC-3339 date/time string for when the key was created.\"}},\"comment\":null},\"KeyRecordList\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"KeyType\":{\"values\":{\"UNKNOWN\":0,\"IDENTITY\":1,\"DEVICE\":2,\"SPACE\":3,\"FEED\":4,\"DXNS_ADDRESS\":5},\"comment\":null,\"comments\":{\"UNKNOWN\":null,\"IDENTITY\":null,\"DEVICE\":null,\"SPACE\":null,\"FEED\":null,\"DXNS_ADDRESS\":null}}}},\"signed\":{\"nested\":{\"Message\":{\"fields\":{\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"SignedMessage\":{\"fields\":{\"signed\":{\"type\":\"Signed\",\"id\":1,\"comment\":\"The signed message contents.\"},\"signatures\":{\"rule\":\"repeated\",\"type\":\"Signature\",\"id\":2,\"comment\":\"An array of Signatures, one for each key that signed the message.\"}},\"nested\":{\"Signature\":{\"oneofs\":{\"_keyChain\":{\"oneof\":[\"keyChain\"]}},\"fields\":{\"key\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"The publicKey of the keypair that made this signature.\"},\"signature\":{\"type\":\"bytes\",\"id\":2,\"comment\":\"The bytes of the signature.\"},\"keyChain\":{\"type\":\"keys.KeyChain\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"The certification chain of SignedMessages for this key.\"}},\"comment\":null},\"Signed\":{\"fields\":{\"created\":{\"type\":\"string\",\"id\":1,\"comment\":\"RFC-3339 datetime string.\"},\"nonce\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":\"The payload to be signed.\"}},\"comment\":null}},\"comment\":\"A generic container message used whenever messages are signed (e.g. SpaceCredential)\"}}}}},\"iframe\":{\"nested\":{\"IframeService\":{\"methods\":{\"Heartbeat\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Worker-to-iframe RPCs.\"},\"StartRequest\":{\"fields\":{\"origin\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"WorkerService\":{\"methods\":{\"Start\":{\"requestType\":\"StartRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"Stop\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Iframe-to-worker RPCs.\"}}},\"keys\":{\"nested\":{\"PrivateKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"PublicKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"mesh\":{\"nested\":{\"bridge\":{\"nested\":{\"BridgeEvent\":{\"oneofs\":{\"type\":{\"oneof\":[\"connection\",\"signal\",\"data\"],\"comment\":null}},\"fields\":{\"connection\":{\"type\":\"ConnectionEvent\",\"id\":1,\"comment\":null},\"signal\":{\"type\":\"SignalEvent\",\"id\":2,\"comment\":null},\"data\":{\"type\":\"DataEvent\",\"id\":3,\"comment\":null}},\"nested\":{\"ConnectionEvent\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"state\":{\"type\":\"ConnectionState\",\"id\":1,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"DataEvent\":{\"fields\":{\"payload\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"SignalEvent\":{\"fields\":{\"payload\":{\"type\":\"dxos.mesh.swarm.Signal\",\"id\":1,\"comment\":null}},\"comment\":null}},\"comment\":null},\"BridgeService\":{\"methods\":{\"Open\":{\"requestType\":\"ConnectionRequest\",\"responseType\":\"BridgeEvent\",\"responseStream\":true,\"comment\":\"\"},\"SendSignal\":{\"requestType\":\"SignalRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"\"},\"SendData\":{\"requestType\":\"DataRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"\"},\"Close\":{\"requestType\":\"CloseRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"\"}},\"comment\":null},\"CloseRequest\":{\"fields\":{\"proxyId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"ConnectionRequest\":{\"fields\":{\"proxyId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"initiator\":{\"type\":\"bool\",\"id\":2,\"comment\":null}},\"comment\":null},\"ConnectionState\":{\"values\":{\"INVALID\":0,\"CONNECTING\":1,\"CONNECTED\":2,\"CLOSED\":3},\"comment\":null,\"comments\":{\"INVALID\":null,\"CONNECTING\":null,\"CONNECTED\":null,\"CLOSED\":null}},\"DataRequest\":{\"fields\":{\"proxyId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"SignalRequest\":{\"fields\":{\"proxyId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"signal\":{\"type\":\"dxos.mesh.swarm.Signal\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"broadcast\":{\"nested\":{\"Packet\":{\"oneofs\":{\"_from\":{\"oneof\":[\"from\"]}},\"fields\":{\"seq\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"origin\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"from\":{\"type\":\"bytes\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"data\":{\"type\":\"bytes\",\"id\":4,\"comment\":null}},\"comment\":null}}},\"messaging\":{\"nested\":{\"Acknowledgement\":{\"fields\":{\"messageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"MessageId of the Message that is being acknowledged.\"}},\"comment\":null},\"ReliablePayload\":{\"fields\":{\"messageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":\"Unique message identifier. Used for Acknolegment.\"},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":\"Payload for signal server netwrok.\"}},\"comment\":null}}},\"muxer\":{\"nested\":{\"Command\":{\"oneofs\":{\"payload\":{\"oneof\":[\"openChannel\",\"data\",\"destroy\"],\"comment\":null}},\"fields\":{\"openChannel\":{\"type\":\"OpenChannel\",\"id\":1,\"comment\":null},\"data\":{\"type\":\"Data\",\"id\":2,\"comment\":null},\"destroy\":{\"type\":\"Destroy\",\"id\":3,\"comment\":null}},\"comment\":\"Root type for messages sent over the stream.\"},\"Data\":{\"fields\":{\"channelId\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Identifier for the channel as assigned by the remote peer.\\nNOTE: An OpenChannel message must received before any data is sent on a channel.\\nAny data messages sent before that, should be ignored.\"},\"data\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Destroy\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]}},\"fields\":{\"error\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Error that caused the termination.\"}},\"comment\":\"Terminate the connection. The other peer can expect the connection to be closed.\"},\"OpenChannel\":{\"oneofs\":{\"_contentType\":{\"oneof\":[\"contentType\"]}},\"fields\":{\"id\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Session-specific ID for the channel.\"},\"tag\":{\"type\":\"string\",\"id\":2,\"comment\":\"Stable identifier for the channel that is agreed upon by both peers.\"},\"contentType\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Optional Mime-type or URL describing the protocol that is hosted ober this stream. Used for introspection.\"}},\"comment\":\"Notify the remote peer that we are opening a channel.\\n\\nMeans that we are ready to receive data on the channel.\\nThe remote peer could now send data messages with this channel id that will be atributed to this channel.\\n\\nThe local peer must buffer any data messages until the remote peer replies with OpenChannel for this tag.\"}}},\"presence\":{\"nested\":{\"Alive\":{\"oneofs\":{\"_metadata\":{\"oneof\":[\"metadata\"]}},\"fields\":{\"peerId\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"Connection\",\"id\":2,\"comment\":null},\"metadata\":{\"type\":\"bytes\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Connection\":{\"oneofs\":{\"_initiator\":{\"oneof\":[\"initiator\"]}},\"fields\":{\"peerId\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"initiator\":{\"type\":\"bool\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null}}},\"protocol\":{\"nested\":{\"Buffer\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"Error\":{\"fields\":{\"code\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"Message\":{\"fields\":{\"nmId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"nmResponse\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"nmEphemeral\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"nmData\":{\"type\":\"google.protobuf.Any\",\"id\":4,\"comment\":null}},\"comment\":null}}},\"replicator\":{\"nested\":{\"Container\":{\"fields\":{\"type\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"data\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":null},\"Feed\":{\"oneofs\":{\"_key\":{\"oneof\":[\"key\"]},\"_discoveryKey\":{\"oneof\":[\"discoveryKey\"]}},\"fields\":{\"key\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"discoveryKey\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}}},\"signal\":{\"options\":{\"go_package\":\"github.com/dxos/kube/go/signal/pb\"},\"nested\":{\"HostEvent\":{\"oneofs\":{\"event\":{\"oneof\":[\"peerAvailable\"],\"comment\":null}},\"fields\":{\"peerAvailable\":{\"type\":\"SwarmEvent.PeerAvailable\",\"id\":1,\"comment\":null}},\"comment\":\"Goes on a Pub/Sub host topic.\"},\"JoinRequest\":{\"fields\":{\"swarm\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"peer\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"Message\":{\"fields\":{\"author\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"recipient\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":3,\"comment\":null}},\"comment\":null},\"PeerEvent\":{\"oneofs\":{\"event\":{\"oneof\":[\"message\"],\"comment\":null}},\"fields\":{\"message\":{\"type\":\"Message\",\"id\":1,\"comment\":null}},\"comment\":\"Goes on Pub/Sub peer topic.\"},\"ReceptionRequest\":{\"fields\":{\"peer\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"Signal\":{\"methods\":{\"Join\":{\"requestType\":\"JoinRequest\",\"responseType\":\"SwarmEvent\",\"responseStream\":true,\"comment\":null},\"ReceiveMessages\":{\"requestType\":\"ReceptionRequest\",\"responseType\":\"Message\",\"responseStream\":true,\"comment\":null},\"SendMessage\":{\"requestType\":\"Message\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"SwarmEvent\":{\"oneofs\":{\"event\":{\"oneof\":[\"peerAvailable\",\"peerLeft\"],\"comment\":null}},\"fields\":{\"peerAvailable\":{\"type\":\"PeerAvailable\",\"id\":1,\"comment\":\"The peer was announced as available on the swarm.\"},\"peerLeft\":{\"type\":\"PeerLeft\",\"id\":2,\"comment\":\"The peer left, or their announcement timed out.\"}},\"nested\":{\"PeerAvailable\":{\"oneofs\":{\"_until\":{\"oneof\":[\"until\"]},\"_announceBackToHost\":{\"oneof\":[\"announceBackToHost\"]}},\"fields\":{\"peer\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"since\":{\"type\":\"google.protobuf.Timestamp\",\"id\":2,\"comment\":null},\"until\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null},\"announceBackToHost\":{\"type\":\"bytes\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Only relevant in Pub/Sub. Optional, the host topic to eagerly send PeerAvailable messages back to.\"}},\"comment\":null},\"PeerLeft\":{\"fields\":{\"peer\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}},\"comment\":\"Goes on Pub/Sub swarm topic and as a Join stream in RPC.\"}}},\"swarm\":{\"nested\":{\"Answer\":{\"oneofs\":{\"_offerMessageId\":{\"oneof\":[\"offerMessageId\"]}},\"fields\":{\"accept\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"offerMessageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"MessageId of the Offer being answered.\"}},\"comment\":null},\"MessageData\":{\"oneofs\":{\"payload\":{\"oneof\":[\"offer\",\"answer\",\"signal\"],\"comment\":null}},\"fields\":{\"offer\":{\"type\":\"Offer\",\"id\":1,\"comment\":null},\"answer\":{\"type\":\"Answer\",\"id\":2,\"comment\":null},\"signal\":{\"type\":\"Signal\",\"id\":3,\"comment\":null}},\"comment\":null},\"Offer\":{\"fields\":{},\"comment\":null},\"Signal\":{\"fields\":{\"payload\":{\"type\":\"google.protobuf.Struct\",\"id\":1,\"comment\":null}},\"comment\":null},\"SwarmMessage\":{\"fields\":{\"topic\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":\"Swarm identefier.\"},\"sessionId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":4,\"comment\":\"Unique connection identifier.\"},\"data\":{\"type\":\"MessageData\",\"id\":5,\"comment\":\"Message payload.\"},\"messageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":6,\"comment\":\"Unique message identifier. Used for Acknolegment and matching Anwers to Offers.\"}},\"comment\":null}}},\"teleport\":{\"nested\":{\"control\":{\"nested\":{\"ControlService\":{\"methods\":{\"RegisterExtension\":{\"requestType\":\"RegisterExtensionRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"Heartbeat\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Controls the lifycycle of the teleport session and its exentsions.\"},\"RegisterExtensionRequest\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"comment\":\"Must not contain slashes: /[\\\\w_.]+/. Example: `dxos.mesh.teleport.control`.\"}},\"comment\":null}}},\"presence\":{\"nested\":{\"PeerState\":{\"fields\":{\"peerId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"dxos.keys.PublicKey\",\"id\":2,\"comment\":\"Will be used to build network graph\"},\"messageId\":{\"type\":\"dxos.keys.PublicKey\",\"id\":3,\"comment\":\"Peer tracks what had been sent by message id\"},\"timestamp\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"comment\":null}},\"comment\":null},\"PresenceService\":{\"methods\":{\"Announce\":{\"requestType\":\"PeerState\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null}}},\"replicator\":{\"nested\":{\"FeedInfo\":{\"fields\":{\"feedKey\":{\"type\":\"dxos.keys.PublicKey\",\"id\":1,\"comment\":null},\"download\":{\"type\":\"bool\",\"id\":2,\"comment\":\"set if the peer whishes to download the data from the feed.\"},\"upload\":{\"type\":\"bool\",\"id\":3,\"comment\":\"set if the peer whishes to updload the data from the feed.\"}},\"comment\":null},\"ReplicatorService\":{\"methods\":{\"UpdateFeeds\":{\"requestType\":\"UpdateFeedsRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Notify about available feeds.\"},\"StartReplication\":{\"requestType\":\"StartReplicationRequest\",\"responseType\":\"StartReplicationResponse\",\"comment\":\"Start replicating feed. If this feed is already being replicated, the existing replication session must be stopped.\"},\"StopReplication\":{\"requestType\":\"StopReplicationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Stop replicating feed.\"}},\"comment\":\"RPC verbs for replication teleport extension.\\nAssumes one peer is designated an initiator.\\nThe initiator will start and stop replication streams.\\nThe other peer will send updates using the UpdateFeeds method.\"},\"StartReplicationRequest\":{\"fields\":{\"info\":{\"type\":\"FeedInfo\",\"id\":1,\"comment\":null}},\"comment\":null},\"StartReplicationResponse\":{\"oneofs\":{\"_streamTag\":{\"oneof\":[\"streamTag\"]}},\"fields\":{\"streamTag\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Tag of the stream the peers will use for the replication.\\nSet to null or \\\"\\\" (empty string) of the peer does not wish to replicate the feed.\\n\\nA new stream must be open with unique tag to start replicating. Existing streams cannot be reused.\"}},\"comment\":null},\"StopReplicationRequest\":{\"fields\":{\"info\":{\"type\":\"FeedInfo\",\"id\":1,\"comment\":null}},\"comment\":null},\"UpdateFeedsRequest\":{\"fields\":{\"feeds\":{\"rule\":\"repeated\",\"type\":\"FeedInfo\",\"id\":1,\"comment\":null}},\"comment\":null}}}}}}},\"registry\":{\"nested\":{\"Record\":{\"oneofs\":{\"_created\":{\"oneof\":[\"created\"]},\"_displayName\":{\"oneof\":[\"displayName\"]},\"_description\":{\"oneof\":[\"description\"]},\"kind\":{\"oneof\":[\"type\",\"payload\"],\"comment\":null}},\"fields\":{\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Record creation timetstamp.\"},\"displayName\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Human-readable name of record.\"},\"description\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Record description.\"},\"tags\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":4,\"comment\":\"Optional record tags.\"},\"type\":{\"type\":\"Type\",\"id\":100,\"comment\":\"Type record variant.\"},\"payload\":{\"type\":\"Extension\",\"id\":101,\"comment\":\"Data record variant.\"}},\"nested\":{\"Extension\":{\"fields\":{\"typeRecord\":{\"type\":\"bytes\",\"id\":1,\"comment\":\"CID of type record.\"},\"data\":{\"type\":\"bytes\",\"id\":2,\"comment\":\"Serialized payload data.\"}},\"comment\":\"Data with a reference to a type record that defines the encoding.\"},\"Type\":{\"oneofs\":{\"_protobufIpfsCid\":{\"oneof\":[\"protobufIpfsCid\"]}},\"fields\":{\"messageName\":{\"type\":\"string\",\"id\":1,\"comment\":\"FQ protobuf message name.\"},\"protobufDefs\":{\"type\":\"google.protobuf.Struct\",\"id\":2,\"comment\":\"Set of protobuf messages encoded.\"},\"protobufIpfsCid\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"CID of protobuf source file.\"}},\"comment\":\"Types are system records that define protocol-buffer schema of other records.\"}},\"comment\":null}}},\"rpc\":{\"options\":{\"go_package\":\"github.com/dxos/kube/go/dxrpc/pb\"},\"nested\":{\"Error\":{\"oneofs\":{\"_name\":{\"oneof\":[\"name\"]},\"_message\":{\"oneof\":[\"message\"]},\"_stack\":{\"oneof\":[\"stack\"]}},\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"message\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"stack\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"MessageTrace\":{\"fields\":{\"direction\":{\"type\":\"Direction\",\"id\":1,\"comment\":null},\"data\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"nested\":{\"Direction\":{\"values\":{\"INCOMING\":0,\"OUTGOING\":1},\"comment\":null,\"comments\":{\"INCOMING\":null,\"OUTGOING\":null}}},\"comment\":null},\"Request\":{\"fields\":{\"id\":{\"type\":\"int32\",\"id\":1,\"comment\":null},\"method\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":3,\"comment\":null},\"stream\":{\"type\":\"bool\",\"id\":4,\"comment\":null}},\"comment\":null},\"Response\":{\"oneofs\":{\"content\":{\"oneof\":[\"payload\",\"error\",\"close\",\"streamReady\"],\"comment\":null}},\"fields\":{\"id\":{\"type\":\"int32\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"Error\",\"id\":3,\"comment\":null},\"close\":{\"type\":\"bool\",\"id\":4,\"comment\":\"Sent when stream is closed without an error.\"},\"streamReady\":{\"type\":\"bool\",\"id\":5,\"comment\":\"Sent when the server has processed a request with a streaming response.\\nCan be skipped by the server.\\nIn this case the first payload should be treated as the server being ready.\"}},\"comment\":null},\"RpcMessage\":{\"oneofs\":{\"content\":{\"oneof\":[\"request\",\"response\",\"open\",\"openAck\",\"streamClose\"],\"comment\":null}},\"fields\":{\"request\":{\"type\":\"Request\",\"id\":1,\"comment\":null},\"response\":{\"type\":\"Response\",\"id\":2,\"comment\":null},\"open\":{\"type\":\"bool\",\"id\":3,\"comment\":\"Means that the node is trying to open the connection.\"},\"openAck\":{\"type\":\"bool\",\"id\":4,\"comment\":\"Means that the node has received the \\\"open\\\" message and is ready to perform requests.\"},\"streamClose\":{\"type\":\"StreamClose\",\"id\":5,\"comment\":null}},\"comment\":null},\"StreamClose\":{\"fields\":{\"id\":{\"type\":\"int32\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"service\":{\"nested\":{\"publisher\":{\"options\":{\"go_package\":\"github.com/dxos/kube/publisher/pb\"},\"nested\":{\"ListResponse\":{\"fields\":{\"modules\":{\"rule\":\"repeated\",\"type\":\"dxos.config.Module\",\"id\":1,\"comment\":null}},\"comment\":null},\"Publisher\":{\"methods\":{\"Publish\":{\"requestType\":\"PublishRequest\",\"responseType\":\"PublishResponse\",\"comment\":null},\"List\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"ListResponse\",\"comment\":null},\"Reset\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"ResetResponse\",\"comment\":null}},\"comment\":null},\"PublishRequest\":{\"oneofs\":{\"_accessToken\":{\"oneof\":[\"accessToken\"]}},\"fields\":{\"package\":{\"type\":\"dxos.config.Package\",\"id\":1,\"comment\":null},\"skipExisting\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"accessToken\":{\"type\":\"string\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"PublishResponse\":{\"fields\":{\"modules\":{\"rule\":\"repeated\",\"type\":\"PublishedModule\",\"id\":1,\"comment\":null}},\"nested\":{\"PublishedModule\":{\"fields\":{\"module\":{\"type\":\"dxos.config.Module\",\"id\":1,\"comment\":null},\"urls\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"ResetResponse\":{\"fields\":{\"count\":{\"type\":\"int32\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"scheduler\":{\"options\":{\"go_package\":\"github.com/dxos/kube/scheduler/pb\"},\"nested\":{\"Bot\":{\"oneofs\":{\"_spec\":{\"oneof\":[\"spec\"]},\"_stats\":{\"oneof\":[\"stats\"]},\"_identityKey\":{\"oneof\":[\"identityKey\"]}},\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":\"Scheduler\"},\"state\":{\"type\":\"State\",\"id\":2,\"comment\":\"Current state.\"},\"desiredState\":{\"type\":\"State\",\"id\":3,\"comment\":\"Desired state.\"},\"spec\":{\"type\":\"Spec\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Omitted when returned from the Query RPC.\"},\"stats\":{\"type\":\"Stats\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Omitted when returned from the Query RPC.\"},\"identityKey\":{\"type\":\"bytes\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":\"Identity key of the bot profile.\"}},\"nested\":{\"Spec\":{\"fields\":{\"executable\":{\"type\":\"string\",\"id\":1,\"comment\":\"URL to the bot executable. KUBEs support file:// and ipfs:// urls.\"},\"echo\":{\"type\":\"Echo\",\"id\":2,\"comment\":null}},\"nested\":{\"Echo\":{\"fields\":{\"spaceKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"invitation\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"Stats\":{\"oneofs\":{\"_pid\":{\"oneof\":[\"pid\"]},\"_executableDownloaded\":{\"oneof\":[\"executableDownloaded\"]},\"_created\":{\"oneof\":[\"created\"]},\"_started\":{\"oneof\":[\"started\"]},\"_stopped\":{\"oneof\":[\"stopped\"]},\"_lastPingTime\":{\"oneof\":[\"lastPingTime\"]},\"_exitCode\":{\"oneof\":[\"exitCode\"]},\"_errorMessage\":{\"oneof\":[\"errorMessage\"]}},\"fields\":{\"pid\":{\"type\":\"int64\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"executableDownloaded\":{\"type\":\"google.protobuf.Timestamp\",\"id\":10,\"options\":{\"proto3_optional\":true},\"comment\":null},\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":11,\"options\":{\"proto3_optional\":true},\"comment\":null},\"started\":{\"type\":\"google.protobuf.Timestamp\",\"id\":12,\"options\":{\"proto3_optional\":true},\"comment\":null},\"stopped\":{\"type\":\"google.protobuf.Timestamp\",\"id\":13,\"options\":{\"proto3_optional\":true},\"comment\":null},\"lastPingTime\":{\"type\":\"google.protobuf.Timestamp\",\"id\":14,\"options\":{\"proto3_optional\":true},\"comment\":null},\"exitCode\":{\"type\":\"int32\",\"id\":30,\"options\":{\"proto3_optional\":true},\"comment\":null},\"errorMessage\":{\"type\":\"string\",\"id\":31,\"options\":{\"proto3_optional\":true},\"comment\":null},\"cpuUsage\":{\"type\":\"CPUUsage\",\"id\":40,\"comment\":null},\"memoryUsage\":{\"type\":\"MemoryUsage\",\"id\":41,\"comment\":null},\"diskUsage\":{\"type\":\"DiskUsage\",\"id\":42,\"comment\":null},\"networkUsage\":{\"type\":\"NetworkUsage\",\"id\":43,\"comment\":null},\"echo\":{\"type\":\"Echo\",\"id\":44,\"comment\":null}},\"nested\":{\"CPUUsage\":{\"fields\":{\"cores\":{\"type\":\"double\",\"id\":1,\"comment\":null}},\"comment\":null},\"DiskUsage\":{\"fields\":{\"bytes\":{\"type\":\"int64\",\"id\":1,\"comment\":null}},\"comment\":null},\"Echo\":{\"fields\":{},\"comment\":\"Echo stats.\"},\"MemoryUsage\":{\"fields\":{\"bytes\":{\"type\":\"int64\",\"id\":1,\"comment\":null}},\"comment\":null},\"NetworkUsage\":{\"fields\":{},\"comment\":null}},\"comment\":null}},\"comment\":null},\"BotConfig\":{\"fields\":{\"spec\":{\"type\":\"Bot.Spec.Echo\",\"id\":1,\"comment\":null},\"clientConfig\":{\"type\":\"dxos.config.Config\",\"id\":2,\"comment\":null}},\"comment\":null},\"BotController\":{\"methods\":{\"Query\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"QueryResponse\",\"comment\":\"Enumerate all services.\"},\"Describe\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"Bot\",\"comment\":\"Query information about a specific service\"},\"Create\":{\"requestType\":\"CreateRequest\",\"responseType\":\"Progress\",\"responseStream\":true,\"comment\":\"Create a new service.\"},\"Remove\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Remove a service with its identity and persistent storage.\"},\"Start\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"Progress\",\"responseStream\":true,\"comment\":\"Start the bot.\"},\"Stop\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"Progress\",\"responseStream\":true,\"comment\":\"Start the bot.\"},\"Restart\":{\"requestType\":\"ServiceRequest\",\"responseType\":\"Progress\",\"responseStream\":true,\"comment\":\"Start the bot.\"},\"Call\":{\"requestType\":\"Request\",\"responseType\":\"Reply\",\"responseStream\":true,\"comment\":\"Issue an RPC request to the bot instance.\"}},\"comment\":\"Exposed by bot controller to clients. Allows creation and management of bots.\"},\"BotHost\":{\"methods\":{\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"BotConfig\",\"comment\":null},\"SendReport\":{\"requestType\":\"Report\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":\"Internal service exposed by bot controller to the bot.\"},\"BotService\":{\"methods\":{\"Call\":{\"requestType\":\"Request\",\"responseType\":\"Reply\",\"responseStream\":true,\"comment\":\"Issue an RPC request to the bot instance.\"},\"Healthcheck\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Called by the bot controller to verify that the bot is functional.\"}},\"comment\":\"Internal service exposed by bot to the bot controller.\"},\"CreateRequest\":{\"oneofs\":{\"_desiredState\":{\"oneof\":[\"desiredState\"]}},\"fields\":{\"spec\":{\"type\":\"Bot.Spec\",\"id\":1,\"comment\":null},\"desiredState\":{\"type\":\"State\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"Progress\":{\"fields\":{\"state\":{\"type\":\"Bot\",\"id\":1,\"comment\":null}},\"comment\":null},\"QueryResponse\":{\"fields\":{\"services\":{\"rule\":\"repeated\",\"type\":\"Bot\",\"id\":1,\"comment\":null}},\"comment\":null},\"Reply\":{\"fields\":{\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"Report\":{\"oneofs\":{\"_identityKey\":{\"oneof\":[\"identityKey\"]}},\"fields\":{\"identityKey\":{\"type\":\"bytes\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Identity key of the bot profile.\"}},\"comment\":null},\"Request\":{\"fields\":{\"serviceId\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":2,\"comment\":null}},\"comment\":null},\"ServiceRequest\":{\"fields\":{\"serviceId\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"State\":{\"values\":{\"INVALID\":0,\"STOPPED\":1,\"STARTING\":2,\"RUNNING\":3,\"FAILING\":4},\"comment\":null,\"comments\":{\"INVALID\":null,\"STOPPED\":null,\"STARTING\":null,\"RUNNING\":null,\"FAILING\":null}}}}}},\"type\":{\"nested\":{\"App\":{\"oneofs\":{\"_version\":{\"oneof\":[\"version\"]},\"_license\":{\"oneof\":[\"license\"]},\"_bundle\":{\"oneof\":[\"bundle\"]},\"kind\":{\"oneof\":[\"web\"],\"comment\":null},\"_extension\":{\"oneof\":[\"extension\"]}},\"fields\":{\"version\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Optional **semver 2.0** compliant record version.\\nShould conform to the semver regex (see https://semver.org/).\"},\"license\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":3,\"comment\":null},\"bundle\":{\"type\":\"bytes\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"App bundle content Id in the CID v0 format (https://docs.ipfs.io/concepts/content-addressing/#identifier-formats).\"},\"web\":{\"type\":\"Web\",\"id\":100,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":200,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Web\":{\"oneofs\":{\"_indexFile\":{\"oneof\":[\"indexFile\"]},\"_entryPoint\":{\"oneof\":[\"entryPoint\"]}},\"fields\":{\"indexFile\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Relative path in resource to entrypoint, defaults to index.html.\"},\"entryPoint\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Relative path in resource to entrypoint, defaults to main.js.\"}},\"comment\":null}},\"comment\":null},\"AppServer\":{\"fields\":{\"url\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"Bot\":{\"fields\":{\"version\":{\"type\":\"string\",\"id\":1,\"comment\":\"Optional **semver 2.0** compliant record version.\\nShould conform to the semver regex (see https://semver.org/).\"},\"license\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":3,\"comment\":null},\"bundle\":{\"type\":\"bytes\",\"id\":4,\"comment\":\"Bot bundle content Id in the CID v0 format (https://docs.ipfs.io/concepts/content-addressing/#identifier-formats).\"},\"localPath\":{\"type\":\"string\",\"id\":5,\"comment\":\"This would be the path to the bot executable in bot-factory's file-system.\"},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"BotFactory\":{\"fields\":{\"topic\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"File\":{\"fields\":{\"contentType\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"fileName\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"bundle\":{\"type\":\"bytes\",\"id\":3,\"comment\":\"File content Id in the CID v0 format (https://docs.ipfs.io/concepts/content-addressing/#identifier-formats).\"},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"IPFS\":{\"fields\":{\"protocol\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"addresses\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":2,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"KUBE\":{\"fields\":{\"url\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"Repo\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"url\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"version\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null},\"Service\":{\"fields\":{\"type\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"kube\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"Signal\":{\"fields\":{\"bootstrap\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"url\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"extension\":{\"type\":\"dxos.registry.Record.Extension\",\"id\":100,\"comment\":null}},\"comment\":null},\"StateMachine\":{\"fields\":{\"mutationProtobufDefs\":{\"type\":\"google.protobuf.Struct\",\"id\":1,\"comment\":\"Set of protobuf messages.\"},\"snapshotProtobufDefs\":{\"type\":\"google.protobuf.Struct\",\"id\":2,\"comment\":\"Set of protobuf messages.\"},\"codeIpfsCid\":{\"type\":\"bytes\",\"id\":3,\"comment\":null}},\"comment\":null}}}}},\"example\":{\"nested\":{\"testing\":{\"nested\":{\"data\":{\"nested\":{\"TestItemMutation\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"TestItemSnapshot\":{\"fields\":{\"keys\":{\"rule\":\"repeated\",\"type\":\"TestItemMutation\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestListMutation\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null}}},\"rpc\":{\"nested\":{\"MessageWithAny\":{\"fields\":{\"payload\":{\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"PingReponse\":{\"fields\":{\"nonce\":{\"type\":\"int32\",\"id\":1,\"comment\":null}},\"comment\":null},\"PingRequest\":{\"fields\":{\"nonce\":{\"type\":\"int32\",\"id\":1,\"comment\":null}},\"comment\":null},\"PingService\":{\"methods\":{\"Ping\":{\"requestType\":\"PingRequest\",\"responseType\":\"PingReponse\",\"comment\":null}},\"comment\":null},\"TestAnyService\":{\"methods\":{\"TestCall\":{\"requestType\":\"MessageWithAny\",\"responseType\":\"MessageWithAny\",\"comment\":null}},\"comment\":null},\"TestRpcRequest\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestRpcResponse\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"TestService\":{\"methods\":{\"TestCall\":{\"requestType\":\"TestRpcRequest\",\"responseType\":\"TestRpcResponse\",\"comment\":null},\"VoidCall\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"TestStreamService\":{\"methods\":{\"TestCall\":{\"requestType\":\"TestRpcRequest\",\"responseType\":\"TestRpcResponse\",\"responseStream\":true,\"comment\":null}},\"comment\":null}}}}}}},\"google\":{\"nested\":{\"protobuf\":{\"nested\":{\"Any\":{\"fields\":{\"type_url\":{\"type\":\"string\",\"id\":1},\"value\":{\"type\":\"bytes\",\"id\":2}},\"comment\":null},\"BoolValue\":{\"fields\":{\"value\":{\"type\":\"bool\",\"id\":1}},\"comment\":null},\"BytesValue\":{\"fields\":{\"value\":{\"type\":\"bytes\",\"id\":1}},\"comment\":null},\"DoubleValue\":{\"fields\":{\"value\":{\"type\":\"double\",\"id\":1}},\"comment\":null},\"Empty\":{\"fields\":{},\"comment\":null},\"FloatValue\":{\"fields\":{\"value\":{\"type\":\"float\",\"id\":1}},\"comment\":null},\"Int32Value\":{\"fields\":{\"value\":{\"type\":\"int32\",\"id\":1}},\"comment\":null},\"Int64Value\":{\"fields\":{\"value\":{\"type\":\"int64\",\"id\":1}},\"comment\":null},\"ListValue\":{\"fields\":{\"values\":{\"rule\":\"repeated\",\"type\":\"Value\",\"id\":1}},\"comment\":null},\"NullValue\":{\"values\":{\"NULL_VALUE\":0},\"comments\":{}},\"StringValue\":{\"fields\":{\"value\":{\"type\":\"string\",\"id\":1}},\"comment\":null},\"Struct\":{\"fields\":{\"fields\":{\"keyType\":\"string\",\"type\":\"Value\",\"id\":1}},\"comment\":null},\"Timestamp\":{\"fields\":{\"seconds\":{\"type\":\"int64\",\"id\":1},\"nanos\":{\"type\":\"int32\",\"id\":2}},\"comment\":null},\"UInt32Value\":{\"fields\":{\"value\":{\"type\":\"uint32\",\"id\":1}},\"comment\":null},\"UInt64Value\":{\"fields\":{\"value\":{\"type\":\"uint64\",\"id\":1}},\"comment\":null},\"Value\":{\"oneofs\":{\"kind\":{\"oneof\":[\"nullValue\",\"numberValue\",\"stringValue\",\"boolValue\",\"structValue\",\"listValue\"]}},\"fields\":{\"nullValue\":{\"type\":\"NullValue\",\"id\":1},\"numberValue\":{\"type\":\"double\",\"id\":2},\"stringValue\":{\"type\":\"string\",\"id\":3},\"boolValue\":{\"type\":\"bool\",\"id\":4},\"structValue\":{\"type\":\"Struct\",\"id\":5},\"listValue\":{\"type\":\"ListValue\",\"id\":6}},\"comment\":null}}}}}}}");
|
|
10
10
|
exports.schema = codec_protobuf_1.Schema.fromJson(exports.schemaJson, substitutions_1.default);
|
|
11
11
|
//# sourceMappingURL=index.js.map
|