@dxos/protocols 0.8.4-main.ae835ea → 0.8.4-main.bc2380dfbc

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 (472) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/src/FeedProtocol.d.ts +528 -0
  4. package/dist/src/FeedProtocol.d.ts.map +1 -0
  5. package/dist/src/FeedProtocol.js +237 -0
  6. package/dist/src/FeedProtocol.js.map +1 -0
  7. package/dist/src/FunctionProtocol.d.ts +89 -0
  8. package/dist/src/FunctionProtocol.d.ts.map +1 -0
  9. package/dist/src/FunctionProtocol.js +4 -0
  10. package/dist/src/FunctionProtocol.js.map +1 -0
  11. package/dist/src/TraceProtocol.d.ts +15 -0
  12. package/dist/src/TraceProtocol.d.ts.map +1 -0
  13. package/dist/src/TraceProtocol.js +4 -0
  14. package/dist/src/TraceProtocol.js.map +1 -0
  15. package/dist/src/buf/proto/gen/dxos/client/queue_pb.d.ts +237 -0
  16. package/dist/src/buf/proto/gen/dxos/client/queue_pb.d.ts.map +1 -0
  17. package/dist/src/buf/proto/gen/dxos/client/queue_pb.js +44 -0
  18. package/dist/src/buf/proto/gen/dxos/client/queue_pb.js.map +1 -0
  19. package/dist/src/buf/proto/gen/dxos/client/services_pb.d.ts +64 -3
  20. package/dist/src/buf/proto/gen/dxos/client/services_pb.d.ts.map +1 -1
  21. package/dist/src/buf/proto/gen/dxos/client/services_pb.js +68 -37
  22. package/dist/src/buf/proto/gen/dxos/client/services_pb.js.map +1 -1
  23. package/dist/src/buf/proto/gen/dxos/config_pb.d.ts +112 -0
  24. package/dist/src/buf/proto/gen/dxos/config_pb.d.ts.map +1 -1
  25. package/dist/src/buf/proto/gen/dxos/config_pb.js +72 -1
  26. package/dist/src/buf/proto/gen/dxos/config_pb.js.map +1 -1
  27. package/dist/src/buf/proto/gen/dxos/echo/metadata_pb.d.ts +6 -0
  28. package/dist/src/buf/proto/gen/dxos/echo/metadata_pb.d.ts.map +1 -1
  29. package/dist/src/buf/proto/gen/dxos/echo/metadata_pb.js +1 -1
  30. package/dist/src/buf/proto/gen/dxos/echo/metadata_pb.js.map +1 -1
  31. package/dist/src/buf/proto/gen/dxos/echo/query_pb.d.ts +12 -2
  32. package/dist/src/buf/proto/gen/dxos/echo/query_pb.d.ts.map +1 -1
  33. package/dist/src/buf/proto/gen/dxos/echo/query_pb.js +1 -1
  34. package/dist/src/buf/proto/gen/dxos/echo/query_pb.js.map +1 -1
  35. package/dist/src/buf/proto/gen/dxos/echo/service_pb.d.ts +68 -7
  36. package/dist/src/buf/proto/gen/dxos/echo/service_pb.d.ts.map +1 -1
  37. package/dist/src/buf/proto/gen/dxos/echo/service_pb.js +15 -5
  38. package/dist/src/buf/proto/gen/dxos/echo/service_pb.js.map +1 -1
  39. package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.d.ts +28 -0
  40. package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.d.ts.map +1 -1
  41. package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.js +10 -5
  42. package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.js.map +1 -1
  43. package/dist/src/buf/proto/gen/dxos/google_pb.js +1 -1
  44. package/dist/src/buf/proto/gen/dxos/google_pb.js.map +1 -1
  45. package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.d.ts +39 -0
  46. package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.d.ts.map +1 -1
  47. package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.js +27 -2
  48. package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.js.map +1 -1
  49. package/dist/src/buf/proto/gen/dxos/iframe_pb.d.ts +1 -10
  50. package/dist/src/buf/proto/gen/dxos/iframe_pb.d.ts.map +1 -1
  51. package/dist/src/buf/proto/gen/dxos/iframe_pb.js +1 -1
  52. package/dist/src/buf/proto/gen/dxos/iframe_pb.js.map +1 -1
  53. package/dist/src/buf/proto/gen/dxos/rpc_pb.d.ts +24 -0
  54. package/dist/src/buf/proto/gen/dxos/rpc_pb.d.ts.map +1 -1
  55. package/dist/src/buf/proto/gen/dxos/rpc_pb.js +12 -7
  56. package/dist/src/buf/proto/gen/dxos/rpc_pb.js.map +1 -1
  57. package/dist/src/buf/proto/gen/dxos/tracing_pb.d.ts +1 -139
  58. package/dist/src/buf/proto/gen/dxos/tracing_pb.d.ts.map +1 -1
  59. package/dist/src/buf/proto/gen/dxos/tracing_pb.js +11 -45
  60. package/dist/src/buf/proto/gen/dxos/tracing_pb.js.map +1 -1
  61. package/dist/src/edge/EdgeFunctionEnv.d.ts +128 -0
  62. package/dist/src/edge/EdgeFunctionEnv.d.ts.map +1 -0
  63. package/dist/src/edge/EdgeFunctionEnv.js +4 -0
  64. package/dist/src/edge/EdgeFunctionEnv.js.map +1 -0
  65. package/dist/src/{edge.d.ts → edge/edge.d.ts} +220 -21
  66. package/dist/src/edge/edge.d.ts.map +1 -0
  67. package/dist/src/{edge.js → edge/edge.js} +45 -8
  68. package/dist/src/edge/edge.js.map +1 -0
  69. package/dist/src/{edge-error.d.ts → edge/errors.d.ts} +6 -7
  70. package/dist/src/edge/errors.d.ts.map +1 -0
  71. package/dist/src/{edge-error.js → edge/errors.js} +13 -14
  72. package/dist/src/edge/errors.js.map +1 -0
  73. package/dist/src/edge/index.d.ts +5 -0
  74. package/dist/src/edge/index.d.ts.map +1 -0
  75. package/dist/src/edge/index.js +8 -0
  76. package/dist/src/edge/index.js.map +1 -0
  77. package/dist/src/edge/registry.d.ts +212 -0
  78. package/dist/src/edge/registry.d.ts.map +1 -0
  79. package/dist/src/edge/registry.js +139 -0
  80. package/dist/src/edge/registry.js.map +1 -0
  81. package/dist/src/errors/base-errors.d.ts +86 -8
  82. package/dist/src/errors/base-errors.d.ts.map +1 -1
  83. package/dist/src/errors/base-errors.js +4 -20
  84. package/dist/src/errors/base-errors.js.map +1 -1
  85. package/dist/src/errors/encoding.d.ts +2 -2
  86. package/dist/src/errors/encoding.d.ts.map +1 -1
  87. package/dist/src/errors/encoding.js.map +1 -1
  88. package/dist/src/errors/errors.d.ts +619 -42
  89. package/dist/src/errors/errors.d.ts.map +1 -1
  90. package/dist/src/errors/errors.js +49 -103
  91. package/dist/src/errors/errors.js.map +1 -1
  92. package/dist/src/errors/errors.test.js +1 -1
  93. package/dist/src/errors/errors.test.js.map +1 -1
  94. package/dist/src/errors/helpers.d.ts +9 -5
  95. package/dist/src/errors/helpers.d.ts.map +1 -1
  96. package/dist/src/errors/helpers.js +3 -3
  97. package/dist/src/errors/helpers.js.map +1 -1
  98. package/dist/src/errors/index.d.ts +5 -5
  99. package/dist/src/errors/parameter.d.ts.map +1 -1
  100. package/dist/src/feed-replication.d.ts.map +1 -1
  101. package/dist/src/index.d.ts +12 -12
  102. package/dist/src/index.d.ts.map +1 -1
  103. package/dist/src/index.js +5 -5
  104. package/dist/src/index.js.map +1 -1
  105. package/dist/src/indexing.d.ts.map +1 -1
  106. package/dist/src/messenger.d.ts +16 -0
  107. package/dist/src/messenger.d.ts.map +1 -0
  108. package/dist/src/messenger.js +4 -0
  109. package/dist/src/messenger.js.map +1 -0
  110. package/dist/src/proto/gen/dxos/agent/dashboard.d.ts +3 -6
  111. package/dist/src/proto/gen/dxos/agent/dashboard.d.ts.map +1 -1
  112. package/dist/src/proto/gen/dxos/agent/dashboard.js.map +1 -1
  113. package/dist/src/proto/gen/dxos/agent/echoproxy.d.ts +1 -2
  114. package/dist/src/proto/gen/dxos/agent/echoproxy.d.ts.map +1 -1
  115. package/dist/src/proto/gen/dxos/agent/epoch.d.ts +1 -2
  116. package/dist/src/proto/gen/dxos/agent/epoch.d.ts.map +1 -1
  117. package/dist/src/proto/gen/dxos/agent/functions.d.ts +6 -12
  118. package/dist/src/proto/gen/dxos/agent/functions.d.ts.map +1 -1
  119. package/dist/src/proto/gen/dxos/bot.d.ts +12 -24
  120. package/dist/src/proto/gen/dxos/bot.d.ts.map +1 -1
  121. package/dist/src/proto/gen/dxos/bot.js.map +1 -1
  122. package/dist/src/proto/gen/dxos/client/services.d.ts +1012 -922
  123. package/dist/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  124. package/dist/src/proto/gen/dxos/client/services.js +107 -94
  125. package/dist/src/proto/gen/dxos/client/services.js.map +1 -1
  126. package/dist/src/proto/gen/dxos/config.d.ts +115 -100
  127. package/dist/src/proto/gen/dxos/config.d.ts.map +1 -1
  128. package/dist/src/proto/gen/dxos/config.js +26 -0
  129. package/dist/src/proto/gen/dxos/config.js.map +1 -1
  130. package/dist/src/proto/gen/dxos/devtools/host.d.ts +71 -119
  131. package/dist/src/proto/gen/dxos/devtools/host.d.ts.map +1 -1
  132. package/dist/src/proto/gen/dxos/devtools/swarm.d.ts +4 -8
  133. package/dist/src/proto/gen/dxos/devtools/swarm.d.ts.map +1 -1
  134. package/dist/src/proto/gen/dxos/echo/blob.d.ts +1 -2
  135. package/dist/src/proto/gen/dxos/echo/blob.d.ts.map +1 -1
  136. package/dist/src/proto/gen/dxos/echo/blob.js.map +1 -1
  137. package/dist/src/proto/gen/dxos/echo/feed.d.ts +4 -8
  138. package/dist/src/proto/gen/dxos/echo/feed.d.ts.map +1 -1
  139. package/dist/src/proto/gen/dxos/echo/filter.d.ts +2 -4
  140. package/dist/src/proto/gen/dxos/echo/filter.d.ts.map +1 -1
  141. package/dist/src/proto/gen/dxos/echo/filter.js.map +1 -1
  142. package/dist/src/proto/gen/dxos/echo/indexing.d.ts +2 -4
  143. package/dist/src/proto/gen/dxos/echo/indexing.d.ts.map +1 -1
  144. package/dist/src/proto/gen/dxos/echo/indexing.js.map +1 -1
  145. package/dist/src/proto/gen/dxos/echo/metadata.d.ts +12 -16
  146. package/dist/src/proto/gen/dxos/echo/metadata.d.ts.map +1 -1
  147. package/dist/src/proto/gen/dxos/echo/metadata.js.map +1 -1
  148. package/dist/src/proto/gen/dxos/echo/model/document.d.ts +11 -22
  149. package/dist/src/proto/gen/dxos/echo/model/document.d.ts.map +1 -1
  150. package/dist/src/proto/gen/dxos/echo/model/document.js.map +1 -1
  151. package/dist/src/proto/gen/dxos/echo/model/messenger.d.ts +1 -2
  152. package/dist/src/proto/gen/dxos/echo/model/messenger.d.ts.map +1 -1
  153. package/dist/src/proto/gen/dxos/echo/model/text.d.ts +2 -4
  154. package/dist/src/proto/gen/dxos/echo/model/text.d.ts.map +1 -1
  155. package/dist/src/proto/gen/dxos/echo/object.d.ts +6 -12
  156. package/dist/src/proto/gen/dxos/echo/object.d.ts.map +1 -1
  157. package/dist/src/proto/gen/dxos/echo/object.js.map +1 -1
  158. package/dist/src/proto/gen/dxos/echo/query.d.ts +21 -9
  159. package/dist/src/proto/gen/dxos/echo/query.d.ts.map +1 -1
  160. package/dist/src/proto/gen/dxos/echo/query.js.map +1 -1
  161. package/dist/src/proto/gen/dxos/echo/service.d.ts +61 -34
  162. package/dist/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
  163. package/dist/src/proto/gen/dxos/echo/snapshot.d.ts +2 -4
  164. package/dist/src/proto/gen/dxos/echo/snapshot.d.ts.map +1 -1
  165. package/dist/src/proto/gen/dxos/echo/timeframe.d.ts +2 -4
  166. package/dist/src/proto/gen/dxos/echo/timeframe.d.ts.map +1 -1
  167. package/dist/src/proto/gen/dxos/edge/calls.d.ts +5 -10
  168. package/dist/src/proto/gen/dxos/edge/calls.d.ts.map +1 -1
  169. package/dist/src/proto/gen/dxos/edge/messenger.d.ts +28 -10
  170. package/dist/src/proto/gen/dxos/edge/messenger.d.ts.map +1 -1
  171. package/dist/src/proto/gen/dxos/edge/messenger.js.map +1 -1
  172. package/dist/src/proto/gen/dxos/edge/signal.d.ts +7 -14
  173. package/dist/src/proto/gen/dxos/edge/signal.d.ts.map +1 -1
  174. package/dist/src/proto/gen/dxos/error.d.ts +1 -2
  175. package/dist/src/proto/gen/dxos/error.d.ts.map +1 -1
  176. package/dist/src/proto/gen/dxos/gravity.d.ts +10 -20
  177. package/dist/src/proto/gen/dxos/gravity.d.ts.map +1 -1
  178. package/dist/src/proto/gen/dxos/halo/credentials/auth.d.ts +1 -2
  179. package/dist/src/proto/gen/dxos/halo/credentials/auth.d.ts.map +1 -1
  180. package/dist/src/proto/gen/dxos/halo/credentials/greet.d.ts +6 -12
  181. package/dist/src/proto/gen/dxos/halo/credentials/greet.d.ts.map +1 -1
  182. package/dist/src/proto/gen/dxos/halo/credentials/greet.js.map +1 -1
  183. package/dist/src/proto/gen/dxos/halo/credentials/identity.d.ts +2 -4
  184. package/dist/src/proto/gen/dxos/halo/credentials/identity.d.ts.map +1 -1
  185. package/dist/src/proto/gen/dxos/halo/credentials.d.ts +35 -43
  186. package/dist/src/proto/gen/dxos/halo/credentials.d.ts.map +1 -1
  187. package/dist/src/proto/gen/dxos/halo/credentials.js +9 -0
  188. package/dist/src/proto/gen/dxos/halo/credentials.js.map +1 -1
  189. package/dist/src/proto/gen/dxos/halo/invitations.d.ts +13 -26
  190. package/dist/src/proto/gen/dxos/halo/invitations.d.ts.map +1 -1
  191. package/dist/src/proto/gen/dxos/halo/invitations.js.map +1 -1
  192. package/dist/src/proto/gen/dxos/halo/keyring.d.ts +1 -2
  193. package/dist/src/proto/gen/dxos/halo/keyring.d.ts.map +1 -1
  194. package/dist/src/proto/gen/dxos/halo/keys.d.ts +2 -4
  195. package/dist/src/proto/gen/dxos/halo/keys.d.ts.map +1 -1
  196. package/dist/src/proto/gen/dxos/halo/signed.d.ts +4 -8
  197. package/dist/src/proto/gen/dxos/halo/signed.d.ts.map +1 -1
  198. package/dist/src/proto/gen/dxos/iframe.d.ts +4 -18
  199. package/dist/src/proto/gen/dxos/iframe.d.ts.map +1 -1
  200. package/dist/src/proto/gen/dxos/iframe.js.map +1 -1
  201. package/dist/src/proto/gen/dxos/keys.d.ts +2 -4
  202. package/dist/src/proto/gen/dxos/keys.d.ts.map +1 -1
  203. package/dist/src/proto/gen/dxos/mesh/bridge.d.ts +12 -24
  204. package/dist/src/proto/gen/dxos/mesh/bridge.d.ts.map +1 -1
  205. package/dist/src/proto/gen/dxos/mesh/broadcast.d.ts +1 -2
  206. package/dist/src/proto/gen/dxos/mesh/broadcast.d.ts.map +1 -1
  207. package/dist/src/proto/gen/dxos/mesh/messaging.d.ts +2 -4
  208. package/dist/src/proto/gen/dxos/mesh/messaging.d.ts.map +1 -1
  209. package/dist/src/proto/gen/dxos/mesh/muxer.d.ts +5 -10
  210. package/dist/src/proto/gen/dxos/mesh/muxer.d.ts.map +1 -1
  211. package/dist/src/proto/gen/dxos/mesh/presence.d.ts +1 -2
  212. package/dist/src/proto/gen/dxos/mesh/presence.d.ts.map +1 -1
  213. package/dist/src/proto/gen/dxos/mesh/protocol.d.ts +3 -6
  214. package/dist/src/proto/gen/dxos/mesh/protocol.d.ts.map +1 -1
  215. package/dist/src/proto/gen/dxos/mesh/replicator.d.ts +2 -4
  216. package/dist/src/proto/gen/dxos/mesh/replicator.d.ts.map +1 -1
  217. package/dist/src/proto/gen/dxos/mesh/signal.d.ts +9 -18
  218. package/dist/src/proto/gen/dxos/mesh/signal.d.ts.map +1 -1
  219. package/dist/src/proto/gen/dxos/mesh/signal.js.map +1 -1
  220. package/dist/src/proto/gen/dxos/mesh/swarm.d.ts +6 -12
  221. package/dist/src/proto/gen/dxos/mesh/swarm.d.ts.map +1 -1
  222. package/dist/src/proto/gen/dxos/mesh/teleport/auth.d.ts +2 -4
  223. package/dist/src/proto/gen/dxos/mesh/teleport/auth.d.ts.map +1 -1
  224. package/dist/src/proto/gen/dxos/mesh/teleport/automerge.d.ts +2 -4
  225. package/dist/src/proto/gen/dxos/mesh/teleport/automerge.d.ts.map +1 -1
  226. package/dist/src/proto/gen/dxos/mesh/teleport/blobsync.d.ts +3 -6
  227. package/dist/src/proto/gen/dxos/mesh/teleport/blobsync.d.ts.map +1 -1
  228. package/dist/src/proto/gen/dxos/mesh/teleport/control.d.ts +3 -6
  229. package/dist/src/proto/gen/dxos/mesh/teleport/control.d.ts.map +1 -1
  230. package/dist/src/proto/gen/dxos/mesh/teleport/gossip.d.ts +1 -2
  231. package/dist/src/proto/gen/dxos/mesh/teleport/gossip.d.ts.map +1 -1
  232. package/dist/src/proto/gen/dxos/mesh/teleport/notarization.d.ts +1 -2
  233. package/dist/src/proto/gen/dxos/mesh/teleport/notarization.d.ts.map +1 -1
  234. package/dist/src/proto/gen/dxos/mesh/teleport/replicator.d.ts +5 -10
  235. package/dist/src/proto/gen/dxos/mesh/teleport/replicator.d.ts.map +1 -1
  236. package/dist/src/proto/gen/dxos/mesh/teleport.d.ts +2 -4
  237. package/dist/src/proto/gen/dxos/mesh/teleport.d.ts.map +1 -1
  238. package/dist/src/proto/gen/dxos/registry.d.ts +3 -6
  239. package/dist/src/proto/gen/dxos/registry.d.ts.map +1 -1
  240. package/dist/src/proto/gen/dxos/rpc.d.ts +24 -12
  241. package/dist/src/proto/gen/dxos/rpc.d.ts.map +1 -1
  242. package/dist/src/proto/gen/dxos/rpc.js.map +1 -1
  243. package/dist/src/proto/gen/dxos/service/agentmanager.d.ts +4 -8
  244. package/dist/src/proto/gen/dxos/service/agentmanager.d.ts.map +1 -1
  245. package/dist/src/proto/gen/dxos/service/agentmanager.js.map +1 -1
  246. package/dist/src/proto/gen/dxos/service/publisher.d.ts +5 -10
  247. package/dist/src/proto/gen/dxos/service/publisher.d.ts.map +1 -1
  248. package/dist/src/proto/gen/dxos/service/supervisor.d.ts +12 -24
  249. package/dist/src/proto/gen/dxos/service/supervisor.d.ts.map +1 -1
  250. package/dist/src/proto/gen/dxos/service/supervisor.js.map +1 -1
  251. package/dist/src/proto/gen/dxos/service/tunnel.d.ts +3 -6
  252. package/dist/src/proto/gen/dxos/service/tunnel.d.ts.map +1 -1
  253. package/dist/src/proto/gen/dxos/tracing.d.ts +10 -99
  254. package/dist/src/proto/gen/dxos/tracing.d.ts.map +1 -1
  255. package/dist/src/proto/gen/dxos/type.d.ts +12 -24
  256. package/dist/src/proto/gen/dxos/type.d.ts.map +1 -1
  257. package/dist/src/proto/gen/dxos/value.d.ts +2 -4
  258. package/dist/src/proto/gen/dxos/value.d.ts.map +1 -1
  259. package/dist/src/proto/gen/example/testing/data.d.ts +4 -8
  260. package/dist/src/proto/gen/example/testing/data.d.ts.map +1 -1
  261. package/dist/src/proto/gen/example/testing/rpc.d.ts +7 -14
  262. package/dist/src/proto/gen/example/testing/rpc.d.ts.map +1 -1
  263. package/dist/src/proto/gen/google/protobuf.d.ts +326 -40
  264. package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
  265. package/dist/src/proto/gen/google/protobuf.js +127 -1
  266. package/dist/src/proto/gen/google/protobuf.js.map +1 -1
  267. package/dist/src/proto/gen/index.d.ts +40 -7
  268. package/dist/src/proto/gen/index.d.ts.map +1 -1
  269. package/dist/src/proto/gen/index.js +1 -1
  270. package/dist/src/proto/gen/index.js.map +1 -1
  271. package/dist/src/proto/index.d.ts +2 -2
  272. package/dist/src/proto/substitutions.d.ts +8 -8
  273. package/dist/src/proto/substitutions.d.ts.map +1 -1
  274. package/dist/src/proto/types.d.ts +1 -1
  275. package/dist/src/space-archive.d.ts +62 -3
  276. package/dist/src/space-archive.d.ts.map +1 -1
  277. package/dist/src/space-archive.js +13 -1
  278. package/dist/src/space-archive.js.map +1 -1
  279. package/dist/src/types.d.ts +2 -2
  280. package/dist/tsconfig.tsbuildinfo +1 -1
  281. package/package.json +20 -35
  282. package/src/FeedProtocol.ts +320 -0
  283. package/src/FunctionProtocol.ts +111 -0
  284. package/src/TraceProtocol.ts +21 -0
  285. package/src/buf/proto/gen/dxos/agent/dashboard_pb.ts +1 -1
  286. package/src/buf/proto/gen/dxos/agent/echo-proxy_pb.ts +1 -1
  287. package/src/buf/proto/gen/dxos/agent/epoch_pb.ts +1 -1
  288. package/src/buf/proto/gen/dxos/agent/functions_pb.ts +1 -1
  289. package/src/buf/proto/gen/dxos/bot_pb.ts +1 -1
  290. package/src/buf/proto/gen/dxos/client/invitation_pb.ts +1 -1
  291. package/src/buf/proto/gen/dxos/client/logging_pb.ts +1 -1
  292. package/src/buf/proto/gen/dxos/client/queue_pb.ts +286 -0
  293. package/src/buf/proto/gen/dxos/client/services_pb.ts +114 -40
  294. package/src/buf/proto/gen/dxos/config_pb.ts +132 -2
  295. package/src/buf/proto/gen/dxos/devtools/diagnostics_pb.ts +1 -1
  296. package/src/buf/proto/gen/dxos/devtools/host_pb.ts +1 -1
  297. package/src/buf/proto/gen/dxos/devtools/swarm_pb.ts +1 -1
  298. package/src/buf/proto/gen/dxos/echo/blob_pb.ts +1 -1
  299. package/src/buf/proto/gen/dxos/echo/feed_pb.ts +1 -1
  300. package/src/buf/proto/gen/dxos/echo/filter_pb.ts +1 -1
  301. package/src/buf/proto/gen/dxos/echo/indexing_pb.ts +1 -1
  302. package/src/buf/proto/gen/dxos/echo/metadata_pb.ts +9 -2
  303. package/src/buf/proto/gen/dxos/echo/model/document_pb.ts +1 -1
  304. package/src/buf/proto/gen/dxos/echo/model/messenger_pb.ts +1 -1
  305. package/src/buf/proto/gen/dxos/echo/model/text_pb.ts +1 -1
  306. package/src/buf/proto/gen/dxos/echo/object_pb.ts +1 -1
  307. package/src/buf/proto/gen/dxos/echo/query_pb.ts +16 -4
  308. package/src/buf/proto/gen/dxos/echo/service_pb.ts +81 -13
  309. package/src/buf/proto/gen/dxos/echo/snapshot_pb.ts +1 -1
  310. package/src/buf/proto/gen/dxos/echo/timeframe_pb.ts +1 -1
  311. package/src/buf/proto/gen/dxos/edge/calls_pb.ts +1 -1
  312. package/src/buf/proto/gen/dxos/edge/messenger_pb.ts +39 -6
  313. package/src/buf/proto/gen/dxos/edge/signal_pb.ts +1 -1
  314. package/src/buf/proto/gen/dxos/error_pb.ts +1 -1
  315. package/src/buf/proto/gen/dxos/field_options_pb.ts +1 -1
  316. package/src/buf/proto/gen/dxos/google_pb.ts +1 -1
  317. package/src/buf/proto/gen/dxos/gravity_pb.ts +1 -1
  318. package/src/buf/proto/gen/dxos/halo/credentials/auth_pb.ts +1 -1
  319. package/src/buf/proto/gen/dxos/halo/credentials/greet_pb.ts +1 -1
  320. package/src/buf/proto/gen/dxos/halo/credentials/identity_pb.ts +1 -1
  321. package/src/buf/proto/gen/dxos/halo/credentials_pb.ts +49 -3
  322. package/src/buf/proto/gen/dxos/halo/invitations_pb.ts +1 -1
  323. package/src/buf/proto/gen/dxos/halo/keyring_pb.ts +1 -1
  324. package/src/buf/proto/gen/dxos/halo/keys_pb.ts +1 -1
  325. package/src/buf/proto/gen/dxos/halo/signed_pb.ts +1 -1
  326. package/src/buf/proto/gen/dxos/iframe_pb.ts +3 -14
  327. package/src/buf/proto/gen/dxos/keys_pb.ts +1 -1
  328. package/src/buf/proto/gen/dxos/mesh/bridge_pb.ts +1 -1
  329. package/src/buf/proto/gen/dxos/mesh/broadcast_pb.ts +1 -1
  330. package/src/buf/proto/gen/dxos/mesh/messaging_pb.ts +1 -1
  331. package/src/buf/proto/gen/dxos/mesh/muxer_pb.ts +1 -1
  332. package/src/buf/proto/gen/dxos/mesh/presence_pb.ts +1 -1
  333. package/src/buf/proto/gen/dxos/mesh/protocol_pb.ts +1 -1
  334. package/src/buf/proto/gen/dxos/mesh/replicator_pb.ts +1 -1
  335. package/src/buf/proto/gen/dxos/mesh/signal_pb.ts +1 -1
  336. package/src/buf/proto/gen/dxos/mesh/swarm_pb.ts +1 -1
  337. package/src/buf/proto/gen/dxos/mesh/teleport/admission-discovery_pb.ts +1 -1
  338. package/src/buf/proto/gen/dxos/mesh/teleport/auth_pb.ts +1 -1
  339. package/src/buf/proto/gen/dxos/mesh/teleport/automerge_pb.ts +1 -1
  340. package/src/buf/proto/gen/dxos/mesh/teleport/blobsync_pb.ts +1 -1
  341. package/src/buf/proto/gen/dxos/mesh/teleport/control_pb.ts +1 -1
  342. package/src/buf/proto/gen/dxos/mesh/teleport/gossip_pb.ts +1 -1
  343. package/src/buf/proto/gen/dxos/mesh/teleport/notarization_pb.ts +1 -1
  344. package/src/buf/proto/gen/dxos/mesh/teleport/replicator_pb.ts +1 -1
  345. package/src/buf/proto/gen/dxos/registry_pb.ts +1 -1
  346. package/src/buf/proto/gen/dxos/rpc_pb.ts +37 -8
  347. package/src/buf/proto/gen/dxos/service/agentmanager_pb.ts +1 -1
  348. package/src/buf/proto/gen/dxos/service/publisher_pb.ts +1 -1
  349. package/src/buf/proto/gen/dxos/service/supervisor_pb.ts +1 -1
  350. package/src/buf/proto/gen/dxos/service/tunnel_pb.ts +1 -1
  351. package/src/buf/proto/gen/dxos/tracing_pb.ts +12 -179
  352. package/src/buf/proto/gen/dxos/type_pb.ts +1 -1
  353. package/src/buf/proto/gen/dxos/value_pb.ts +1 -1
  354. package/src/buf/proto/gen/example/testing/data_pb.ts +1 -1
  355. package/src/buf/proto/gen/example/testing/rpc_pb.ts +1 -1
  356. package/src/codec.test.ts +1 -1
  357. package/src/edge/EdgeFunctionEnv.ts +222 -0
  358. package/src/{edge.ts → edge/edge.ts} +185 -28
  359. package/src/{edge-error.ts → edge/errors.ts} +15 -16
  360. package/src/edge/index.ts +8 -0
  361. package/src/edge/registry.ts +164 -0
  362. package/src/errors/base-errors.ts +4 -22
  363. package/src/errors/encoding.ts +2 -3
  364. package/src/errors/errors.test.ts +2 -2
  365. package/src/errors/errors.ts +57 -124
  366. package/src/errors/helpers.ts +6 -7
  367. package/src/errors/index.ts +5 -5
  368. package/src/feed-replication.ts +1 -0
  369. package/src/index.ts +12 -12
  370. package/src/indexing.test.ts +1 -1
  371. package/src/messenger.ts +22 -0
  372. package/src/proto/dxos/client/queue.proto +81 -0
  373. package/src/proto/dxos/client/services.proto +19 -1
  374. package/src/proto/dxos/config.proto +50 -1
  375. package/src/proto/dxos/echo/metadata.proto +3 -0
  376. package/src/proto/dxos/echo/query.proto +4 -1
  377. package/src/proto/dxos/echo/service.proto +38 -4
  378. package/src/proto/dxos/edge/messenger.proto +10 -0
  379. package/src/proto/dxos/halo/credentials.proto +15 -0
  380. package/src/proto/dxos/iframe.proto +1 -3
  381. package/src/proto/dxos/rpc.proto +7 -0
  382. package/src/proto/dxos/tracing.proto +0 -40
  383. package/src/proto/gen/dxos/agent/dashboard.ts +3 -6
  384. package/src/proto/gen/dxos/agent/echoproxy.ts +1 -2
  385. package/src/proto/gen/dxos/agent/epoch.ts +1 -2
  386. package/src/proto/gen/dxos/agent/functions.ts +6 -12
  387. package/src/proto/gen/dxos/bot.ts +12 -24
  388. package/src/proto/gen/dxos/client/services.ts +1012 -922
  389. package/src/proto/gen/dxos/config.ts +115 -100
  390. package/src/proto/gen/dxos/devtools/host.ts +71 -119
  391. package/src/proto/gen/dxos/devtools/swarm.ts +4 -8
  392. package/src/proto/gen/dxos/echo/blob.ts +1 -2
  393. package/src/proto/gen/dxos/echo/feed.ts +4 -8
  394. package/src/proto/gen/dxos/echo/filter.ts +2 -4
  395. package/src/proto/gen/dxos/echo/indexing.ts +2 -4
  396. package/src/proto/gen/dxos/echo/metadata.ts +12 -16
  397. package/src/proto/gen/dxos/echo/model/document.ts +11 -22
  398. package/src/proto/gen/dxos/echo/model/messenger.ts +1 -2
  399. package/src/proto/gen/dxos/echo/model/text.ts +2 -4
  400. package/src/proto/gen/dxos/echo/object.ts +6 -12
  401. package/src/proto/gen/dxos/echo/query.ts +21 -9
  402. package/src/proto/gen/dxos/echo/service.ts +60 -34
  403. package/src/proto/gen/dxos/echo/snapshot.ts +2 -4
  404. package/src/proto/gen/dxos/echo/timeframe.ts +2 -4
  405. package/src/proto/gen/dxos/edge/calls.ts +5 -10
  406. package/src/proto/gen/dxos/edge/messenger.ts +28 -10
  407. package/src/proto/gen/dxos/edge/signal.ts +7 -14
  408. package/src/proto/gen/dxos/error.ts +1 -2
  409. package/src/proto/gen/dxos/gravity.ts +10 -20
  410. package/src/proto/gen/dxos/halo/credentials/auth.ts +1 -2
  411. package/src/proto/gen/dxos/halo/credentials/greet.ts +6 -12
  412. package/src/proto/gen/dxos/halo/credentials/identity.ts +2 -4
  413. package/src/proto/gen/dxos/halo/credentials.ts +35 -43
  414. package/src/proto/gen/dxos/halo/invitations.ts +13 -26
  415. package/src/proto/gen/dxos/halo/keyring.ts +1 -2
  416. package/src/proto/gen/dxos/halo/keys.ts +2 -4
  417. package/src/proto/gen/dxos/halo/signed.ts +4 -8
  418. package/src/proto/gen/dxos/iframe.ts +4 -18
  419. package/src/proto/gen/dxos/keys.ts +2 -4
  420. package/src/proto/gen/dxos/mesh/bridge.ts +12 -24
  421. package/src/proto/gen/dxos/mesh/broadcast.ts +1 -2
  422. package/src/proto/gen/dxos/mesh/messaging.ts +2 -4
  423. package/src/proto/gen/dxos/mesh/muxer.ts +5 -10
  424. package/src/proto/gen/dxos/mesh/presence.ts +1 -2
  425. package/src/proto/gen/dxos/mesh/protocol.ts +3 -6
  426. package/src/proto/gen/dxos/mesh/replicator.ts +2 -4
  427. package/src/proto/gen/dxos/mesh/signal.ts +9 -18
  428. package/src/proto/gen/dxos/mesh/swarm.ts +6 -12
  429. package/src/proto/gen/dxos/mesh/teleport/auth.ts +2 -4
  430. package/src/proto/gen/dxos/mesh/teleport/automerge.ts +2 -4
  431. package/src/proto/gen/dxos/mesh/teleport/blobsync.ts +3 -6
  432. package/src/proto/gen/dxos/mesh/teleport/control.ts +3 -6
  433. package/src/proto/gen/dxos/mesh/teleport/gossip.ts +1 -2
  434. package/src/proto/gen/dxos/mesh/teleport/notarization.ts +1 -2
  435. package/src/proto/gen/dxos/mesh/teleport/replicator.ts +5 -10
  436. package/src/proto/gen/dxos/mesh/teleport.ts +2 -4
  437. package/src/proto/gen/dxos/registry.ts +3 -6
  438. package/src/proto/gen/dxos/rpc.ts +24 -12
  439. package/src/proto/gen/dxos/service/agentmanager.ts +4 -8
  440. package/src/proto/gen/dxos/service/publisher.ts +5 -10
  441. package/src/proto/gen/dxos/service/supervisor.ts +12 -24
  442. package/src/proto/gen/dxos/service/tunnel.ts +3 -6
  443. package/src/proto/gen/dxos/tracing.ts +10 -96
  444. package/src/proto/gen/dxos/type.ts +12 -24
  445. package/src/proto/gen/dxos/value.ts +2 -4
  446. package/src/proto/gen/example/testing/data.ts +4 -8
  447. package/src/proto/gen/example/testing/rpc.ts +7 -14
  448. package/src/proto/gen/google/protobuf.ts +326 -40
  449. package/src/proto/gen/index.ts +41 -8
  450. package/src/proto/index.ts +2 -2
  451. package/src/proto/types.ts +1 -1
  452. package/src/space-archive.ts +70 -1
  453. package/src/types.ts +2 -2
  454. package/dist/src/edge-error.d.ts.map +0 -1
  455. package/dist/src/edge-error.js.map +0 -1
  456. package/dist/src/edge.d.ts.map +0 -1
  457. package/dist/src/edge.js.map +0 -1
  458. package/dist/src/query.d.ts +0 -5
  459. package/dist/src/query.d.ts.map +0 -1
  460. package/dist/src/query.js +0 -8
  461. package/dist/src/query.js.map +0 -1
  462. package/dist/src/queue.d.ts +0 -28
  463. package/dist/src/queue.d.ts.map +0 -1
  464. package/dist/src/queue.js +0 -8
  465. package/dist/src/queue.js.map +0 -1
  466. package/dist/src/tracing.d.ts +0 -40
  467. package/dist/src/tracing.d.ts.map +0 -1
  468. package/dist/src/tracing.js +0 -50
  469. package/dist/src/tracing.js.map +0 -1
  470. package/src/query.ts +0 -8
  471. package/src/queue.ts +0 -38
  472. package/src/tracing.ts +0 -86
