@dxos/protocols 2.33.9-dev.7d11f506 → 2.33.9-dev.9dc01397

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.
Files changed (114) hide show
  1. package/dist/src/index.d.ts +0 -1
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +0 -1
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/proto/gen/dxos/bot.d.ts +139 -4
  6. package/dist/src/proto/gen/dxos/bot.d.ts.map +1 -1
  7. package/dist/src/proto/gen/dxos/bot.js +4 -0
  8. package/dist/src/proto/gen/dxos/bot.js.map +1 -1
  9. package/dist/src/proto/gen/dxos/client.d.ts +216 -18
  10. package/dist/src/proto/gen/dxos/client.d.ts.map +1 -1
  11. package/dist/src/proto/gen/dxos/client.js +4 -0
  12. package/dist/src/proto/gen/dxos/client.js.map +1 -1
  13. package/dist/src/proto/gen/dxos/config.d.ts +457 -0
  14. package/dist/src/proto/gen/dxos/config.d.ts.map +1 -1
  15. package/dist/src/proto/gen/dxos/config.js +10 -0
  16. package/dist/src/proto/gen/dxos/config.js.map +1 -1
  17. package/dist/src/proto/gen/dxos/credentials/auth.d.ts +12 -3
  18. package/dist/src/proto/gen/dxos/credentials/auth.d.ts.map +1 -1
  19. package/dist/src/proto/gen/dxos/credentials/greet.d.ts +39 -8
  20. package/dist/src/proto/gen/dxos/credentials/greet.d.ts.map +1 -1
  21. package/dist/src/proto/gen/dxos/credentials/greet.js +4 -0
  22. package/dist/src/proto/gen/dxos/credentials/greet.js.map +1 -1
  23. package/dist/src/proto/gen/dxos/credentials/identity.d.ts +12 -4
  24. package/dist/src/proto/gen/dxos/credentials/identity.d.ts.map +1 -1
  25. package/dist/src/proto/gen/dxos/credentials/party.d.ts +50 -18
  26. package/dist/src/proto/gen/dxos/credentials/party.d.ts.map +1 -1
  27. package/dist/src/proto/gen/dxos/credentials/party.js +4 -0
  28. package/dist/src/proto/gen/dxos/credentials/party.js.map +1 -1
  29. package/dist/src/proto/gen/dxos/credentials.d.ts +39 -0
  30. package/dist/src/proto/gen/dxos/credentials.d.ts.map +1 -1
  31. package/dist/src/proto/gen/dxos/devtools.d.ts +266 -30
  32. package/dist/src/proto/gen/dxos/devtools.d.ts.map +1 -1
  33. package/dist/src/proto/gen/dxos/echo/feed.d.ts +65 -6
  34. package/dist/src/proto/gen/dxos/echo/feed.d.ts.map +1 -1
  35. package/dist/src/proto/gen/dxos/echo/feed.js +4 -0
  36. package/dist/src/proto/gen/dxos/echo/feed.js.map +1 -1
  37. package/dist/src/proto/gen/dxos/echo/invitation.d.ts +19 -3
  38. package/dist/src/proto/gen/dxos/echo/invitation.d.ts.map +1 -1
  39. package/dist/src/proto/gen/dxos/echo/invitation.js +6 -0
  40. package/dist/src/proto/gen/dxos/echo/invitation.js.map +1 -1
  41. package/dist/src/proto/gen/dxos/echo/metadata.d.ts +26 -4
  42. package/dist/src/proto/gen/dxos/echo/metadata.d.ts.map +1 -1
  43. package/dist/src/proto/gen/dxos/echo/service.d.ts +49 -13
  44. package/dist/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
  45. package/dist/src/proto/gen/dxos/echo/snapshot.d.ts +45 -13
  46. package/dist/src/proto/gen/dxos/echo/snapshot.d.ts.map +1 -1
  47. package/dist/src/proto/gen/dxos/echo/timeframe.d.ts +9 -2
  48. package/dist/src/proto/gen/dxos/echo/timeframe.d.ts.map +1 -1
  49. package/dist/src/proto/gen/dxos/halo/keys.d.ts +44 -2
  50. package/dist/src/proto/gen/dxos/halo/keys.d.ts.map +1 -1
  51. package/dist/src/proto/gen/dxos/halo/keys.js +4 -0
  52. package/dist/src/proto/gen/dxos/halo/keys.js.map +1 -1
  53. package/dist/src/proto/gen/dxos/rpc.d.ts +58 -8
  54. package/dist/src/proto/gen/dxos/rpc.d.ts.map +1 -1
  55. package/dist/src/proto/gen/dxos/rpc.js +4 -0
  56. package/dist/src/proto/gen/dxos/rpc.js.map +1 -1
  57. package/dist/src/proto/gen/dxos/test/echo.d.ts +15 -3
  58. package/dist/src/proto/gen/dxos/test/echo.d.ts.map +1 -1
  59. package/dist/src/proto/gen/google/protobuf.d.ts +89 -89
  60. package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
  61. package/dist/src/proto/gen/index.d.ts.map +1 -1
  62. package/dist/src/proto/gen/index.js +1 -1
  63. package/dist/src/proto/gen/index.js.map +1 -1
  64. package/dist/src/proto/index.d.ts +0 -1
  65. package/dist/src/proto/index.d.ts.map +1 -1
  66. package/dist/src/proto/index.js +0 -16
  67. package/dist/src/proto/index.js.map +1 -1
  68. package/dist/src/public-key.d.ts +2 -2
  69. package/dist/src/public-key.d.ts.map +1 -1
  70. package/dist/src/public-key.js +31 -7
  71. package/dist/src/public-key.js.map +1 -1
  72. package/dist/src/timeframe.d.ts +1 -1
  73. package/dist/src/timeframe.d.ts.map +1 -1
  74. package/dist/src/timeframe.js +2 -2
  75. package/dist/src/timeframe.js.map +1 -1
  76. package/dist/tsconfig.tsbuildinfo +1 -1
  77. package/package.json +10 -4
  78. package/src/index.ts +0 -1
  79. package/src/proto/dxos/bot.proto +21 -21
  80. package/src/proto/dxos/client.proto +17 -17
  81. package/src/proto/dxos/config.proto +90 -90
  82. package/src/proto/dxos/devtools.proto +15 -15
  83. package/src/proto/dxos/echo/feed.proto +9 -9
  84. package/src/proto/dxos/echo/invitation.proto +2 -2
  85. package/src/proto/dxos/echo/metadata.proto +4 -4
  86. package/src/proto/dxos/echo/snapshot.proto +5 -4
  87. package/src/proto/dxos/halo/auth.proto +2 -2
  88. package/src/proto/dxos/halo/greet.proto +1 -1
  89. package/src/proto/dxos/halo/keys.proto +6 -6
  90. package/src/proto/dxos/halo/signed.proto +14 -7
  91. package/src/proto/dxos/rpc.proto +14 -4
  92. package/src/proto/gen/dxos/bot.ts +139 -4
  93. package/src/proto/gen/dxos/client.ts +216 -18
  94. package/src/proto/gen/dxos/config.ts +457 -0
  95. package/src/proto/gen/dxos/credentials/auth.ts +12 -3
  96. package/src/proto/gen/dxos/credentials/greet.ts +39 -8
  97. package/src/proto/gen/dxos/credentials/identity.ts +12 -4
  98. package/src/proto/gen/dxos/credentials/party.ts +50 -18
  99. package/src/proto/gen/dxos/credentials.ts +39 -0
  100. package/src/proto/gen/dxos/devtools.ts +266 -30
  101. package/src/proto/gen/dxos/echo/feed.ts +65 -6
  102. package/src/proto/gen/dxos/echo/invitation.ts +19 -3
  103. package/src/proto/gen/dxos/echo/metadata.ts +26 -4
  104. package/src/proto/gen/dxos/echo/service.ts +49 -13
  105. package/src/proto/gen/dxos/echo/snapshot.ts +45 -13
  106. package/src/proto/gen/dxos/echo/timeframe.ts +9 -2
  107. package/src/proto/gen/dxos/halo/keys.ts +44 -2
  108. package/src/proto/gen/dxos/rpc.ts +58 -8
  109. package/src/proto/gen/dxos/test/echo.ts +15 -3
  110. package/src/proto/gen/google/protobuf.ts +89 -89
  111. package/src/proto/gen/index.ts +1 -1
  112. package/src/proto/index.ts +0 -2
  113. package/src/public-key.ts +32 -4
  114. package/src/timeframe.ts +1 -1
@@ -252,5 +252,5 @@ export interface SERVICES {
252
252
  "dxos.devtools.TracingService": dxos_devtools.TracingService;
253
253
  "dxos.echo.service.DataService": dxos_echo_service.DataService;
254
254
  }
