@dxos/protocols 0.1.31-next.ea8f0bc → 0.1.32-next.77d513e

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 (139) hide show
  1. package/dist/cjs/src/proto/gen/dxos/client/services.d.ts +71 -4
  2. package/dist/cjs/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  3. package/dist/cjs/src/proto/gen/dxos/client/services.js +10 -6
  4. package/dist/cjs/src/proto/gen/dxos/client/services.js.map +1 -1
  5. package/dist/cjs/src/proto/gen/dxos/echo/feed.d.ts +1 -1
  6. package/dist/cjs/src/proto/gen/dxos/echo/feed.d.ts.map +1 -1
  7. package/dist/cjs/src/proto/gen/dxos/echo/metadata.d.ts +26 -1
  8. package/dist/cjs/src/proto/gen/dxos/echo/metadata.d.ts.map +1 -1
  9. package/dist/cjs/src/proto/gen/dxos/echo/model/text.d.ts +32 -4
  10. package/dist/cjs/src/proto/gen/dxos/echo/model/text.d.ts.map +1 -1
  11. package/dist/cjs/src/proto/gen/dxos/echo/model/text.js +10 -0
  12. package/dist/cjs/src/proto/gen/dxos/echo/model/text.js.map +1 -1
  13. package/dist/cjs/src/proto/gen/dxos/halo/credentials.d.ts +1 -47
  14. package/dist/cjs/src/proto/gen/dxos/halo/credentials.d.ts.map +1 -1
  15. package/dist/cjs/src/proto/gen/dxos/halo/invitations.d.ts +5 -0
  16. package/dist/cjs/src/proto/gen/dxos/halo/invitations.d.ts.map +1 -1
  17. package/dist/cjs/src/proto/gen/dxos/mesh/presence.d.ts +5 -20
  18. package/dist/cjs/src/proto/gen/dxos/mesh/presence.d.ts.map +1 -1
  19. package/dist/cjs/src/proto/gen/dxos/mesh/teleport/gossip.d.ts +26 -0
  20. package/dist/cjs/src/proto/gen/dxos/mesh/teleport/gossip.d.ts.map +1 -0
  21. package/dist/cjs/src/proto/gen/dxos/mesh/teleport/{presence.js → gossip.js} +1 -1
  22. package/dist/cjs/src/proto/gen/dxos/mesh/teleport/gossip.js.map +1 -0
  23. package/dist/cjs/src/proto/gen/google/protobuf.d.ts +6 -6
  24. package/dist/cjs/src/proto/gen/google/protobuf.d.ts.map +1 -1
  25. package/dist/cjs/src/proto/gen/google/protobuf.js.map +1 -1
  26. package/dist/cjs/src/proto/gen/index.d.ts +12 -10
  27. package/dist/cjs/src/proto/gen/index.d.ts.map +1 -1
  28. package/dist/cjs/src/proto/gen/index.js +1 -1
  29. package/dist/cjs/src/proto/gen/index.js.map +1 -1
  30. package/dist/cjs/src/testing.d.ts.map +1 -1
  31. package/dist/cjs/src/testing.js +12 -8
  32. package/dist/cjs/src/testing.js.map +1 -1
  33. package/dist/cjs/src/types.d.ts +2 -2
  34. package/dist/cjs/src/types.d.ts.map +1 -1
  35. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  36. package/dist/esm/src/proto/gen/dxos/client/services.d.ts +71 -4
  37. package/dist/esm/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  38. package/dist/esm/src/proto/gen/dxos/client/services.js +9 -5
  39. package/dist/esm/src/proto/gen/dxos/client/services.js.map +1 -1
  40. package/dist/esm/src/proto/gen/dxos/echo/feed.d.ts +1 -1
  41. package/dist/esm/src/proto/gen/dxos/echo/feed.d.ts.map +1 -1
  42. package/dist/esm/src/proto/gen/dxos/echo/metadata.d.ts +26 -1
  43. package/dist/esm/src/proto/gen/dxos/echo/metadata.d.ts.map +1 -1
  44. package/dist/esm/src/proto/gen/dxos/echo/model/text.d.ts +32 -4
  45. package/dist/esm/src/proto/gen/dxos/echo/model/text.d.ts.map +1 -1
  46. package/dist/esm/src/proto/gen/dxos/echo/model/text.js +9 -1
  47. package/dist/esm/src/proto/gen/dxos/echo/model/text.js.map +1 -1
  48. package/dist/esm/src/proto/gen/dxos/halo/credentials.d.ts +1 -47
  49. package/dist/esm/src/proto/gen/dxos/halo/credentials.d.ts.map +1 -1
  50. package/dist/esm/src/proto/gen/dxos/halo/invitations.d.ts +5 -0
  51. package/dist/esm/src/proto/gen/dxos/halo/invitations.d.ts.map +1 -1
  52. package/dist/esm/src/proto/gen/dxos/mesh/presence.d.ts +5 -20
  53. package/dist/esm/src/proto/gen/dxos/mesh/presence.d.ts.map +1 -1
  54. package/dist/esm/src/proto/gen/dxos/mesh/teleport/gossip.d.ts +26 -0
  55. package/dist/esm/src/proto/gen/dxos/mesh/teleport/gossip.d.ts.map +1 -0
  56. package/dist/esm/src/proto/gen/dxos/mesh/teleport/gossip.js +2 -0
  57. package/dist/esm/src/proto/gen/dxos/mesh/teleport/gossip.js.map +1 -0
  58. package/dist/esm/src/proto/gen/google/protobuf.d.ts +6 -6
  59. package/dist/esm/src/proto/gen/google/protobuf.d.ts.map +1 -1
  60. package/dist/esm/src/proto/gen/google/protobuf.js.map +1 -1
  61. package/dist/esm/src/proto/gen/index.d.ts +12 -10
  62. package/dist/esm/src/proto/gen/index.d.ts.map +1 -1
  63. package/dist/esm/src/proto/gen/index.js +1 -1
  64. package/dist/esm/src/proto/gen/index.js.map +1 -1
  65. package/dist/esm/src/testing.d.ts.map +1 -1
  66. package/dist/esm/src/testing.js +12 -8
  67. package/dist/esm/src/testing.js.map +1 -1
  68. package/dist/esm/src/types.d.ts +2 -2
  69. package/dist/esm/src/types.d.ts.map +1 -1
  70. package/package.json +5 -5
  71. package/src/proto/dxos/client/services.proto +46 -4
  72. package/src/proto/dxos/echo/feed.proto +1 -2
  73. package/src/proto/dxos/echo/metadata.proto +16 -2
  74. package/src/proto/dxos/echo/model/text.proto +13 -4
  75. package/src/proto/dxos/halo/credentials.proto +1 -38
  76. package/src/proto/dxos/halo/invitations.proto +1 -0
  77. package/src/proto/dxos/iframe.proto +1 -0
  78. package/src/proto/dxos/mesh/presence.proto +5 -8
  79. package/src/proto/dxos/mesh/teleport/gossip.proto +26 -0
  80. package/src/proto/gen/dxos/bot.ts +1 -1
  81. package/src/proto/gen/dxos/client/services.ts +71 -5
  82. package/src/proto/gen/dxos/config.ts +1 -1
  83. package/src/proto/gen/dxos/devtools/host.ts +1 -1
  84. package/src/proto/gen/dxos/devtools/swarm.ts +1 -1
  85. package/src/proto/gen/dxos/echo/feed.ts +2 -2
  86. package/src/proto/gen/dxos/echo/metadata.ts +27 -2
  87. package/src/proto/gen/dxos/echo/model/document.ts +1 -1
  88. package/src/proto/gen/dxos/echo/model/messenger.ts +1 -1
  89. package/src/proto/gen/dxos/echo/model/text.ts +33 -5
  90. package/src/proto/gen/dxos/echo/object.ts +1 -1
  91. package/src/proto/gen/dxos/echo/service.ts +1 -1
  92. package/src/proto/gen/dxos/echo/snapshot.ts +1 -1
  93. package/src/proto/gen/dxos/echo/timeframe.ts +1 -1
  94. package/src/proto/gen/dxos/gravity.ts +1 -1
  95. package/src/proto/gen/dxos/halo/credentials/auth.ts +1 -1
  96. package/src/proto/gen/dxos/halo/credentials/greet.ts +1 -1
  97. package/src/proto/gen/dxos/halo/credentials/identity.ts +1 -1
  98. package/src/proto/gen/dxos/halo/credentials.ts +2 -48
  99. package/src/proto/gen/dxos/halo/invitations.ts +6 -1
  100. package/src/proto/gen/dxos/halo/keyring.ts +1 -1
  101. package/src/proto/gen/dxos/halo/keys.ts +1 -1
  102. package/src/proto/gen/dxos/halo/signed.ts +1 -1
  103. package/src/proto/gen/dxos/iframe.ts +1 -1
  104. package/src/proto/gen/dxos/keys.ts +1 -1
  105. package/src/proto/gen/dxos/mesh/bridge.ts +1 -1
  106. package/src/proto/gen/dxos/mesh/broadcast.ts +1 -1
  107. package/src/proto/gen/dxos/mesh/messaging.ts +1 -1
  108. package/src/proto/gen/dxos/mesh/muxer.ts +1 -1
  109. package/src/proto/gen/dxos/mesh/presence.ts +5 -21
  110. package/src/proto/gen/dxos/mesh/protocol.ts +1 -1
  111. package/src/proto/gen/dxos/mesh/replicator.ts +1 -1
  112. package/src/proto/gen/dxos/mesh/signal.ts +1 -1
  113. package/src/proto/gen/dxos/mesh/swarm.ts +1 -1
  114. package/src/proto/gen/dxos/mesh/teleport/auth.ts +1 -1
  115. package/src/proto/gen/dxos/mesh/teleport/control.ts +1 -1
  116. package/src/proto/gen/dxos/mesh/teleport/{presence.ts → gossip.ts} +9 -9
  117. package/src/proto/gen/dxos/mesh/teleport/notarization.ts +1 -1
  118. package/src/proto/gen/dxos/mesh/teleport/objectsync.ts +1 -1
  119. package/src/proto/gen/dxos/mesh/teleport/replicator.ts +1 -1
  120. package/src/proto/gen/dxos/registry.ts +1 -1
  121. package/src/proto/gen/dxos/rpc.ts +1 -1
  122. package/src/proto/gen/dxos/service/publisher.ts +1 -1
  123. package/src/proto/gen/dxos/service/scheduler.ts +1 -1
  124. package/src/proto/gen/dxos/service/supervisor.ts +1 -1
  125. package/src/proto/gen/dxos/type.ts +1 -1
  126. package/src/proto/gen/example/testing/data.ts +1 -1
  127. package/src/proto/gen/example/testing/rpc.ts +1 -1
  128. package/src/proto/gen/google/protobuf.ts +7 -7
  129. package/src/proto/gen/index.ts +13 -11
  130. package/src/testing.ts +12 -8
  131. package/src/types.ts +2 -2
  132. package/dist/cjs/src/proto/gen/dxos/mesh/teleport/presence.d.ts +0 -26
  133. package/dist/cjs/src/proto/gen/dxos/mesh/teleport/presence.d.ts.map +0 -1
  134. package/dist/cjs/src/proto/gen/dxos/mesh/teleport/presence.js.map +0 -1
  135. package/dist/esm/src/proto/gen/dxos/mesh/teleport/presence.d.ts +0 -26
  136. package/dist/esm/src/proto/gen/dxos/mesh/teleport/presence.d.ts.map +0 -1
  137. package/dist/esm/src/proto/gen/dxos/mesh/teleport/presence.js +0 -2
  138. package/dist/esm/src/proto/gen/dxos/mesh/teleport/presence.js.map +0 -1
  139. package/src/proto/dxos/mesh/teleport/presence.proto +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,oBAAY,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAGpD,oBAAY,QAAQ,GAAG;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,SAAS,CAAC,CAAC,IAAI;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,oBAAY,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D,SAAS,EAAE,SAAS,CAAC;CACtB;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,yBAAyB,CAAC;IAChC,IAAI,EAAE,UAAU,CAAC;CAClB;AAGD,oBAAY,MAAM,GAAG,MAAM,CAAC;AAC5B,oBAAY,QAAQ,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,oBAAY,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAGpD,oBAAY,QAAQ,GAAG;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,SAAS,CAAC,CAAC,IAAI;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,oBAAY,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D,SAAS,EAAE,SAAS,CAAC;CACtB;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,yBAAyB,CAAC;IAChC,KAAK,EAAE,eAAe,CAAC;CACxB;AAGD,oBAAY,MAAM,GAAG,MAAM,CAAC;AAC5B,oBAAY,QAAQ,GAAG,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/protocols",
