@dxos/protocols 0.8.4-main.84f28bd → 0.8.4-main.a4bbb77

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 (68) hide show
  1. package/dist/src/buf/proto/gen/dxos/config_pb.d.ts +35 -6
  2. package/dist/src/buf/proto/gen/dxos/config_pb.d.ts.map +1 -1
  3. package/dist/src/buf/proto/gen/dxos/config_pb.js +6 -1
  4. package/dist/src/buf/proto/gen/dxos/config_pb.js.map +1 -1
  5. package/dist/src/buf/proto/gen/dxos/echo/service_pb.d.ts +15 -0
  6. package/dist/src/buf/proto/gen/dxos/echo/service_pb.d.ts.map +1 -1
  7. package/dist/src/buf/proto/gen/dxos/echo/service_pb.js +1 -1
  8. package/dist/src/buf/proto/gen/dxos/echo/service_pb.js.map +1 -1
  9. package/dist/src/edge-error.d.ts +1 -1
  10. package/dist/src/edge-error.d.ts.map +1 -1
  11. package/dist/src/edge-error.js +41 -1
  12. package/dist/src/edge-error.js.map +1 -1
  13. package/dist/src/edge.d.ts +51 -3
  14. package/dist/src/edge.d.ts.map +1 -1
  15. package/dist/src/edge.js +7 -1
  16. package/dist/src/edge.js.map +1 -1
  17. package/dist/src/errors/base-errors.d.ts.map +1 -1
  18. package/dist/src/errors/base-errors.js +1 -0
  19. package/dist/src/errors/base-errors.js.map +1 -1
  20. package/dist/src/errors/encoding.d.ts.map +1 -1
  21. package/dist/src/errors/encoding.js.map +1 -1
  22. package/dist/src/errors/errors.d.ts +1 -1
  23. package/dist/src/errors/errors.d.ts.map +1 -1
  24. package/dist/src/errors/errors.js.map +1 -1
  25. package/dist/src/errors/helpers.d.ts.map +1 -1
  26. package/dist/src/errors/helpers.js.map +1 -1
  27. package/dist/src/index.d.ts +1 -1
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/index.js +0 -1
  30. package/dist/src/index.js.map +1 -1
  31. package/dist/src/proto/gen/dxos/config.d.ts +28 -2
  32. package/dist/src/proto/gen/dxos/config.d.ts.map +1 -1
  33. package/dist/src/proto/gen/dxos/config.js.map +1 -1
  34. package/dist/src/proto/gen/dxos/echo/service.d.ts +9 -0
  35. package/dist/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
  36. package/dist/src/proto/gen/google/protobuf.d.ts +4 -4
  37. package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
  38. package/dist/src/proto/gen/index.d.ts +1 -0
  39. package/dist/src/proto/gen/index.d.ts.map +1 -1
  40. package/dist/src/proto/gen/index.js +1 -1
  41. package/dist/src/proto/gen/index.js.map +1 -1
  42. package/dist/src/proto/index.d.ts +1 -1
  43. package/dist/src/proto/index.d.ts.map +1 -1
  44. package/dist/src/proto/index.js +0 -1
  45. package/dist/src/proto/index.js.map +1 -1
  46. package/dist/src/queue.d.ts +4 -0
  47. package/dist/src/queue.d.ts.map +1 -1
  48. package/dist/src/queue.js +4 -0
  49. package/dist/src/queue.js.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +10 -9
  52. package/src/buf/proto/gen/dxos/config_pb.ts +40 -7
  53. package/src/buf/proto/gen/dxos/echo/service_pb.ts +18 -1
  54. package/src/edge-error.ts +56 -1
  55. package/src/edge.ts +60 -3
  56. package/src/errors/base-errors.ts +2 -0
  57. package/src/errors/encoding.ts +2 -1
  58. package/src/errors/errors.ts +2 -1
  59. package/src/errors/helpers.ts +2 -1
  60. package/src/index.ts +1 -1
  61. package/src/proto/dxos/config.proto +36 -40
  62. package/src/proto/dxos/echo/service.proto +11 -0
  63. package/src/proto/gen/dxos/config.ts +28 -2
  64. package/src/proto/gen/dxos/echo/service.ts +9 -0
  65. package/src/proto/gen/google/protobuf.ts +4 -4
  66. package/src/proto/gen/index.ts +2 -1
  67. package/src/proto/index.ts +1 -1
  68. package/src/queue.ts +5 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/protocols",
3
- "version": "0.8.4-main.84f28bd",
3
+ "version": "0.8.4-main.a4bbb77",
4
4
  "description": "Protobuf definitions for DXOS protocols.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -60,18 +60,19 @@
60
60
  ],
61
61
  "dependencies": {
62
62
  "@bufbuild/protobuf": "^2.1.0",
63
- "@dxos/codec-protobuf": "0.8.4-main.84f28bd",
64
- "@dxos/keys": "0.8.4-main.84f28bd",
65
- "@dxos/effect": "0.8.4-main.84f28bd",
66
- "@dxos/invariant": "0.8.4-main.84f28bd",
67
- "@dxos/util": "0.8.4-main.84f28bd",
68
- "@dxos/timeframe": "0.8.4-main.84f28bd"
63
+ "@dxos/codec-protobuf": "0.8.4-main.a4bbb77",
64
+ "@dxos/effect": "0.8.4-main.a4bbb77",
65
+ "@dxos/errors": "0.8.4-main.a4bbb77",
66
+ "@dxos/invariant": "0.8.4-main.a4bbb77",
67
+ "@dxos/keys": "0.8.4-main.a4bbb77",
68
+ "@dxos/timeframe": "0.8.4-main.a4bbb77",
69
+ "@dxos/util": "0.8.4-main.a4bbb77"
69
70
  },
70
71
  "devDependencies": {
71
72
  "@bufbuild/buf": "^1.43.0",
72
73
  "@bufbuild/protoc-gen-es": "^2.1.0",
73
- "effect": "3.16.13",
74
- "@dxos/protobuf-compiler": "0.8.4-main.84f28bd"
74
+ "effect": "3.18.3",
75
+ "@dxos/protobuf-compiler": "0.8.4-main.a4bbb77"
75
76
  },