@@ -0,0 +1,222 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type SpaceId } from '@dxos/keys';
6
+
7
+ import type * as FeedProtocol from '../FeedProtocol';
8
+ import type { SerializedError } from '../index';
9
+ import { type QueryRequest, type QueryResponse } from '../proto/gen/dxos/echo/query';
10
+ import { type CreateDocumentResponse } from '../proto/gen/dxos/echo/service';
11
+
12
+ /*
13
+
14
+ API for the edge functions service.
15
+ A function module should be a valid cloudflare worker module.
16
+
17
+ # Fetching metadata (done on deploy)
18
+
19
+ GET http://functions.dxos.internal/
20
+ X-DXOS-Function-Route: meta
21
+
22
+ Expected to return `FunctionMetadata` in JSON:
23
+
24
+ {
25
+ key: string;
26
+ name?: string;
27
+ description?: string;
28
+ inputSchema?: JsonSchemaType;
29
+ outputSchema?: JsonSchemaType;
30
+ }
31
+
32
+ # Invoking the function
33
+
34
+ POST http://functions.dxos.internal/
35
+ Content-Type: application/json
36
+ X-Trace-Queue-Dxn: dxn:queue:trace:AAAAAA:BBBBBB
37
+ X-Invocation-Id: XXXXXXX
38
+ X-Edge-Env: production
39
+
40
+ {input_data}
41
+
42
+ Expected to return `EdgeEnvelope` with the output data:
43
+
44
+ {
45
+ success: true,
46
+ data: unknown
47
+ }
48
+
49
+ On Error returns `EdgeEnvelope` with error:
50
+
51
+ {
52
+ success: false,
53
+ message: string
54
+ error: EncodedError
55
+ }
56
+
57
+ */
58
+
59
+ /**
60
+ * Environment available to the function running on Cloudflare.
61
+ */
62
+ export interface Env {
63
+ QUEUE_SERVICE: QueueService;
64
+ DATA_SERVICE: DataService;
65
+ FUNCTIONS_AI_SERVICE: FunctionsAiService;
66
+ }
67
+
68
+ /**
69
+ * Use to trace the execution across multiple services.
70
+ *
71
+ * NOTE: Currently unused in functions.
72
+ */
73
+ export interface TraceContext {}
74
+
75
+ /**
76
+ * Database API for other CF services like functions.
77
+ */
78
+ export interface DataService {
79
+ getSpaceMeta(ctx: TraceContext, spaceId: SpaceId): Promise<RpcResult<SpaceMeta | undefined>>;
80
+ getDocument(ctx: TraceContext, spaceId: SpaceId, documentId: string): Promise<RpcResult<RawDocument | undefined>>;
81
+
82
+ execQuery(ctx: TraceContext, request: QueryRequest): Promise<RpcResult<QueryResponse>>;
83
+ createDocument(
84
+ ctx: TraceContext,
85
+ spaceId: SpaceId,
86
+ initialValue?: Record<string, any>,
87
+ ): Promise<RpcResult<CreateDocumentResponse>>;
88
+
89
+ // TODO(burdon): Update? Return DocumentEntry?
90
+ changeDocument(ctx: TraceContext, spaceId: SpaceId, documentId: string, changes: Uint8Array): Promise<void>;
91
+ }
92
+
93
+ export interface QueueService {
94
+ queryQueue: (
95
+ ctx: TraceContext,
96
+ request: FeedProtocol.QueryQueueRequest,
97
+ ) => Promise<RpcResult<FeedProtocol.QueryResult>>;
98
+ insertIntoQueue: (
99
+ ctx: TraceContext,
100
+ request: FeedProtocol.InsertIntoQueueRequest,
101
+ ) => Promise<RpcResult<RpcDisposable>>;
102
+ deleteFromQueue: (
103
+ ctx: TraceContext,
104
+ request: FeedProtocol.DeleteFromQueueRequest,
105
+ ) => Promise<RpcResult<RpcDisposable>>;
106
+ }
107
+
108
+ /**
109
+ * FunctionsAiService API for other CF services like functions.
110
+ */
111
+ export interface FunctionsAiService {
112
+ /**
113
+ * Enables proxying HTTP requests to the AI service from other workers.
114
+ */
115
+ fetch(request: Request): Promise<RpcResult<Response>>;
116
+ }
117
+
118
+ export type FunctionInvokeOptions = {
119
+ spaceId?: SpaceId;
120
+ cpuTimeLimit?: number;
121
+ subrequestsLimit?: number;
122
+ };
123
+
124
+ export type FunctionInvokeResult =
125
+ | {
126
+ _kind: 'success';
127
+ data: unknown;
128
+ }
129
+ | {
130
+ _kind: 'error';
131
+ error: SerializedError;
132
+ };
133
+
134
+ export interface FunctionsQuery {
135
+ spaceId?: SpaceId;
136
+ }
137
+
138
+ export interface FunctionsService {
139
+ query(query: FunctionsQuery): Promise<RpcResult<unknown[]>>; // TODO(dmaretskyi): The type is Operation.PersistentOperation[].
140
+
141
+ invoke(
142
+ deploymentId: string,
143
+ input: unknown,
144
+ options?: FunctionInvokeOptions,
145
+ ): Promise<RpcResult<FunctionInvokeResult>>;
146
+ }
147
+
148
+ export type ObjectDocumentJson = {
149
+ type?: string;
150
+ objectId: string;
151
+ documentId: string;
152
+ /** Base64 encoding of a document. */
153
+ document: string;
154
+ };
155
+
156
+ export type SpaceMeta = {
157
+ spaceKey: string;
158
+ rootDocumentId: string;
159
+ };
160
+
161
+ /**
162
+ * TODO(yaroslav): make Indexer return EchoObject after create() can properly reconstruct an object
163
+ * from this structure (meta, id and type aren't handled properly)
164
+ */
165
+ export type ObjectSnapshot = {
166
+ type?: string;
167
+ documentId: string;
168
+ objectId: string;
169
+ // TODO(mykola): Use ObjectStructure from @dxos/echo-protocol.
170
+ object: unknown;
171
+ };
172
+
173
+ export type ObjectReference = {
174
+ fromId: string;
175
+ toId: string;
176
+ fieldName: string;
177
+ };
178
+
179
+ export type QueryDocumentsResponse = {
180
+ results: RawObject[];
181
+ cursor?: string;
182
+ };
183
+
184
+ export type RawDocument = {
185
+ documentId: string;
186
+ data: Uint8Array;
187
+ };
188
+
189
+ export type RawObject = {
190
+ type?: string;
191
+ objectId: string;
192
+ document: RawDocument;
193
+ };
194
+
195
+ export type QueryReferencesRequest = {
196
+ spaceId: string;
197
+ objectId: string;
198
+ referenceType: 'from' | 'to';
199
+ };
200
+
201
+ export type QueryReferencesResponse = {
202
+ references: ObjectReference[];
203
+ };
204
+
205
+ /**
206
+ * Cloudflare Workers RPC returns objects/arrays/stubs that may need to be explicitly disposed.
207
+ *
208
+ * See: https://developers.cloudflare.com/workers/runtime-apis/rpc/lifecycle/
209
+ */
210
+ export interface RpcDisposable {
211
+ /**
212
+ * Disposes the RPC stub / returned value and releases any server-side resources it references.
213
+ */
214
+ [Symbol.dispose](): void;
215
+ }
216
+
217
+ /**
218
+ * Wraps a return type so that any non-primitive value is marked as disposable.
219
+ *
220
+ * This models Workers RPC behavior where any returned object (including arrays) gets a disposer added.
221
+ */
222
+ export type RpcResult<T> = T extends object ? T & RpcDisposable : T;
@@ -8,11 +8,26 @@ import { BaseError } from '@dxos/errors';
8
8
  import { invariant } from '@dxos/invariant';