3
- "version": "0.1.31-next.ea8f0bc",
3
+ "version": "0.1.32-next.77d513e",
4
4
  "description": "Protobuf definitions for DXOS protocols.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -33,10 +33,10 @@
33
33
  "src"
34
34
  ],
35
35
  "dependencies": {
36
- "@dxos/codec-protobuf": "0.1.31-next.ea8f0bc",
37
- "@dxos/hypercore": "0.1.31-next.ea8f0bc",
38
- "@dxos/keys": "0.1.31-next.ea8f0bc",
39
- "@dxos/timeframe": "0.1.31-next.ea8f0bc"
36
+ "@dxos/codec-protobuf": "0.1.32-next.77d513e",
37
+ "@dxos/hypercore": "0.1.32-next.77d513e",
38
+ "@dxos/keys": "0.1.32-next.77d513e",
39
+ "@dxos/timeframe": "0.1.32-next.77d513e"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/debug": "^4.1.7",
@@ -9,6 +9,7 @@ import "google/protobuf/empty.proto";
9
9
  import "dxos/config.proto";
10
10
  import "dxos/halo/credentials.proto";
11
11
  import "dxos/halo/invitations.proto";
12
+ import "dxos/mesh/teleport/gossip.proto";
12
13
  import "dxos/keys.proto";
13
14
 
14
15
  // TODO(burdon): Restructure all services.
@@ -139,16 +140,43 @@ message SpaceMember {
139
140
  PresenceState presence = 2;
140
141
  }
141
142
 
142
- enum SpaceStatus {
143
- ACTIVE = 0;
144
- INACTIVE = 1;
143
+ /// Runtime state of the space object.
144
+ enum SpaceState {
145
+ /// Space is closed.
146
+ CLOSED = 1;
147
+
148
+ /// Space is inactive. Database is not available.
149
+ INACTIVE = 2;
150
+
151
+ /// Data pipeline is initializing.
152
+ INITIALIZING = 4;
153
+
154
+ /// Data pipeline is ready.
155
+ READY = 3;
145
156
  }
146
157
 
147
158
  message Space {
159
+ // TODO(dmaretskyi): Consider merging with space metadata records.
160
+ // TODO(dmaretskyi): ...or split into two separate pipeline messages.
161
+ message PipelineState {
162
+ optional dxos.keys.PublicKey control_feed_key = 1;
163
+ optional dxos.keys.PublicKey data_feed_key = 2;
164
+
165
+ optional timeframe.TimeframeVector current_control_timeframe = 10;
166
+ optional timeframe.TimeframeVector target_control_timeframe = 11;
167
+ optional timeframe.TimeframeVector current_data_timeframe = 12;
168
+ optional timeframe.TimeframeVector target_data_timeframe = 13;
169
+
170
+ // TODO(dmaretskyi): Snapshot & epoch info.
171
+ }
172
+
148
173
  dxos.keys.PublicKey space_key = 1;
149
- SpaceStatus status = 2;
174
+ SpaceState state = 2;
175
+ optional PipelineState pipeline = 3;
150
176
 
151
177
  repeated SpaceMember members = 10;
178
+
179
+ // TODO(dmaretskyi): Inline a snapshot of space.properties here so that inactive spaces still display their title.
152
180
  }
153
181
 
154
182
  message UpdateSpaceRequest {
@@ -159,6 +187,17 @@ message QuerySpacesResponse {
159
187
  repeated Space spaces = 1;
160
188
  }
161
189
 
190
+ message PostMessageRequest {
191
+ dxos.keys.PublicKey space_key = 1;
192
+ string channel = 2;
193
+ google.protobuf.Any message = 3;
194
+ }
195
+
196
+ message SubscribeMessagesRequest {
197
+ dxos.keys.PublicKey space_key = 1;
198
+ string channel = 2;
199
+ }
200
+
162
201
  message WriteCredentialsRequest {
163
202
  dxos.keys.PublicKey space_key = 1;
164
203
  repeated dxos.halo.credentials.Credential credentials = 2;
@@ -173,6 +212,9 @@ service SpacesService {
173
212
  rpc UpdateSpace(UpdateSpaceRequest) returns (google.protobuf.Empty);
174
213
  rpc QuerySpaces(google.protobuf.Empty) returns (stream QuerySpacesResponse);
175
214
 
215
+ rpc PostMessage(PostMessageRequest) returns (google.protobuf.Empty);
216
+ rpc SubscribeMessages(SubscribeMessagesRequest) returns (stream dxos.mesh.teleport.gossip.GossipMessage);
217
+
176
218
  /// Write credentials to the space control feed.
177
219
  rpc WriteCredentials(WriteCredentialsRequest) returns (google.protobuf.Empty);
178
220
  /// Query credentials from the space control feed.
@@ -42,6 +42,5 @@ message CredentialsMessage {
42
42
  * A container ECHO database messages in data feeds.
43
43
  */
44
44
  message DataMessage {
45
- // TODO(dmaretskyi): Batch.
46
- dxos.echo.object.EchoObject object = 1;
45
+ dxos.echo.object.EchoObjectBatch batch = 2;
47
46
  }
@@ -7,7 +7,6 @@ syntax = "proto3";
7
7
  import "google/protobuf/timestamp.proto";
8
8
 
9
9
  import "dxos/echo/timeframe.proto";
10
- import "dxos/halo/credentials.proto";
11
10
  import "dxos/keys.proto";
12
11
 
13
12
  package dxos.echo.metadata;
@@ -24,7 +23,7 @@ message EchoMetadata {
24
23
  google.protobuf.Timestamp updated = 3;
25
24
 
26
25
  // TODO(dmaretskyi): Store the device key associated with the identity.
27
- optional dxos.halo.credentials.IdentityRecord identity = 10;
26
+ optional IdentityRecord identity = 10;
28
27
 
29
28
  /// List of the data spaces.
30
29
  repeated SpaceMetadata spaces = 11;
@@ -55,3 +54,18 @@ message SpaceMetadata {
55
54
 
56
55
  optional string snapshot = 7;
57
56
  }
57
+
58
+ /// Information needed to bootstrap an Identity.
59
+ message IdentityRecord {
60
+ dxos.keys.PublicKey identity_key = 1;
61
+ dxos.keys.PublicKey device_key = 2;
62
+
63
+ SpaceMetadata halo_space = 3;
64
+
65
+ /// Public profile information.
66
+ /// TODO(burdon): Not yet implemented. Must be null.
67
+ optional SpaceMetadata profile_space = 4;
68
+
69
+ /// Cached profile.
70
+ optional ProfileDocument profile = 5;
71
+ }
@@ -6,11 +6,20 @@ syntax = "proto3";
6
6
 
7
7
  package dxos.echo.model.text;
8
8
 
9
- message Mutation {
10
- bytes update = 1;
11
- int32 client_id = 2;
9
+ enum TextKind {
10
+ PLAIN = 0;
11
+ RICH = 1;
12
12
  }
13
13
 
14
- message Snapshot {
14
+ message TextMutation {
15
+ optional bytes update = 1;
16
+ optional int32 client_id = 2;
17
+ optional TextKind kind = 3;
18
+ optional string field = 4;
19
+ }
20
+
21
+ message TextSnapshot {
15
22
  bytes data = 1;
23
+ TextKind kind = 2;
24
+ string field = 3;
16
25
  }
@@ -100,7 +100,7 @@ message HaloSpace {
100
100
  /// [ASSERTION]: Grants recovery permissions to a recovery key.
101
101
  message IdentityRecovery {
102
102
  dxos.keys.PublicKey identity_key = 1;
103
- /// Public key derrived from the recovery seedphrase.
103
+ /// Public key derived from the recovery seedphrase.
104
104
  dxos.keys.PublicKey recovery_key = 2;
105
105
  }
106
106
 
@@ -212,40 +212,3 @@ message Presentation {
212
212
  repeated Credential credentials = 1;
213
213
  repeated Proof proofs = 2;
214
214
  }
215
-
216
- //
217
- // **Metadata** -
218
- // Persistent metadata stored outside of used to bootsrapt the stack.
219
- //
220
-
221
- /// Information needed to bootstrap a Space.
222
- message SpaceRecord {
223
- dxos.keys.PublicKey space_key = 1;
224
-
225
- /// All feeds in the space must form a DAG (or a tree?)
226
- /// This is the root feed of that structure.
227
- dxos.keys.PublicKey genesis_feed_key = 2;
228
-
229
- /// Key of the writable feed for control messages.
230
- /// Keyring must have the associated private key.
231
- dxos.keys.PublicKey write_control_feed_key = 3;
232
-
233
- /// Key of the writable feed for data messages.
234
- /// Keyring must have the associated private key.
235
- dxos.keys.PublicKey write_data_feed_key = 4;
236
- }
237
-
238
- /// Information needed to bootstrap an Identity.
239
- message IdentityRecord {
240
- dxos.keys.PublicKey identity_key = 1;
241
- dxos.keys.PublicKey device_key = 2;
242
-
243
- SpaceRecord halo_space = 3;
244
-
245
- /// Public profile information.
246
- /// TODO(burdon): Not yet implemented. Must be null.
247
- optional SpaceRecord profile_space = 4;
248
-
249
- /// Cached profile.
250
- optional ProfileDocument profile = 5;
251
- }
@@ -45,6 +45,7 @@ message HaloAdmissionOffer {
45
45
  dxos.keys.PublicKey identity_key = 1;
46
46
  dxos.keys.PublicKey halo_space_key = 2;
47
47
  dxos.keys.PublicKey genesis_feed_key = 3;
48
+ optional dxos.echo.timeframe.TimeframeVector control_timeframe = 4;
48
49
  }
49
50
 
50
51
  message HaloAdmissionCredentials {
@@ -8,6 +8,7 @@ import "google/protobuf/empty.proto";
8
8
 
9
9
  import "dxos/keys.proto";
10
10
 
11
+ // TODO(burdon): Rename dxos.xxx.iframe?
11
12
  package dxos.iframe;
12
13
 
13
14
  message StartRequest {
@@ -10,13 +10,10 @@ package dxos.mesh.presence;
10
10
  // Import Any so that the protobuf compiler is happy that there's a substitution.
11
11
  import "google/protobuf/any.proto";
12
12
 
13
- message Alive {
14
- message Connection {
15
- bytes peer_id = 1;
16
- optional bool initiator = 2;
17
- }
13
+ message PeerState {
14
+ /// Will be used to build network graph
15
+ repeated dxos.keys.PublicKey connections = 1;
18
16
 
19
- bytes peer_id = 1;
20
- repeated Connection connections = 2;
21
- optional bytes metadata = 3;
17
+ // TODO(mykola): Remove once IdentityKey can be obtained from DeviceKey.
18
+ dxos.keys.PublicKey identity_key = 2;
22
19
  }
@@ -0,0 +1,26 @@
1
+ //
2
+ // Copyright 2022 DXOS.org
3
+ //
4
+
5
+ syntax = "proto3";
6
+
7
+ import "google/protobuf/empty.proto";
8
+ import "google/protobuf/any.proto";
9
+ import "dxos/keys.proto";
10
+
11
+ package dxos.mesh.teleport.gossip;
12
+
13
+ message GossipMessage {
14
+ dxos.keys.PublicKey peer_id = 1;
15
+ /// Used to route differnt payload types to correct listeners.
16
+ string channel_id = 2;
17
+ /// Peer tracks what had been sent by message id.
18
+ dxos.keys.PublicKey message_id = 3;
19
+ google.protobuf.Timestamp timestamp = 4;
20
+
21
+ google.protobuf.Any payload = 10;
22
+ }
23
+
24
+ service GossipService {
25
+ rpc Announce(GossipMessage) returns (google.protobuf.Empty);
26
+ }
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "./mesh/signal";
35
35
  import * as dxos_mesh_swarm from "./mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "./mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "./mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "./mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "./mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "./mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "./mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "./mesh/teleport/replicator";
42
42
  import * as dxos_registry from "./registry";
43
43
  import * as dxos_rpc from "./rpc";
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../registry";
43
43
  import * as dxos_rpc from "../rpc";
@@ -219,12 +219,16 @@ export namespace SpaceMember {
219
219
  }
220
220
  }
221
221
  /**
222
+ * Runtime state of the space object.
223
+ *
222
224
  * Defined in:
223
225
  * {@link file://./../../../dxos/client/services.proto}
224
226
  */
225
- export enum SpaceStatus {
226
- ACTIVE = 0,
227
- INACTIVE = 1
227
+ export enum SpaceState {
228
+ CLOSED = 1,
229
+ INACTIVE = 2,
230
+ INITIALIZING = 4,
231
+ READY = 3
228
232
  }
229
233
  /**
230
234
  * Defined in:
@@ -232,9 +236,52 @@ export enum SpaceStatus {
232
236
  */
233
237
  export interface Space {
234
238
  spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
235
- status: SpaceStatus;
239
+ state: SpaceState;
240
+ /**
241
+ * Options:
242
+ * - proto3_optional = true
243
+ */
244
+ pipeline?: Space.PipelineState;
236
245
  members?: SpaceMember[];
237
246
  }
247
+ export namespace Space {
248
+ /**
249
+ * Defined in:
250
+ * {@link file://./../../../dxos/client/services.proto}
251
+ */
252
+ export interface PipelineState {
253
+ /**
254
+ * Options:
255
+ * - proto3_optional = true
256
+ */
257
+ controlFeedKey?: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
258
+ /**
259
+ * Options:
260
+ * - proto3_optional = true
261
+ */
262
+ dataFeedKey?: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
263
+ /**
264
+ * Options:
265
+ * - proto3_optional = true
266
+ */
267
+ currentControlTimeframe?: ReturnType<(typeof substitutions)["dxos.echo.timeframe.TimeframeVector"]["decode"]>;
268
+ /**
269
+ * Options:
270
+ * - proto3_optional = true
271
+ */
272
+ targetControlTimeframe?: ReturnType<(typeof substitutions)["dxos.echo.timeframe.TimeframeVector"]["decode"]>;
273
+ /**
274
+ * Options:
275
+ * - proto3_optional = true
276
+ */
277
+ currentDataTimeframe?: ReturnType<(typeof substitutions)["dxos.echo.timeframe.TimeframeVector"]["decode"]>;
278
+ /**
279
+ * Options:
280
+ * - proto3_optional = true
281
+ */
282
+ targetDataTimeframe?: ReturnType<(typeof substitutions)["dxos.echo.timeframe.TimeframeVector"]["decode"]>;
283
+ }
284
+ }
238
285
  /**
239
286
  * Defined in:
240
287
  * {@link file://./../../../dxos/client/services.proto}
@@ -253,6 +300,23 @@ export interface UpdateSpaceRequest {
253
300
  export interface QuerySpacesResponse {
254
301
  spaces?: Space[];
255
302
  }
303
+ /**
304
+ * Defined in:
305
+ * {@link file://./../../../dxos/client/services.proto}
306
+ */
307
+ export interface PostMessageRequest {
308
+ spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
309
+ channel: string;
310
+ message: ReturnType<(typeof substitutions)["google.protobuf.Any"]["decode"]>;
311
+ }
312
+ /**
313
+ * Defined in:
314
+ * {@link file://./../../../dxos/client/services.proto}
315
+ */
316
+ export interface SubscribeMessagesRequest {
317
+ spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
318
+ channel: string;
319
+ }
256
320
  /**
257
321
  * Defined in:
258
322
  * {@link file://./../../../dxos/client/services.proto}
@@ -276,6 +340,8 @@ export interface SpacesService {
276
340
  createSpace: (request: void) => Promise<Space>;
277
341
  updateSpace: (request: UpdateSpaceRequest) => Promise<void>;
278
342
  querySpaces: (request: void) => Stream<QuerySpacesResponse>;
343
+ postMessage: (request: PostMessageRequest) => Promise<void>;
344
+ subscribeMessages: (request: SubscribeMessagesRequest) => Stream<dxos_mesh_teleport_gossip.GossipMessage>;
279
345
  /**
280
346
  * Write credentials to the space control feed.
281
347
  */
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "./mesh/signal";
35
35
  import * as dxos_mesh_swarm from "./mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "./mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "./mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "./mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "./mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "./mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "./mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "./mesh/teleport/replicator";
42
42
  import * as dxos_registry from "./registry";
43
43
  import * as dxos_rpc from "./rpc";
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../registry";
43
43
  import * as dxos_rpc from "../rpc";
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../registry";
43
43
  import * as dxos_rpc from "../rpc";
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../registry";
43
43
  import * as dxos_rpc from "../rpc";
@@ -85,5 +85,5 @@ export interface CredentialsMessage {
85
85
  * {@link file://./../../../dxos/echo/feed.proto}
86
86
  */
87
87
  export interface DataMessage {
88
- object: dxos_echo_object.EchoObject;
88
+ batch: dxos_echo_object.EchoObjectBatch;
89
89
  }
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../registry";
43
43
  import * as dxos_rpc from "../rpc";
@@ -65,7 +65,7 @@ export interface EchoMetadata {
65
65
  * Options:
66
66
  * - proto3_optional = true
67
67
  */
68
- identity?: dxos_halo_credentials.IdentityRecord;
68
+ identity?: IdentityRecord;
69
69
  /**
70
70
  * List of the data spaces.
71
71
  */
@@ -119,3 +119,28 @@ export interface SpaceMetadata {
119
119
  */
120
120
  snapshot?: string;
121
121
  }
122
+ /**
123
+ * Information needed to bootstrap an Identity.
124
+ *
125
+ * Defined in:
126
+ * {@link file://./../../../dxos/echo/metadata.proto}
127
+ */
128
+ export interface IdentityRecord {
129
+ identityKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
130
+ deviceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
131
+ haloSpace: SpaceMetadata;
132
+ /**
133
+ * TODO(burdon): Not yet implemented. Must be null.
134
+ *
135
+ * Options:
136
+ * - proto3_optional = true
137
+ */
138
+ profileSpace?: SpaceMetadata;
139
+ /**
140
+ * Cached profile.
141
+ *
142
+ * Options:
143
+ * - proto3_optional = true
144
+ */
145
+ profile?: dxos_halo_credentials.ProfileDocument;
146
+ }
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../../registry";
43
43
  import * as dxos_rpc from "../../rpc";
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../../registry";
43
43
  import * as dxos_rpc from "../../rpc";
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../../registry";
43
43
  import * as dxos_rpc from "../../rpc";
@@ -52,14 +52,42 @@ import * as google_protobuf from "../../../google/protobuf";
52
52
  * Defined in:
53
53
  * {@link file://./../../../../dxos/echo/model/text.proto}
54
54
  */
55
- export interface Mutation {
56
- update: Uint8Array;
57
- clientId: number;
55
+ export enum TextKind {
56
+ PLAIN = 0,
57
+ RICH = 1
58
58
  }
59
59
  /**
60
60
  * Defined in:
61
61
  * {@link file://./../../../../dxos/echo/model/text.proto}
62
62
  */
63
- export interface Snapshot {
63
+ export interface TextMutation {
64
+ /**
65
+ * Options:
66
+ * - proto3_optional = true
67
+ */
68
+ update?: Uint8Array;
69
+ /**
70
+ * Options:
71
+ * - proto3_optional = true
72
+ */
73
+ clientId?: number;
74
+ /**
75
+ * Options:
76
+ * - proto3_optional = true
77
+ */
78
+ kind?: TextKind;
79
+ /**
80
+ * Options:
81
+ * - proto3_optional = true
82
+ */
83
+ field?: string;
84
+ }
85
+ /**
86
+ * Defined in:
87
+ * {@link file://./../../../../dxos/echo/model/text.proto}
88
+ */
89
+ export interface TextSnapshot {
64
90
  data: Uint8Array;
91
+ kind: TextKind;
92
+ field: string;
65
93
  }
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../registry";
43
43
  import * as dxos_rpc from "../rpc";
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../registry";
43
43
  import * as dxos_rpc from "../rpc";
@@ -35,9 +35,9 @@ import * as dxos_mesh_signal from "../mesh/signal";
35
35
  import * as dxos_mesh_swarm from "../mesh/swarm";
36
36
  import * as dxos_mesh_teleport_auth from "../mesh/teleport/auth";
37
37
  import * as dxos_mesh_teleport_control from "../mesh/teleport/control";
38
+ import * as dxos_mesh_teleport_gossip from "../mesh/teleport/gossip";
38
39
  import * as dxos_mesh_teleport_notarization from "../mesh/teleport/notarization";
39
40
  import * as dxos_mesh_teleport_objectsync from "../mesh/teleport/objectsync";
40
- import * as dxos_mesh_teleport_presence from "../mesh/teleport/presence";
41
41
  import * as dxos_mesh_teleport_replicator from "../mesh/teleport/replicator";
42
42
  import * as dxos_registry from "../registry";
43
43
  import * as dxos_rpc from "../rpc";