255
- export const schemaJson = JSON.parse("{\"nested\":{\"dxos\":{\"nested\":{\"bot\":{\"nested\":{\"Bot\":{\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"status\":{\"type\":\"Status\",\"id\":2,\"comment\":null},\"desiredState\":{\"type\":\"Status\",\"id\":55,\"comment\":\"The state that the bot aims to be in. Can be only either RUNNING or STOPPED.\"},\"attemptsToAchieveDesiredState\":{\"type\":\"int32\",\"id\":56,\"comment\":null},\"packageSpecifier\":{\"type\":\"BotPackageSpecifier\",\"id\":3,\"comment\":null},\"lastStart\":{\"type\":\"Timestamp\",\"id\":4,\"comment\":null},\"partyKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":5,\"comment\":null},\"runtime\":{\"type\":\"Runtime\",\"id\":6,\"comment\":null},\"report\":{\"type\":\"BotReport\",\"id\":7,\"comment\":null}},\"nested\":{\"Runtime\":{\"fields\":{\"exitCode\":{\"type\":\"int32\",\"id\":1,\"comment\":null},\"exitSignal\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"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\":{\"fields\":{\"partyDetails\":{\"type\":\"dxos.client.PartyDetails\",\"id\":1,\"comment\":\"Details of the party the bot was spawned for.\"}},\"comment\":null},\"BotService\":{\"methods\":{\"Initialize\":{\"requestType\":\"InitializeRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Initialize Client, create profile, and join a party.\"},\"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\":{\"fields\":{\"config\":{\"type\":\"dxos.config.Config\",\"id\":1,\"comment\":\"Bot runtime configuration.\"},\"invitation\":{\"type\":\"dxos.echo.InvitationDescriptor\",\"id\":2,\"comment\":\"Invitation for the bot to join the target party.\"},\"id\":{\"type\":\"string\",\"id\":3,\"comment\":\"ID of the bot.\"}},\"comment\":null},\"SendCommandRequest\":{\"fields\":{\"botId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"command\":{\"type\":\"bytes\",\"id\":2,\"comment\":null}},\"comment\":null},\"SendCommandResponse\":{\"fields\":{\"response\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"SpawnBotRequest\":{\"fields\":{\"package\":{\"type\":\"BotPackageSpecifier\",\"id\":1,\"comment\":null},\"invitation\":{\"type\":\"dxos.echo.InvitationDescriptor\",\"id\":2,\"comment\":\"Invitation for the bot to join the target party.\"},\"partyKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":3,\"comment\":\"Key of the party 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\":\"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\":{\"fields\":{\"publicKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"Contacts\":{\"fields\":{\"contacts\":{\"rule\":\"repeated\",\"type\":\"Contact\",\"id\":1,\"comment\":null}},\"comment\":null},\"CreateInvitationRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"inviteeKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":2,\"comment\":\"When specified the invitation will be of OFFLINE type, not requiring secret exchange.\"}},\"comment\":null},\"CreateProfileRequest\":{\"fields\":{\"username\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"publicKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"secretKey\":{\"type\":\"bytes\",\"id\":3,\"comment\":null}},\"comment\":null},\"CreateSnaspotRequest\":{\"fields\":{\"partyKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetPartyDetailsRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"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},\"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\":{\"fields\":{\"descriptor\":{\"type\":\"InvitationDescriptor\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"InvitationState\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"comment\":\"Only if state == ERROR.\"}},\"comment\":\"Invitation process created by sender.\"},\"InvitationState\":{\"values\":{\"WAITING_FOR_CONNECTION\":1,\"CONNECTED\":2,\"SUCCESS\":3,\"ERROR\":4},\"comment\":null,\"comments\":{\"WAITING_FOR_CONNECTION\":null,\"CONNECTED\":null,\"SUCCESS\":null,\"ERROR\":null}},\"Party\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"isOpen\":{\"rule\":\"required\",\"type\":\"bool\",\"id\":2,\"comment\":null},\"isActive\":{\"rule\":\"required\",\"type\":\"bool\",\"id\":3,\"comment\":null},\"members\":{\"rule\":\"repeated\",\"type\":\"Member\",\"id\":4,\"comment\":null}},\"nested\":{\"Member\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"PartyActivationOptions\":{\"fields\":{\"global\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"device\":{\"type\":\"bool\",\"id\":2,\"comment\":null}},\"comment\":null},\"PartyDetails\":{\"fields\":{\"processedTimeframe\":{\"rule\":\"required\",\"type\":\"dxos.echo.timeframe.TimeframeVector\",\"id\":1,\"comment\":\"The timeframe of mutations processed by the client.\"}},\"comment\":null},\"PartyService\":{\"methods\":{\"SubscribeToParty\":{\"requestType\":\"SubscribePartyRequest\",\"responseType\":\"SubscribePartyResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeParties\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribePartiesResponse\",\"responseStream\":true,\"comment\":null},\"GetPartyDetails\":{\"requestType\":\"GetPartyDetailsRequest\",\"responseType\":\"PartyDetails\",\"comment\":null},\"CreateParty\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Party\",\"comment\":null},\"CloneParty\":{\"requestType\":\"PartySnapshot\",\"responseType\":\"Party\",\"comment\":null},\"SetPartyState\":{\"requestType\":\"SetPartyStateRequest\",\"responseType\":\"Party\",\"comment\":\"Open and close or activate and deactivate a party.\"},\"CreateInvitation\":{\"requestType\":\"CreateInvitationRequest\",\"responseType\":\"InvitationRequest\",\"responseStream\":true,\"comment\":null},\"AcceptInvitation\":{\"requestType\":\"InvitationDescriptor\",\"responseType\":\"RedeemedInvitation\",\"responseStream\":true,\"comment\":null},\"AuthenticateInvitation\":{\"requestType\":\"AuthenticateInvitationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"SubscribeMembers\":{\"requestType\":\"SubscribeMembersRequest\",\"responseType\":\"SubscribeMembersResponse\",\"responseStream\":true,\"comment\":null},\"CreateSnapshot\":{\"requestType\":\"CreateSnaspotRequest\",\"responseType\":\"PartySnapshot\",\"comment\":null}},\"comment\":null},\"Profile\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"username\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"ProfileService\":{\"methods\":{\"SubscribeProfile\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeProfileResponse\",\"responseStream\":true,\"comment\":null},\"CreateProfile\":{\"requestType\":\"CreateProfileRequest\",\"responseType\":\"Profile\",\"comment\":null},\"RecoverProfile\":{\"requestType\":\"RecoverProfileRequest\",\"responseType\":\"Profile\",\"comment\":null},\"CreateInvitation\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"InvitationRequest\",\"responseStream\":true,\"comment\":null},\"AcceptInvitation\":{\"requestType\":\"InvitationDescriptor\",\"responseType\":\"RedeemedInvitation\",\"responseStream\":true,\"comment\":null},\"AuthenticateInvitation\":{\"requestType\":\"AuthenticateInvitationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"RecoverProfileRequest\":{\"fields\":{\"seedPhrase\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"RedeemedInvitation\":{\"fields\":{\"id\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"InvitationState\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"comment\":\"Only if state == ERROR.\"},\"partyKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":4,\"comment\":\"Only on party invitations that are finished.\"}},\"comment\":\"Invitation that is being redeemed.\"},\"SetPartyStateRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"open\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"activeGlobal\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"activeDevice\":{\"type\":\"bool\",\"id\":4,\"comment\":null}},\"comment\":null},\"SetPreferenceRequest\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SignRequest\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"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},\"SubscribeMembersRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeMembersResponse\":{\"fields\":{\"members\":{\"rule\":\"repeated\",\"type\":\"PartyMember\",\"id\":1,\"comment\":null}},\"nested\":{\"PartyMember\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribePartiesResponse\":{\"fields\":{\"parties\":{\"rule\":\"repeated\",\"type\":\"Party\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribePartyRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribePartyResponse\":{\"fields\":{\"party\":{\"type\":\"Party\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeProfileResponse\":{\"fields\":{\"profile\":{\"type\":\"Profile\",\"id\":1,\"comment\":null}},\"comment\":null},\"SystemService\":{\"methods\":{\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Config\",\"comment\":null},\"Reset\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null}}},\"config\":{\"nested\":{\"Config\":{\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"comment\":null},\"package\":{\"type\":\"Package\",\"id\":2,\"comment\":null},\"runtime\":{\"type\":\"Runtime\",\"id\":3,\"comment\":null}},\"comment\":null},\"Module\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"type\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"description\":{\"type\":\"string\",\"id\":4,\"comment\":null},\"tags\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":5,\"comment\":null},\"build\":{\"type\":\"Build\",\"id\":100,\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":101,\"comment\":null},\"record\":{\"type\":\"google.protobuf.Any\",\"id\":200,\"comment\":\"The data will be validated based on the type when being published.\"}},\"nested\":{\"Build\":{\"fields\":{\"command\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"outdir\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"version\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"tag\":{\"type\":\"string\",\"id\":4,\"comment\":null}},\"comment\":null}},\"comment\":null},\"Package\":{\"fields\":{\"license\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"repos\":{\"rule\":\"repeated\",\"type\":\"Repo\",\"id\":2,\"comment\":null},\"modules\":{\"rule\":\"repeated\",\"type\":\"Module\",\"id\":3,\"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},\"Runtime\":{\"fields\":{\"client\":{\"type\":\"Client\",\"id\":1,\"comment\":null},\"app\":{\"type\":\"App\",\"id\":2,\"comment\":null},\"cli\":{\"type\":\"CLI\",\"id\":3,\"comment\":null},\"props\":{\"type\":\"Props\",\"id\":4,\"comment\":null},\"services\":{\"type\":\"Services\",\"id\":5,\"comment\":null},\"system\":{\"type\":\"System\",\"id\":6,\"comment\":null}},\"nested\":{\"App\":{\"fields\":{\"org\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"theme\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"website\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"publicUrl\":{\"type\":\"string\",\"id\":4,\"options\":{\"(env)\":\"PUBLIC_URL\"},\"comment\":null}},\"comment\":null},\"CLI\":{\"fields\":{\"nodePath\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"app\":{\"type\":\"AppServe\",\"id\":2,\"comment\":null},\"console\":{\"type\":\"Package\",\"id\":3,\"comment\":null},\"mdns\":{\"type\":\"Package\",\"id\":4,\"comment\":null},\"signal\":{\"type\":\"Package\",\"id\":5,\"comment\":null},\"npmClient\":{\"type\":\"string\",\"id\":6,\"comment\":null},\"channel\":{\"type\":\"string\",\"id\":7,\"comment\":null}},\"nested\":{\"AppServe\":{\"fields\":{\"serve\":{\"type\":\"Serve\",\"id\":1,\"comment\":null}},\"nested\":{\"Serve\":{\"fields\":{\"config\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"loginApp\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"keyPhrase\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"Package\":{\"fields\":{\"package\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"channel\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"bin\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"config\":{\"type\":\"string\",\"id\":4,\"comment\":null}},\"comment\":null}},\"comment\":null},\"Client\":{\"fields\":{\"debug\":{\"type\":\"string\",\"id\":1,\"options\":{\"(env)\":\"DEBUG\"},\"comment\":null},\"storage\":{\"type\":\"Storage\",\"id\":2,\"comment\":null},\"enableSnapshots\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"snapshotInterval\":{\"type\":\"int32\",\"id\":4,\"comment\":\"Milliseconds\"},\"invitationExpiration\":{\"type\":\"int32\",\"id\":5,\"comment\":\"Milliseconds\"},\"mode\":{\"type\":\"Mode\",\"id\":6,\"comment\":null}},\"nested\":{\"Mode\":{\"values\":{\"AUTOMATIC\":0,\"LOCAL\":1,\"REMOTE\":2},\"comment\":\"Whether the client services are local with ClientServiceHost or remote and need to be accessed via ClientServiceProxy. Defaults to AUTOMATIC.\",\"comments\":{\"AUTOMATIC\":\"Connects to the browser wallet if avialable, otherwise runs services in the local mode.\",\"LOCAL\":\"Run services in the local mode.\",\"REMOTE\":\"Connect to the browser wallet or to the remote services through the RPC port.\"}},\"Storage\":{\"fields\":{\"persistent\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"storageType\":{\"type\":\"StorageDriver\",\"id\":2,\"comment\":null},\"keyStorage\":{\"type\":\"StorageDriver\",\"id\":3,\"comment\":null},\"path\":{\"type\":\"string\",\"id\":4,\"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},\"Props\":{\"fields\":{\"title\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"Services\":{\"fields\":{\"kube\":{\"type\":\"Kube\",\"id\":1,\"comment\":null},\"app\":{\"type\":\"AppServer\",\"id\":2,\"comment\":null},\"dxns\":{\"type\":\"Dxns\",\"id\":3,\"comment\":null},\"ipfs\":{\"type\":\"Ipfs\",\"id\":4,\"comment\":null},\"signal\":{\"type\":\"Signal\",\"id\":5,\"comment\":null},\"ice\":{\"rule\":\"repeated\",\"type\":\"Ice\",\"id\":6,\"comment\":null},\"machine\":{\"type\":\"Machine\",\"id\":7,\"comment\":null},\"bot\":{\"type\":\"BotFactory\",\"id\":8,\"comment\":null}},\"nested\":{\"AppServer\":{\"fields\":{\"prefix\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"server\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"BotFactory\":{\"fields\":{\"topic\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"persistent\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"retryAttempts\":{\"type\":\"int32\",\"id\":3,\"comment\":null},\"retryInterval\":{\"type\":\"int32\",\"id\":4,\"comment\":null}},\"comment\":null},\"Dxns\":{\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"comment\":\"DXNS endpoint.\"},\"accountUri\":{\"type\":\"string\",\"id\":2,\"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,\"comment\":\"Public Polkadot Address.\"},\"account\":{\"type\":\"string\",\"id\":4,\"comment\":\"Public address of a DXNS Account.\"},\"faucet\":{\"type\":\"string\",\"id\":5,\"comment\":null}},\"comment\":null},\"Ice\":{\"fields\":{\"urls\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"username\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"credential\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null},\"Ipfs\":{\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"gateway\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"Kube\":{\"fields\":{\"endpoints\":{\"type\":\"Endpoints\",\"id\":1,\"comment\":null},\"publicUrl\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"nested\":{\"Endpoints\":{\"fields\":{\"logs\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"services\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"cert\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"Machine\":{\"fields\":{\"doAccessToken\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"githubAccessToken\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"githubUsername\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"dnsDomain\":{\"type\":\"string\",\"id\":4,\"comment\":null},\"npmAccessToken\":{\"type\":\"string\",\"id\":5,\"comment\":null}},\"comment\":null},\"Signal\":{\"fields\":{\"server\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"api\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"status\":{\"type\":\"string\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"System\":{\"fields\":{\"debug\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null}},\"comment\":null}}},\"credentials\":{\"nested\":{\"auth\":{\"nested\":{\"Auth\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":\"The publicKey of the target Party for these credentials.\"},\"deviceKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":\"The publicKey of the authenticating Device.\"},\"identityKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedKey\":{\"type\":\"PubKey\",\"id\":4,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedAdmit\":{\"type\":\"google.protobuf.Any\",\"id\":5,\"comment\":\"FeedAdmit message to the should be written to a control feed in case the `feedKey` is not admitted to the party.\"}},\"comment\":\"The payload for a SignedMessage sent during handshake for replication authentication.\"}}},\"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\":{\"fields\":{\"command\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"secret\":{\"type\":\"bytes\",\"id\":2,\"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},\"partyKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyHint\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"type\":{\"type\":\"KeyType\",\"id\":2,\"comment\":null}},\"comment\":null},\"NotarizeResponse\":{\"fields\":{\"copies\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null},\"genesisFeed\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null}},\"comment\":null}}},\"identity\":{\"nested\":{\"DeviceInfo\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"IdentityInfo\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"Message\":{\"fields\":{\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"party\":{\"nested\":{\"Envelope\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"Message\",\"id\":2,\"comment\":null}},\"comment\":null},\"FeedAdmit\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"FeedGenesis\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"ownerKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyAdmit\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"admitKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"admitKeyType\":{\"type\":\"KeyType\",\"id\":3,\"comment\":null}},\"comment\":null},\"PartyCredential\":{\"oneofs\":{\"contents\":{\"oneof\":[\"envelope\",\"partyGenesis\",\"keyAdmit\",\"feedAdmit\",\"feedGenesis\"],\"comment\":null}},\"fields\":{\"type\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"envelope\":{\"type\":\"Envelope\",\"id\":10,\"comment\":null},\"partyGenesis\":{\"type\":\"PartyGenesis\",\"id\":11,\"comment\":null},\"keyAdmit\":{\"type\":\"KeyAdmit\",\"id\":12,\"comment\":null},\"feedAdmit\":{\"type\":\"FeedAdmit\",\"id\":13,\"comment\":null},\"feedGenesis\":{\"type\":\"FeedGenesis\",\"id\":14,\"comment\":null}},\"nested\":{\"Type\":{\"values\":{\"ENVELOPE\":0,\"PARTY_GENESIS\":1,\"FEED_GENESIS\":2,\"KEY_ADMIT\":3,\"FEED_ADMIT\":4},\"comment\":null,\"comments\":{\"ENVELOPE\":null,\"PARTY_GENESIS\":null,\"FEED_GENESIS\":null,\"KEY_ADMIT\":null,\"FEED_ADMIT\":null}}},\"comment\":null},\"PartyGenesis\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"admitKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"admitKeyType\":{\"type\":\"KeyType\",\"id\":4,\"comment\":null}},\"comment\":null},\"PartyInvitation\":{\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"partyKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"issuerKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"inviteeKey\":{\"type\":\"PubKey\",\"id\":4,\"comment\":null}},\"comment\":null}}},\"SignedMessage\":{\"fields\":{\"signed\":{\"rule\":\"required\",\"type\":\"Signed\",\"id\":1,\"comment\":null},\"signatures\":{\"rule\":\"repeated\",\"type\":\"Signature\",\"id\":2,\"comment\":null}},\"nested\":{\"Signature\":{\"fields\":{\"key\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"signature\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":2,\"comment\":null},\"keyChain\":{\"type\":\"KeyChain\",\"id\":3,\"comment\":null}},\"comment\":null},\"Signed\":{\"fields\":{\"created\":{\"rule\":\"required\",\"type\":\"string\",\"id\":1,\"comment\":null},\"nonce\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":2,\"comment\":null},\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":10,\"comment\":null}},\"comment\":null}},\"comment\":\"A generic container message used whenever messages are signed (e.g. PartyCredential)\"}}},\"devtools\":{\"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},\"SubscribeToParties\":{\"requestType\":\"SubscribeToPartiesRequest\",\"responseType\":\"SubscribeToPartiesResponse\",\"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},\"GetPartySnapshot\":{\"requestType\":\"GetPartySnapshotRequest\",\"responseType\":\"GetPartySnapshotResponse\",\"comment\":null},\"SavePartySnapshot\":{\"requestType\":\"SavePartySnapshotRequest\",\"responseType\":\"SavePartySnapshotResponse\",\"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\":{\"fields\":{\"namespaces\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"DisableDebugLoggingResponse\":{\"fields\":{\"enabledNamespaces\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"EnableDebugLoggingRequest\":{\"fields\":{\"namespaces\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"EnableDebugLoggingResponse\":{\"fields\":{\"enabledNamespaces\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"Event\":{\"oneofs\":{\"payload\":{\"oneof\":[\"ready\"],\"comment\":null}},\"fields\":{\"ready\":{\"type\":\"ReadyEvent\",\"id\":1,\"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\":\"PubKey\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"bytes\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"GetPartySnapshotRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetPartySnapshotResponse\":{\"fields\":{\"snapshot\":{\"type\":\"PartySnapshot\",\"id\":1,\"comment\":null}},\"comment\":null},\"ReadyEvent\":{\"fields\":{},\"comment\":null},\"ResetStorageRequest\":{\"fields\":{},\"comment\":null},\"SavePartySnapshotRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SavePartySnapshotResponse\":{\"fields\":{\"snapshot\":{\"type\":\"PartySnapshot\",\"id\":1,\"comment\":null}},\"comment\":null},\"SetTracingOptionsRequest\":{\"fields\":{\"enable\":{\"type\":\"bool\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToCredentialMessagesRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToCredentialMessagesResponse\":{\"fields\":{\"messages\":{\"rule\":\"repeated\",\"type\":\"SignedMessage\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToFeedBlocksRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"maxBlocks\":{\"type\":\"int32\",\"id\":3,\"comment\":null}},\"comment\":null},\"SubscribeToFeedBlocksResponse\":{\"fields\":{\"blocks\":{\"rule\":\"repeated\",\"type\":\"Block\",\"id\":1,\"comment\":null}},\"nested\":{\"Block\":{\"fields\":{\"key\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null},\"sync\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"path\":{\"type\":\"string\",\"id\":4,\"comment\":null},\"data\":{\"type\":\"FeedMessage\",\"id\":5,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToFeedsRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeToFeedsResponse\":{\"fields\":{\"feeds\":{\"rule\":\"repeated\",\"type\":\"Feed\",\"id\":1,\"comment\":null}},\"nested\":{\"Feed\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"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\":\"KeyRecord\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToNetworkTopicsResponse\":{\"fields\":{\"topics\":{\"rule\":\"repeated\",\"type\":\"Topic\",\"id\":1,\"comment\":null}},\"nested\":{\"Topic\":{\"fields\":{\"topic\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"label\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToPartiesRequest\":{\"fields\":{\"partyKeys\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToPartiesResponse\":{\"fields\":{\"parties\":{\"rule\":\"repeated\",\"type\":\"PartyInfo\",\"id\":1,\"comment\":null}},\"nested\":{\"PartyInfo\":{\"fields\":{\"key\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"isOpen\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"isActive\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":4,\"comment\":null},\"feeds\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":5,\"comment\":null},\"properties\":{\"keyType\":\"string\",\"type\":\"string\",\"id\":6,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToSignalStatusResponse\":{\"fields\":{\"servers\":{\"rule\":\"repeated\",\"type\":\"SignalServer\",\"id\":1,\"comment\":null}},\"nested\":{\"SignalServer\":{\"fields\":{\"host\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"error\":{\"type\":\"string\",\"id\":3,\"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},\"SubscribeToSwarmInfoRequest\":{\"fields\":{},\"comment\":null},\"SubscribeToSwarmInfoResponse\":{\"fields\":{\"data\":{\"rule\":\"repeated\",\"type\":\"SwarmInfo\",\"id\":1,\"comment\":null}},\"nested\":{\"SwarmInfo\":{\"fields\":{\"id\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"topic\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"label\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"isActive\":{\"type\":\"bool\",\"id\":4,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"ConnectionInfo\",\"id\":5,\"comment\":null}},\"nested\":{\"ConnectionInfo\":{\"fields\":{\"state\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"sessionId\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"remotePeerId\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"transport\":{\"type\":\"string\",\"id\":4,\"comment\":null},\"protocolExtensions\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":5,\"comment\":null},\"events\":{\"rule\":\"repeated\",\"type\":\"Json\",\"id\":6,\"comment\":null}},\"nested\":{\"Json\":{\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null},\"TracingService\":{\"methods\":{\"SetTracingOptions\":{\"requestType\":\"SetTracingOptionsRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"SubscribeToRpcTrace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"RpcMessage\",\"responseStream\":true,\"comment\":null}},\"comment\":null}}},\"echo\":{\"nested\":{\"feed\":{\"nested\":{\"CredentialsMessage\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":\"A container for dxos.credentials.Message\"},\"EchoEnvelope\":{\"fields\":{\"itemId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"genesis\":{\"type\":\"ItemGenesis\",\"id\":10,\"comment\":null},\"itemMutation\":{\"type\":\"ItemMutation\",\"id\":11,\"comment\":null},\"mutation\":{\"type\":\"bytes\",\"id\":12,\"comment\":null},\"snapshot\":{\"type\":\"ModelSnapshot\",\"id\":13,\"comment\":\"Set the model to the provided snapshot.\"}},\"comment\":\"Wrapper for all ECHO messages.\"},\"FeedMessage\":{\"oneofs\":{\"payload\":{\"oneof\":[\"halo\",\"echo\"],\"comment\":null}},\"fields\":{\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":1,\"comment\":null},\"halo\":{\"type\":\"CredentialsMessage\",\"id\":10,\"comment\":null},\"echo\":{\"type\":\"EchoEnvelope\",\"id\":11,\"comment\":null}},\"comment\":\"Outer message type decoded by Codec.\\nThis is what is written to the feeds.\"},\"ItemGenesis\":{\"fields\":{\"itemType\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"modelType\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":3,\"comment\":null},\"link\":{\"type\":\"LinkData\",\"id\":4,\"comment\":null}},\"comment\":null},\"ItemMutation\":{\"fields\":{\"parentId\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"action\":{\"type\":\"Action\",\"id\":2,\"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}}},\"invitation\":{\"nested\":{\"InvitationDescriptor\":{\"fields\":{\"type\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"swarmKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"invitation\":{\"type\":\"bytes\",\"id\":3,\"comment\":null},\"identityKey\":{\"type\":\"bytes\",\"id\":4,\"comment\":\"Only present if type == OFFLINE.\"},\"secret\":{\"type\":\"bytes\",\"id\":5,\"comment\":\"Must be stripped out when passing to another peer.\"}},\"nested\":{\"Type\":{\"values\":{\"INTERACTIVE\":1,\"OFFLINE\":2},\"comment\":\"Defines an invitation type.\",\"comments\":{\"INTERACTIVE\":\"Interactive invitation is when both peers are online at the same time.\",\"OFFLINE\":\"Offline is when only a single peer needs to be online at the time.\"}}},\"comment\":null}}},\"metadata\":{\"nested\":{\"EchoMetadata\":{\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Version number that is inceremnted every time there's a breaking change to the storage schema.\\n\\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.\"},\"parties\":{\"rule\":\"repeated\",\"type\":\"PartyMetadata\",\"id\":2,\"comment\":null},\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"comment\":null},\"updated\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"comment\":null}},\"comment\":null},\"PartyMetadata\":{\"fields\":{\"key\":{\"type\":\"PubKey\",\"id\":1,\"comment\":\"Party key.\"},\"genesisFeedKey\":{\"type\":\"PubKey\",\"id\":6,\"comment\":null},\"controlFeedKey\":{\"type\":\"PubKey\",\"id\":4,\"comment\":\"Key of the wriatable control feed.\"},\"dataFeedKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":\"Key of the wriatable data feed.\"},\"latestTimeframe\":{\"type\":\"TimeframeVector\",\"id\":5,\"comment\":null},\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":2,\"comment\":\"List of all feed associated with the party.\"}},\"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\":\"PubKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetResponse\":{\"fields\":{\"added\":{\"rule\":\"repeated\",\"type\":\"EchoEnvelope\",\"id\":1,\"comment\":null},\"deleted\":{\"rule\":\"repeated\",\"type\":\"EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"itemId\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamResponse\":{\"oneofs\":{\"kind\":{\"oneof\":[\"snapshot\",\"mutation\"],\"comment\":null}},\"fields\":{\"snapshot\":{\"type\":\"ItemSnapshot\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"Mutation\",\"id\":2,\"comment\":null}},\"nested\":{\"Mutation\":{\"fields\":{\"data\":{\"type\":\"EchoEnvelope\",\"id\":1,\"comment\":null},\"meta\":{\"type\":\"Metadata\",\"id\":2,\"comment\":null}},\"nested\":{\"Metadata\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"memberKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":4,\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null},\"WriteRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"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.CredentialsMessage\",\"id\":1,\"comment\":null}},\"comment\":null},\"ItemSnapshot\":{\"oneofs\":{\"_itemId\":{\"oneof\":[\"itemId\"]},\"_itemType\":{\"oneof\":[\"itemType\"]},\"_modelType\":{\"oneof\":[\"modelType\"]},\"_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,\"options\":{\"proto3_optional\":true},\"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\"]},\"_modelType\":{\"oneof\":[\"modelType\"]},\"_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,\"options\":{\"proto3_optional\":true},\"comment\":null},\"modelVersion\":{\"type\":\"string\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"source\":{\"rule\":\"required\",\"type\":\"string\",\"id\":5,\"comment\":null},\"target\":{\"rule\":\"required\",\"type\":\"string\",\"id\":6,\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ModelMutation\":{\"fields\":{\"mutation\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":1,\"comment\":null},\"meta\":{\"rule\":\"required\",\"type\":\"ModelMutationMeta\",\"id\":2,\"comment\":null}},\"comment\":null},\"ModelMutationMeta\":{\"fields\":{\"feedKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"seq\":{\"rule\":\"required\",\"type\":\"int32\",\"id\":2,\"comment\":null},\"memberKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"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},\"PartySnapshot\":{\"fields\":{\"partyKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":2,\"comment\":null},\"timestamp\":{\"type\":\"int32\",\"id\":3,\"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.\"}}}}},\"halo\":{\"nested\":{\"keys\":{\"nested\":{\"KeyChain\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"message\":{\"rule\":\"required\",\"type\":\"SignedMessage\",\"id\":2,\"comment\":null},\"parents\":{\"rule\":\"repeated\",\"type\":\"KeyChain\",\"id\":3,\"comment\":null}},\"comment\":null},\"KeyRecord\":{\"fields\":{\"type\":{\"rule\":\"required\",\"type\":\"KeyType\",\"id\":1,\"comment\":\"The `KeyType` type of the key. This is often unknown for keys from other sources.\"},\"publicKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":2,\"comment\":\"The public key as a Buffer (required).\"},\"secretKey\":{\"type\":\"PrivKey\",\"id\":3,\"comment\":\"The secret key as a Buffer (this will never be visible outside the Keyring).\"},\"hint\":{\"type\":\"bool\",\"id\":4,\"comment\":\"Is this key from a Greeting \\\"hint\\\"?\"},\"own\":{\"type\":\"bool\",\"id\":5,\"comment\":\"Determines if this is our key?\\nUsually true if `secretKey` is present; may be false for \\\"inception keys\\\" such as the Party key.\"},\"trusted\":{\"type\":\"bool\",\"id\":6,\"comment\":\"Is this key to be trusted?\"},\"added\":{\"type\":\"string\",\"id\":7,\"comment\":\"An RFC-3339 date/time string for when the key was added to the Keyring.\"},\"created\":{\"type\":\"string\",\"id\":8,\"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,\"PARTY\":3,\"FEED\":4,\"DXNS_ADDRESS\":5},\"comment\":null,\"comments\":{\"UNKNOWN\":null,\"IDENTITY\":null,\"DEVICE\":null,\"PARTY\":null,\"FEED\":null,\"DXNS_ADDRESS\":null}},\"PrivKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"PubKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null}}}}},\"rpc\":{\"nested\":{\"Error\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"stack\":{\"type\":\"string\",\"id\":3,\"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\"],\"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\":null}},\"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}}},\"test\":{\"nested\":{\"echo\":{\"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}}}}}}},\"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},\"DescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"field\":{\"rule\":\"repeated\",\"type\":\"FieldDescriptorProto\",\"id\":2},\"extension\":{\"rule\":\"repeated\",\"type\":\"FieldDescriptorProto\",\"id\":6},\"nestedType\":{\"rule\":\"repeated\",\"type\":\"DescriptorProto\",\"id\":3},\"enumType\":{\"rule\":\"repeated\",\"type\":\"EnumDescriptorProto\",\"id\":4},\"extensionRange\":{\"rule\":\"repeated\",\"type\":\"ExtensionRange\",\"id\":5},\"oneofDecl\":{\"rule\":\"repeated\",\"type\":\"OneofDescriptorProto\",\"id\":8},\"options\":{\"type\":\"MessageOptions\",\"id\":7},\"reservedRange\":{\"rule\":\"repeated\",\"type\":\"ReservedRange\",\"id\":9},\"reservedName\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":10}},\"nested\":{\"ExtensionRange\":{\"fields\":{\"start\":{\"type\":\"int32\",\"id\":1},\"end\":{\"type\":\"int32\",\"id\":2}},\"comment\":null},\"ReservedRange\":{\"fields\":{\"start\":{\"type\":\"int32\",\"id\":1},\"end\":{\"type\":\"int32\",\"id\":2}},\"comment\":null}},\"comment\":null},\"DoubleValue\":{\"fields\":{\"value\":{\"type\":\"double\",\"id\":1}},\"comment\":null},\"Empty\":{\"fields\":{},\"comment\":null},\"EnumDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"value\":{\"rule\":\"repeated\",\"type\":\"EnumValueDescriptorProto\",\"id\":2},\"options\":{\"type\":\"EnumOptions\",\"id\":3}},\"comment\":null},\"EnumOptions\":{\"fields\":{\"allowAlias\":{\"type\":\"bool\",\"id\":2},\"deprecated\":{\"type\":\"bool\",\"id\":3},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"EnumValueDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"number\":{\"type\":\"int32\",\"id\":2},\"options\":{\"type\":\"EnumValueOptions\",\"id\":3}},\"comment\":null},\"EnumValueOptions\":{\"fields\":{\"deprecated\":{\"type\":\"bool\",\"id\":1},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"FieldDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"number\":{\"type\":\"int32\",\"id\":3},\"label\":{\"type\":\"Label\",\"id\":4},\"type\":{\"type\":\"Type\",\"id\":5},\"typeName\":{\"type\":\"string\",\"id\":6},\"extendee\":{\"type\":\"string\",\"id\":2},\"defaultValue\":{\"type\":\"string\",\"id\":7},\"oneofIndex\":{\"type\":\"int32\",\"id\":9},\"jsonName\":{\"type\":\"string\",\"id\":10},\"options\":{\"type\":\"FieldOptions\",\"id\":8}},\"nested\":{\"Label\":{\"values\":{\"LABEL_OPTIONAL\":1,\"LABEL_REQUIRED\":2,\"LABEL_REPEATED\":3},\"comments\":{}},\"Type\":{\"values\":{\"TYPE_DOUBLE\":1,\"TYPE_FLOAT\":2,\"TYPE_INT64\":3,\"TYPE_UINT64\":4,\"TYPE_INT32\":5,\"TYPE_FIXED64\":6,\"TYPE_FIXED32\":7,\"TYPE_BOOL\":8,\"TYPE_STRING\":9,\"TYPE_GROUP\":10,\"TYPE_MESSAGE\":11,\"TYPE_BYTES\":12,\"TYPE_UINT32\":13,\"TYPE_ENUM\":14,\"TYPE_SFIXED32\":15,\"TYPE_SFIXED64\":16,\"TYPE_SINT32\":17,\"TYPE_SINT64\":18},\"comments\":{}}},\"comment\":null},\"FieldOptions\":{\"fields\":{\"ctype\":{\"type\":\"CType\",\"id\":1,\"options\":{\"default\":\"STRING\"}},\"packed\":{\"type\":\"bool\",\"id\":2},\"jstype\":{\"type\":\"JSType\",\"id\":6,\"options\":{\"default\":\"JS_NORMAL\"}},\"lazy\":{\"type\":\"bool\",\"id\":5},\"deprecated\":{\"type\":\"bool\",\"id\":3},\"weak\":{\"type\":\"bool\",\"id\":10},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"reserved\":[[4,4]],\"nested\":{\"CType\":{\"values\":{\"STRING\":0,\"CORD\":1,\"STRING_PIECE\":2},\"comments\":{}},\"JSType\":{\"values\":{\"JS_NORMAL\":0,\"JS_STRING\":1,\"JS_NUMBER\":2},\"comments\":{}}},\"comment\":null},\"FileDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"package\":{\"type\":\"string\",\"id\":2},\"dependency\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":3},\"publicDependency\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":10,\"options\":{\"packed\":false}},\"weakDependency\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":11,\"options\":{\"packed\":false}},\"messageType\":{\"rule\":\"repeated\",\"type\":\"DescriptorProto\",\"id\":4},\"enumType\":{\"rule\":\"repeated\",\"type\":\"EnumDescriptorProto\",\"id\":5},\"service\":{\"rule\":\"repeated\",\"type\":\"ServiceDescriptorProto\",\"id\":6},\"extension\":{\"rule\":\"repeated\",\"type\":\"FieldDescriptorProto\",\"id\":7},\"options\":{\"type\":\"FileOptions\",\"id\":8},\"sourceCodeInfo\":{\"type\":\"SourceCodeInfo\",\"id\":9},\"syntax\":{\"type\":\"string\",\"id\":12}},\"comment\":null},\"FileDescriptorSet\":{\"fields\":{\"file\":{\"rule\":\"repeated\",\"type\":\"FileDescriptorProto\",\"id\":1}},\"comment\":null},\"FileOptions\":{\"fields\":{\"javaPackage\":{\"type\":\"string\",\"id\":1},\"javaOuterClassname\":{\"type\":\"string\",\"id\":8},\"javaMultipleFiles\":{\"type\":\"bool\",\"id\":10},\"javaGenerateEqualsAndHash\":{\"type\":\"bool\",\"id\":20,\"options\":{\"deprecated\":true}},\"javaStringCheckUtf8\":{\"type\":\"bool\",\"id\":27},\"optimizeFor\":{\"type\":\"OptimizeMode\",\"id\":9,\"options\":{\"default\":\"SPEED\"}},\"goPackage\":{\"type\":\"string\",\"id\":11},\"ccGenericServices\":{\"type\":\"bool\",\"id\":16},\"javaGenericServices\":{\"type\":\"bool\",\"id\":17},\"pyGenericServices\":{\"type\":\"bool\",\"id\":18},\"deprecated\":{\"type\":\"bool\",\"id\":23},\"ccEnableArenas\":{\"type\":\"bool\",\"id\":31},\"objcClassPrefix\":{\"type\":\"string\",\"id\":36},\"csharpNamespace\":{\"type\":\"string\",\"id\":37},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"reserved\":[[38,38]],\"nested\":{\"OptimizeMode\":{\"values\":{\"SPEED\":1,\"CODE_SIZE\":2,\"LITE_RUNTIME\":3},\"comments\":{}}},\"comment\":null},\"FloatValue\":{\"fields\":{\"value\":{\"type\":\"float\",\"id\":1}},\"comment\":null},\"GeneratedCodeInfo\":{\"fields\":{\"annotation\":{\"rule\":\"repeated\",\"type\":\"Annotation\",\"id\":1}},\"nested\":{\"Annotation\":{\"fields\":{\"path\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":1},\"sourceFile\":{\"type\":\"string\",\"id\":2},\"begin\":{\"type\":\"int32\",\"id\":3},\"end\":{\"type\":\"int32\",\"id\":4}},\"comment\":null}},\"comment\":null},\"Int32Value\":{\"fields\":{\"value\":{\"type\":\"int32\",\"id\":1}},\"comment\":null},\"Int64Value\":{\"fields\":{\"value\":{\"type\":\"int64\",\"id\":1}},\"comment\":null},\"MessageOptions\":{\"fields\":{\"messageSetWireFormat\":{\"type\":\"bool\",\"id\":1},\"noStandardDescriptorAccessor\":{\"type\":\"bool\",\"id\":2},\"deprecated\":{\"type\":\"bool\",\"id\":3},\"mapEntry\":{\"type\":\"bool\",\"id\":7},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"reserved\":[[8,8]],\"comment\":null},\"MethodDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"inputType\":{\"type\":\"string\",\"id\":2},\"outputType\":{\"type\":\"string\",\"id\":3},\"options\":{\"type\":\"MethodOptions\",\"id\":4},\"clientStreaming\":{\"type\":\"bool\",\"id\":5},\"serverStreaming\":{\"type\":\"bool\",\"id\":6}},\"comment\":null},\"MethodOptions\":{\"fields\":{\"deprecated\":{\"type\":\"bool\",\"id\":33},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"OneofDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"options\":{\"type\":\"OneofOptions\",\"id\":2}},\"comment\":null},\"OneofOptions\":{\"fields\":{\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"ServiceDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"method\":{\"rule\":\"repeated\",\"type\":\"MethodDescriptorProto\",\"id\":2},\"options\":{\"type\":\"ServiceOptions\",\"id\":3}},\"comment\":null},\"ServiceOptions\":{\"fields\":{\"deprecated\":{\"type\":\"bool\",\"id\":33},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"SourceCodeInfo\":{\"fields\":{\"location\":{\"rule\":\"repeated\",\"type\":\"Location\",\"id\":1}},\"nested\":{\"Location\":{\"fields\":{\"path\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":1},\"span\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":2},\"leadingComments\":{\"type\":\"string\",\"id\":3},\"trailingComments\":{\"type\":\"string\",\"id\":4},\"leadingDetachedComments\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":6}},\"comment\":null}},\"comment\":null},\"StringValue\":{\"fields\":{\"value\":{\"type\":\"string\",\"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},\"UninterpretedOption\":{\"fields\":{\"name\":{\"rule\":\"repeated\",\"type\":\"NamePart\",\"id\":2},\"identifierValue\":{\"type\":\"string\",\"id\":3},\"positiveIntValue\":{\"type\":\"uint64\",\"id\":4},\"negativeIntValue\":{\"type\":\"int64\",\"id\":5},\"doubleValue\":{\"type\":\"double\",\"id\":6},\"stringValue\":{\"type\":\"bytes\",\"id\":7},\"aggregateValue\":{\"type\":\"string\",\"id\":8}},\"nested\":{\"NamePart\":{\"fields\":{\"namePart\":{\"rule\":\"required\",\"type\":\"string\",\"id\":1},\"isExtension\":{\"rule\":\"required\",\"type\":\"bool\",\"id\":2}},\"comment\":null}},\"comment\":null}}}}}}}");
255
+ export const 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\"]},\"_partyKey\":{\"oneof\":[\"partyKey\"]},\"_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\":\"Timestamp\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":null},\"partyKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"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\":{\"_partyDetails\":{\"oneof\":[\"partyDetails\"]}},\"fields\":{\"partyDetails\":{\"type\":\"dxos.client.PartyDetails\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":\"Details of the party the bot was spawned for.\"}},\"comment\":null},\"BotService\":{\"methods\":{\"Initialize\":{\"requestType\":\"InitializeRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":\"Initialize Client, create profile, and join a party.\"},\"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.echo.InvitationDescriptor\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Invitation for the bot to join the target party.\"},\"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\"]},\"_partyKey\":{\"oneof\":[\"partyKey\"]}},\"fields\":{\"package\":{\"type\":\"BotPackageSpecifier\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"invitation\":{\"type\":\"dxos.echo.InvitationDescriptor\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"Invitation for the bot to join the target party.\"},\"partyKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the party 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\":\"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.halo.keys.PubKey\",\"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\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"inviteeKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":\"When specified the invitation will be of OFFLINE type, not requiring secret exchange.\"}},\"comment\":null},\"CreateProfileRequest\":{\"oneofs\":{\"_username\":{\"oneof\":[\"username\"]},\"_publicKey\":{\"oneof\":[\"publicKey\"]},\"_secretKey\":{\"oneof\":[\"secretKey\"]}},\"fields\":{\"username\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"publicKey\":{\"type\":\"bytes\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"secretKey\":{\"type\":\"bytes\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"CreateSnaspotRequest\":{\"fields\":{\"partyKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetPartyDetailsRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"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},\"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\":\"InvitationDescriptor\",\"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\":1,\"CONNECTED\":2,\"SUCCESS\":3,\"ERROR\":4},\"comment\":null,\"comments\":{\"WAITING_FOR_CONNECTION\":null,\"CONNECTED\":null,\"SUCCESS\":null,\"ERROR\":null}},\"Party\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"isOpen\":{\"rule\":\"required\",\"type\":\"bool\",\"id\":2,\"comment\":null},\"isActive\":{\"rule\":\"required\",\"type\":\"bool\",\"id\":3,\"comment\":null},\"members\":{\"rule\":\"repeated\",\"type\":\"Member\",\"id\":4,\"comment\":null}},\"nested\":{\"Member\":{\"oneofs\":{\"_displayName\":{\"oneof\":[\"displayName\"]}},\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"PartyActivationOptions\":{\"fields\":{\"global\":{\"type\":\"bool\",\"id\":1,\"comment\":null},\"device\":{\"type\":\"bool\",\"id\":2,\"comment\":null}},\"comment\":null},\"PartyDetails\":{\"fields\":{\"processedTimeframe\":{\"rule\":\"required\",\"type\":\"dxos.echo.timeframe.TimeframeVector\",\"id\":1,\"comment\":\"The timeframe of mutations processed by the client.\"}},\"comment\":null},\"PartyService\":{\"methods\":{\"SubscribeToParty\":{\"requestType\":\"SubscribePartyRequest\",\"responseType\":\"SubscribePartyResponse\",\"responseStream\":true,\"comment\":null},\"SubscribeParties\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribePartiesResponse\",\"responseStream\":true,\"comment\":null},\"GetPartyDetails\":{\"requestType\":\"GetPartyDetailsRequest\",\"responseType\":\"PartyDetails\",\"comment\":null},\"CreateParty\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Party\",\"comment\":null},\"CloneParty\":{\"requestType\":\"PartySnapshot\",\"responseType\":\"Party\",\"comment\":null},\"SetPartyState\":{\"requestType\":\"SetPartyStateRequest\",\"responseType\":\"Party\",\"comment\":\"Open and close or activate and deactivate a party.\"},\"CreateInvitation\":{\"requestType\":\"CreateInvitationRequest\",\"responseType\":\"InvitationRequest\",\"responseStream\":true,\"comment\":null},\"AcceptInvitation\":{\"requestType\":\"InvitationDescriptor\",\"responseType\":\"RedeemedInvitation\",\"responseStream\":true,\"comment\":null},\"AuthenticateInvitation\":{\"requestType\":\"AuthenticateInvitationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"SubscribeMembers\":{\"requestType\":\"SubscribeMembersRequest\",\"responseType\":\"SubscribeMembersResponse\",\"responseStream\":true,\"comment\":null},\"CreateSnapshot\":{\"requestType\":\"CreateSnaspotRequest\",\"responseType\":\"PartySnapshot\",\"comment\":null}},\"comment\":null},\"Profile\":{\"oneofs\":{\"_username\":{\"oneof\":[\"username\"]}},\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"username\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ProfileService\":{\"methods\":{\"SubscribeProfile\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"SubscribeProfileResponse\",\"responseStream\":true,\"comment\":null},\"CreateProfile\":{\"requestType\":\"CreateProfileRequest\",\"responseType\":\"Profile\",\"comment\":null},\"RecoverProfile\":{\"requestType\":\"RecoverProfileRequest\",\"responseType\":\"Profile\",\"comment\":null},\"CreateInvitation\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"InvitationRequest\",\"responseStream\":true,\"comment\":null},\"AcceptInvitation\":{\"requestType\":\"InvitationDescriptor\",\"responseType\":\"RedeemedInvitation\",\"responseStream\":true,\"comment\":null},\"AuthenticateInvitation\":{\"requestType\":\"AuthenticateInvitationRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null}},\"comment\":null},\"RecoverProfileRequest\":{\"fields\":{\"seedPhrase\":{\"type\":\"string\",\"id\":1,\"comment\":null}},\"comment\":null},\"RedeemedInvitation\":{\"oneofs\":{\"_error\":{\"oneof\":[\"error\"]},\"_partyKey\":{\"oneof\":[\"partyKey\"]}},\"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.\"},\"partyKey\":{\"type\":\"dxos.halo.keys.PubKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Only on party invitations that are finished.\"}},\"comment\":\"Invitation that is being redeemed.\"},\"SetPartyStateRequest\":{\"oneofs\":{\"_open\":{\"oneof\":[\"open\"]},\"_activeGlobal\":{\"oneof\":[\"activeGlobal\"]},\"_activeDevice\":{\"oneof\":[\"activeDevice\"]}},\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"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},\"SetPreferenceRequest\":{\"fields\":{\"key\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"value\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SignRequest\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"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},\"SubscribeMembersRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeMembersResponse\":{\"fields\":{\"members\":{\"rule\":\"repeated\",\"type\":\"PartyMember\",\"id\":1,\"comment\":null}},\"nested\":{\"PartyMember\":{\"oneofs\":{\"_displayName\":{\"oneof\":[\"displayName\"]}},\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribePartiesResponse\":{\"fields\":{\"parties\":{\"rule\":\"repeated\",\"type\":\"Party\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribePartyRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribePartyResponse\":{\"oneofs\":{\"_party\":{\"oneof\":[\"party\"]}},\"fields\":{\"party\":{\"type\":\"Party\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeProfileResponse\":{\"oneofs\":{\"_profile\":{\"oneof\":[\"profile\"]}},\"fields\":{\"profile\":{\"type\":\"Profile\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SystemService\":{\"methods\":{\"GetConfig\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"Config\",\"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\"]},\"_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},\"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\"]}},\"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}},\"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\"]},\"_mode\":{\"oneof\":[\"mode\"]}},\"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\"},\"mode\":{\"type\":\"Mode\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"nested\":{\"Mode\":{\"values\":{\"AUTOMATIC\":0,\"LOCAL\":1,\"REMOTE\":2},\"comment\":\"Whether the client services are local with ClientServiceHost or remote and need to be accessed via ClientServiceProxy. Defaults to AUTOMATIC.\",\"comments\":{\"AUTOMATIC\":\"Connects to the browser wallet if avialable, otherwise runs services in the local mode.\",\"LOCAL\":\"Run services in the local mode.\",\"REMOTE\":\"Connect to the browser wallet or to the remote services through the RPC port.\"}},\"Storage\":{\"oneofs\":{\"_persistent\":{\"oneof\":[\"persistent\"]},\"_storageType\":{\"oneof\":[\"storageType\"]},\"_keyStorage\":{\"oneof\":[\"keyStorage\"]},\"_path\":{\"oneof\":[\"path\"]}},\"fields\":{\"persistent\":{\"type\":\"bool\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"storageType\":{\"type\":\"StorageDriver\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null},\"keyStorage\":{\"type\":\"StorageDriver\",\"id\":3,\"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},\"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\"]}},\"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}},\"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},\"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}}},\"credentials\":{\"nested\":{\"auth\":{\"nested\":{\"Auth\":{\"oneofs\":{\"_feedKey\":{\"oneof\":[\"feedKey\"]},\"_feedAdmit\":{\"oneof\":[\"feedAdmit\"]}},\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":\"The publicKey of the target Party for these credentials.\"},\"deviceKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":\"The publicKey of the authenticating Device.\"},\"identityKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":\"The publicKey of the authenticating Identity.\"},\"feedKey\":{\"type\":\"PubKey\",\"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 `feedKey` is not admitted to the party.\"}},\"comment\":\"The payload for a SignedMessage sent during handshake for replication authentication.\"}}},\"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},\"partyKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyHint\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"type\":{\"type\":\"KeyType\",\"id\":2,\"comment\":null}},\"comment\":null},\"NotarizeResponse\":{\"fields\":{\"copies\":{\"rule\":\"repeated\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null},\"genesisFeed\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null}},\"comment\":null}}},\"identity\":{\"nested\":{\"DeviceInfo\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"IdentityInfo\":{\"fields\":{\"publicKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"displayName\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null}}},\"Message\":{\"fields\":{\"payload\":{\"rule\":\"required\",\"type\":\"google.protobuf.Any\",\"id\":1,\"comment\":null}},\"comment\":null},\"party\":{\"nested\":{\"Envelope\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"message\":{\"type\":\"Message\",\"id\":2,\"comment\":null}},\"comment\":null},\"FeedAdmit\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"FeedGenesis\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"ownerKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"KeyAdmit\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"admitKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"admitKeyType\":{\"type\":\"KeyType\",\"id\":3,\"comment\":null}},\"comment\":null},\"PartyCredential\":{\"oneofs\":{\"contents\":{\"oneof\":[\"envelope\",\"partyGenesis\",\"keyAdmit\",\"feedAdmit\",\"feedGenesis\"],\"comment\":null}},\"fields\":{\"type\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"envelope\":{\"type\":\"Envelope\",\"id\":10,\"comment\":null},\"partyGenesis\":{\"type\":\"PartyGenesis\",\"id\":11,\"comment\":null},\"keyAdmit\":{\"type\":\"KeyAdmit\",\"id\":12,\"comment\":null},\"feedAdmit\":{\"type\":\"FeedAdmit\",\"id\":13,\"comment\":null},\"feedGenesis\":{\"type\":\"FeedGenesis\",\"id\":14,\"comment\":null}},\"nested\":{\"Type\":{\"values\":{\"ENVELOPE\":0,\"PARTY_GENESIS\":1,\"FEED_GENESIS\":2,\"KEY_ADMIT\":3,\"FEED_ADMIT\":4},\"comment\":null,\"comments\":{\"ENVELOPE\":null,\"PARTY_GENESIS\":null,\"FEED_GENESIS\":null,\"KEY_ADMIT\":null,\"FEED_ADMIT\":null}}},\"comment\":null},\"PartyGenesis\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"admitKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"admitKeyType\":{\"type\":\"KeyType\",\"id\":4,\"comment\":null}},\"comment\":null},\"PartyInvitation\":{\"fields\":{\"id\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"partyKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"issuerKey\":{\"type\":\"PubKey\",\"id\":3,\"comment\":null},\"inviteeKey\":{\"type\":\"PubKey\",\"id\":4,\"comment\":null}},\"comment\":null}}},\"SignedMessage\":{\"fields\":{\"signed\":{\"rule\":\"required\",\"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\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":\"The publicKey of the keypair that made this signature.\"},\"signature\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":2,\"comment\":\"The bytes of the signature.\"},\"keyChain\":{\"type\":\"KeyChain\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"The certification chain of SignedMessages for this key.\"}},\"comment\":null},\"Signed\":{\"fields\":{\"created\":{\"rule\":\"required\",\"type\":\"string\",\"id\":1,\"comment\":\"RFC-3339 datetime string.\"},\"nonce\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":2,\"comment\":null},\"payload\":{\"rule\":\"required\",\"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. PartyCredential)\"}}},\"devtools\":{\"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},\"SubscribeToParties\":{\"requestType\":\"SubscribeToPartiesRequest\",\"responseType\":\"SubscribeToPartiesResponse\",\"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},\"GetPartySnapshot\":{\"requestType\":\"GetPartySnapshotRequest\",\"responseType\":\"GetPartySnapshotResponse\",\"comment\":null},\"SavePartySnapshot\":{\"requestType\":\"SavePartySnapshotRequest\",\"responseType\":\"SavePartySnapshotResponse\",\"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},\"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\":\"PubKey\",\"id\":1,\"comment\":null},\"state\":{\"type\":\"string\",\"id\":2,\"comment\":null},\"connections\":{\"rule\":\"repeated\",\"type\":\"bytes\",\"id\":3,\"comment\":null}},\"comment\":null}},\"comment\":null},\"GetPartySnapshotRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"GetPartySnapshotResponse\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"PartySnapshot\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ReadyEvent\":{\"fields\":{},\"comment\":null},\"ResetStorageRequest\":{\"fields\":{},\"comment\":null},\"SavePartySnapshotRequest\":{\"fields\":{\"partyKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SavePartySnapshotResponse\":{\"oneofs\":{\"_snapshot\":{\"oneof\":[\"snapshot\"]}},\"fields\":{\"snapshot\":{\"type\":\"PartySnapshot\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SetTracingOptionsRequest\":{\"fields\":{\"enable\":{\"type\":\"bool\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToCredentialMessagesRequest\":{\"oneofs\":{\"_partyKey\":{\"oneof\":[\"partyKey\"]}},\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"SubscribeToCredentialMessagesResponse\":{\"fields\":{\"messages\":{\"rule\":\"repeated\",\"type\":\"SignedMessage\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToFeedBlocksRequest\":{\"oneofs\":{\"_partyKey\":{\"oneof\":[\"partyKey\"]},\"_feedKey\":{\"oneof\":[\"feedKey\"]},\"_maxBlocks\":{\"oneof\":[\"maxBlocks\"]}},\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null},\"feedKey\":{\"type\":\"PubKey\",\"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\":{\"key\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null},\"sync\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"path\":{\"type\":\"string\",\"id\":4,\"comment\":null},\"data\":{\"type\":\"FeedMessage\",\"id\":5,\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToFeedsRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeToFeedsResponse\":{\"fields\":{\"feeds\":{\"rule\":\"repeated\",\"type\":\"Feed\",\"id\":1,\"comment\":null}},\"nested\":{\"Feed\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"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\":\"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\":\"PubKey\",\"id\":1,\"comment\":null},\"label\":{\"type\":\"string\",\"id\":2,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null},\"SubscribeToPartiesRequest\":{\"fields\":{\"partyKeys\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeToPartiesResponse\":{\"fields\":{\"parties\":{\"rule\":\"repeated\",\"type\":\"PartyInfo\",\"id\":1,\"comment\":null}},\"nested\":{\"PartyInfo\":{\"fields\":{\"key\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"isOpen\":{\"type\":\"bool\",\"id\":2,\"comment\":null},\"isActive\":{\"type\":\"bool\",\"id\":3,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":4,\"comment\":null},\"feeds\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":5,\"comment\":null},\"properties\":{\"keyType\":\"string\",\"type\":\"string\",\"id\":6,\"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},\"SubscribeToSwarmInfoRequest\":{\"fields\":{},\"comment\":null},\"SubscribeToSwarmInfoResponse\":{\"fields\":{\"data\":{\"rule\":\"repeated\",\"type\":\"SwarmInfo\",\"id\":1,\"comment\":null}},\"nested\":{\"SwarmInfo\":{\"oneofs\":{\"_label\":{\"oneof\":[\"label\"]}},\"fields\":{\"id\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"topic\":{\"type\":\"PubKey\",\"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}},\"nested\":{\"ConnectionInfo\":{\"oneofs\":{\"_transport\":{\"oneof\":[\"transport\"]}},\"fields\":{\"state\":{\"type\":\"string\",\"id\":1,\"comment\":null},\"sessionId\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"remotePeerId\":{\"type\":\"PubKey\",\"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\":\"Json\",\"id\":6,\"comment\":null}},\"nested\":{\"Json\":{\"oneofs\":{\"_data\":{\"oneof\":[\"data\"]}},\"fields\":{\"data\":{\"type\":\"string\",\"id\":1,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null},\"TracingService\":{\"methods\":{\"SetTracingOptions\":{\"requestType\":\"SetTracingOptionsRequest\",\"responseType\":\"google.protobuf.Empty\",\"comment\":null},\"SubscribeToRpcTrace\":{\"requestType\":\"google.protobuf.Empty\",\"responseType\":\"RpcMessage\",\"responseStream\":true,\"comment\":null}},\"comment\":null}}},\"echo\":{\"nested\":{\"feed\":{\"nested\":{\"CredentialsMessage\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"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\":\"ModelSnapshot\",\"id\":13,\"options\":{\"proto3_optional\":true},\"comment\":\"Set the model to the provided snapshot.\"}},\"comment\":\"Wrapper for all ECHO messages.\"},\"FeedMessage\":{\"oneofs\":{\"payload\":{\"oneof\":[\"halo\",\"echo\"],\"comment\":null}},\"fields\":{\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":1,\"comment\":null},\"halo\":{\"type\":\"CredentialsMessage\",\"id\":10,\"comment\":null},\"echo\":{\"type\":\"EchoEnvelope\",\"id\":11,\"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}}},\"invitation\":{\"nested\":{\"InvitationDescriptor\":{\"oneofs\":{\"_identityKey\":{\"oneof\":[\"identityKey\"]},\"_secret\":{\"oneof\":[\"secret\"]}},\"fields\":{\"type\":{\"type\":\"Type\",\"id\":1,\"comment\":null},\"swarmKey\":{\"type\":\"bytes\",\"id\":2,\"comment\":null},\"invitation\":{\"type\":\"bytes\",\"id\":3,\"comment\":null},\"identityKey\":{\"type\":\"bytes\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Only present if type == OFFLINE.\"},\"secret\":{\"type\":\"bytes\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":\"Must be stripped out when passing to another peer.\"}},\"nested\":{\"Type\":{\"values\":{\"INTERACTIVE\":1,\"OFFLINE\":2},\"comment\":\"Defines an invitation type.\",\"comments\":{\"INTERACTIVE\":\"Interactive invitation is when both peers are online at the same time.\",\"OFFLINE\":\"Offline is when only a single peer needs to be online at the time.\"}}},\"comment\":null}}},\"metadata\":{\"nested\":{\"EchoMetadata\":{\"fields\":{\"version\":{\"type\":\"int32\",\"id\":1,\"comment\":\"Version number that is inceremnted every time there's a breaking change to the storage schema.\\n\\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.\"},\"parties\":{\"rule\":\"repeated\",\"type\":\"PartyMetadata\",\"id\":2,\"comment\":null},\"created\":{\"type\":\"google.protobuf.Timestamp\",\"id\":3,\"comment\":null},\"updated\":{\"type\":\"google.protobuf.Timestamp\",\"id\":4,\"comment\":null}},\"comment\":null},\"PartyMetadata\":{\"oneofs\":{\"_genesisFeedKey\":{\"oneof\":[\"genesisFeedKey\"]},\"_controlFeedKey\":{\"oneof\":[\"controlFeedKey\"]},\"_dataFeedKey\":{\"oneof\":[\"dataFeedKey\"]},\"_latestTimeframe\":{\"oneof\":[\"latestTimeframe\"]}},\"fields\":{\"key\":{\"type\":\"PubKey\",\"id\":1,\"comment\":\"Party key.\"},\"genesisFeedKey\":{\"type\":\"PubKey\",\"id\":6,\"options\":{\"proto3_optional\":true},\"comment\":null},\"controlFeedKey\":{\"type\":\"PubKey\",\"id\":4,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the wriatable control feed.\"},\"dataFeedKey\":{\"type\":\"PubKey\",\"id\":3,\"options\":{\"proto3_optional\":true},\"comment\":\"Key of the wriatable data feed.\"},\"latestTimeframe\":{\"type\":\"TimeframeVector\",\"id\":5,\"options\":{\"proto3_optional\":true},\"comment\":null},\"feedKeys\":{\"rule\":\"repeated\",\"type\":\"PubKey\",\"id\":2,\"comment\":\"List of all feed associated with the party.\"}},\"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\":\"PubKey\",\"id\":1,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null}},\"comment\":null},\"SubscribeEntitySetResponse\":{\"fields\":{\"added\":{\"rule\":\"repeated\",\"type\":\"EchoEnvelope\",\"id\":1,\"comment\":null},\"deleted\":{\"rule\":\"repeated\",\"type\":\"EchoEnvelope\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"itemId\":{\"type\":\"string\",\"id\":2,\"comment\":null}},\"comment\":null},\"SubscribeEntityStreamResponse\":{\"oneofs\":{\"kind\":{\"oneof\":[\"snapshot\",\"mutation\"],\"comment\":null}},\"fields\":{\"snapshot\":{\"type\":\"ItemSnapshot\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"Mutation\",\"id\":2,\"comment\":null}},\"nested\":{\"Mutation\":{\"fields\":{\"data\":{\"type\":\"EchoEnvelope\",\"id\":1,\"comment\":null},\"meta\":{\"type\":\"Metadata\",\"id\":2,\"comment\":null}},\"nested\":{\"Metadata\":{\"fields\":{\"feedKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"memberKey\":{\"type\":\"PubKey\",\"id\":2,\"comment\":null},\"seq\":{\"type\":\"int32\",\"id\":3,\"comment\":null},\"timeframe\":{\"type\":\"TimeframeVector\",\"id\":4,\"comment\":null}},\"comment\":null}},\"comment\":null}},\"comment\":null},\"WriteRequest\":{\"fields\":{\"partyKey\":{\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"mutation\":{\"type\":\"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.CredentialsMessage\",\"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\":{\"rule\":\"required\",\"type\":\"string\",\"id\":5,\"comment\":null},\"target\":{\"rule\":\"required\",\"type\":\"string\",\"id\":6,\"comment\":null},\"model\":{\"type\":\"ModelSnapshot\",\"id\":7,\"options\":{\"proto3_optional\":true},\"comment\":null}},\"comment\":null},\"ModelMutation\":{\"fields\":{\"mutation\":{\"rule\":\"required\",\"type\":\"bytes\",\"id\":1,\"comment\":null},\"meta\":{\"rule\":\"required\",\"type\":\"ModelMutationMeta\",\"id\":2,\"comment\":null}},\"comment\":null},\"ModelMutationMeta\":{\"fields\":{\"feedKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"id\":1,\"comment\":null},\"seq\":{\"rule\":\"required\",\"type\":\"int32\",\"id\":2,\"comment\":null},\"memberKey\":{\"rule\":\"required\",\"type\":\"dxos.halo.keys.PubKey\",\"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},\"PartySnapshot\":{\"oneofs\":{\"_timeframe\":{\"oneof\":[\"timeframe\"]},\"_timestamp\":{\"oneof\":[\"timestamp\"]}},\"fields\":{\"partyKey\":{\"type\":\"bytes\",\"id\":1,\"comment\":null},\"timeframe\":{\"type\":\"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.\"}}}}},\"halo\":{\"nested\":{\"keys\":{\"nested\":{\"KeyChain\":{\"fields\":{\"publicKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":1,\"comment\":null},\"message\":{\"rule\":\"required\",\"type\":\"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\":{\"rule\":\"required\",\"type\":\"KeyType\",\"id\":1,\"comment\":\"The `KeyType` type of the key. This is often unknown for keys from other sources.\"},\"publicKey\":{\"rule\":\"required\",\"type\":\"PubKey\",\"id\":2,\"comment\":\"The public key as a Buffer (required).\"},\"secretKey\":{\"type\":\"PrivKey\",\"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 `secretKey` is present; may be false for \\\"inception keys\\\" such as the Party 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,\"PARTY\":3,\"FEED\":4,\"DXNS_ADDRESS\":5},\"comment\":null,\"comments\":{\"UNKNOWN\":null,\"IDENTITY\":null,\"DEVICE\":null,\"PARTY\":null,\"FEED\":null,\"DXNS_ADDRESS\":null}},\"PrivKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"comment\":null},\"PubKey\":{\"fields\":{\"data\":{\"type\":\"bytes\",\"id\":1,\"comment\":null}},\"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.\\n\\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}}},\"test\":{\"nested\":{\"echo\":{\"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}}}}}}},\"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},\"DescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"field\":{\"rule\":\"repeated\",\"type\":\"FieldDescriptorProto\",\"id\":2},\"extension\":{\"rule\":\"repeated\",\"type\":\"FieldDescriptorProto\",\"id\":6},\"nestedType\":{\"rule\":\"repeated\",\"type\":\"DescriptorProto\",\"id\":3},\"enumType\":{\"rule\":\"repeated\",\"type\":\"EnumDescriptorProto\",\"id\":4},\"extensionRange\":{\"rule\":\"repeated\",\"type\":\"ExtensionRange\",\"id\":5},\"oneofDecl\":{\"rule\":\"repeated\",\"type\":\"OneofDescriptorProto\",\"id\":8},\"options\":{\"type\":\"MessageOptions\",\"id\":7},\"reservedRange\":{\"rule\":\"repeated\",\"type\":\"ReservedRange\",\"id\":9},\"reservedName\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":10}},\"nested\":{\"ExtensionRange\":{\"fields\":{\"start\":{\"type\":\"int32\",\"id\":1},\"end\":{\"type\":\"int32\",\"id\":2}},\"comment\":null},\"ReservedRange\":{\"fields\":{\"start\":{\"type\":\"int32\",\"id\":1},\"end\":{\"type\":\"int32\",\"id\":2}},\"comment\":null}},\"comment\":null},\"DoubleValue\":{\"fields\":{\"value\":{\"type\":\"double\",\"id\":1}},\"comment\":null},\"Empty\":{\"fields\":{},\"comment\":null},\"EnumDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"value\":{\"rule\":\"repeated\",\"type\":\"EnumValueDescriptorProto\",\"id\":2},\"options\":{\"type\":\"EnumOptions\",\"id\":3}},\"comment\":null},\"EnumOptions\":{\"fields\":{\"allowAlias\":{\"type\":\"bool\",\"id\":2},\"deprecated\":{\"type\":\"bool\",\"id\":3},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"EnumValueDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"number\":{\"type\":\"int32\",\"id\":2},\"options\":{\"type\":\"EnumValueOptions\",\"id\":3}},\"comment\":null},\"EnumValueOptions\":{\"fields\":{\"deprecated\":{\"type\":\"bool\",\"id\":1},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"FieldDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"number\":{\"type\":\"int32\",\"id\":3},\"label\":{\"type\":\"Label\",\"id\":4},\"type\":{\"type\":\"Type\",\"id\":5},\"typeName\":{\"type\":\"string\",\"id\":6},\"extendee\":{\"type\":\"string\",\"id\":2},\"defaultValue\":{\"type\":\"string\",\"id\":7},\"oneofIndex\":{\"type\":\"int32\",\"id\":9},\"jsonName\":{\"type\":\"string\",\"id\":10},\"options\":{\"type\":\"FieldOptions\",\"id\":8}},\"nested\":{\"Label\":{\"values\":{\"LABEL_OPTIONAL\":1,\"LABEL_REQUIRED\":2,\"LABEL_REPEATED\":3},\"comments\":{}},\"Type\":{\"values\":{\"TYPE_DOUBLE\":1,\"TYPE_FLOAT\":2,\"TYPE_INT64\":3,\"TYPE_UINT64\":4,\"TYPE_INT32\":5,\"TYPE_FIXED64\":6,\"TYPE_FIXED32\":7,\"TYPE_BOOL\":8,\"TYPE_STRING\":9,\"TYPE_GROUP\":10,\"TYPE_MESSAGE\":11,\"TYPE_BYTES\":12,\"TYPE_UINT32\":13,\"TYPE_ENUM\":14,\"TYPE_SFIXED32\":15,\"TYPE_SFIXED64\":16,\"TYPE_SINT32\":17,\"TYPE_SINT64\":18},\"comments\":{}}},\"comment\":null},\"FieldOptions\":{\"fields\":{\"ctype\":{\"type\":\"CType\",\"id\":1,\"options\":{\"default\":\"STRING\"}},\"packed\":{\"type\":\"bool\",\"id\":2},\"jstype\":{\"type\":\"JSType\",\"id\":6,\"options\":{\"default\":\"JS_NORMAL\"}},\"lazy\":{\"type\":\"bool\",\"id\":5},\"deprecated\":{\"type\":\"bool\",\"id\":3},\"weak\":{\"type\":\"bool\",\"id\":10},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"reserved\":[[4,4]],\"nested\":{\"CType\":{\"values\":{\"STRING\":0,\"CORD\":1,\"STRING_PIECE\":2},\"comments\":{}},\"JSType\":{\"values\":{\"JS_NORMAL\":0,\"JS_STRING\":1,\"JS_NUMBER\":2},\"comments\":{}}},\"comment\":null},\"FileDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"package\":{\"type\":\"string\",\"id\":2},\"dependency\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":3},\"publicDependency\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":10,\"options\":{\"packed\":false}},\"weakDependency\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":11,\"options\":{\"packed\":false}},\"messageType\":{\"rule\":\"repeated\",\"type\":\"DescriptorProto\",\"id\":4},\"enumType\":{\"rule\":\"repeated\",\"type\":\"EnumDescriptorProto\",\"id\":5},\"service\":{\"rule\":\"repeated\",\"type\":\"ServiceDescriptorProto\",\"id\":6},\"extension\":{\"rule\":\"repeated\",\"type\":\"FieldDescriptorProto\",\"id\":7},\"options\":{\"type\":\"FileOptions\",\"id\":8},\"sourceCodeInfo\":{\"type\":\"SourceCodeInfo\",\"id\":9},\"syntax\":{\"type\":\"string\",\"id\":12}},\"comment\":null},\"FileDescriptorSet\":{\"fields\":{\"file\":{\"rule\":\"repeated\",\"type\":\"FileDescriptorProto\",\"id\":1}},\"comment\":null},\"FileOptions\":{\"fields\":{\"javaPackage\":{\"type\":\"string\",\"id\":1},\"javaOuterClassname\":{\"type\":\"string\",\"id\":8},\"javaMultipleFiles\":{\"type\":\"bool\",\"id\":10},\"javaGenerateEqualsAndHash\":{\"type\":\"bool\",\"id\":20,\"options\":{\"deprecated\":true}},\"javaStringCheckUtf8\":{\"type\":\"bool\",\"id\":27},\"optimizeFor\":{\"type\":\"OptimizeMode\",\"id\":9,\"options\":{\"default\":\"SPEED\"}},\"goPackage\":{\"type\":\"string\",\"id\":11},\"ccGenericServices\":{\"type\":\"bool\",\"id\":16},\"javaGenericServices\":{\"type\":\"bool\",\"id\":17},\"pyGenericServices\":{\"type\":\"bool\",\"id\":18},\"deprecated\":{\"type\":\"bool\",\"id\":23},\"ccEnableArenas\":{\"type\":\"bool\",\"id\":31},\"objcClassPrefix\":{\"type\":\"string\",\"id\":36},\"csharpNamespace\":{\"type\":\"string\",\"id\":37},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"reserved\":[[38,38]],\"nested\":{\"OptimizeMode\":{\"values\":{\"SPEED\":1,\"CODE_SIZE\":2,\"LITE_RUNTIME\":3},\"comments\":{}}},\"comment\":null},\"FloatValue\":{\"fields\":{\"value\":{\"type\":\"float\",\"id\":1}},\"comment\":null},\"GeneratedCodeInfo\":{\"fields\":{\"annotation\":{\"rule\":\"repeated\",\"type\":\"Annotation\",\"id\":1}},\"nested\":{\"Annotation\":{\"fields\":{\"path\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":1},\"sourceFile\":{\"type\":\"string\",\"id\":2},\"begin\":{\"type\":\"int32\",\"id\":3},\"end\":{\"type\":\"int32\",\"id\":4}},\"comment\":null}},\"comment\":null},\"Int32Value\":{\"fields\":{\"value\":{\"type\":\"int32\",\"id\":1}},\"comment\":null},\"Int64Value\":{\"fields\":{\"value\":{\"type\":\"int64\",\"id\":1}},\"comment\":null},\"MessageOptions\":{\"fields\":{\"messageSetWireFormat\":{\"type\":\"bool\",\"id\":1},\"noStandardDescriptorAccessor\":{\"type\":\"bool\",\"id\":2},\"deprecated\":{\"type\":\"bool\",\"id\":3},\"mapEntry\":{\"type\":\"bool\",\"id\":7},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"reserved\":[[8,8]],\"comment\":null},\"MethodDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"inputType\":{\"type\":\"string\",\"id\":2},\"outputType\":{\"type\":\"string\",\"id\":3},\"options\":{\"type\":\"MethodOptions\",\"id\":4},\"clientStreaming\":{\"type\":\"bool\",\"id\":5},\"serverStreaming\":{\"type\":\"bool\",\"id\":6}},\"comment\":null},\"MethodOptions\":{\"fields\":{\"deprecated\":{\"type\":\"bool\",\"id\":33},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"OneofDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"options\":{\"type\":\"OneofOptions\",\"id\":2}},\"comment\":null},\"OneofOptions\":{\"fields\":{\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"ServiceDescriptorProto\":{\"fields\":{\"name\":{\"type\":\"string\",\"id\":1},\"method\":{\"rule\":\"repeated\",\"type\":\"MethodDescriptorProto\",\"id\":2},\"options\":{\"type\":\"ServiceOptions\",\"id\":3}},\"comment\":null},\"ServiceOptions\":{\"fields\":{\"deprecated\":{\"type\":\"bool\",\"id\":33},\"uninterpretedOption\":{\"rule\":\"repeated\",\"type\":\"UninterpretedOption\",\"id\":999}},\"extensions\":[[1000,536870911]],\"comment\":null},\"SourceCodeInfo\":{\"fields\":{\"location\":{\"rule\":\"repeated\",\"type\":\"Location\",\"id\":1}},\"nested\":{\"Location\":{\"fields\":{\"path\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":1},\"span\":{\"rule\":\"repeated\",\"type\":\"int32\",\"id\":2},\"leadingComments\":{\"type\":\"string\",\"id\":3},\"trailingComments\":{\"type\":\"string\",\"id\":4},\"leadingDetachedComments\":{\"rule\":\"repeated\",\"type\":\"string\",\"id\":6}},\"comment\":null}},\"comment\":null},\"StringValue\":{\"fields\":{\"value\":{\"type\":\"string\",\"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},\"UninterpretedOption\":{\"fields\":{\"name\":{\"rule\":\"repeated\",\"type\":\"NamePart\",\"id\":2},\"identifierValue\":{\"type\":\"string\",\"id\":3},\"positiveIntValue\":{\"type\":\"uint64\",\"id\":4},\"negativeIntValue\":{\"type\":\"int64\",\"id\":5},\"doubleValue\":{\"type\":\"double\",\"id\":6},\"stringValue\":{\"type\":\"bytes\",\"id\":7},\"aggregateValue\":{\"type\":\"string\",\"id\":8}},\"nested\":{\"NamePart\":{\"fields\":{\"namePart\":{\"rule\":\"required\",\"type\":\"string\",\"id\":1},\"isExtension\":{\"rule\":\"required\",\"type\":\"bool\",\"id\":2}},\"comment\":null}},\"comment\":null}}}}}}}");
256
256
  export const schema = Schema.fromJson<TYPES, SERVICES>(schemaJson);
@@ -4,5 +4,3 @@
4
4
 
5
5
  // TODO(burdon): Add more exports?
6
6
  // Reconcile with echo-protocols, halo-protocols?
7
-
8
- export * from './gen/dxos/halo/keys';