9
9
  import { SpaceId } from '@dxos/keys';
10
10
 
11
+ /**
12
+ * HTTP header sent on every Edge request to classify traffic for metering.
13
+ */
14
+ export const EDGE_CLIENT_TAG_HEADER = 'X-DXOS-Client-Tag';
15
+
11
16
  // TODO(burdon): Rename EdgerRouterEndpoint.
12
17
  // If we would rename it, we need to be careful to not break composer production.
13
18
  export enum EdgeService {
14
19
  AUTOMERGE_REPLICATOR = 'automerge-replicator',
20
+ SUBDUCTION_REPLICATOR = 'subduction-replicator',
21
+ /**
22
+ * Control feed replicator (hypercore append only logs) for the space.
23
+ */
24
+ // TODO(mykola): Remove once we migrate to keyhive for access control.
15
25
  FEED_REPLICATOR = 'feed-replicator',
26
+ /**
27
+ * Feed replicator (ordered data list) for the space.
28
+ */
29
+ // TODO(mykola): Rename to FEED_REPLICATOR when we migrate to keyhive for access control.
30
+ QUEUE_REPLICATOR = 'queue-replicator',
16
31
  SWARM = 'swarm',
17
32
  SIGNAL = 'signal',
18
33
  STATUS = 'status',
@@ -23,13 +38,15 @@ export type EdgeSuccess<T> = {
23
38
  data: T;
24
39
  };
25
40
 
26
- export type SerializedError = {
27
- code?: string;
28
- message?: string;
29
- context?: Record<string, unknown>;
30
- stack?: string;
31
- cause?: SerializedError;
32
- };
41
+ const _SerializedError = Schema.Struct({
42
+ name: Schema.optional(Schema.String),
43
+ message: Schema.optional(Schema.String),
44
+ context: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
45
+ stack: Schema.optional(Schema.String),
46
+ cause: Schema.optional(Schema.suspend(() => SerializedError)),
47
+ });
48
+ export interface SerializedError extends Schema.Schema.Type<typeof _SerializedError> {}
49
+ export const SerializedError: Schema.Schema<SerializedError, SerializedError, never> = _SerializedError;
33
50
 
34
51
  export type EdgeErrorData = { type: string } & Record<string, any>;
35
52
 
@@ -45,11 +62,11 @@ export type EdgeFailure = {
45
62
  /**
46
63
  * An explanation of why the call failed. Used mostly for logging and monitoring.
47
64
  */
48
- reason: string;
65
+ message: string;
49
66
  /**
50
67
  * Cause Error captured on the EDGE service to aid debugging on the client.
51
68
  */
52
- cause?: SerializedError;
69
+ error?: SerializedError;
53
70
  /**
54
71
  * Information that can be used to retry the request such that it will succeed, for example:
55
72
  * 1. { type: 'auth_required', challenge: string }
@@ -57,16 +74,16 @@ export type EdgeFailure = {
57
74
  * 2. { type: 'user_confirmation_required', dialog: { title: string, message: string, confirmation_payload: string } }
58
75
  * Requires showing a confirmation dialog to a user and retrying the request with confirmation_payload included
59
76
  * if the user confirms.
60
- * When errorData is returned simply retrying the request won't have any effect.
61
- * EdgeHttpClient should parse well-known errorData into Error types and throw.
77
+ * When data is returned simply retrying the request won't have any effect.
78
+ * EdgeHttpClient should parse well-known data into Error types and throw.
62
79
  */
63
- errorData?: EdgeErrorData;
80
+ data?: EdgeErrorData;
64
81
  };
65
82
 
66
83
  /**
67
84
  * Represents a body response from the Edge service.
68
85
  */
69
- export type EdgeBody<T> = EdgeSuccess<T> | EdgeFailure;
86
+ export type EdgeEnvelope<T> = EdgeSuccess<T> | EdgeFailure;
70
87
 
71
88
  /**
72
89
  * Use this to create a response from the Edge service.
@@ -87,21 +104,32 @@ export const EdgeResponse = Object.freeze({
87
104
  );
88
105
  },
89
106
  failure: ({
90
- reason,
91
- cause,
92
- errorData,
107
+ message,
108
+ error,
109
+ errorEncoded,
110
+ data,
93
111
  shouldRetryAfter,
94
112
  status = 500,
95
113
  }: {
96
114
  /**
97
115
  * An explanation of why the call failed. Used mostly for logging and monitoring.
98
116
  */
99
- reason: string;
117
+ message: string;
100
118
  /**
101
119
  * Error that caused the failure.
102
120
  * Useful for debugging.
121
+ *
122
+ * Use only one of the fields `error` or `errorEncoded`.s
123
+ */
124
+ error?: Error;
125
+ /**
126
+ * Encoded Error that caused the failure.
127
+ * Useful for debugging.
128
+ *
129
+ * Use only one of the fields `error` or `errorEncoded`.
103
130
  */
104
- cause?: Error;
131
+ errorEncoded?: SerializedError;
132
+
105
133
  /**
106
134
  * Information that can be used to retry the request such that it will succeed, for example:
107
135
  * 1. { type: 'auth_required', challenge: string }
@@ -109,10 +137,10 @@ export const EdgeResponse = Object.freeze({
109
137
  * 2. { type: 'user_confirmation_required', dialog: { title: string, message: string, confirmation_payload: string } }
110
138
  * Requires showing a confirmation dialog to a user and retrying the request with confirmation_payload included
111
139
  * if the user confirms.
112
- * When errorData is returned simply retrying the request won't have any effect.
113
- * EdgeHttpClient should parse well-known errorData into Error types and throw.
140
+ * When data is returned simply retrying the request won't have any effect.
141
+ * EdgeHttpClient should parse well-known data into Error types and throw.
114
142
  */
115
- errorData?: EdgeErrorData;
143
+ data?: EdgeErrorData;
116
144
  /**
117
145
  * If provided, this request will be marked as retryable and the client will wait for the specified number of milliseconds before retrying.
118
146
  * If not provided, the client will not retry the request.
@@ -133,9 +161,9 @@ export const EdgeResponse = Object.freeze({
133
161
  return new Response(
134
162
  JSON.stringify({
135
163
  success: false,
136
- reason,
137
- errorData,
138
- cause: cause ? ErrorCodec.encode(cause) : undefined,
164
+ message,
165
+ data,
166
+ error: error ? ErrorCodec.encode(error) : errorEncoded,
139
167
  } satisfies EdgeFailure),
140
168
  {
141
169
  status,
@@ -222,8 +250,25 @@ export type UploadFunctionRequest = {
222
250
  ownerPublicKey: string;
223
251
  entryPoint: string;
224
252
  assets: Record<string, Uint8Array>;
253
+ /**
254
+ * Runtime in Edge that will be used to run the function.
255
+ * Runtime cannot be changed once the function was deployed.
256
+ * @default Runtime.WORKERS_FOR_PLATFORMS
257
+ */
258
+ runtime?: FunctionRuntimeKind;
225
259
  };