76
77
  "peerDependencies": {
77
78
  "effect": "^3.13.3"
@@ -16,7 +16,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
16
16
  * Describes the file dxos/config.proto.
17
17
  */
18
18
  export const file_dxos_config: GenFile = /*@__PURE__*/
19
- fileDesc("ChFkeG9zL2NvbmZpZy5wcm90bxILZHhvcy5jb25maWcimgEKBkNvbmZpZxIUCgd2ZXJzaW9uGAEgASgFSACIAQESKgoHcGFja2FnZRgCIAEoCzIULmR4b3MuY29uZmlnLlBhY2thZ2VIAYgBARIqCgdydW50aW1lGAMgASgLMhQuZHhvcy5jb25maWcuUnVudGltZUgCiAEBQgoKCF92ZXJzaW9uQgoKCF9wYWNrYWdlQgoKCF9ydW50aW1lInMKB1BhY2thZ2USFAoHbGljZW5zZRgBIAEoCUgAiAEBEiAKBXJlcG9zGAIgAygLMhEuZHhvcy5jb25maWcuUmVwbxIkCgdtb2R1bGVzGAMgAygLMhMuZHhvcy5jb25maWcuTW9kdWxlQgoKCF9saWNlbnNlIl4KBFJlcG8SEQoEbmFtZRgBIAEoCUgAiAEBEhAKA3VybBgCIAEoCUgBiAEBEhQKB3ZlcnNpb24YAyABKAlIAogBAUIHCgVfbmFtZUIGCgRfdXJsQgoKCF92ZXJzaW9uIuwECgZNb2R1bGUSDwoCaWQYCCABKAlIAIgBARIRCgRuYW1lGAEgASgJSAGIAQESEQoEdHlwZRgCIAEoCUgCiAEBEhkKDGRpc3BsYXlfbmFtZRgDIAEoCUgDiAEBEhgKC2Rlc2NyaXB0aW9uGAQgASgJSASIAQESDAoEdGFncxgFIAMoCRITCgZidW5kbGUYBiABKAxIBYgBARITCgZ0dW5uZWwYByABKAhIBogBARIhCgRkZXBzGAogAygLMhMuZHhvcy5jb25maWcuTW9kdWxlEi0KBWJ1aWxkGGQgASgLMhkuZHhvcy5jb25maWcuTW9kdWxlLkJ1aWxkSAeIAQESIAoFcmVwb3MYZSADKAsyES5keG9zLmNvbmZpZy5SZXBvEioKBnJlY29yZBjIASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SAiIAQEauAEKBUJ1aWxkEhQKB2NvbW1hbmQYASABKAlIAIgBARITCgZvdXRkaXIYAiABKAlIAYgBARIUCgd2ZXJzaW9uGAMgASgJSAKIAQESEAoDdGFnGAQgASgJSAOIAQESKQoDZW52GAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQgoKCF9jb21tYW5kQgkKB19vdXRkaXJCCgoIX3ZlcnNpb25CBgoEX3RhZ0IGCgRfZW52QgUKA19pZEIHCgVfbmFtZUIHCgVfdHlwZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfYnVuZGxlQgkKB190dW5uZWxCCAoGX2J1aWxkQgkKB19yZWNvcmQi/jkKB1J1bnRpbWUSMAoGY2xpZW50GAEgASgLMhsuZHhvcy5jb25maWcuUnVudGltZS5DbGllbnRIAIgBARIqCgNhcHAYAiABKAsyGC5keG9zLmNvbmZpZy5SdW50aW1lLkFwcEgBiAEBEioKA2NsaRgDIAEoCzIYLmR4b3MuY29uZmlnLlJ1bnRpbWUuQ0xJSAKIAQESLgoFcHJvcHMYBCABKAsyGi5keG9zLmNvbmZpZy5SdW50aW1lLlByb3BzSAOIAQESNAoIc2VydmljZXMYBSABKAsyHS5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzSASIAQESMAoGc3lzdGVtGAYgASgLMhsuZHhvcy5jb25maWcuUnVudGltZS5TeXN0ZW1IBYgBARIsCgRrdWJlGAcgASgLMhkuZHhvcy5jb25maWcuUnVudGltZS5LdWJlSAaIAQESJwoEa2V5cxgIIAMoCzIZLmR4b3MuY29uZmlnLlJ1bnRpbWUuS2V5cxIuCgVhZ2VudBgJIAEoCzIaLmR4b3MuY29uZmlnLlJ1bnRpbWUuQWdlbnRIB4gBARrICwoGQ2xpZW50EjEKA2xvZxgBIAEoCzIfLmR4b3MuY29uZmlnLlJ1bnRpbWUuQ2xpZW50LkxvZ0gAiAEBEjkKB3N0b3JhZ2UYAiABKAsyIy5keG9zLmNvbmZpZy5SdW50aW1lLkNsaWVudC5TdG9yYWdlSAGIAQESHQoQZW5hYmxlX3NuYXBzaG90cxgDIAEoCEgCiAEBEh4KEXNuYXBzaG90X2ludGVydmFsGAQgASgFSAOIAQESIgoVaW52aXRhdGlvbl9leHBpcmF0aW9uGAUgASgFSASIAQESGgoNcmVtb3RlX3NvdXJjZRgGIAEoCUgFiAEBEi8KInJlbW90ZV9zb3VyY2VfYXV0aGVudGljYXRpb25fdG9rZW4YCCABKAlIBogBARIbCg5kZXZ0b29sc19wcm94eRgHIAEoCUgHiAEBEhwKD2xhenlfc3BhY2Vfb3BlbhgJIAEoCEgIiAEBEiQKF2Rpc2FibGVfcDJwX3JlcGxpY2F0aW9uGAogASgISAmIAQESIwoWZW5hYmxlX3ZlY3Rvcl9pbmRleGluZxgMIAEoCEgKiAEBEkQKDWVkZ2VfZmVhdHVyZXMYCyABKAsyKC5keG9zLmNvbmZpZy5SdW50aW1lLkNsaWVudC5FZGdlRmVhdHVyZXNIC4gBARqxAwoHU3RvcmFnZRIXCgpwZXJzaXN0ZW50GAEgASgISACIAQESSQoJa2V5X3N0b3JlGAIgASgOMjEuZHhvcy5jb25maWcuUnVudGltZS5DbGllbnQuU3RvcmFnZS5TdG9yYWdlRHJpdmVySAGIAQESSgoKZGF0YV9zdG9yZRgDIAEoDjIxLmR4b3MuY29uZmlnLlJ1bnRpbWUuQ2xpZW50LlN0b3JhZ2UuU3RvcmFnZURyaXZlckgCiAEBEhYKCWRhdGFfcm9vdBgEIAEoCUgDiAEBEiAKE3NwYWNlX2ZyYWdtZW50YXRpb24YBSABKAhIBIgBASJqCg1TdG9yYWdlRHJpdmVyEgcKA1JBTRAAEgcKA0lEQhABEgoKBkNIUk9NRRACEgsKB0ZJUkVGT1gQAxIICgROT0RFEAQSCQoFV0VCRlMQBRILCgdMRVZFTEpTEAsSDAoISlNPTkRPV04QDEINCgtfcGVyc2lzdGVudEIMCgpfa2V5X3N0b3JlQg0KC19kYXRhX3N0b3JlQgwKCl9kYXRhX3Jvb3RCFgoUX3NwYWNlX2ZyYWdtZW50YXRpb24aYwoDTG9nEiIKBmZpbHRlchgBIAEoCUINwj4KTE9HX0ZJTFRFUkgAiAEBEiIKBnByZWZpeBgCIAEoCUINwj4KTE9HX1BSRUZJWEgBiAEBQgkKB19maWx0ZXJCCQoHX3ByZWZpeBq4AQoMRWRnZUZlYXR1cmVzEhwKD2ZlZWRfcmVwbGljYXRvchgBIAEoCEgAiAEBEhwKD2VjaG9fcmVwbGljYXRvchgCIAEoCEgBiAEBEhYKCXNpZ25hbGluZxgDIAEoCEgCiAEBEhMKBmFnZW50cxgEIAEoCEgDiAEBQhIKEF9mZWVkX3JlcGxpY2F0b3JCEgoQX2VjaG9fcmVwbGljYXRvckIMCgpfc2lnbmFsaW5nQgkKB19hZ2VudHNCBgoEX2xvZ0IKCghfc3RvcmFnZUITChFfZW5hYmxlX3NuYXBzaG90c0IUChJfc25hcHNob3RfaW50ZXJ2YWxCGAoWX2ludml0YXRpb25fZXhwaXJhdGlvbkIQCg5fcmVtb3RlX3NvdXJjZUIlCiNfcmVtb3RlX3NvdXJjZV9hdXRoZW50aWNhdGlvbl90b2tlbkIRCg9fZGV2dG9vbHNfcHJveHlCEgoQX2xhenlfc3BhY2Vfb3BlbkIaChhfZGlzYWJsZV9wMnBfcmVwbGljYXRpb25CGQoXX2VuYWJsZV92ZWN0b3JfaW5kZXhpbmdCEAoOX2VkZ2VfZmVhdHVyZXMaqwMKA0FwcBIQCgNvcmcYASABKAlIAIgBARISCgV0aGVtZRgCIAEoCUgBiAEBEhQKB3dlYnNpdGUYAyABKAlIAogBARImCgpwdWJsaWNfdXJsGAQgASgJQg3CPgpQVUJMSUNfVVJMSAOIAQESNgoFYnVpbGQYZCABKAsyIi5keG9zLmNvbmZpZy5SdW50aW1lLkFwcC5CdWlsZEluZm9IBIgBARIpCgNlbnYYZSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQEanQEKCUJ1aWxkSW5mbxIWCgl0aW1lc3RhbXAYASABKAlIAIgBARIYCgtjb21taXRfaGFzaBgCIAEoCUgBiAEBEhQKB3ZlcnNpb24YAyABKAlIAogBARITCgZicmFuY2gYBCABKAlIA4gBAUIMCgpfdGltZXN0YW1wQg4KDF9jb21taXRfaGFzaEIKCghfdmVyc2lvbkIJCgdfYnJhbmNoQgYKBF9vcmdCCAoGX3RoZW1lQgoKCF93ZWJzaXRlQg0KC19wdWJsaWNfdXJsQggKBl9idWlsZEIGCgRfZW52GsYBCgVBZ2VudBIyCgdwbHVnaW5zGAEgAygLMiEuZHhvcy5jb25maWcuUnVudGltZS5BZ2VudC5QbHVnaW4aiAEKBlBsdWdpbhIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESFAoHZW5hYmxlZBgDIAEoCEgBiAEBEikKBmNvbmZpZxgKIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlIAogBAUIHCgVfbmFtZUIKCghfZW5hYmxlZEIJCgdfY29uZmlnGssFCgNDTEkSFgoJbm9kZV9wYXRoGAEgASgJSACIAQESMwoDYXBwGAIgASgLMiEuZHhvcy5jb25maWcuUnVudGltZS5DTEkuQXBwU2VydmVIAYgBARI2Cgdjb25zb2xlGAMgASgLMiAuZHhvcy5jb25maWcuUnVudGltZS5DTEkuUGFja2FnZUgCiAEBEjMKBG1kbnMYBCABKAsyIC5keG9zLmNvbmZpZy5SdW50aW1lLkNMSS5QYWNrYWdlSAOIAQESNQoGc2lnbmFsGAUgASgLMiAuZHhvcy5jb25maWcuUnVudGltZS5DTEkuUGFja2FnZUgEiAEBEhcKCm5wbV9jbGllbnQYBiABKAlIBYgBARIUCgdjaGFubmVsGAcgASgJSAaIAQEayAEKCEFwcFNlcnZlEjsKBXNlcnZlGAEgASgLMicuZHhvcy5jb25maWcuUnVudGltZS5DTEkuQXBwU2VydmUuU2VydmVIAIgBARp1CgVTZXJ2ZRITCgZjb25maWcYASABKAlIAIgBARIWCglsb2dpbl9hcHAYAiABKAlIAYgBARIXCgprZXlfcGhyYXNlGAMgASgJSAKIAQFCCQoHX2NvbmZpZ0IMCgpfbG9naW5fYXBwQg0KC19rZXlfcGhyYXNlQggKBl9zZXJ2ZRqHAQoHUGFja2FnZRIUCgdwYWNrYWdlGAEgASgJSACIAQESFAoHY2hhbm5lbBgCIAEoCUgBiAEBEhAKA2JpbhgDIAEoCUgCiAEBEhMKBmNvbmZpZxgEIAEoCUgDiAEBQgoKCF9wYWNrYWdlQgoKCF9jaGFubmVsQgYKBF9iaW5CCQoHX2NvbmZpZ0IMCgpfbm9kZV9wYXRoQgYKBF9hcHBCCgoIX2NvbnNvbGVCBwoFX21kbnNCCQoHX3NpZ25hbEINCgtfbnBtX2NsaWVudEIKCghfY2hhbm5lbBolCgVQcm9wcxISCgV0aXRsZRgBIAEoCUgAiAEBQggKBl90aXRsZRomCgZTeXN0ZW0SEgoFZGVidWcYASABKAlIAIgBAUIICgZfZGVidWcahwoKBEt1YmUSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgJEjgKCmF1dG91cGRhdGUYAyABKAsyJC5keG9zLmNvbmZpZy5SdW50aW1lLkt1YmUuQXV0b3VwZGF0ZRIuCgVodHRwcxgEIAEoCzIfLmR4b3MuY29uZmlnLlJ1bnRpbWUuS3ViZS5IdHRwcxIqCgNwMnAYBSABKAsyHS5keG9zLmNvbmZpZy5SdW50aW1lLkt1YmUuUDJQEhAKCGNvbmZob3N0GAYgASgJEgsKA2VudhgHIAMoCRINCgVhbGlhcxgIIAMoCRI4Cgptb25pdG9yaW5nGAkgASgLMiQuZHhvcy5jb25maWcuUnVudGltZS5LdWJlLk1vbml0b3JpbmcSLgoFdHJhY2UYCiABKAsyHy5keG9zLmNvbmZpZy5SdW50aW1lLkt1YmUuVHJhY2USNgoJdGVsZW1ldHJ5GAsgASgLMiMuZHhvcy5jb25maWcuUnVudGltZS5LdWJlLlRlbGVtZXRyeRIyCgdncmF2aXR5GAwgASgLMiEuZHhvcy5jb25maWcuUnVudGltZS5LdWJlLkdyYXZpdHkSPQoNYXBwX3R1bm5lbGluZxgNIAEoCzImLmR4b3MuY29uZmlnLlJ1bnRpbWUuS3ViZS5BcHBUdW5uZWxpbmcSLAoEYm90cxgOIAEoCzIeLmR4b3MuY29uZmlnLlJ1bnRpbWUuS3ViZS5Cb3RzEk8KF2lwZnNfYXBpX2F1dGhvcml6YXRpb25zGA8gAygLMi4uZHhvcy5jb25maWcuUnVudGltZS5LdWJlLkt1Ym9BcGlBdXRob3JpemF0aW9uGi8KCkF1dG91cGRhdGUSDwoHZW5hYmxlZBgBIAEoCBIQCghpbnRlcnZhbBgCIAEoBRptCgVIdHRwcxIPCgdlbmFibGVkGAEgASgIEgwKBHBvcnQYAiABKAkSDQoFZW1haWwYAyABKAkSEAoIY2VydGZpbGUYBCABKAkSDwoHa2V5ZmlsZRgFIAEoCRITCgtkbnNwcm92aWRlchgGIAEoCRo6CgNQMlASEgoKcHJpdmF0ZWtleRgBIAEoCRIMCgRwb3J0GAIgASgJEhEKCWJvb3RzdHJhcBgDIAMoCRpBCgpNb25pdG9yaW5nEg8KB2VuYWJsZWQYASABKAgSEAoIZW5kcG9pbnQYAiABKAkSEAoIaW50ZXJ2YWwYAyABKAUaGQoFVHJhY2USEAoIZGlzYWJsZWQYASABKAgaKwoJVGVsZW1ldHJ5EhAKCGRpc2FibGVkGAEgASgIEgwKBHRhZ3MYAiADKAkaSwoHR3Jhdml0eRIQCghkaXNhYmxlZBgBIAEoCBIMCgRuYW1lGAIgASgJEhQKB2xvZ19kaXIYAyABKAlIAIgBAUIKCghfbG9nX2RpchpaCgxBcHBUdW5uZWxpbmcSDwoHZW5hYmxlZBgBIAEoCBIYChBjb21tYW5kX3RlbXBsYXRlGAIgASgJEhEKCW91dHB1dF9yZRgDIAEoCRIMCgRwb3J0GAQgASgJGikKBEJvdHMSDwoHZW5hYmxlZBgBIAEoCBIQCghpbnRlcnZhbBgCIAEoBRpQChRLdWJvQXBpQXV0aG9yaXphdGlvbhIMCgRuYW1lGAEgASgJEhMKC2F1dGhfc2VjcmV0GAIgASgJEhUKDWFsbG93ZWRfcGF0aHMYAyADKAkazhQKCFNlcnZpY2VzEjUKBGt1YmUYASABKAsyIi5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzLkt1YmVIAIgBARI5CgNhcHAYAiABKAsyJy5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzLkFwcFNlcnZlckgBiAEBEjUKBGR4bnMYAyABKAsyIi5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzLkR4bnNIAogBARI1CgRpcGZzGAQgASgLMiIuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5JcGZzSAOIAQESNwoJc2lnbmFsaW5nGAUgAygLMiQuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5TaWduYWwSLgoDaWNlGAYgAygLMiEuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5JY2USQAoNaWNlX3Byb3ZpZGVycxgOIAMoCzIpLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuSWNlUHJvdmlkZXISOwoHbWFjaGluZRgHIAEoCzIlLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuTWFjaGluZUgEiAEBEjcKA2JvdBgIIAEoCzIlLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuQm90SG9zdEgFiAEBEj8KCXB1Ymxpc2hlchgJIAEoCzInLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuUHVibGlzaGVySAaIAQESQQoKc3VwZXJ2aXNvchgKIAEoCzIoLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuU3VwZXJ2aXNvckgHiAEBEj8KCXR1bm5lbGluZxgLIAEoCzInLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuVHVubmVsaW5nSAiIAQESNwoFZmFhc2QYDCABKAsyIy5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzLkZhYXNkSAmIAQESRgoNYWdlbnRfaG9zdGluZxgNIAEoCzIqLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuQWdlbnRIb3N0aW5nSAqIAQESNQoEZWRnZRgPIAEoCzIiLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuRWRnZUgLiAEBEjEKAmFpGBAgASgLMiAuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5BaUgMiAEBGusBCgRLdWJlEkQKCWVuZHBvaW50cxgBIAEoCzIsLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuS3ViZS5FbmRwb2ludHNIAIgBARIXCgpwdWJsaWNfdXJsGAIgASgJSAGIAQEaZwoJRW5kcG9pbnRzEhEKBGxvZ3MYASABKAlIAIgBARIVCghzZXJ2aWNlcxgCIAEoCUgBiAEBEhEKBGNlcnQYAyABKAlIAogBAUIHCgVfbG9nc0ILCglfc2VydmljZXNCBwoFX2NlcnRCDAoKX2VuZHBvaW50c0INCgtfcHVibGljX3VybBpLCglBcHBTZXJ2ZXISEwoGcHJlZml4GAEgASgJSACIAQESEwoGc2VydmVyGAIgASgJSAGIAQFCCQoHX3ByZWZpeEIJCgdfc2VydmVyGrQBCgREeG5zEhMKBnNlcnZlchgBIAEoCUgAiAEBEhgKC2FjY291bnRfdXJpGAIgASgJSAGIAQESFAoHYWRkcmVzcxgDIAEoCUgCiAEBEhQKB2FjY291bnQYBCABKAlIA4gBARITCgZmYXVjZXQYBSABKAlIBIgBAUIJCgdfc2VydmVyQg4KDF9hY2NvdW50X3VyaUIKCghfYWRkcmVzc0IKCghfYWNjb3VudEIJCgdfZmF1Y2V0GoABCgRJcGZzEhMKBnNlcnZlchgBIAEoCUgAiAEBEhQKB2dhdGV3YXkYAiABKAlIAYgBARIfChJzZXJ2ZXJfYXV0aF9zZWNyZXQYAyABKAlIAogBAUIJCgdfc2VydmVyQgoKCF9nYXRld2F5QhUKE19zZXJ2ZXJfYXV0aF9zZWNyZXQaUgoGU2lnbmFsEg4KBnNlcnZlchgBIAEoCRIQCgNhcGkYAiABKAlIAIgBARITCgZzdGF0dXMYAyABKAlIAYgBAUIGCgRfYXBpQgkKB19zdGF0dXMaXwoDSWNlEgwKBHVybHMYASABKAkSFQoIdXNlcm5hbWUYAiABKAlIAIgBARIXCgpjcmVkZW50aWFsGAMgASgJSAGIAQFCCwoJX3VzZXJuYW1lQg0KC19jcmVkZW50aWFsGhsKC0ljZVByb3ZpZGVyEgwKBHVybHMYASABKAkagwIKB01hY2hpbmUSHAoPZG9fYWNjZXNzX3Rva2VuGAEgASgJSACIAQESIAoTZ2l0aHViX2FjY2Vzc190b2tlbhgCIAEoCUgBiAEBEhwKD2dpdGh1Yl91c2VybmFtZRgDIAEoCUgCiAEBEhcKCmRuc19kb21haW4YBCABKAlIA4gBARIdChBucG1fYWNjZXNzX3Rva2VuGAUgASgJSASIAQFCEgoQX2RvX2FjY2Vzc190b2tlbkIWChRfZ2l0aHViX2FjY2Vzc190b2tlbkISChBfZ2l0aHViX3VzZXJuYW1lQg0KC19kbnNfZG9tYWluQhMKEV9ucG1fYWNjZXNzX3Rva2VuGicKB0JvdEhvc3QSEgoFcHJveHkYASABKAlIAIgBAUIICgZfcHJveHkaKwoJUHVibGlzaGVyEhMKBnNlcnZlchgBIAEoCUgAiAEBQgkKB19zZXJ2ZXIaKwoJVHVubmVsaW5nEhMKBnNlcnZlchgBIAEoCUgAiAEBQgkKB19zZXJ2ZXIaLAoKU3VwZXJ2aXNvchITCgZzZXJ2ZXIYASABKAlIAIgBAUIJCgdfc2VydmVyGnEKBUZhYXNkEhQKB2dhdGV3YXkYASABKAlIAIgBARIVCgh1c2VybmFtZRgCIAEoCUgBiAEBEhUKCHBhc3N3b3JkGAMgASgJSAKIAQFCCgoIX2dhdGV3YXlCCwoJX3VzZXJuYW1lQgsKCV9wYXNzd29yZBpKCgxBZ2VudEhvc3RpbmcSEwoGc2VydmVyGAEgASgJSACIAQESEQoEdHlwZRgCIAEoCUgBiAEBQgkKB19zZXJ2ZXJCBwoFX3R5cGUaIAoERWRnZRIQCgN1cmwYASABKAlIAIgBAUIGCgRfdXJsGiQKAkFpEhMKBnNlcnZlchgBIAEoCUgAiAEBQgkKB19zZXJ2ZXJCBwoFX2t1YmVCBgoEX2FwcEIHCgVfZHhuc0IHCgVfaXBmc0IKCghfbWFjaGluZUIGCgRfYm90QgwKCl9wdWJsaXNoZXJCDQoLX3N1cGVydmlzb3JCDAoKX3R1bm5lbGluZ0IICgZfZmFhc2RCEAoOX2FnZW50X2hvc3RpbmdCBwoFX2VkZ2VCBQoDX2FpGkAKBEtleXMSEQoEbmFtZRgBIAEoCUgAiAEBEhIKBXZhbHVlGAIgASgJSAGIAQFCBwoFX25hbWVCCAoGX3ZhbHVlQgkKB19jbGllbnRCBgoEX2FwcEIGCgRfY2xpQggKBl9wcm9wc0ILCglfc2VydmljZXNCCQoHX3N5c3RlbUIHCgVfa3ViZUIICgZfYWdlbnQ6OgoHZW52X3ZhchIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY6AcgASgJUgZlbnZWYXKIAQFCLFoqZ2l0aHViLmNvbS9keG9zL2R4b3MvcHJvdG8vZGVmL2R4b3MvY29uZmlnYgZwcm90bzM", [file_google_protobuf_any, file_google_protobuf_struct, file_google_protobuf_descriptor]);
19
+ fileDesc("ChFkeG9zL2NvbmZpZy5wcm90bxILZHhvcy5jb25maWcimgEKBkNvbmZpZxIUCgd2ZXJzaW9uGAEgASgFSACIAQESKgoHcGFja2FnZRgCIAEoCzIULmR4b3MuY29uZmlnLlBhY2thZ2VIAYgBARIqCgdydW50aW1lGAMgASgLMhQuZHhvcy5jb25maWcuUnVudGltZUgCiAEBQgoKCF92ZXJzaW9uQgoKCF9wYWNrYWdlQgoKCF9ydW50aW1lInMKB1BhY2thZ2USFAoHbGljZW5zZRgBIAEoCUgAiAEBEiAKBXJlcG9zGAIgAygLMhEuZHhvcy5jb25maWcuUmVwbxIkCgdtb2R1bGVzGAMgAygLMhMuZHhvcy5jb25maWcuTW9kdWxlQgoKCF9saWNlbnNlIl4KBFJlcG8SEQoEbmFtZRgBIAEoCUgAiAEBEhAKA3VybBgCIAEoCUgBiAEBEhQKB3ZlcnNpb24YAyABKAlIAogBAUIHCgVfbmFtZUIGCgRfdXJsQgoKCF92ZXJzaW9uIuwECgZNb2R1bGUSDwoCaWQYCCABKAlIAIgBARIRCgRuYW1lGAEgASgJSAGIAQESEQoEdHlwZRgCIAEoCUgCiAEBEhkKDGRpc3BsYXlfbmFtZRgDIAEoCUgDiAEBEhgKC2Rlc2NyaXB0aW9uGAQgASgJSASIAQESDAoEdGFncxgFIAMoCRITCgZidW5kbGUYBiABKAxIBYgBARITCgZ0dW5uZWwYByABKAhIBogBARIhCgRkZXBzGAogAygLMhMuZHhvcy5jb25maWcuTW9kdWxlEi0KBWJ1aWxkGGQgASgLMhkuZHhvcy5jb25maWcuTW9kdWxlLkJ1aWxkSAeIAQESIAoFcmVwb3MYZSADKAsyES5keG9zLmNvbmZpZy5SZXBvEioKBnJlY29yZBjIASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SAiIAQEauAEKBUJ1aWxkEhQKB2NvbW1hbmQYASABKAlIAIgBARITCgZvdXRkaXIYAiABKAlIAYgBARIUCgd2ZXJzaW9uGAMgASgJSAKIAQESEAoDdGFnGAQgASgJSAOIAQESKQoDZW52GAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQgoKCF9jb21tYW5kQgkKB19vdXRkaXJCCgoIX3ZlcnNpb25CBgoEX3RhZ0IGCgRfZW52QgUKA19pZEIHCgVfbmFtZUIHCgVfdHlwZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfYnVuZGxlQgkKB190dW5uZWxCCAoGX2J1aWxkQgkKB19yZWNvcmQi3DoKB1J1bnRpbWUSMAoGY2xpZW50GAEgASgLMhsuZHhvcy5jb25maWcuUnVudGltZS5DbGllbnRIAIgBARIqCgNhcHAYAiABKAsyGC5keG9zLmNvbmZpZy5SdW50aW1lLkFwcEgBiAEBEioKA2NsaRgDIAEoCzIYLmR4b3MuY29uZmlnLlJ1bnRpbWUuQ0xJSAKIAQESLgoFcHJvcHMYBCABKAsyGi5keG9zLmNvbmZpZy5SdW50aW1lLlByb3BzSAOIAQESNAoIc2VydmljZXMYBSABKAsyHS5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzSASIAQESMAoGc3lzdGVtGAYgASgLMhsuZHhvcy5jb25maWcuUnVudGltZS5TeXN0ZW1IBYgBARIsCgRrdWJlGAcgASgLMhkuZHhvcy5jb25maWcuUnVudGltZS5LdWJlSAaIAQESJwoEa2V5cxgIIAMoCzIZLmR4b3MuY29uZmlnLlJ1bnRpbWUuS2V5cxIuCgVhZ2VudBgJIAEoCzIaLmR4b3MuY29uZmlnLlJ1bnRpbWUuQWdlbnRIB4gBARrICwoGQ2xpZW50EjEKA2xvZxgBIAEoCzIfLmR4b3MuY29uZmlnLlJ1bnRpbWUuQ2xpZW50LkxvZ0gAiAEBEjkKB3N0b3JhZ2UYAiABKAsyIy5keG9zLmNvbmZpZy5SdW50aW1lLkNsaWVudC5TdG9yYWdlSAGIAQESHQoQZW5hYmxlX3NuYXBzaG90cxgDIAEoCEgCiAEBEh4KEXNuYXBzaG90X2ludGVydmFsGAQgASgFSAOIAQESIgoVaW52aXRhdGlvbl9leHBpcmF0aW9uGAUgASgFSASIAQESGgoNcmVtb3RlX3NvdXJjZRgGIAEoCUgFiAEBEi8KInJlbW90ZV9zb3VyY2VfYXV0aGVudGljYXRpb25fdG9rZW4YCCABKAlIBogBARIbCg5kZXZ0b29sc19wcm94eRgHIAEoCUgHiAEBEhwKD2xhenlfc3BhY2Vfb3BlbhgJIAEoCEgIiAEBEiQKF2Rpc2FibGVfcDJwX3JlcGxpY2F0aW9uGAogASgISAmIAQESIwoWZW5hYmxlX3ZlY3Rvcl9pbmRleGluZxgMIAEoCEgKiAEBEkQKDWVkZ2VfZmVhdHVyZXMYCyABKAsyKC5keG9zLmNvbmZpZy5SdW50aW1lLkNsaWVudC5FZGdlRmVhdHVyZXNIC4gBARqxAwoHU3RvcmFnZRIXCgpwZXJzaXN0ZW50GAEgASgISACIAQESSQoJa2V5X3N0b3JlGAIgASgOMjEuZHhvcy5jb25maWcuUnVudGltZS5DbGllbnQuU3RvcmFnZS5TdG9yYWdlRHJpdmVySAGIAQESSgoKZGF0YV9zdG9yZRgDIAEoDjIxLmR4b3MuY29uZmlnLlJ1bnRpbWUuQ2xpZW50LlN0b3JhZ2UuU3RvcmFnZURyaXZlckgCiAEBEhYKCWRhdGFfcm9vdBgEIAEoCUgDiAEBEiAKE3NwYWNlX2ZyYWdtZW50YXRpb24YBSABKAhIBIgBASJqCg1TdG9yYWdlRHJpdmVyEgcKA1JBTRAAEgcKA0lEQhABEgoKBkNIUk9NRRACEgsKB0ZJUkVGT1gQAxIICgROT0RFEAQSCQoFV0VCRlMQBRILCgdMRVZFTEpTEAsSDAoISlNPTkRPV04QDEINCgtfcGVyc2lzdGVudEIMCgpfa2V5X3N0b3JlQg0KC19kYXRhX3N0b3JlQgwKCl9kYXRhX3Jvb3RCFgoUX3NwYWNlX2ZyYWdtZW50YXRpb24aYwoDTG9nEiIKBmZpbHRlchgBIAEoCUINwj4KTE9HX0ZJTFRFUkgAiAEBEiIKBnByZWZpeBgCIAEoCUINwj4KTE9HX1BSRUZJWEgBiAEBQgkKB19maWx0ZXJCCQoHX3ByZWZpeBq4AQoMRWRnZUZlYXR1cmVzEhwKD2ZlZWRfcmVwbGljYXRvchgBIAEoCEgAiAEBEhwKD2VjaG9fcmVwbGljYXRvchgCIAEoCEgBiAEBEhYKCXNpZ25hbGluZxgDIAEoCEgCiAEBEhMKBmFnZW50cxgEIAEoCEgDiAEBQhIKEF9mZWVkX3JlcGxpY2F0b3JCEgoQX2VjaG9fcmVwbGljYXRvckIMCgpfc2lnbmFsaW5nQgkKB19hZ2VudHNCBgoEX2xvZ0IKCghfc3RvcmFnZUITChFfZW5hYmxlX3NuYXBzaG90c0IUChJfc25hcHNob3RfaW50ZXJ2YWxCGAoWX2ludml0YXRpb25fZXhwaXJhdGlvbkIQCg5fcmVtb3RlX3NvdXJjZUIlCiNfcmVtb3RlX3NvdXJjZV9hdXRoZW50aWNhdGlvbl90b2tlbkIRCg9fZGV2dG9vbHNfcHJveHlCEgoQX2xhenlfc3BhY2Vfb3BlbkIaChhfZGlzYWJsZV9wMnBfcmVwbGljYXRpb25CGQoXX2VuYWJsZV92ZWN0b3JfaW5kZXhpbmdCEAoOX2VkZ2VfZmVhdHVyZXMaqwMKA0FwcBIQCgNvcmcYASABKAlIAIgBARISCgV0aGVtZRgCIAEoCUgBiAEBEhQKB3dlYnNpdGUYAyABKAlIAogBARImCgpwdWJsaWNfdXJsGAQgASgJQg3CPgpQVUJMSUNfVVJMSAOIAQESNgoFYnVpbGQYZCABKAsyIi5keG9zLmNvbmZpZy5SdW50aW1lLkFwcC5CdWlsZEluZm9IBIgBARIpCgNlbnYYZSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQEanQEKCUJ1aWxkSW5mbxIWCgl0aW1lc3RhbXAYASABKAlIAIgBARIYCgtjb21taXRfaGFzaBgCIAEoCUgBiAEBEhQKB3ZlcnNpb24YAyABKAlIAogBARITCgZicmFuY2gYBCABKAlIA4gBAUIMCgpfdGltZXN0YW1wQg4KDF9jb21taXRfaGFzaEIKCghfdmVyc2lvbkIJCgdfYnJhbmNoQgYKBF9vcmdCCAoGX3RoZW1lQgoKCF93ZWJzaXRlQg0KC19wdWJsaWNfdXJsQggKBl9idWlsZEIGCgRfZW52GsYBCgVBZ2VudBIyCgdwbHVnaW5zGAEgAygLMiEuZHhvcy5jb25maWcuUnVudGltZS5BZ2VudC5QbHVnaW4aiAEKBlBsdWdpbhIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESFAoHZW5hYmxlZBgDIAEoCEgBiAEBEikKBmNvbmZpZxgKIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlIAogBAUIHCgVfbmFtZUIKCghfZW5hYmxlZEIJCgdfY29uZmlnGssFCgNDTEkSFgoJbm9kZV9wYXRoGAEgASgJSACIAQESMwoDYXBwGAIgASgLMiEuZHhvcy5jb25maWcuUnVudGltZS5DTEkuQXBwU2VydmVIAYgBARI2Cgdjb25zb2xlGAMgASgLMiAuZHhvcy5jb25maWcuUnVudGltZS5DTEkuUGFja2FnZUgCiAEBEjMKBG1kbnMYBCABKAsyIC5keG9zLmNvbmZpZy5SdW50aW1lLkNMSS5QYWNrYWdlSAOIAQESNQoGc2lnbmFsGAUgASgLMiAuZHhvcy5jb25maWcuUnVudGltZS5DTEkuUGFja2FnZUgEiAEBEhcKCm5wbV9jbGllbnQYBiABKAlIBYgBARIUCgdjaGFubmVsGAcgASgJSAaIAQEayAEKCEFwcFNlcnZlEjsKBXNlcnZlGAEgASgLMicuZHhvcy5jb25maWcuUnVudGltZS5DTEkuQXBwU2VydmUuU2VydmVIAIgBARp1CgVTZXJ2ZRITCgZjb25maWcYASABKAlIAIgBARIWCglsb2dpbl9hcHAYAiABKAlIAYgBARIXCgprZXlfcGhyYXNlGAMgASgJSAKIAQFCCQoHX2NvbmZpZ0IMCgpfbG9naW5fYXBwQg0KC19rZXlfcGhyYXNlQggKBl9zZXJ2ZRqHAQoHUGFja2FnZRIUCgdwYWNrYWdlGAEgASgJSACIAQESFAoHY2hhbm5lbBgCIAEoCUgBiAEBEhAKA2JpbhgDIAEoCUgCiAEBEhMKBmNvbmZpZxgEIAEoCUgDiAEBQgoKCF9wYWNrYWdlQgoKCF9jaGFubmVsQgYKBF9iaW5CCQoHX2NvbmZpZ0IMCgpfbm9kZV9wYXRoQgYKBF9hcHBCCgoIX2NvbnNvbGVCBwoFX21kbnNCCQoHX3NpZ25hbEINCgtfbnBtX2NsaWVudEIKCghfY2hhbm5lbBolCgVQcm9wcxISCgV0aXRsZRgBIAEoCUgAiAEBQggKBl90aXRsZRomCgZTeXN0ZW0SEgoFZGVidWcYASABKAlIAIgBAUIICgZfZGVidWcahwoKBEt1YmUSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgJEjgKCmF1dG91cGRhdGUYAyABKAsyJC5keG9zLmNvbmZpZy5SdW50aW1lLkt1YmUuQXV0b3VwZGF0ZRIuCgVodHRwcxgEIAEoCzIfLmR4b3MuY29uZmlnLlJ1bnRpbWUuS3ViZS5IdHRwcxIqCgNwMnAYBSABKAsyHS5keG9zLmNvbmZpZy5SdW50aW1lLkt1YmUuUDJQEhAKCGNvbmZob3N0GAYgASgJEgsKA2VudhgHIAMoCRINCgVhbGlhcxgIIAMoCRI4Cgptb25pdG9yaW5nGAkgASgLMiQuZHhvcy5jb25maWcuUnVudGltZS5LdWJlLk1vbml0b3JpbmcSLgoFdHJhY2UYCiABKAsyHy5keG9zLmNvbmZpZy5SdW50aW1lLkt1YmUuVHJhY2USNgoJdGVsZW1ldHJ5GAsgASgLMiMuZHhvcy5jb25maWcuUnVudGltZS5LdWJlLlRlbGVtZXRyeRIyCgdncmF2aXR5GAwgASgLMiEuZHhvcy5jb25maWcuUnVudGltZS5LdWJlLkdyYXZpdHkSPQoNYXBwX3R1bm5lbGluZxgNIAEoCzImLmR4b3MuY29uZmlnLlJ1bnRpbWUuS3ViZS5BcHBUdW5uZWxpbmcSLAoEYm90cxgOIAEoCzIeLmR4b3MuY29uZmlnLlJ1bnRpbWUuS3ViZS5Cb3RzEk8KF2lwZnNfYXBpX2F1dGhvcml6YXRpb25zGA8gAygLMi4uZHhvcy5jb25maWcuUnVudGltZS5LdWJlLkt1Ym9BcGlBdXRob3JpemF0aW9uGi8KCkF1dG91cGRhdGUSDwoHZW5hYmxlZBgBIAEoCBIQCghpbnRlcnZhbBgCIAEoBRptCgVIdHRwcxIPCgdlbmFibGVkGAEgASgIEgwKBHBvcnQYAiABKAkSDQoFZW1haWwYAyABKAkSEAoIY2VydGZpbGUYBCABKAkSDwoHa2V5ZmlsZRgFIAEoCRITCgtkbnNwcm92aWRlchgGIAEoCRo6CgNQMlASEgoKcHJpdmF0ZWtleRgBIAEoCRIMCgRwb3J0GAIgASgJEhEKCWJvb3RzdHJhcBgDIAMoCRpBCgpNb25pdG9yaW5nEg8KB2VuYWJsZWQYASABKAgSEAoIZW5kcG9pbnQYAiABKAkSEAoIaW50ZXJ2YWwYAyABKAUaGQoFVHJhY2USEAoIZGlzYWJsZWQYASABKAgaKwoJVGVsZW1ldHJ5EhAKCGRpc2FibGVkGAEgASgIEgwKBHRhZ3MYAiADKAkaSwoHR3Jhdml0eRIQCghkaXNhYmxlZBgBIAEoCBIMCgRuYW1lGAIgASgJEhQKB2xvZ19kaXIYAyABKAlIAIgBAUIKCghfbG9nX2RpchpaCgxBcHBUdW5uZWxpbmcSDwoHZW5hYmxlZBgBIAEoCBIYChBjb21tYW5kX3RlbXBsYXRlGAIgASgJEhEKCW91dHB1dF9yZRgDIAEoCRIMCgRwb3J0GAQgASgJGikKBEJvdHMSDwoHZW5hYmxlZBgBIAEoCBIQCghpbnRlcnZhbBgCIAEoBRpQChRLdWJvQXBpQXV0aG9yaXphdGlvbhIMCgRuYW1lGAEgASgJEhMKC2F1dGhfc2VjcmV0GAIgASgJEhUKDWFsbG93ZWRfcGF0aHMYAyADKAkarBUKCFNlcnZpY2VzEjUKBGt1YmUYASABKAsyIi5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzLkt1YmVIAIgBARI5CgNhcHAYAiABKAsyJy5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzLkFwcFNlcnZlckgBiAEBEjUKBGR4bnMYAyABKAsyIi5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzLkR4bnNIAogBARI1CgRpcGZzGAQgASgLMiIuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5JcGZzSAOIAQESNwoJc2lnbmFsaW5nGAUgAygLMiQuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5TaWduYWwSLgoDaWNlGAYgAygLMiEuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5JY2USQAoNaWNlX3Byb3ZpZGVycxgOIAMoCzIpLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuSWNlUHJvdmlkZXISOwoHbWFjaGluZRgHIAEoCzIlLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuTWFjaGluZUgEiAEBEjcKA2JvdBgIIAEoCzIlLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuQm90SG9zdEgFiAEBEj8KCXB1Ymxpc2hlchgJIAEoCzInLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuUHVibGlzaGVySAaIAQESQQoKc3VwZXJ2aXNvchgKIAEoCzIoLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuU3VwZXJ2aXNvckgHiAEBEj8KCXR1bm5lbGluZxgLIAEoCzInLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuVHVubmVsaW5nSAiIAQESNwoFZmFhc2QYDCABKAsyIy5keG9zLmNvbmZpZy5SdW50aW1lLlNlcnZpY2VzLkZhYXNkSAmIAQESRgoNYWdlbnRfaG9zdGluZxgNIAEoCzIqLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuQWdlbnRIb3N0aW5nSAqIAQESNQoEZWRnZRgPIAEoCzIiLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuRWRnZUgLiAEBEjEKAmFpGBAgASgLMiAuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5BaUgMiAEBEjMKA2h1YhgRIAEoCzIhLmR4b3MuY29uZmlnLlJ1bnRpbWUuU2VydmljZXMuSHViSA2IAQEa6wEKBEt1YmUSRAoJZW5kcG9pbnRzGAEgASgLMiwuZHhvcy5jb25maWcuUnVudGltZS5TZXJ2aWNlcy5LdWJlLkVuZHBvaW50c0gAiAEBEhcKCnB1YmxpY191cmwYAiABKAlIAYgBARpnCglFbmRwb2ludHMSEQoEbG9ncxgBIAEoCUgAiAEBEhUKCHNlcnZpY2VzGAIgASgJSAGIAQESEQoEY2VydBgDIAEoCUgCiAEBQgcKBV9sb2dzQgsKCV9zZXJ2aWNlc0IHCgVfY2VydEIMCgpfZW5kcG9pbnRzQg0KC19wdWJsaWNfdXJsGksKCUFwcFNlcnZlchITCgZwcmVmaXgYASABKAlIAIgBARITCgZzZXJ2ZXIYAiABKAlIAYgBAUIJCgdfcHJlZml4QgkKB19zZXJ2ZXIatAEKBER4bnMSEwoGc2VydmVyGAEgASgJSACIAQESGAoLYWNjb3VudF91cmkYAiABKAlIAYgBARIUCgdhZGRyZXNzGAMgASgJSAKIAQESFAoHYWNjb3VudBgEIAEoCUgDiAEBEhMKBmZhdWNldBgFIAEoCUgEiAEBQgkKB19zZXJ2ZXJCDgoMX2FjY291bnRfdXJpQgoKCF9hZGRyZXNzQgoKCF9hY2NvdW50QgkKB19mYXVjZXQagAEKBElwZnMSEwoGc2VydmVyGAEgASgJSACIAQESFAoHZ2F0ZXdheRgCIAEoCUgBiAEBEh8KEnNlcnZlcl9hdXRoX3NlY3JldBgDIAEoCUgCiAEBQgkKB19zZXJ2ZXJCCgoIX2dhdGV3YXlCFQoTX3NlcnZlcl9hdXRoX3NlY3JldBpSCgZTaWduYWwSDgoGc2VydmVyGAEgASgJEhAKA2FwaRgCIAEoCUgAiAEBEhMKBnN0YXR1cxgDIAEoCUgBiAEBQgYKBF9hcGlCCQoHX3N0YXR1cxpfCgNJY2USDAoEdXJscxgBIAEoCRIVCgh1c2VybmFtZRgCIAEoCUgAiAEBEhcKCmNyZWRlbnRpYWwYAyABKAlIAYgBAUILCglfdXNlcm5hbWVCDQoLX2NyZWRlbnRpYWwaGwoLSWNlUHJvdmlkZXISDAoEdXJscxgBIAEoCRqDAgoHTWFjaGluZRIcCg9kb19hY2Nlc3NfdG9rZW4YASABKAlIAIgBARIgChNnaXRodWJfYWNjZXNzX3Rva2VuGAIgASgJSAGIAQESHAoPZ2l0aHViX3VzZXJuYW1lGAMgASgJSAKIAQESFwoKZG5zX2RvbWFpbhgEIAEoCUgDiAEBEh0KEG5wbV9hY2Nlc3NfdG9rZW4YBSABKAlIBIgBAUISChBfZG9fYWNjZXNzX3Rva2VuQhYKFF9naXRodWJfYWNjZXNzX3Rva2VuQhIKEF9naXRodWJfdXNlcm5hbWVCDQoLX2Ruc19kb21haW5CEwoRX25wbV9hY2Nlc3NfdG9rZW4aJwoHQm90SG9zdBISCgVwcm94eRgBIAEoCUgAiAEBQggKBl9wcm94eRorCglQdWJsaXNoZXISEwoGc2VydmVyGAEgASgJSACIAQFCCQoHX3NlcnZlchorCglUdW5uZWxpbmcSEwoGc2VydmVyGAEgASgJSACIAQFCCQoHX3NlcnZlchosCgpTdXBlcnZpc29yEhMKBnNlcnZlchgBIAEoCUgAiAEBQgkKB19zZXJ2ZXIacQoFRmFhc2QSFAoHZ2F0ZXdheRgBIAEoCUgAiAEBEhUKCHVzZXJuYW1lGAIgASgJSAGIAQESFQoIcGFzc3dvcmQYAyABKAlIAogBAUIKCghfZ2F0ZXdheUILCglfdXNlcm5hbWVCCwoJX3Bhc3N3b3JkGkoKDEFnZW50SG9zdGluZxITCgZzZXJ2ZXIYASABKAlIAIgBARIRCgR0eXBlGAIgASgJSAGIAQFCCQoHX3NlcnZlckIHCgVfdHlwZRogCgRFZGdlEhAKA3VybBgBIAEoCUgAiAEBQgYKBF91cmwaJAoCQWkSEwoGc2VydmVyGAEgASgJSACIAQFCCQoHX3NlcnZlchofCgNIdWISEAoDdXJsGAEgASgJSACIAQFCBgoEX3VybEIHCgVfa3ViZUIGCgRfYXBwQgcKBV9keG5zQgcKBV9pcGZzQgoKCF9tYWNoaW5lQgYKBF9ib3RCDAoKX3B1Ymxpc2hlckINCgtfc3VwZXJ2aXNvckIMCgpfdHVubmVsaW5nQggKBl9mYWFzZEIQCg5fYWdlbnRfaG9zdGluZ0IHCgVfZWRnZUIFCgNfYWlCBgoEX2h1YhpACgRLZXlzEhEKBG5hbWUYASABKAlIAIgBARISCgV2YWx1ZRgCIAEoCUgBiAEBQgcKBV9uYW1lQggKBl92YWx1ZUIJCgdfY2xpZW50QgYKBF9hcHBCBgoEX2NsaUIICgZfcHJvcHNCCwoJX3NlcnZpY2VzQgkKB19zeXN0ZW1CBwoFX2t1YmVCCAoGX2FnZW50OjoKB2Vudl92YXISHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGOgHIAEoCVIGZW52VmFyiAEBQixaKmdpdGh1Yi5jb20vZHhvcy9keG9zL3Byb3RvL2RlZi9keG9zL2NvbmZpZ2IGcHJvdG8z", [file_google_protobuf_any, file_google_protobuf_struct, file_google_protobuf_descriptor]);
20
20
 
21
21
  /**
22
22
  * @generated from message dxos.config.Config
@@ -124,7 +124,7 @@ export type Module = Message<"dxos.config.Module"> & {
124
124
  name?: string;
125
125
 
126
126
  /**
127
- * TODO(burdon): Define namespace (e.g., 'dxos.org/type/frame' vs. 'dxos.type.frame')
127
+ * TODO(burdon): Define namespace (e.g.,
128
128
  *
129
129
  * @generated from field: optional string type = 2;
130
130
  */
@@ -325,7 +325,8 @@ export type Runtime_Client = Message<"dxos.config.Runtime.Client"> & {
325
325
 
326
326
  /**
327
327
  * / Location of the remote client host.
328
- * TODO(burdon): Rename vault_endpoint (generalize http/ws; drop vault.html).
328
+ * TODO(burdon): Rename vault_endpoint (generalize http/ws; drop
329
+ * vault.html).
329
330
  *
330
331
  * @generated from field: optional string remote_source = 6;
331
332
  */
@@ -346,7 +347,8 @@ export type Runtime_Client = Message<"dxos.config.Runtime.Client"> & {
346
347
  devtoolsProxy?: string;
347
348
 
348
349
  /**
349
- * / Spaces will stay in SpaceState.CLOSED until explicitly opened. Speeds up client-services initialization.
350
+ * / Spaces will stay in SpaceState.CLOSED until explicitly opened. Speeds up
351
+ * / client-services initialization.
350
352
  *
351
353
  * @generated from field: optional bool lazy_space_open = 9;
352
354
  */
@@ -1195,6 +1197,8 @@ export const Runtime_Kube_KuboApiAuthorizationSchema: GenMessage<Runtime_Kube_Ku
1195
1197
  */
1196
1198
  export type Runtime_Services = Message<"dxos.config.Runtime.Services"> & {
1197
1199
  /**
1200
+ * * Deprecated
1201
+ *
1198
1202
  * @generated from field: optional dxos.config.Runtime.Services.Kube kube = 1;
1199
1203
  */
1200
1204
  kube?: Runtime_Services_Kube;
@@ -1245,23 +1249,29 @@ export type Runtime_Services = Message<"dxos.config.Runtime.Services"> & {
1245
1249
  publisher?: Runtime_Services_Publisher;
1246
1250
 
1247
1251
  /**
1248
- * TODO(burdon): Promote to 1; start others at 10.
1252
+ * * Deprecated
1249
1253
  *
1250
1254
  * @generated from field: optional dxos.config.Runtime.Services.Supervisor supervisor = 10;
1251
1255
  */
1252
1256
  supervisor?: Runtime_Services_Supervisor;
1253
1257
 
1254
1258
  /**
1259
+ * * Deprecated
1260
+ *
1255
1261
  * @generated from field: optional dxos.config.Runtime.Services.Tunneling tunneling = 11;
1256
1262
  */
1257
1263
  tunneling?: Runtime_Services_Tunneling;
1258
1264
 
1259
1265
  /**
1266
+ * * Deprecated
1267
+ *
1260
1268
  * @generated from field: optional dxos.config.Runtime.Services.Faasd faasd = 12;
1261
1269
  */
1262
1270
  faasd?: Runtime_Services_Faasd;
1263
1271
 
1264
1272
  /**
1273
+ * * Deprecated
1274
+ *
1265
1275
  * @generated from field: optional dxos.config.Runtime.Services.AgentHosting agent_hosting = 13;
1266
1276
  */
1267
1277
  agentHosting?: Runtime_Services_AgentHosting;
@@ -1275,6 +1285,11 @@ export type Runtime_Services = Message<"dxos.config.Runtime.Services"> & {
1275
1285
  * @generated from field: optional dxos.config.Runtime.Services.Ai ai = 16;
1276
1286
  */
1277
1287
  ai?: Runtime_Services_Ai;
1288
+
1289
+ /**
1290
+ * @generated from field: optional dxos.config.Runtime.Services.Hub hub = 17;
1291
+ */
1292
+ hub?: Runtime_Services_Hub;
1278
1293
  };
1279
1294
 
1280
1295
  /**
@@ -1423,8 +1438,9 @@ export type Runtime_Services_Ipfs = Message<"dxos.config.Runtime.Services.Ipfs">
1423
1438
  gateway?: string;
1424
1439
 
1425
1440
  /**
1426
- * / Used for IPFS API authentication, regardless if server is direct KUBO API (e.g. path of '/api/v0') or a reverse proxy
1427
- * / Same secret format as https://github.com/ipfs/kubo/blob/master/docs/config.md#apiauthorizations
1441
+ * / Used for IPFS API authentication, regardless if server is direct KUBO
1442
+ * / API (e.g. path of '/api/v0') or a reverse proxy Same secret format as
1443
+ * / https://github.com/ipfs/kubo/blob/master/docs/config.md#apiauthorizations
1428
1444
  *
1429
1445
  * @generated from field: optional string server_auth_secret = 3;
1430
1446
  */
@@ -1707,6 +1723,23 @@ export type Runtime_Services_Ai = Message<"dxos.config.Runtime.Services.Ai"> & {
1707
1723
  export const Runtime_Services_AiSchema: GenMessage<Runtime_Services_Ai> = /*@__PURE__*/
1708
1724
  messageDesc(file_dxos_config, 4, 7, 15);
1709
1725
 
1726
+ /**
1727
+ * @generated from message dxos.config.Runtime.Services.Hub
1728
+ */
1729
+ export type Runtime_Services_Hub = Message<"dxos.config.Runtime.Services.Hub"> & {
1730
+ /**
1731
+ * @generated from field: optional string url = 1;
1732
+ */
1733
+ url?: string;
1734
+ };
1735
+
1736
+ /**
1737
+ * Describes the message dxos.config.Runtime.Services.Hub.
1738
+ * Use `create(Runtime_Services_HubSchema)` to create a new message.
1739
+ */
1740
+ export const Runtime_Services_HubSchema: GenMessage<Runtime_Services_Hub> = /*@__PURE__*/
1741
+ messageDesc(file_dxos_config, 4, 7, 16);
1742
+
1710
1743
  /**
1711
1744
  * @generated from message dxos.config.Runtime.Keys
1712
1745
  */
@@ -17,7 +17,7 @@ import type { Message } from "@bufbuild/protobuf";
17
17
  * Describes the file dxos/echo/service.proto.
18
18
  */
19
19
  export const file_dxos_echo_service: GenFile = /*@__PURE__*/
20
- fileDesc("ChdkeG9zL2VjaG8vc2VydmljZS5wcm90bxIRZHhvcy5lY2hvLnNlcnZpY2UiPQoQU3Vic2NyaWJlUmVxdWVzdBIXCg9zdWJzY3JpcHRpb25faWQYASABKAkSEAoIc3BhY2VfaWQYAiABKAkiTAoWQmF0Y2hlZERvY3VtZW50VXBkYXRlcxIyCgd1cGRhdGVzGAEgAygLMiEuZHhvcy5lY2hvLnNlcnZpY2UuRG9jdW1lbnRVcGRhdGUiXAoNVXBkYXRlUmVxdWVzdBIXCg9zdWJzY3JpcHRpb25faWQYASABKAkSMgoHdXBkYXRlcxgCIAMoCzIhLmR4b3MuZWNoby5zZXJ2aWNlLkRvY3VtZW50VXBkYXRlIlkKGVVwZGF0ZVN1YnNjcmlwdGlvblJlcXVlc3QSFwoPc3Vic2NyaXB0aW9uX2lkGAEgASgJEg8KB2FkZF9pZHMYAyADKAkSEgoKcmVtb3ZlX2lkcxgEIAMoCSIkCgxGbHVzaFJlcXVlc3QSFAoMZG9jdW1lbnRfaWRzGAEgAygJIlcKDkRvY3VtZW50VXBkYXRlEhMKC2RvY3VtZW50X2lkGAEgASgJEhAKCG11dGF0aW9uGAIgASgMEhMKBmlzX25ldxgDIAEoCEgAiAEBQgkKB19pc19uZXcicwoMRG9jSGVhZHNMaXN0EjYKB2VudHJpZXMYASADKAsyJS5keG9zLmVjaG8uc2VydmljZS5Eb2NIZWFkc0xpc3QuRW50cnkaKwoFRW50cnkSEwoLZG9jdW1lbnRfaWQYASABKAkSDQoFaGVhZHMYAiADKAkiLwoXR2V0RG9jdW1lbnRIZWFkc1JlcXVlc3QSFAoMZG9jdW1lbnRfaWRzGAEgAygJIkoKGEdldERvY3VtZW50SGVhZHNSZXNwb25zZRIuCgVoZWFkcxgBIAEoCzIfLmR4b3MuZWNoby5zZXJ2aWNlLkRvY0hlYWRzTGlzdCJRCh9XYWl0VW50aWxIZWFkc1JlcGxpY2F0ZWRSZXF1ZXN0Ei4KBWhlYWRzGAEgASgLMh8uZHhvcy5lY2hvLnNlcnZpY2UuRG9jSGVhZHNMaXN0IisKE1JlSW5kZXhIZWFkc1JlcXVlc3QSFAoMZG9jdW1lbnRfaWRzGAEgAygJIiwKGEdldFNwYWNlU3luY1N0YXRlUmVxdWVzdBIQCghzcGFjZV9pZBgBIAEoCSL6AQoOU3BhY2VTeW5jU3RhdGUSOgoFcGVlcnMYASADKAsyKy5keG9zLmVjaG8uc2VydmljZS5TcGFjZVN5bmNTdGF0ZS5QZWVyU3RhdGUaqwEKCVBlZXJTdGF0ZRIPCgdwZWVyX2lkGAEgASgJEhkKEW1pc3Npbmdfb25fcmVtb3RlGAogASgFEhgKEG1pc3Npbmdfb25fbG9jYWwYCyABKAUSGwoTZGlmZmVyZW50X2RvY3VtZW50cxgMIAEoBRIcChRsb2NhbF9kb2N1bWVudF9jb3VudBgNIAEoBRIdChVyZW1vdGVfZG9jdW1lbnRfY291bnQYDiABKAUyoQYKC0RhdGFTZXJ2aWNlEl0KCVN1YnNjcmliZRIjLmR4b3MuZWNoby5zZXJ2aWNlLlN1YnNjcmliZVJlcXVlc3QaKS5keG9zLmVjaG8uc2VydmljZS5CYXRjaGVkRG9jdW1lbnRVcGRhdGVzMAESWgoSVXBkYXRlU3Vic2NyaXB0aW9uEiwuZHhvcy5lY2hvLnNlcnZpY2UuVXBkYXRlU3Vic2NyaXB0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCCgZVcGRhdGUSIC5keG9zLmVjaG8uc2VydmljZS5VcGRhdGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkAKBUZsdXNoEh8uZHhvcy5lY2hvLnNlcnZpY2UuRmx1c2hSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EmsKEEdldERvY3VtZW50SGVhZHMSKi5keG9zLmVjaG8uc2VydmljZS5HZXREb2N1bWVudEhlYWRzUmVxdWVzdBorLmR4b3MuZWNoby5zZXJ2aWNlLkdldERvY3VtZW50SGVhZHNSZXNwb25zZRJmChhXYWl0VW50aWxIZWFkc1JlcGxpY2F0ZWQSMi5keG9zLmVjaG8uc2VydmljZS5XYWl0VW50aWxIZWFkc1JlcGxpY2F0ZWRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ek4KDFJlSW5kZXhIZWFkcxImLmR4b3MuZWNoby5zZXJ2aWNlLlJlSW5kZXhIZWFkc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPwoNVXBkYXRlSW5kZXhlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJrChdTdWJzY3JpYmVTcGFjZVN5bmNTdGF0ZRIrLmR4b3MuZWNoby5zZXJ2aWNlLkdldFNwYWNlU3luY1N0YXRlUmVxdWVzdBohLmR4b3MuZWNoby5zZXJ2aWNlLlNwYWNlU3luY1N0YXRlMAFiBnByb3RvMw", [file_dxos_keys, file_google_protobuf_empty]);
20
+ fileDesc("ChdkeG9zL2VjaG8vc2VydmljZS5wcm90bxIRZHhvcy5lY2hvLnNlcnZpY2UiPQoQU3Vic2NyaWJlUmVxdWVzdBIXCg9zdWJzY3JpcHRpb25faWQYASABKAkSEAoIc3BhY2VfaWQYAiABKAkiTAoWQmF0Y2hlZERvY3VtZW50VXBkYXRlcxIyCgd1cGRhdGVzGAEgAygLMiEuZHhvcy5lY2hvLnNlcnZpY2UuRG9jdW1lbnRVcGRhdGUiXAoNVXBkYXRlUmVxdWVzdBIXCg9zdWJzY3JpcHRpb25faWQYASABKAkSMgoHdXBkYXRlcxgCIAMoCzIhLmR4b3MuZWNoby5zZXJ2aWNlLkRvY3VtZW50VXBkYXRlIlkKGVVwZGF0ZVN1YnNjcmlwdGlvblJlcXVlc3QSFwoPc3Vic2NyaXB0aW9uX2lkGAEgASgJEg8KB2FkZF9pZHMYAyADKAkSEgoKcmVtb3ZlX2lkcxgEIAMoCSIkCgxGbHVzaFJlcXVlc3QSFAoMZG9jdW1lbnRfaWRzGAEgAygJIlcKDkRvY3VtZW50VXBkYXRlEhMKC2RvY3VtZW50X2lkGAEgASgJEhAKCG11dGF0aW9uGAIgASgMEhMKBmlzX25ldxgDIAEoCEgAiAEBQgkKB19pc19uZXcicwoMRG9jSGVhZHNMaXN0EjYKB2VudHJpZXMYASADKAsyJS5keG9zLmVjaG8uc2VydmljZS5Eb2NIZWFkc0xpc3QuRW50cnkaKwoFRW50cnkSEwoLZG9jdW1lbnRfaWQYASABKAkSDQoFaGVhZHMYAiADKAkiLwoXR2V0RG9jdW1lbnRIZWFkc1JlcXVlc3QSFAoMZG9jdW1lbnRfaWRzGAEgAygJIkoKGEdldERvY3VtZW50SGVhZHNSZXNwb25zZRIuCgVoZWFkcxgBIAEoCzIfLmR4b3MuZWNoby5zZXJ2aWNlLkRvY0hlYWRzTGlzdCJRCh9XYWl0VW50aWxIZWFkc1JlcGxpY2F0ZWRSZXF1ZXN0Ei4KBWhlYWRzGAEgASgLMh8uZHhvcy5lY2hvLnNlcnZpY2UuRG9jSGVhZHNMaXN0IisKE1JlSW5kZXhIZWFkc1JlcXVlc3QSFAoMZG9jdW1lbnRfaWRzGAEgAygJIiwKGEdldFNwYWNlU3luY1N0YXRlUmVxdWVzdBIQCghzcGFjZV9pZBgBIAEoCSK5AgoOU3BhY2VTeW5jU3RhdGUSOgoFcGVlcnMYASADKAsyKy5keG9zLmVjaG8uc2VydmljZS5TcGFjZVN5bmNTdGF0ZS5QZWVyU3RhdGUa6gEKCVBlZXJTdGF0ZRIPCgdwZWVyX2lkGAEgASgJEhkKEW1pc3Npbmdfb25fcmVtb3RlGAogASgFEhgKEG1pc3Npbmdfb25fbG9jYWwYCyABKAUSGwoTZGlmZmVyZW50X2RvY3VtZW50cxgMIAEoBRIcChRsb2NhbF9kb2N1bWVudF9jb3VudBgNIAEoBRIdChVyZW1vdGVfZG9jdW1lbnRfY291bnQYDiABKAUSHAoUdG90YWxfZG9jdW1lbnRfY291bnQYDyABKAUSHwoXdW5zeW5jZWRfZG9jdW1lbnRfY291bnQYECABKAUyoQYKC0RhdGFTZXJ2aWNlEl0KCVN1YnNjcmliZRIjLmR4b3MuZWNoby5zZXJ2aWNlLlN1YnNjcmliZVJlcXVlc3QaKS5keG9zLmVjaG8uc2VydmljZS5CYXRjaGVkRG9jdW1lbnRVcGRhdGVzMAESWgoSVXBkYXRlU3Vic2NyaXB0aW9uEiwuZHhvcy5lY2hvLnNlcnZpY2UuVXBkYXRlU3Vic2NyaXB0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCCgZVcGRhdGUSIC5keG9zLmVjaG8uc2VydmljZS5VcGRhdGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkAKBUZsdXNoEh8uZHhvcy5lY2hvLnNlcnZpY2UuRmx1c2hSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EmsKEEdldERvY3VtZW50SGVhZHMSKi5keG9zLmVjaG8uc2VydmljZS5HZXREb2N1bWVudEhlYWRzUmVxdWVzdBorLmR4b3MuZWNoby5zZXJ2aWNlLkdldERvY3VtZW50SGVhZHNSZXNwb25zZRJmChhXYWl0VW50aWxIZWFkc1JlcGxpY2F0ZWQSMi5keG9zLmVjaG8uc2VydmljZS5XYWl0VW50aWxIZWFkc1JlcGxpY2F0ZWRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ek4KDFJlSW5kZXhIZWFkcxImLmR4b3MuZWNoby5zZXJ2aWNlLlJlSW5kZXhIZWFkc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPwoNVXBkYXRlSW5kZXhlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJrChdTdWJzY3JpYmVTcGFjZVN5bmNTdGF0ZRIrLmR4b3MuZWNoby5zZXJ2aWNlLkdldFNwYWNlU3luY1N0YXRlUmVxdWVzdBohLmR4b3MuZWNoby5zZXJ2aWNlLlNwYWNlU3luY1N0YXRlMAFiBnByb3RvMw", [file_dxos_keys, file_google_protobuf_empty]);
21
21
 
22
22
  /**
23
23
  * @generated from message dxos.echo.service.SubscribeRequest
@@ -366,6 +366,23 @@ export type SpaceSyncState_PeerState = Message<"dxos.echo.service.SpaceSyncState
366
366
  * @generated from field: int32 remote_document_count = 14;
367
367
  */
368
368
  remoteDocumentCount: number;
369
+
370
+ /**
371
+ * *
372
+ * Total number of documents across this peer and the remote peer.
373
+ *
374
+ * @generated from field: int32 total_document_count = 15;
375
+ */
376
+ totalDocumentCount: number;
377
+
378
+ /**
379
+ * *
380
+ * Total number of documents that are not synced.
381
+ * Includes documents that are present only locally, only on the remote peer, or whether the peers have different versions.
382
+ *
383
+ * @generated from field: int32 unsynced_document_count = 16;
384
+ */
385
+ unsyncedDocumentCount: number;
369
386
  };
370
387
 
371
388
  /**
package/src/edge-error.ts CHANGED
@@ -2,8 +2,11 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { BaseError } from '@dxos/errors';
6
+
5
7
  import { type EdgeErrorData, type EdgeHttpFailure } from './edge';
6
8
 
9
+ // TODO(burdon): Reconcile with @dxos/errors.
7
10
  export class EdgeCallFailedError extends Error {
8
11
  public static fromProcessingFailureCause(cause: Error): EdgeCallFailedError {
9
12
  return new EdgeCallFailedError({
@@ -13,11 +16,12 @@ export class EdgeCallFailedError extends Error {
13
16
  });
14
17
  }
15
18
 
16
- public static fromHttpFailure(response: Response): EdgeCallFailedError {
19
+ public static async fromHttpFailure(response: Response): Promise<EdgeCallFailedError> {
17
20
  return new EdgeCallFailedError({
18
21
  reason: `HTTP code ${response.status}: ${response.statusText}.`,
19
22
  isRetryable: isRetryableCode(response.status),
20
23
  retryAfterMs: getRetryAfterMillis(response),
24
+ cause: await parseErrorBody(response),
21
25
  });
22
26
  }
23
27
 
@@ -77,3 +81,54 @@ const isRetryableCode = (status: number) => {
77
81
  }
78
82
  return !(status >= 400 && status < 500);
79
83
  };
84
+
85
+ const parseErrorBody = async (response: Response): Promise<Error | undefined> => {
86
+ if (response.headers.get('Content-Type') !== 'application/json') {
87
+ const body = await response.text();
88
+ return new Error(body.slice(0, 256));
89
+ }
90
+
91
+ const body = await response.json();
92
+ if (!('error' in body)) {
93
+ return undefined;
94
+ }
95
+
96
+ return parseSerializedError(body.error);
97
+ };
98
+
99
+ type SerializedError = {
100
+ code?: string;
101
+ message?: string;
102
+ context?: Record<string, unknown>;
103
+ stack?: string;
104
+ cause?: SerializedError;
105
+ };
106
+
107
+ const parseSerializedError = (serializedError: SerializedError): Error => {
108
+ let err: Error;
109
+ if (typeof serializedError.code === 'string') {
110
+ err = new BaseError(serializedError.code, {
111
+ message: serializedError.message ?? 'Unknown error',
112
+ cause: serializedError.cause ? parseSerializedError(serializedError.cause) : undefined,
113
+ context: serializedError.context,
114
+ });
115
+
116
+ if (serializedError.stack) {
117
+ Object.defineProperty(err, 'stack', {
118
+ value: serializedError.stack,
119
+ });
120
+ }
121
+ } else {
122
+ err = new Error(serializedError.message ?? 'Unknown error', {
123
+ cause: serializedError.cause ? parseSerializedError(serializedError.cause) : undefined,
124
+ });
125
+
126
+ if (serializedError.stack) {
127
+ Object.defineProperty(err, 'stack', {
128
+ value: serializedError.stack,
129
+ });
130
+ }
131
+ }
132
+
133
+ return err;
134
+ };
package/src/edge.ts CHANGED
@@ -6,12 +6,14 @@ import { Schema } from 'effect';
6
6
 
7
7
  import { SpaceId } from '@dxos/keys';
8
8
 
9
- // TODO(burdon): Rename EdgerRouterEndpoint?
9
+ // TODO(burdon): Rename EdgerRouterEndpoint.
10
+ // If we would rename it, we need to be careful to not break composer production.
10
11
  export enum EdgeService {
11
12
  AUTOMERGE_REPLICATOR = 'automerge-replicator',
12
13
  FEED_REPLICATOR = 'feed-replicator',
13
14
  SWARM = 'swarm',
14
15
  SIGNAL = 'signal',
16
+ STATUS = 'status',
15
17
  }
16
18
 
17
19
  export type EdgeHttpSuccess<T> = {
@@ -116,15 +118,18 @@ export type GetAgentStatusResponseBody = {
116
118
 
117
119
  export type UploadFunctionRequest = {
118
120
  name?: string;
119
- script: string;
120
121
  version: string;
121
122
  ownerPublicKey: string;
123
+ entryPoint: string;
124
+ assets: Record<string, Uint8Array>;
122
125
  };
123
126
 
124
127
  export type UploadFunctionResponseBody = {
125
128
  functionId: string;
126
129
  version: string;
127
130
  meta: {
131
+ key?: string;
132
+ name?: string;
128
133
  description?: string;
129
134
  /**
130
135
  * JSON Schema for the input of the function.
@@ -138,12 +143,18 @@ export type UploadFunctionResponseBody = {
138
143
  };
139
144
 
140
145
  export type CreateSpaceRequest = {
146
+ /**
147
+ * HEX encoded public key of the agent.
148
+ */
141
149
  agentKey: string;
142
150
  };
143
151
 
144
152
  export type CreateSpaceResponseBody = {
153
+ /**
154
+ * HEX encoded public key of the space.
155
+ */
145
156
  spaceKey: string;
146
- spaceId: string; // TODO(burdon): Use SpaceId.
157
+ spaceId: SpaceId;
147
158
  automergeRoot: string;
148
159
  };
149
160
 
@@ -220,3 +231,49 @@ export type EdgeStatus = {
220
231
  fetchError?: string;
221
232
  };
222
233
  };
234
+
235
+ //
236
+ // Space import/export.
237
+ //
238
+
239
+ export type ImportBundleRequest = {
240
+ bundle: {
241
+ /**
242
+ * DocumentId.
243
+ */
244
+ documentId: string;
245
+ /**
246
+ * Encoded mutation.
247
+ */
248
+ mutation: string;
249
+ /**
250
+ * Heads of the document.
251
+ */
252
+ heads: string[];
253
+ }[];
254
+ };
255
+
256
+ export type ExportBundleRequest = {
257
+ /**
258
+ * DocumentId -> Heads (decoded heads since which we want to export).
259
+ */
260
+ docHeads: Record<string, string[]>;
261
+ };
262
+
263
+ export type ExportBundleResponse = {
264
+ bundle: {
265
+ /**
266
+ * DocumentId.
267
+ */
268
+ documentId: string;
269
+ /**
270
+ * Encoded mutation.
271
+ */
272
+ mutation: string;
273
+ }[];
274
+ };
275
+
276
+ export const DocumentCodec = {
277
+ encode: (doc: Uint8Array) => Buffer.from(doc).toString('base64'),
278
+ decode: (doc: string) => new Uint8Array(Buffer.from(doc, 'base64')),
279
+ };
@@ -2,6 +2,8 @@
2
2
  // Copyright 2021 DXOS.org
3
3
  //
4
4
 
5
+ // TODO(dmaretskyi): Reconcile with @dxos/errors
6
+
5
7
  /**
6
8
  * NOTE: Messages should be sentences (Start with a capital letter and end with a period).
7
9
  * Errors can optionally include a JSON context object.
@@ -2,9 +2,10 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { reconstructError } from './helpers.js';
6
5
  import { type Error as SerializedErrorProto } from '../proto/gen/dxos/error.js';
7
6
 
7
+ import { reconstructError } from './helpers.js';
8
+
8
9
  export const encodeError = (err: any): SerializedErrorProto => {
9
10
  if (typeof err === 'object' && err?.message) {
10
11
  return {
@@ -4,9 +4,10 @@
4
4
 
5
5
  import { PublicKey } from '@dxos/keys';
6
6
 
7
+ import type { ObjectId } from '../types.js';
8
+
7
9
  import { ApiError, BaseError, DatabaseError, SystemError } from './base-errors.js';
8
10
  import { registerError, registerErrorMessageContext, registerErrorNoArgs } from './helpers.js';
9
- import type { ObjectId } from '../types.js';
10
11
 
11
12
  /**
12
13
  * Thrown when request was terminated because the RPC endpoint has been closed.
@@ -4,9 +4,10 @@
4
4
 
5
5
  import { invariant } from '@dxos/invariant';
6
6
 
7
- import { SystemError } from './base-errors.js';
8
7
  import { type Error as SerializedErrorProto } from '../proto/gen/dxos/error.js';
9
8
 
9
+ import { SystemError } from './base-errors.js';
10
+
10
11
  export const reconstructError = (error: SerializedErrorProto) => {
11
12
  const { name, message, context } = error;
12
13
  return errorFromCode(name, message, context);
package/src/index.ts CHANGED
@@ -6,7 +6,7 @@ export * from './errors/index.js';
6
6
  export * from './indexing.js';
7
7
  export * from './storage.js';
8
8
  export * from './tracing.js';
9
- export * from './types.js';
9
+ export type * from './types.js';
10
10
  export * from './query.js';
11
11
  export * from './profile-archive.js';
12
12
  export * from './automerge.js';