226
260
 
261
+ /**
262
+ * Note: Do not change the values of these enums, this values are stored in the FunctionVersions database.
263
+ */
264
+ export const FunctionRuntimeKind = Schema.Enums({
265
+ // https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/
266
+ WORKERS_FOR_PLATFORMS: 'WORKERS_FOR_PLATFORMS',
267
+ // https://developers.cloudflare.com/workers/runtime-apis/bindings/worker-loader/
268
+ WORKER_LOADER: 'WORKER_LOADER',
269
+ });
270
+ export type FunctionRuntimeKind = Schema.Schema.Type<typeof FunctionRuntimeKind>;
271
+
227
272
  export type UploadFunctionResponseBody = {
228
273
  functionId: string;
229
274
  version: string;
@@ -270,8 +315,14 @@ export type EdgeAuthChallenge = {
270
315
  };
271
316
 
272
317
  export enum OAuthProvider {
273
- GOOGLE = 'google',
318
+ ATPROTO = 'atproto',
319
+ /** @deprecated Use ATPROTO instead. */
274
320
  BLUESKY = 'bluesky',
321
+ GITHUB = 'github',
322
+ GOOGLE = 'google',
323
+ LINEAR = 'linear',
324
+ SLACK = 'slack',
325
+ TRELLO = 'trello',
275
326
  }
276
327
 
277
328
  export const InitiateOAuthFlowRequestSchema = Schema.Struct({
@@ -385,15 +436,15 @@ const MAX_ERROR_DEPTH = 3;
385
436
  */
386
437
  export const ErrorCodec = Object.freeze({
387
438
  encode: (err: Error, depth: number = 0): SerializedError => ({
388
- code: 'code' in err ? (err as any).code : undefined,
439
+ name: 'name' in err ? err.name : (err as any).code || 'Error',
389
440
  message: err.message,
390
441
  stack: err.stack,
391
442
  cause: err.cause instanceof Error && depth < MAX_ERROR_DEPTH ? ErrorCodec.encode(err.cause, depth + 1) : undefined,
392
443
  }),
393
444
  decode: (serializedError: SerializedError, depth: number = 0): Error => {
394
445
  let err: Error;
395
- if (typeof serializedError.code === 'string') {
396
- err = new BaseError(serializedError.code, {
446
+ if (typeof serializedError.name === 'string') {
447
+ err = new BaseError(serializedError.name, {
397
448
  message: serializedError.message ?? 'Unknown error',
398
449
  cause:
399
450
  serializedError.cause && depth < MAX_ERROR_DEPTH
@@ -452,3 +503,109 @@ export const EdgeHttpErrorCodec = Object.freeze({
452
503
  return ErrorCodec.decode(body.error);
453
504
  },
454
505
  });
506
+
507
+ //
508
+ // Data management.
509
+ //
510
+
511
+ export type ListSpacesRequest = { limit?: number; cursor?: string; order?: 'asc' | 'desc' };
512
+ export type ListSpacesResponse = {
513
+ spaces: SpaceActivityEntry[];
514
+ cursor?: string;
515
+ limit: number;
516
+ };
517
+
518
+ export type ListActiveIdentitiesRequest = { cursor?: string; limit?: number };
519
+ export type ListActiveIdentitiesResponse = {
520
+ identities: {
521
+ identityKey: string;
522
+ haloSpaceId: string | null;
523
+ createdAt: string | null;
524
+ agentKey: string | null;
525
+ hasRecovery: boolean;
526
+ }[];
527
+ cursor?: string;
528
+ complete: boolean;
529
+ totalCount: number;
530
+ };
531
+
532
+ export type InspectSpaceRequest = { spaceId: string };
533
+ export type InspectSpaceResponse = {
534
+ spaceId: string;
535
+ metadata: { createdAt: string; identityKey?: string; status?: 'active' | 'deleting' } | null;
536
+ members: {
537
+ count: number;
538
+ list: { identityKey: string; role?: string; agentKey?: string }[];
539
+ };
540
+ controlFeeds: {
541
+ replicationProgress: { [feedKey: string]: { replicated: number; processed: number } };
542
+ };
543
+ echo: {
544
+ dataFeeds: {
545
+ count: number;
546
+ totalBlocks: number;
547
+ byNamespace: { namespace: string; feeds: { feedId: string; blockCount: number }[] }[];
548
+ };
549
+ documentCount: number;
550
+ objectCount: number;
551
+ deletedObjectCount: number;
552
+ indexedDocumentCount: number;
553
+ objectsByType: { typeDXN: string; count: number }[];
554
+ indexerStatus: {
555
+ indexingInProgress: boolean;
556
+ cursors: { indexName: string; sourceName: string; resourceId: string | null; cursor: string | number }[];
557
+ totalChanges: number;
558
+ };
559
+ };
560
+ usageInLast30Days: {
561
+ lastActivity: string | null;
562
+ wsEvents: number;
563
+ httpEvents: number;
564
+ totalEvents: number;
565
+ } | null;
566
+ durableObjects: { type: string; doId: string }[];
567
+ };
568
+
569
+ export type InspectIdentityRequest = { identityKey: string };
570
+ export type InspectIdentityResponse = {
571
+ identityKey: string;
572
+ agentKey: string | null;
573
+ haloSpaceId: string | null;
574
+ hasRecovery: boolean;
575
+ routerDoId: string;
576
+ agentDoId: string | null;
577
+ ownedFunctions: { id: string; name: string; versionCount: number }[];
578
+ spaces: InspectSpaceResponse[];
579
+ };
580
+
581
+ /** Matches the SerializedSpace format from @dxos/echo-db, extended with spaceId. */
582
+ export type SpaceExportPayload = {
583
+ version: number;
584
+ timestamp: string;
585
+ spaceId: string;
586
+ objects: Record<string, unknown>[];
587
+ };
588
+
589
+ export type SpaceActivityEntry = {
590
+ spaceId: string;
591
+ lastActivity: string;
592
+ totalEvents: number;
593
+ metadata: { createdAt: string; identityKey?: string; status?: 'active' | 'deleting' } | null;
594
+ };
595
+
596
+ export type SpaceExportResult = {
597
+ spaceId: string;
598
+ downloadPath: string;
599
+ downloadUrl: string;
600
+ expiresAt: string;
601
+ objectCount: number;
602
+ sizeBytes: number;
603
+ };
604
+
605
+ export type ExportSpaceRequest = { spaceId: string; origin: string };
606
+
607
+ export type DeleteSpaceRequest = { spaceId: string };
608
+ export type DeleteSpaceResponse = { status: string; spaceId: string };
609
+
610
+ export type DeleteIdentityRequest = { identityKey: string };
611
+ export type DeleteIdentityResponse = { status: string; identityKey: string };
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type EdgeErrorData, type EdgeFailure, EdgeHttpErrorCodec, ErrorCodec } from './edge.js';
5
+ import { type EdgeErrorData, type EdgeFailure, EdgeHttpErrorCodec, ErrorCodec } from './edge.ts';
6
6
 
7
7
  // TODO(burdon): Reconcile with @dxos/errors.
8
8
  /**
@@ -16,11 +16,11 @@ import { type EdgeErrorData, type EdgeFailure, EdgeHttpErrorCodec, ErrorCodec }
16
16
  export class EdgeCallFailedError extends Error {
17
17
  public static fromUnsuccessfulResponse(response: Response, body: EdgeFailure): EdgeCallFailedError {
18
18
  const error = new EdgeCallFailedError({
19
- reason: body.reason,
20
- errorData: body.errorData,
21
- isRetryable: body.errorData == null && response.headers.has('Retry-After'),
19
+ message: body.message,
20
+ data: body.data,
21
+ isRetryable: body.data == null && response.headers.has('Retry-After'),
22
22
  retryAfterMs: getRetryAfterMillis(response),
23
- cause: body.cause ? ErrorCodec.decode(body.cause) : undefined,
23
+ cause: body.error ? ErrorCodec.decode(body.error) : undefined,
24
24
  });
25
25
 
26
26
  return error;
@@ -28,7 +28,7 @@ export class EdgeCallFailedError extends Error {
28
28
 
29
29
  public static async fromHttpFailure(response: Response): Promise<EdgeCallFailedError> {
30
30
  return new EdgeCallFailedError({
31
- reason: `HTTP code ${response.status}: ${response.statusText}.`,
31
+ message: `HTTP code ${response.status}: ${response.statusText}.`,
32
32
  isRetryable: isRetryableCode(response.status),
33
33
  retryAfterMs: getRetryAfterMillis(response),
34
34
  cause: await EdgeHttpErrorCodec.decode(response),
@@ -37,27 +37,26 @@ export class EdgeCallFailedError extends Error {
37
37
 
38
38
  public static fromProcessingFailureCause(cause: Error): EdgeCallFailedError {
39
39
  return new EdgeCallFailedError({
40
- reason: 'Error processing request.',
40
+ message: 'Error processing request.',
41
41
  isRetryable: true,
42
42
  cause,
43
43
  });
44
44
  }
45
45
 
46
- readonly reason: string;
47
- readonly errorData?: EdgeErrorData;
46
+ readonly data?: EdgeErrorData;
48
47
  readonly isRetryable?: boolean;
49
48
  readonly retryAfterMs?: number;
50
49
 
51
50
  constructor(args: {
52
- reason: string;
51
+ message: string;
53
52
  isRetryable?: boolean;
54
- errorData?: EdgeErrorData;
53
+ data?: EdgeErrorData;
55
54
  retryAfterMs?: number;
56
55
  cause?: Error;
57
56
  }) {
58
- super(args.reason, { cause: args.cause });
59
- this.reason = args.reason;
60
- this.errorData = args.errorData;
57
+ super(args.message, { cause: args.cause });
58
+ this.message = args.message;
59
+ this.data = args.data;
61
60
  this.retryAfterMs = args.retryAfterMs;
62
61
  this.isRetryable = Boolean(args.isRetryable);
63
62
  }
@@ -66,9 +65,9 @@ export class EdgeCallFailedError extends Error {
66
65
  export class EdgeAuthChallengeError extends EdgeCallFailedError {
67
66
  constructor(
68
67
  public readonly challenge: string,
69
- errorData: EdgeErrorData,
68
+ data: EdgeErrorData,
70
69
  ) {
71
- super({ reason: 'Auth challenge.', errorData, isRetryable: false });
70
+ super({ message: 'Auth challenge.', data, isRetryable: false });
72
71
  }
73
72
  }
74
73
 
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './edge.ts';
6
+ export * as EdgeFunctionEnv from './EdgeFunctionEnv.ts';
7
+ export * from './errors.ts';
8
+ export * from './registry.ts';