@dxos/protocols 0.8.4-main.fd6878d → 0.8.4-staging.60fe92afc8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/src/FeedProtocol.d.ts +528 -0
- package/dist/src/FeedProtocol.d.ts.map +1 -0
- package/dist/src/FeedProtocol.js +237 -0
- package/dist/src/FeedProtocol.js.map +1 -0
- package/dist/src/FunctionProtocol.d.ts +89 -0
- package/dist/src/FunctionProtocol.d.ts.map +1 -0
- package/dist/src/FunctionProtocol.js +4 -0
- package/dist/src/FunctionProtocol.js.map +1 -0
- package/dist/src/TraceProtocol.d.ts +15 -0
- package/dist/src/TraceProtocol.d.ts.map +1 -0
- package/dist/src/TraceProtocol.js +4 -0
- package/dist/src/TraceProtocol.js.map +1 -0
- package/dist/src/automerge.d.ts +211 -13
- package/dist/src/automerge.d.ts.map +1 -1
- package/dist/src/automerge.js +17 -0
- package/dist/src/automerge.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/agent/dashboard_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/agent/dashboard_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/agent/echo-proxy_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/agent/echo-proxy_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/agent/epoch_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/agent/epoch_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/agent/functions_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/agent/functions_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/bot_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/bot_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/client/invitation_pb.d.ts +17 -5
- package/dist/src/buf/proto/gen/dxos/client/invitation_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/client/invitation_pb.js +18 -6
- package/dist/src/buf/proto/gen/dxos/client/invitation_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/client/logging_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/client/logging_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/client/queue_pb.d.ts +311 -0
- package/dist/src/buf/proto/gen/dxos/client/queue_pb.d.ts.map +1 -0
- package/dist/src/buf/proto/gen/dxos/client/queue_pb.js +59 -0
- package/dist/src/buf/proto/gen/dxos/client/queue_pb.js.map +1 -0
- package/dist/src/buf/proto/gen/dxos/client/services_pb.d.ts +143 -22
- package/dist/src/buf/proto/gen/dxos/client/services_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/client/services_pb.js +90 -54
- package/dist/src/buf/proto/gen/dxos/client/services_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/config_pb.d.ts +148 -7
- package/dist/src/buf/proto/gen/dxos/config_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/config_pb.js +78 -2
- package/dist/src/buf/proto/gen/dxos/config_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/devtools/diagnostics_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/devtools/diagnostics_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/devtools/host_pb.d.ts +71 -1
- package/dist/src/buf/proto/gen/dxos/devtools/host_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/devtools/host_pb.js +17 -2
- package/dist/src/buf/proto/gen/dxos/devtools/host_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/devtools/swarm_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/devtools/swarm_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/blob_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/blob_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/feed_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/feed_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/filter_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/filter_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/indexing_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/indexing_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/metadata_pb.d.ts +13 -1
- package/dist/src/buf/proto/gen/dxos/echo/metadata_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/metadata_pb.js +2 -2
- package/dist/src/buf/proto/gen/dxos/echo/metadata_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/model/document_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/model/document_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/model/messenger_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/model/messenger_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/model/text_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/model/text_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/object_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/object_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/query_pb.d.ts +13 -3
- package/dist/src/buf/proto/gen/dxos/echo/query_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/query_pb.js +2 -2
- package/dist/src/buf/proto/gen/dxos/echo/query_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/service_pb.d.ts +84 -8
- package/dist/src/buf/proto/gen/dxos/echo/service_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/service_pb.js +16 -6
- package/dist/src/buf/proto/gen/dxos/echo/service_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/snapshot_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/snapshot_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/timeframe_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/echo/timeframe_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/edge/calls_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/edge/calls_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.d.ts +29 -1
- package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.js +11 -6
- package/dist/src/buf/proto/gen/dxos/edge/messenger_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/edge/signal_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/edge/signal_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/error_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/error_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/field_options_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/field_options_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/google_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/google_pb.js +2 -2
- package/dist/src/buf/proto/gen/dxos/google_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/gravity_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/gravity_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials/auth_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials/auth_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials/greet_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials/greet_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials/identity_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials/identity_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.d.ts +66 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.js +53 -23
- package/dist/src/buf/proto/gen/dxos/halo/credentials_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/invitations_pb.d.ts +12 -5
- package/dist/src/buf/proto/gen/dxos/halo/invitations_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/invitations_pb.js +13 -6
- package/dist/src/buf/proto/gen/dxos/halo/invitations_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/keyring_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/keyring_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/keys_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/keys_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/signed_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/halo/signed_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/iframe_pb.d.ts +2 -11
- package/dist/src/buf/proto/gen/dxos/iframe_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/iframe_pb.js +2 -2
- package/dist/src/buf/proto/gen/dxos/iframe_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/keys_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/keys_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/bridge_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/bridge_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/broadcast_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/broadcast_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/messaging_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/messaging_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/muxer_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/muxer_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/presence_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/presence_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/protocol_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/protocol_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/replicator_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/replicator_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/signal_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/signal_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/swarm_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/swarm_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/admission-discovery_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/admission-discovery_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/auth_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/auth_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/automerge_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/automerge_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/blobsync_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/blobsync_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/control_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/control_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/gossip_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/gossip_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/notarization_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/notarization_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/replicator_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/mesh/teleport/replicator_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/registry_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/registry_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/rpc_pb.d.ts +25 -1
- package/dist/src/buf/proto/gen/dxos/rpc_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/rpc_pb.js +13 -8
- package/dist/src/buf/proto/gen/dxos/rpc_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/service/agentmanager_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/service/agentmanager_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/service/publisher_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/service/publisher_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/service/supervisor_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/service/supervisor_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/service/tunnel_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/service/tunnel_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/tracing_pb.d.ts +1 -139
- package/dist/src/buf/proto/gen/dxos/tracing_pb.d.ts.map +1 -1
- package/dist/src/buf/proto/gen/dxos/tracing_pb.js +11 -45
- package/dist/src/buf/proto/gen/dxos/tracing_pb.js.map +1 -1
- package/dist/src/buf/proto/gen/dxos/type_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/type_pb.js +1 -1
- package/dist/src/buf/proto/gen/dxos/value_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/dxos/value_pb.js +1 -1
- package/dist/src/buf/proto/gen/example/testing/data_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/example/testing/data_pb.js +1 -1
- package/dist/src/buf/proto/gen/example/testing/rpc_pb.d.ts +1 -1
- package/dist/src/buf/proto/gen/example/testing/rpc_pb.js +1 -1
- package/dist/src/edge/EdgeFunctionEnv.d.ts +134 -0
- package/dist/src/edge/EdgeFunctionEnv.d.ts.map +1 -0
- package/dist/src/edge/EdgeFunctionEnv.js +4 -0
- package/dist/src/edge/EdgeFunctionEnv.js.map +1 -0
- package/dist/src/edge/edge.d.ts +698 -0
- package/dist/src/edge/edge.d.ts.map +1 -0
- package/dist/src/edge/edge.js +278 -0
- package/dist/src/edge/edge.js.map +1 -0
- package/dist/src/edge/edge.test.d.ts +2 -0
- package/dist/src/edge/edge.test.d.ts.map +1 -0
- package/dist/src/edge/edge.test.js +50 -0
- package/dist/src/edge/edge.test.js.map +1 -0
- package/dist/src/edge/errors.d.ts +29 -0
- package/dist/src/edge/errors.d.ts.map +1 -0
- package/dist/src/edge/errors.js +69 -0
- package/dist/src/edge/errors.js.map +1 -0
- package/dist/src/edge/index.d.ts +5 -0
- package/dist/src/edge/index.d.ts.map +1 -0
- package/dist/src/edge/index.js +8 -0
- package/dist/src/edge/index.js.map +1 -0
- package/dist/src/edge/registry.d.ts +212 -0
- package/dist/src/edge/registry.d.ts.map +1 -0
- package/dist/src/edge/registry.js +139 -0
- package/dist/src/edge/registry.js.map +1 -0
- package/dist/src/errors/base-errors.d.ts +86 -8
- package/dist/src/errors/base-errors.d.ts.map +1 -1
- package/dist/src/errors/base-errors.js +4 -19
- package/dist/src/errors/base-errors.js.map +1 -1
- package/dist/src/errors/encoding.d.ts +2 -2
- package/dist/src/errors/encoding.d.ts.map +1 -1
- package/dist/src/errors/encoding.js.map +1 -1
- package/dist/src/errors/errors.d.ts +619 -42
- package/dist/src/errors/errors.d.ts.map +1 -1
- package/dist/src/errors/errors.js +49 -103
- package/dist/src/errors/errors.js.map +1 -1
- package/dist/src/errors/errors.test.js +1 -1
- package/dist/src/errors/errors.test.js.map +1 -1
- package/dist/src/errors/helpers.d.ts +9 -5
- package/dist/src/errors/helpers.d.ts.map +1 -1
- package/dist/src/errors/helpers.js +3 -3
- package/dist/src/errors/helpers.js.map +1 -1
- package/dist/src/errors/index.d.ts +5 -5
- package/dist/src/errors/parameter.d.ts.map +1 -1
- package/dist/src/feed-replication.d.ts.map +1 -1
- package/dist/src/index.d.ts +12 -12
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexing.d.ts +1 -1
- package/dist/src/indexing.d.ts.map +1 -1
- package/dist/src/indexing.js +1 -1
- package/dist/src/indexing.js.map +1 -1
- package/dist/src/invitation.d.ts +1 -1
- package/dist/src/invitation.d.ts.map +1 -1
- package/dist/src/invitation.js +4 -4
- package/dist/src/invitation.js.map +1 -1
- package/dist/src/messenger.d.ts +16 -0
- package/dist/src/messenger.d.ts.map +1 -0
- package/dist/src/messenger.js +4 -0
- package/dist/src/messenger.js.map +1 -0
- package/dist/src/profile-archive.d.ts +14 -1
- package/dist/src/profile-archive.d.ts.map +1 -1
- package/dist/src/profile-archive.js +2 -0
- package/dist/src/profile-archive.js.map +1 -1
- package/dist/src/proto/gen/dxos/agent/dashboard.d.ts +3 -6
- package/dist/src/proto/gen/dxos/agent/dashboard.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/agent/dashboard.js.map +1 -1
- package/dist/src/proto/gen/dxos/agent/echoproxy.d.ts +1 -2
- package/dist/src/proto/gen/dxos/agent/echoproxy.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/agent/epoch.d.ts +1 -2
- package/dist/src/proto/gen/dxos/agent/epoch.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/agent/functions.d.ts +6 -12
- package/dist/src/proto/gen/dxos/agent/functions.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/bot.d.ts +12 -24
- package/dist/src/proto/gen/dxos/bot.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/bot.js.map +1 -1
- package/dist/src/proto/gen/dxos/client/services.d.ts +1065 -903
- package/dist/src/proto/gen/dxos/client/services.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/client/services.js +118 -100
- package/dist/src/proto/gen/dxos/client/services.js.map +1 -1
- package/dist/src/proto/gen/dxos/config.d.ts +141 -100
- package/dist/src/proto/gen/dxos/config.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/config.js +26 -0
- package/dist/src/proto/gen/dxos/config.js.map +1 -1
- package/dist/src/proto/gen/dxos/devtools/host.d.ts +101 -119
- package/dist/src/proto/gen/dxos/devtools/host.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/devtools/swarm.d.ts +4 -8
- package/dist/src/proto/gen/dxos/devtools/swarm.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/blob.d.ts +1 -2
- package/dist/src/proto/gen/dxos/echo/blob.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/blob.js.map +1 -1
- package/dist/src/proto/gen/dxos/echo/feed.d.ts +4 -8
- package/dist/src/proto/gen/dxos/echo/feed.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/filter.d.ts +2 -4
- package/dist/src/proto/gen/dxos/echo/filter.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/filter.js.map +1 -1
- package/dist/src/proto/gen/dxos/echo/indexing.d.ts +2 -4
- package/dist/src/proto/gen/dxos/echo/indexing.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/indexing.js.map +1 -1
- package/dist/src/proto/gen/dxos/echo/metadata.d.ts +16 -16
- package/dist/src/proto/gen/dxos/echo/metadata.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/metadata.js.map +1 -1
- package/dist/src/proto/gen/dxos/echo/model/document.d.ts +11 -22
- package/dist/src/proto/gen/dxos/echo/model/document.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/model/document.js.map +1 -1
- package/dist/src/proto/gen/dxos/echo/model/messenger.d.ts +1 -2
- package/dist/src/proto/gen/dxos/echo/model/messenger.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/model/text.d.ts +2 -4
- package/dist/src/proto/gen/dxos/echo/model/text.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/object.d.ts +6 -12
- package/dist/src/proto/gen/dxos/echo/object.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/object.js.map +1 -1
- package/dist/src/proto/gen/dxos/echo/query.d.ts +21 -9
- package/dist/src/proto/gen/dxos/echo/query.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/query.js.map +1 -1
- package/dist/src/proto/gen/dxos/echo/service.d.ts +70 -34
- package/dist/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/snapshot.d.ts +2 -4
- package/dist/src/proto/gen/dxos/echo/snapshot.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/echo/timeframe.d.ts +2 -4
- package/dist/src/proto/gen/dxos/echo/timeframe.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/edge/calls.d.ts +5 -10
- package/dist/src/proto/gen/dxos/edge/calls.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/edge/messenger.d.ts +28 -10
- package/dist/src/proto/gen/dxos/edge/messenger.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/edge/messenger.js.map +1 -1
- package/dist/src/proto/gen/dxos/edge/signal.d.ts +7 -14
- package/dist/src/proto/gen/dxos/edge/signal.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/error.d.ts +1 -2
- package/dist/src/proto/gen/dxos/error.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/gravity.d.ts +10 -20
- package/dist/src/proto/gen/dxos/gravity.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/credentials/auth.d.ts +1 -2
- package/dist/src/proto/gen/dxos/halo/credentials/auth.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/credentials/greet.d.ts +6 -12
- package/dist/src/proto/gen/dxos/halo/credentials/greet.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/credentials/greet.js.map +1 -1
- package/dist/src/proto/gen/dxos/halo/credentials/identity.d.ts +2 -4
- package/dist/src/proto/gen/dxos/halo/credentials/identity.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/credentials.d.ts +47 -43
- package/dist/src/proto/gen/dxos/halo/credentials.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/credentials.js +9 -0
- package/dist/src/proto/gen/dxos/halo/credentials.js.map +1 -1
- package/dist/src/proto/gen/dxos/halo/invitations.d.ts +16 -28
- package/dist/src/proto/gen/dxos/halo/invitations.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/invitations.js +3 -2
- package/dist/src/proto/gen/dxos/halo/invitations.js.map +1 -1
- package/dist/src/proto/gen/dxos/halo/keyring.d.ts +1 -2
- package/dist/src/proto/gen/dxos/halo/keyring.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/keys.d.ts +2 -4
- package/dist/src/proto/gen/dxos/halo/keys.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/halo/signed.d.ts +4 -8
- package/dist/src/proto/gen/dxos/halo/signed.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/iframe.d.ts +4 -18
- package/dist/src/proto/gen/dxos/iframe.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/iframe.js.map +1 -1
- package/dist/src/proto/gen/dxos/keys.d.ts +2 -4
- package/dist/src/proto/gen/dxos/keys.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/bridge.d.ts +12 -24
- package/dist/src/proto/gen/dxos/mesh/bridge.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/broadcast.d.ts +1 -2
- package/dist/src/proto/gen/dxos/mesh/broadcast.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/messaging.d.ts +2 -4
- package/dist/src/proto/gen/dxos/mesh/messaging.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/muxer.d.ts +5 -10
- package/dist/src/proto/gen/dxos/mesh/muxer.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/presence.d.ts +1 -2
- package/dist/src/proto/gen/dxos/mesh/presence.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/protocol.d.ts +3 -6
- package/dist/src/proto/gen/dxos/mesh/protocol.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/replicator.d.ts +2 -4
- package/dist/src/proto/gen/dxos/mesh/replicator.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/signal.d.ts +9 -18
- package/dist/src/proto/gen/dxos/mesh/signal.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/signal.js.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/swarm.d.ts +6 -12
- package/dist/src/proto/gen/dxos/mesh/swarm.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/teleport/auth.d.ts +2 -4
- package/dist/src/proto/gen/dxos/mesh/teleport/auth.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/teleport/automerge.d.ts +2 -4
- package/dist/src/proto/gen/dxos/mesh/teleport/automerge.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/teleport/blobsync.d.ts +3 -6
- package/dist/src/proto/gen/dxos/mesh/teleport/blobsync.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/teleport/control.d.ts +3 -6
- package/dist/src/proto/gen/dxos/mesh/teleport/control.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/teleport/gossip.d.ts +1 -2
- package/dist/src/proto/gen/dxos/mesh/teleport/gossip.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/teleport/notarization.d.ts +1 -2
- package/dist/src/proto/gen/dxos/mesh/teleport/notarization.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/teleport/replicator.d.ts +5 -10
- package/dist/src/proto/gen/dxos/mesh/teleport/replicator.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/teleport.d.ts +2 -4
- package/dist/src/proto/gen/dxos/mesh/teleport.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/registry.d.ts +3 -6
- package/dist/src/proto/gen/dxos/registry.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/rpc.d.ts +24 -12
- package/dist/src/proto/gen/dxos/rpc.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/rpc.js.map +1 -1
- package/dist/src/proto/gen/dxos/service/agentmanager.d.ts +4 -8
- package/dist/src/proto/gen/dxos/service/agentmanager.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/service/agentmanager.js.map +1 -1
- package/dist/src/proto/gen/dxos/service/publisher.d.ts +5 -10
- package/dist/src/proto/gen/dxos/service/publisher.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/service/supervisor.d.ts +12 -24
- package/dist/src/proto/gen/dxos/service/supervisor.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/service/supervisor.js.map +1 -1
- package/dist/src/proto/gen/dxos/service/tunnel.d.ts +3 -6
- package/dist/src/proto/gen/dxos/service/tunnel.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/tracing.d.ts +10 -99
- package/dist/src/proto/gen/dxos/tracing.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/type.d.ts +12 -24
- package/dist/src/proto/gen/dxos/type.d.ts.map +1 -1
- package/dist/src/proto/gen/dxos/value.d.ts +2 -4
- package/dist/src/proto/gen/dxos/value.d.ts.map +1 -1
- package/dist/src/proto/gen/example/testing/data.d.ts +4 -8
- package/dist/src/proto/gen/example/testing/data.d.ts.map +1 -1
- package/dist/src/proto/gen/example/testing/rpc.d.ts +7 -14
- package/dist/src/proto/gen/example/testing/rpc.d.ts.map +1 -1
- package/dist/src/proto/gen/google/protobuf.d.ts +326 -40
- package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
- package/dist/src/proto/gen/google/protobuf.js +127 -1
- package/dist/src/proto/gen/google/protobuf.js.map +1 -1
- package/dist/src/proto/gen/index.d.ts +49 -7
- package/dist/src/proto/gen/index.d.ts.map +1 -1
- package/dist/src/proto/gen/index.js +1 -1
- package/dist/src/proto/gen/index.js.map +1 -1
- package/dist/src/proto/index.d.ts +2 -2
- package/dist/src/proto/substitutions.d.ts +8 -8
- package/dist/src/proto/substitutions.d.ts.map +1 -1
- package/dist/src/proto/types.d.ts +1 -1
- package/dist/src/space-archive.d.ts +62 -3
- package/dist/src/space-archive.d.ts.map +1 -1
- package/dist/src/space-archive.js +13 -1
- package/dist/src/space-archive.js.map +1 -1
- package/dist/src/types.d.ts +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -37
- package/src/FeedProtocol.ts +323 -0
- package/src/FunctionProtocol.ts +111 -0
- package/src/TraceProtocol.ts +21 -0
- package/src/automerge.ts +247 -13
- package/src/buf/proto/gen/dxos/agent/dashboard_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/agent/echo-proxy_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/agent/epoch_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/agent/functions_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/bot_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/client/invitation_pb.ts +22 -8
- package/src/buf/proto/gen/dxos/client/logging_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/client/queue_pb.ts +373 -0
- package/src/buf/proto/gen/dxos/client/services_pb.ts +206 -62
- package/src/buf/proto/gen/dxos/config_pb.ts +173 -10
- package/src/buf/proto/gen/dxos/devtools/diagnostics_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/devtools/host_pb.ts +85 -4
- package/src/buf/proto/gen/dxos/devtools/swarm_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/blob_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/feed_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/filter_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/indexing_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/metadata_pb.ts +18 -4
- package/src/buf/proto/gen/dxos/echo/model/document_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/model/messenger_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/model/text_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/object_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/query_pb.ts +18 -6
- package/src/buf/proto/gen/dxos/echo/service_pb.ts +100 -15
- package/src/buf/proto/gen/dxos/echo/snapshot_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/echo/timeframe_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/edge/calls_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/edge/messenger_pb.ts +41 -8
- package/src/buf/proto/gen/dxos/edge/signal_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/error_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/field_options_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/google_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/gravity_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/halo/credentials/auth_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/halo/credentials/greet_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/halo/credentials/identity_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/halo/credentials_pb.ts +102 -25
- package/src/buf/proto/gen/dxos/halo/invitations_pb.ts +16 -8
- package/src/buf/proto/gen/dxos/halo/keyring_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/halo/keys_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/halo/signed_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/iframe_pb.ts +5 -16
- package/src/buf/proto/gen/dxos/keys_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/bridge_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/broadcast_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/messaging_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/muxer_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/presence_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/protocol_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/replicator_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/signal_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/swarm_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/teleport/admission-discovery_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/teleport/auth_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/teleport/automerge_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/teleport/blobsync_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/teleport/control_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/teleport/gossip_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/teleport/notarization_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/mesh/teleport/replicator_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/registry_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/rpc_pb.ts +39 -10
- package/src/buf/proto/gen/dxos/service/agentmanager_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/service/publisher_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/service/supervisor_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/service/tunnel_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/tracing_pb.ts +12 -179
- package/src/buf/proto/gen/dxos/type_pb.ts +3 -3
- package/src/buf/proto/gen/dxos/value_pb.ts +3 -3
- package/src/buf/proto/gen/example/testing/data_pb.ts +3 -3
- package/src/buf/proto/gen/example/testing/rpc_pb.ts +3 -3
- package/src/codec.test.ts +1 -1
- package/src/edge/EdgeFunctionEnv.ts +228 -0
- package/src/edge/edge.test.ts +64 -0
- package/src/edge/edge.ts +818 -0
- package/src/edge/errors.ts +85 -0
- package/src/edge/index.ts +8 -0
- package/src/edge/registry.ts +164 -0
- package/src/errors/base-errors.ts +4 -20
- package/src/errors/encoding.ts +2 -3
- package/src/errors/errors.test.ts +2 -2
- package/src/errors/errors.ts +57 -124
- package/src/errors/helpers.ts +6 -7
- package/src/errors/index.ts +5 -5
- package/src/feed-replication.ts +1 -0
- package/src/index.ts +12 -12
- package/src/indexing.test.ts +1 -1
- package/src/indexing.ts +1 -1
- package/src/invitation.ts +4 -4
- package/src/messenger.ts +22 -0
- package/src/profile-archive.ts +13 -0
- package/src/proto/dxos/client/invitation.proto +9 -2
- package/src/proto/dxos/client/queue.proto +102 -0
- package/src/proto/dxos/client/services.proto +43 -4
- package/src/proto/dxos/config.proto +85 -40
- package/src/proto/dxos/devtools/host.proto +27 -0
- package/src/proto/dxos/echo/metadata.proto +6 -0
- package/src/proto/dxos/echo/query.proto +4 -1
- package/src/proto/dxos/echo/service.proto +49 -4
- package/src/proto/dxos/edge/messenger.proto +10 -0
- package/src/proto/dxos/halo/credentials.proto +24 -0
- package/src/proto/dxos/halo/invitations.proto +5 -2
- package/src/proto/dxos/iframe.proto +1 -3
- package/src/proto/dxos/rpc.proto +7 -0
- package/src/proto/dxos/tracing.proto +0 -40
- package/src/proto/gen/dxos/agent/dashboard.ts +3 -6
- package/src/proto/gen/dxos/agent/echoproxy.ts +1 -2
- package/src/proto/gen/dxos/agent/epoch.ts +1 -2
- package/src/proto/gen/dxos/agent/functions.ts +6 -12
- package/src/proto/gen/dxos/bot.ts +12 -24
- package/src/proto/gen/dxos/client/services.ts +1065 -903
- package/src/proto/gen/dxos/config.ts +141 -100
- package/src/proto/gen/dxos/devtools/host.ts +101 -119
- package/src/proto/gen/dxos/devtools/swarm.ts +4 -8
- package/src/proto/gen/dxos/echo/blob.ts +1 -2
- package/src/proto/gen/dxos/echo/feed.ts +4 -8
- package/src/proto/gen/dxos/echo/filter.ts +2 -4
- package/src/proto/gen/dxos/echo/indexing.ts +2 -4
- package/src/proto/gen/dxos/echo/metadata.ts +16 -16
- package/src/proto/gen/dxos/echo/model/document.ts +11 -22
- package/src/proto/gen/dxos/echo/model/messenger.ts +1 -2
- package/src/proto/gen/dxos/echo/model/text.ts +2 -4
- package/src/proto/gen/dxos/echo/object.ts +6 -12
- package/src/proto/gen/dxos/echo/query.ts +21 -9
- package/src/proto/gen/dxos/echo/service.ts +69 -34
- package/src/proto/gen/dxos/echo/snapshot.ts +2 -4
- package/src/proto/gen/dxos/echo/timeframe.ts +2 -4
- package/src/proto/gen/dxos/edge/calls.ts +5 -10
- package/src/proto/gen/dxos/edge/messenger.ts +28 -10
- package/src/proto/gen/dxos/edge/signal.ts +7 -14
- package/src/proto/gen/dxos/error.ts +1 -2
- package/src/proto/gen/dxos/gravity.ts +10 -20
- package/src/proto/gen/dxos/halo/credentials/auth.ts +1 -2
- package/src/proto/gen/dxos/halo/credentials/greet.ts +6 -12
- package/src/proto/gen/dxos/halo/credentials/identity.ts +2 -4
- package/src/proto/gen/dxos/halo/credentials.ts +47 -43
- package/src/proto/gen/dxos/halo/invitations.ts +16 -28
- package/src/proto/gen/dxos/halo/keyring.ts +1 -2
- package/src/proto/gen/dxos/halo/keys.ts +2 -4
- package/src/proto/gen/dxos/halo/signed.ts +4 -8
- package/src/proto/gen/dxos/iframe.ts +4 -18
- package/src/proto/gen/dxos/keys.ts +2 -4
- package/src/proto/gen/dxos/mesh/bridge.ts +12 -24
- package/src/proto/gen/dxos/mesh/broadcast.ts +1 -2
- package/src/proto/gen/dxos/mesh/messaging.ts +2 -4
- package/src/proto/gen/dxos/mesh/muxer.ts +5 -10
- package/src/proto/gen/dxos/mesh/presence.ts +1 -2
- package/src/proto/gen/dxos/mesh/protocol.ts +3 -6
- package/src/proto/gen/dxos/mesh/replicator.ts +2 -4
- package/src/proto/gen/dxos/mesh/signal.ts +9 -18
- package/src/proto/gen/dxos/mesh/swarm.ts +6 -12
- package/src/proto/gen/dxos/mesh/teleport/auth.ts +2 -4
- package/src/proto/gen/dxos/mesh/teleport/automerge.ts +2 -4
- package/src/proto/gen/dxos/mesh/teleport/blobsync.ts +3 -6
- package/src/proto/gen/dxos/mesh/teleport/control.ts +3 -6
- package/src/proto/gen/dxos/mesh/teleport/gossip.ts +1 -2
- package/src/proto/gen/dxos/mesh/teleport/notarization.ts +1 -2
- package/src/proto/gen/dxos/mesh/teleport/replicator.ts +5 -10
- package/src/proto/gen/dxos/mesh/teleport.ts +2 -4
- package/src/proto/gen/dxos/registry.ts +3 -6
- package/src/proto/gen/dxos/rpc.ts +24 -12
- package/src/proto/gen/dxos/service/agentmanager.ts +4 -8
- package/src/proto/gen/dxos/service/publisher.ts +5 -10
- package/src/proto/gen/dxos/service/supervisor.ts +12 -24
- package/src/proto/gen/dxos/service/tunnel.ts +3 -6
- package/src/proto/gen/dxos/tracing.ts +10 -96
- package/src/proto/gen/dxos/type.ts +12 -24
- package/src/proto/gen/dxos/value.ts +2 -4
- package/src/proto/gen/example/testing/data.ts +4 -8
- package/src/proto/gen/example/testing/rpc.ts +7 -14
- package/src/proto/gen/google/protobuf.ts +326 -40
- package/src/proto/gen/index.ts +50 -8
- package/src/proto/index.ts +2 -2
- package/src/proto/types.ts +1 -1
- package/src/space-archive.ts +70 -1
- package/src/types.ts +2 -2
- package/dist/src/edge-error.d.ts +0 -26
- package/dist/src/edge-error.d.ts.map +0 -1
- package/dist/src/edge-error.js +0 -62
- package/dist/src/edge-error.js.map +0 -1
- package/dist/src/edge.d.ts +0 -243
- package/dist/src/edge.d.ts.map +0 -1
- package/dist/src/edge.js +0 -49
- package/dist/src/edge.js.map +0 -1
- package/dist/src/query.d.ts +0 -5
- package/dist/src/query.d.ts.map +0 -1
- package/dist/src/query.js +0 -8
- package/dist/src/query.js.map +0 -1
- package/dist/src/queue.d.ts +0 -24
- package/dist/src/queue.d.ts.map +0 -1
- package/dist/src/queue.js +0 -4
- package/dist/src/queue.js.map +0 -1
- package/dist/src/tracing.d.ts +0 -40
- package/dist/src/tracing.d.ts.map +0 -1
- package/dist/src/tracing.js +0 -50
- package/dist/src/tracing.js.map +0 -1
- package/src/edge-error.ts +0 -79
- package/src/edge.ts +0 -276
- package/src/query.ts +0 -8
- package/src/queue.ts +0 -33
- package/src/tracing.ts +0 -86
package/src/edge/edge.ts
ADDED
|
@@ -0,0 +1,818 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
|
+
|
|
7
|
+
import { BaseError } from '@dxos/errors';
|
|
8
|
+
import { invariant } from '@dxos/invariant';
|
|
9
|
+
import { SpaceId } from '@dxos/keys';
|
|
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
|
+
|
|
16
|
+
/**
|
|
17
|
+
* HTTP header sent on every Edge request to provide a BYOK (Bring Your Own Key) for AI services.
|
|
18
|
+
*/
|
|
19
|
+
export const BYOK_HEADER = 'X-BYOK';
|
|
20
|
+
|
|
21
|
+
// TODO(burdon): Rename EdgerRouterEndpoint.
|
|
22
|
+
// If we would rename it, we need to be careful to not break composer production.
|
|
23
|
+
export enum EdgeService {
|
|
24
|
+
AUTOMERGE_REPLICATOR = 'automerge-replicator',
|
|
25
|
+
SUBDUCTION_REPLICATOR = 'subduction-replicator',
|
|
26
|
+
/**
|
|
27
|
+
* Control feed replicator (hypercore append only logs) for the space.
|
|
28
|
+
*/
|
|
29
|
+
// TODO(mykola): Remove once we migrate to keyhive for access control.
|
|
30
|
+
FEED_REPLICATOR = 'feed-replicator',
|
|
31
|
+
/**
|
|
32
|
+
* Feed replicator (ordered data list) for the space.
|
|
33
|
+
*/
|
|
34
|
+
// TODO(mykola): Rename to FEED_REPLICATOR when we migrate to keyhive for access control.
|
|
35
|
+
QUEUE_REPLICATOR = 'queue-replicator',
|
|
36
|
+
SWARM = 'swarm',
|
|
37
|
+
SIGNAL = 'signal',
|
|
38
|
+
STATUS = 'status',
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type EdgeSuccess<T> = {
|
|
42
|
+
success: true;
|
|
43
|
+
data: T;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const _SerializedError = Schema.Struct({
|
|
47
|
+
name: Schema.optional(Schema.String),
|
|
48
|
+
message: Schema.optional(Schema.String),
|
|
49
|
+
context: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
|
|
50
|
+
stack: Schema.optional(Schema.String),
|
|
51
|
+
cause: Schema.optional(Schema.suspend(() => SerializedError)),
|
|
52
|
+
});
|
|
53
|
+
export interface SerializedError extends Schema.Schema.Type<typeof _SerializedError> {}
|
|
54
|
+
export const SerializedError: Schema.Schema<SerializedError, SerializedError, never> = _SerializedError;
|
|
55
|
+
|
|
56
|
+
export type EdgeErrorData = { type: string } & Record<string, any>;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* This is the shape of the error response from the Edge service,
|
|
60
|
+
* when the error is gracefully handled, the Response will be an object with this shape and have status code 200.
|
|
61
|
+
*/
|
|
62
|
+
export type EdgeFailure = {
|
|
63
|
+
/**
|
|
64
|
+
* Branded Type.
|
|
65
|
+
*/
|
|
66
|
+
success: false;
|
|
67
|
+
/**
|
|
68
|
+
* An explanation of why the call failed. Used mostly for logging and monitoring.
|
|
69
|
+
*/
|
|
70
|
+
message: string;
|
|
71
|
+
/**
|
|
72
|
+
* Cause Error captured on the EDGE service to aid debugging on the client.
|
|
73
|
+
*/
|
|
74
|
+
error?: SerializedError;
|
|
75
|
+
/**
|
|
76
|
+
* Information that can be used to retry the request such that it will succeed, for example:
|
|
77
|
+
* 1. { type: 'auth_required', challenge: string }
|
|
78
|
+
* Requires retrying the request with challenge signature included.
|
|
79
|
+
* 2. { type: 'user_confirmation_required', dialog: { title: string, message: string, confirmation_payload: string } }
|
|
80
|
+
* Requires showing a confirmation dialog to a user and retrying the request with confirmation_payload included
|
|
81
|
+
* if the user confirms.
|
|
82
|
+
* When data is returned simply retrying the request won't have any effect.
|
|
83
|
+
* EdgeHttpClient should parse well-known data into Error types and throw.
|
|
84
|
+
*/
|
|
85
|
+
data?: EdgeErrorData;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Represents a body response from the Edge service.
|
|
90
|
+
*/
|
|
91
|
+
export type EdgeEnvelope<T> = EdgeSuccess<T> | EdgeFailure;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Use this to create a response from the Edge service.
|
|
95
|
+
*/
|
|
96
|
+
export const EdgeResponse = Object.freeze({
|
|
97
|
+
success: <T>(data: T, status: number = 200): Response => {
|
|
98
|
+
invariant(status >= 200 && status < 300, 'Status code must be in the 2xx range');
|
|
99
|
+
const headers = new Headers({ 'Content-Type': 'application/json' });
|
|
100
|
+
return new Response(
|
|
101
|
+
JSON.stringify({
|
|
102
|
+
success: true,
|
|
103
|
+
data,
|
|
104
|
+
} satisfies EdgeSuccess<T>),
|
|
105
|
+
{
|
|
106
|
+
status,
|
|
107
|
+
headers,
|
|
108
|
+
},
|
|
109
|
+
);
|
|
110
|
+
},
|
|
111
|
+
failure: ({
|
|
112
|
+
message,
|
|
113
|
+
error,
|
|
114
|
+
errorEncoded,
|
|
115
|
+
data,
|
|
116
|
+
shouldRetryAfter,
|
|
117
|
+
status = 500,
|
|
118
|
+
}: {
|
|
119
|
+
/**
|
|
120
|
+
* An explanation of why the call failed. Used mostly for logging and monitoring.
|
|
121
|
+
*/
|
|
122
|
+
message: string;
|
|
123
|
+
/**
|
|
124
|
+
* Error that caused the failure.
|
|
125
|
+
* Useful for debugging.
|
|
126
|
+
*
|
|
127
|
+
* Use only one of the fields `error` or `errorEncoded`.s
|
|
128
|
+
*/
|
|
129
|
+
error?: Error;
|
|
130
|
+
/**
|
|
131
|
+
* Encoded Error that caused the failure.
|
|
132
|
+
* Useful for debugging.
|
|
133
|
+
*
|
|
134
|
+
* Use only one of the fields `error` or `errorEncoded`.
|
|
135
|
+
*/
|
|
136
|
+
errorEncoded?: SerializedError;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Information that can be used to retry the request such that it will succeed, for example:
|
|
140
|
+
* 1. { type: 'auth_required', challenge: string }
|
|
141
|
+
* Requires retrying the request with challenge signature included.
|
|
142
|
+
* 2. { type: 'user_confirmation_required', dialog: { title: string, message: string, confirmation_payload: string } }
|
|
143
|
+
* Requires showing a confirmation dialog to a user and retrying the request with confirmation_payload included
|
|
144
|
+
* if the user confirms.
|
|
145
|
+
* When data is returned simply retrying the request won't have any effect.
|
|
146
|
+
* EdgeHttpClient should parse well-known data into Error types and throw.
|
|
147
|
+
*/
|
|
148
|
+
data?: EdgeErrorData;
|
|
149
|
+
/**
|
|
150
|
+
* If provided, this request will be marked as retryable and the client will wait for the specified number of milliseconds before retrying.
|
|
151
|
+
* If not provided, the client will not retry the request.
|
|
152
|
+
*/
|
|
153
|
+
shouldRetryAfter?: number;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Status code of the response.
|
|
157
|
+
* @default 500
|
|
158
|
+
*/
|
|
159
|
+
status?: number;
|
|
160
|
+
}): Response => {
|
|
161
|
+
const headers = new Headers({ 'Content-Type': 'application/json' });
|
|
162
|
+
if (shouldRetryAfter) {
|
|
163
|
+
headers.set('Retry-After', String(shouldRetryAfter));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return new Response(
|
|
167
|
+
JSON.stringify({
|
|
168
|
+
success: false,
|
|
169
|
+
message,
|
|
170
|
+
data,
|
|
171
|
+
error: error ? ErrorCodec.encode(error) : errorEncoded,
|
|
172
|
+
} satisfies EdgeFailure),
|
|
173
|
+
{
|
|
174
|
+
status,
|
|
175
|
+
headers,
|
|
176
|
+
},
|
|
177
|
+
);
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
export type GetNotarizationResponseBody = {
|
|
182
|
+
awaitingNotarization: { credentials: string[] };
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
export type ExecuteWorkflowResponseBody = {
|
|
186
|
+
success: boolean;
|
|
187
|
+
reason?: string;
|
|
188
|
+
output?: any;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
export type PostNotarizationRequestBody = {
|
|
192
|
+
credentials: string[];
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
export type JoinSpaceRequest = {
|
|
196
|
+
invitationId: string;
|
|
197
|
+
identityKey: string;
|
|
198
|
+
/**
|
|
199
|
+
* Base64 encoded signed challenge.
|
|
200
|
+
* Used to verify the IdentityKey in case of `invitation.authMethod === Invitation.AuthMethod.KNOWN_PUBLIC_KEY`
|
|
201
|
+
*/
|
|
202
|
+
signature?: string;
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
export type JoinSpaceResponseBody = {
|
|
206
|
+
spaceMemberCredential: string;
|
|
207
|
+
spaceGenesisFeedKey: string;
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
export type RecoverIdentitySignature =
|
|
211
|
+
| string
|
|
212
|
+
// This is the format of the signature from the WebAuthn authenticator.
|
|
213
|
+
| {
|
|
214
|
+
signature: string;
|
|
215
|
+
clientDataJson: string;
|
|
216
|
+
authenticatorData: string;
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
export type RecoverIdentityRequest = {
|
|
220
|
+
deviceKey: string;
|
|
221
|
+
controlFeedKey: string;
|
|
222
|
+
lookupKey?: string;
|
|
223
|
+
signature?: RecoverIdentitySignature;
|
|
224
|
+
token?: string;
|
|
225
|
+
/**
|
|
226
|
+
* One-time proof minted by kms-service after a successful OAuth recovery flow.
|
|
227
|
+
* When provided, db-service redeems the proof to obtain the bound identityKey directly
|
|
228
|
+
* and `lookupKey`/`signature` are not required.
|
|
229
|
+
*/
|
|
230
|
+
recoveryProof?: string;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
export type RecoverIdentityResponseBody = {
|
|
234
|
+
identityKey: string;
|
|
235
|
+
haloSpaceKey: string;
|
|
236
|
+
genesisFeedKey: string;
|
|
237
|
+
deviceAuthCredential: string;
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
export type CreateAgentRequestBody = {
|
|
241
|
+
identityKey: string;
|
|
242
|
+
haloSpaceId: SpaceId;
|
|
243
|
+
haloSpaceKey: string;
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
export type CreateAgentResponseBody = {
|
|
247
|
+
deviceKey: string;
|
|
248
|
+
feedKey: string;
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
export type GetAgentStatusResponseBody = {
|
|
252
|
+
agent: {
|
|
253
|
+
deviceKey?: string;
|
|
254
|
+
status: EdgeAgentStatus;
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
export type UploadFunctionRequest = {
|
|
259
|
+
name?: string;
|
|
260
|
+
version: string;
|
|
261
|
+
ownerPublicKey: string;
|
|
262
|
+
entryPoint: string;
|
|
263
|
+
assets: Record<string, Uint8Array>;
|
|
264
|
+
/**
|
|
265
|
+
* Runtime in Edge that will be used to run the function.
|
|
266
|
+
* Runtime cannot be changed once the function was deployed.
|
|
267
|
+
* @default Runtime.WORKERS_FOR_PLATFORMS
|
|
268
|
+
*/
|
|
269
|
+
runtime?: FunctionRuntimeKind;
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Note: Do not change the values of these enums, this values are stored in the FunctionVersions database.
|
|
274
|
+
*/
|
|
275
|
+
export const FunctionRuntimeKind = Schema.Enums({
|
|
276
|
+
// https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/
|
|
277
|
+
WORKERS_FOR_PLATFORMS: 'WORKERS_FOR_PLATFORMS',
|
|
278
|
+
// https://developers.cloudflare.com/workers/runtime-apis/bindings/worker-loader/
|
|
279
|
+
WORKER_LOADER: 'WORKER_LOADER',
|
|
280
|
+
});
|
|
281
|
+
export type FunctionRuntimeKind = Schema.Schema.Type<typeof FunctionRuntimeKind>;
|
|
282
|
+
|
|
283
|
+
export type UploadFunctionResponseBody = {
|
|
284
|
+
functionId: string;
|
|
285
|
+
version: string;
|
|
286
|
+
meta: {
|
|
287
|
+
key?: string;
|
|
288
|
+
name?: string;
|
|
289
|
+
description?: string;
|
|
290
|
+
/**
|
|
291
|
+
* JSON Schema for the input of the function.
|
|
292
|
+
*/
|
|
293
|
+
inputSchema?: object;
|
|
294
|
+
/**
|
|
295
|
+
* JSON Schema for the output of the function.
|
|
296
|
+
*/
|
|
297
|
+
outputSchema?: object;
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
export type CreateSpaceRequest = {
|
|
302
|
+
/**
|
|
303
|
+
* HEX encoded public key of the agent.
|
|
304
|
+
*/
|
|
305
|
+
agentKey: string;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
export type CreateSpaceResponseBody = {
|
|
309
|
+
/**
|
|
310
|
+
* HEX encoded public key of the space.
|
|
311
|
+
*/
|
|
312
|
+
spaceKey: string;
|
|
313
|
+
spaceId: SpaceId;
|
|
314
|
+
automergeRoot: string;
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
export enum EdgeAgentStatus {
|
|
318
|
+
ACTIVE = 'active',
|
|
319
|
+
INACTIVE = 'inactive',
|
|
320
|
+
NOT_FOUND = 'not_found',
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
export type EdgeAuthChallenge = {
|
|
324
|
+
type: 'auth_challenge';
|
|
325
|
+
challenge: string;
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
export enum OAuthProvider {
|
|
329
|
+
ATLASSIAN = 'atlassian',
|
|
330
|
+
ATPROTO = 'atproto',
|
|
331
|
+
/** @deprecated Use ATPROTO instead. */
|
|
332
|
+
BLUESKY = 'bluesky',
|
|
333
|
+
DISCORD = 'discord',
|
|
334
|
+
GITHUB = 'github',
|
|
335
|
+
GOOGLE = 'google',
|
|
336
|
+
LINEAR = 'linear',
|
|
337
|
+
NOTION = 'notion',
|
|
338
|
+
SLACK = 'slack',
|
|
339
|
+
TRELLO = 'trello',
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
export const InitiateOAuthFlowRequestSchema = Schema.Struct({
|
|
343
|
+
provider: Schema.Enums(OAuthProvider),
|
|
344
|
+
spaceId: Schema.String.pipe(Schema.filter(SpaceId.isValid)), // TODO(burdon): Use SpaceId.
|
|
345
|
+
accessTokenId: Schema.String,
|
|
346
|
+
scopes: Schema.mutable(Schema.Array(Schema.String)),
|
|
347
|
+
// Set to true if we don't want periodic token refreshes in background, for cases like account connect
|
|
348
|
+
noRefresh: Schema.optional(Schema.Boolean),
|
|
349
|
+
// Provider-specific (user handle or did for atproto) hint for auth server resolution
|
|
350
|
+
loginHint: Schema.optional(Schema.String),
|
|
351
|
+
// Return a 302 redirect to composer://oauth/callback instead of HTML.
|
|
352
|
+
// Required for ASWebAuthenticationSession (iOS) which blocks JavaScript redirects.
|
|
353
|
+
nativeAppRedirect: Schema.optional(Schema.Boolean),
|
|
354
|
+
// OAuth-based account recovery: when purpose === 'register', kms-service writes a
|
|
355
|
+
// recovery binding for `identityKey` after the OAuth flow completes; when 'recovery',
|
|
356
|
+
// kms-service mints a one-time `recoveryProof` the client forwards to db-service.
|
|
357
|
+
registerRecovery: Schema.optional(Schema.Boolean),
|
|
358
|
+
identityKey: Schema.optional(Schema.String),
|
|
359
|
+
purpose: Schema.optional(Schema.Literal('register', 'recovery')),
|
|
360
|
+
});
|
|
361
|
+
export type InitiateOAuthFlowRequest = Schema.Schema.Type<typeof InitiateOAuthFlowRequestSchema>;
|
|
362
|
+
|
|
363
|
+
export type InitiateOAuthFlowResponse = {
|
|
364
|
+
authUrl: string;
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
export type OAuthFlowResult =
|
|
368
|
+
| { success: true; accessToken: string; accessTokenId: string; recoveryProof?: string }
|
|
369
|
+
| { success: false; reason: string };
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Completes OAuth recovery registration for an existing identity: routes the OAuth refresh token
|
|
373
|
+
* into the personal space and writes the recovery binding.
|
|
374
|
+
*/
|
|
375
|
+
export type CompleteOAuthRegistrationRequest = {
|
|
376
|
+
registrationToken: string;
|
|
377
|
+
identityKey: string;
|
|
378
|
+
spaceKey: string;
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
export type CompleteOAuthRegistrationResponse = {
|
|
382
|
+
email?: string;
|
|
383
|
+
provider: OAuthProvider;
|
|
384
|
+
accessTokenId: string;
|
|
385
|
+
accessToken: string;
|
|
386
|
+
expiresInSeconds: number;
|
|
387
|
+
scopes: string[];
|
|
388
|
+
identifier: string;
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
export enum EdgeWebsocketProtocol {
|
|
392
|
+
V0 = 'edge-ws-v0',
|
|
393
|
+
/**
|
|
394
|
+
* Enables message framing and muxing by service-id.
|
|
395
|
+
*/
|
|
396
|
+
V1 = 'edge-ws-v1',
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// TODO(mykola): Reconcile with type in EDGE repo.
|
|
400
|
+
export type EdgeStatus = {
|
|
401
|
+
problems: string[];
|
|
402
|
+
agent: {
|
|
403
|
+
agentStatus?: string;
|
|
404
|
+
agentKey?: string;
|
|
405
|
+
haloSpaceId?: SpaceId;
|
|
406
|
+
fetchError?: string;
|
|
407
|
+
};
|
|
408
|
+
router: {
|
|
409
|
+
connectedDevices?: {
|
|
410
|
+
peerKey: string;
|
|
411
|
+
topics: string[];
|
|
412
|
+
}[];
|
|
413
|
+
metrics?: {
|
|
414
|
+
sentMessages: number;
|
|
415
|
+
receivedMessages: number;
|
|
416
|
+
sentBytes: number;
|
|
417
|
+
receivedBytes: number;
|
|
418
|
+
failedMessages: number;
|
|
419
|
+
failedBytes: number;
|
|
420
|
+
};
|
|
421
|
+
fetchError?: string;
|
|
422
|
+
};
|
|
423
|
+
spaces: {
|
|
424
|
+
data: Record<SpaceId, { diagnostics?: any & { redFlags: string[] }; fetchError?: string }>;
|
|
425
|
+
fetchError?: string;
|
|
426
|
+
};
|
|
427
|
+
};
|
|
428
|
+
|
|
429
|
+
//
|
|
430
|
+
// Space import/export.
|
|
431
|
+
//
|
|
432
|
+
|
|
433
|
+
export type ImportBundleRequest = {
|
|
434
|
+
bundle: {
|
|
435
|
+
/**
|
|
436
|
+
* DocumentId.
|
|
437
|
+
*/
|
|
438
|
+
documentId: string;
|
|
439
|
+
/**
|
|
440
|
+
* Encoded mutation.
|
|
441
|
+
*/
|
|
442
|
+
mutation: string;
|
|
443
|
+
/**
|
|
444
|
+
* Heads of the document.
|
|
445
|
+
*/
|
|
446
|
+
heads: string[];
|
|
447
|
+
}[];
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
export type ExportBundleRequest = {
|
|
451
|
+
/**
|
|
452
|
+
* DocumentId -> Heads (decoded heads since which we want to export).
|
|
453
|
+
*/
|
|
454
|
+
docHeads: Record<string, string[]>;
|
|
455
|
+
};
|
|
456
|
+
|
|
457
|
+
export type ExportBundleResponse = {
|
|
458
|
+
bundle: {
|
|
459
|
+
/**
|
|
460
|
+
* DocumentId.
|
|
461
|
+
*/
|
|
462
|
+
documentId: string;
|
|
463
|
+
/**
|
|
464
|
+
* Encoded mutation.
|
|
465
|
+
*/
|
|
466
|
+
mutation: string;
|
|
467
|
+
}[];
|
|
468
|
+
};
|
|
469
|
+
|
|
470
|
+
export const DocumentCodec = Object.freeze({
|
|
471
|
+
encode: (doc: Uint8Array) => Buffer.from(doc).toString('base64'),
|
|
472
|
+
decode: (doc: string) => new Uint8Array(Buffer.from(doc, 'base64')),
|
|
473
|
+
});
|
|
474
|
+
|
|
475
|
+
const MAX_ERROR_DEPTH = 3;
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* Codec for serializing and deserializing Edge Errors.
|
|
479
|
+
*/
|
|
480
|
+
export const ErrorCodec = Object.freeze({
|
|
481
|
+
encode: (err: Error, depth: number = 0): SerializedError => ({
|
|
482
|
+
name: 'name' in err ? err.name : (err as any).code || 'Error',
|
|
483
|
+
message: err.message,
|
|
484
|
+
stack: err.stack,
|
|
485
|
+
cause: err.cause instanceof Error && depth < MAX_ERROR_DEPTH ? ErrorCodec.encode(err.cause, depth + 1) : undefined,
|
|
486
|
+
}),
|
|
487
|
+
decode: (serializedError: SerializedError, depth: number = 0): Error => {
|
|
488
|
+
let err: Error;
|
|
489
|
+
if (typeof serializedError.name === 'string') {
|
|
490
|
+
err = new BaseError(serializedError.name, {
|
|
491
|
+
message: serializedError.message ?? 'Unknown error',
|
|
492
|
+
cause:
|
|
493
|
+
serializedError.cause && depth < MAX_ERROR_DEPTH
|
|
494
|
+
? ErrorCodec.decode(serializedError.cause, depth + 1)
|
|
495
|
+
: undefined,
|
|
496
|
+
context: serializedError.context,
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
if (serializedError.stack) {
|
|
500
|
+
Object.defineProperty(err, 'stack', {
|
|
501
|
+
value: serializedError.stack,
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
} else {
|
|
505
|
+
err = new Error(serializedError.message ?? 'Unknown error', {
|
|
506
|
+
cause:
|
|
507
|
+
serializedError.cause && depth < MAX_ERROR_DEPTH
|
|
508
|
+
? ErrorCodec.decode(serializedError.cause, depth + 1)
|
|
509
|
+
: undefined,
|
|
510
|
+
});
|
|
511
|
+
|
|
512
|
+
if (serializedError.stack) {
|
|
513
|
+
Object.defineProperty(err, 'stack', {
|
|
514
|
+
value: serializedError.stack,
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
return err;
|
|
520
|
+
},
|
|
521
|
+
});
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Codec for serializing and deserializing Edge unhandled HTTP errors.
|
|
525
|
+
*/
|
|
526
|
+
export const EdgeHttpErrorCodec = Object.freeze({
|
|
527
|
+
encode: (err: Error): Response =>
|
|
528
|
+
new Response(
|
|
529
|
+
JSON.stringify({
|
|
530
|
+
error: ErrorCodec.encode(err),
|
|
531
|
+
}),
|
|
532
|
+
{ status: 500 },
|
|
533
|
+
),
|
|
534
|
+
|
|
535
|
+
decode: async (response: Response): Promise<Error | undefined> => {
|
|
536
|
+
if (response.headers.get('Content-Type') !== 'application/json') {
|
|
537
|
+
const body = await response.clone().text();
|
|
538
|
+
return new Error(body.slice(0, 256));
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
const body = await response.clone().json();
|
|
542
|
+
if (!('error' in body)) {
|
|
543
|
+
return undefined;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
return ErrorCodec.decode(body.error);
|
|
547
|
+
},
|
|
548
|
+
});
|
|
549
|
+
|
|
550
|
+
//
|
|
551
|
+
// Data management.
|
|
552
|
+
//
|
|
553
|
+
|
|
554
|
+
export type ListSpacesRequest = { limit?: number; cursor?: string; order?: 'asc' | 'desc' };
|
|
555
|
+
export type ListSpacesResponse = {
|
|
556
|
+
spaces: SpaceActivityEntry[];
|
|
557
|
+
cursor?: string;
|
|
558
|
+
limit: number;
|
|
559
|
+
};
|
|
560
|
+
|
|
561
|
+
export type ListActiveIdentitiesRequest = { cursor?: string; limit?: number };
|
|
562
|
+
export type ListActiveIdentitiesResponse = {
|
|
563
|
+
identities: {
|
|
564
|
+
identityKey: string;
|
|
565
|
+
haloSpaceId: string | null;
|
|
566
|
+
createdAt: string | null;
|
|
567
|
+
agentKey: string | null;
|
|
568
|
+
hasRecovery: boolean;
|
|
569
|
+
}[];
|
|
570
|
+
cursor?: string;
|
|
571
|
+
complete: boolean;
|
|
572
|
+
totalCount: number;
|
|
573
|
+
};
|
|
574
|
+
|
|
575
|
+
export type InspectSpaceRequest = { spaceId: string };
|
|
576
|
+
export type InspectSpaceResponse = {
|
|
577
|
+
spaceId: string;
|
|
578
|
+
metadata: { createdAt: string; identityKey?: string; status?: 'active' | 'deleting' } | null;
|
|
579
|
+
members: {
|
|
580
|
+
count: number;
|
|
581
|
+
list: { identityKey: string; role?: string; agentKey?: string }[];
|
|
582
|
+
};
|
|
583
|
+
controlFeeds: {
|
|
584
|
+
replicationProgress: { [feedKey: string]: { replicated: number; processed: number } };
|
|
585
|
+
};
|
|
586
|
+
echo: {
|
|
587
|
+
dataFeeds: {
|
|
588
|
+
count: number;
|
|
589
|
+
totalBlocks: number;
|
|
590
|
+
byNamespace: { namespace: string; feeds: { feedId: string; blockCount: number }[] }[];
|
|
591
|
+
};
|
|
592
|
+
documentCount: number;
|
|
593
|
+
objectCount: number;
|
|
594
|
+
deletedObjectCount: number;
|
|
595
|
+
indexedDocumentCount: number;
|
|
596
|
+
objectsByType: { typeURI: string; count: number }[];
|
|
597
|
+
indexerStatus: {
|
|
598
|
+
indexingInProgress: boolean;
|
|
599
|
+
cursors: { indexName: string; sourceName: string; resourceId: string | null; cursor: string | number }[];
|
|
600
|
+
totalChanges: number;
|
|
601
|
+
};
|
|
602
|
+
};
|
|
603
|
+
usageInLast30Days: {
|
|
604
|
+
lastActivity: string | null;
|
|
605
|
+
wsEvents: number;
|
|
606
|
+
httpEvents: number;
|
|
607
|
+
totalEvents: number;
|
|
608
|
+
} | null;
|
|
609
|
+
durableObjects: { type: string; doId: string }[];
|
|
610
|
+
};
|
|
611
|
+
|
|
612
|
+
export type InspectIdentityRequest = { identityKey: string };
|
|
613
|
+
export type InspectIdentityResponse = {
|
|
614
|
+
identityKey: string;
|
|
615
|
+
agentKey: string | null;
|
|
616
|
+
haloSpaceId: string | null;
|
|
617
|
+
hasRecovery: boolean;
|
|
618
|
+
routerDoId: string;
|
|
619
|
+
agentDoId: string | null;
|
|
620
|
+
ownedFunctions: { id: string; name: string; versionCount: number }[];
|
|
621
|
+
spaces: InspectSpaceResponse[];
|
|
622
|
+
};
|
|
623
|
+
|
|
624
|
+
/** Matches the SerializedSpace format from @dxos/echo-client, extended with spaceId. */
|
|
625
|
+
export type SpaceExportPayload = {
|
|
626
|
+
version: number;
|
|
627
|
+
timestamp: string;
|
|
628
|
+
spaceId: string;
|
|
629
|
+
objects: Record<string, unknown>[];
|
|
630
|
+
};
|
|
631
|
+
|
|
632
|
+
export type SpaceActivityEntry = {
|
|
633
|
+
spaceId: string;
|
|
634
|
+
lastActivity: string;
|
|
635
|
+
totalEvents: number;
|
|
636
|
+
metadata: { createdAt: string; identityKey?: string; status?: 'active' | 'deleting' } | null;
|
|
637
|
+
};
|
|
638
|
+
|
|
639
|
+
export type SpaceExportResult = {
|
|
640
|
+
spaceId: string;
|
|
641
|
+
downloadPath: string;
|
|
642
|
+
downloadUrl: string;
|
|
643
|
+
expiresAt: string;
|
|
644
|
+
objectCount: number;
|
|
645
|
+
sizeBytes: number;
|
|
646
|
+
};
|
|
647
|
+
|
|
648
|
+
export type ExportSpaceRequest = { spaceId: string; origin: string };
|
|
649
|
+
|
|
650
|
+
export type DeleteSpaceRequest = { spaceId: string };
|
|
651
|
+
export type DeleteSpaceResponse = { status: string; spaceId: string };
|
|
652
|
+
|
|
653
|
+
export type DeleteIdentityRequest = { identityKey: string };
|
|
654
|
+
export type DeleteIdentityResponse = { status: string; identityKey: string };
|
|
655
|
+
|
|
656
|
+
//
|
|
657
|
+
// Account / Invitation
|
|
658
|
+
//
|
|
659
|
+
|
|
660
|
+
export const INVITATION_CODE_LENGTH = 8;
|
|
661
|
+
export const DEFAULT_INVITATIONS_PER_ACCOUNT = 5;
|
|
662
|
+
|
|
663
|
+
/** Crockford base32 alphabet (no I, L, O, U). Case-insensitive on the wire. */
|
|
664
|
+
export const INVITATION_CODE_ALPHABET = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';
|
|
665
|
+
|
|
666
|
+
export const InvitationCodeSchema = Schema.String.pipe(
|
|
667
|
+
Schema.pattern(new RegExp(`^[${INVITATION_CODE_ALPHABET}]{${INVITATION_CODE_LENGTH}}$`)),
|
|
668
|
+
);
|
|
669
|
+
|
|
670
|
+
export const CheckEmailExistsRequestSchema = Schema.Struct({
|
|
671
|
+
email: Schema.String,
|
|
672
|
+
});
|
|
673
|
+
export type CheckEmailExistsRequest = Schema.Schema.Type<typeof CheckEmailExistsRequestSchema>;
|
|
674
|
+
export type CheckEmailExistsResponse = { exists: boolean };
|
|
675
|
+
|
|
676
|
+
export const ValidateInvitationCodeRequestSchema = Schema.Struct({
|
|
677
|
+
code: InvitationCodeSchema,
|
|
678
|
+
});
|
|
679
|
+
export type ValidateInvitationCodeRequest = Schema.Schema.Type<typeof ValidateInvitationCodeRequestSchema>;
|
|
680
|
+
export type ValidateInvitationCodeResponse = { valid: boolean };
|
|
681
|
+
|
|
682
|
+
/**
|
|
683
|
+
* Body of `POST /account/login`. Existing-account email recovery only --
|
|
684
|
+
* unlike `/account/signup`, this never creates new identities or waitlist rows.
|
|
685
|
+
*/
|
|
686
|
+
export const LoginRequestSchema = Schema.Struct({
|
|
687
|
+
email: Schema.String,
|
|
688
|
+
identityDid: Schema.optional(Schema.String),
|
|
689
|
+
identityKey: Schema.optional(Schema.String),
|
|
690
|
+
});
|
|
691
|
+
export type LoginRequest = Schema.Schema.Type<typeof LoginRequestSchema>;
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* Response from `POST /account/login`. The shape is identical regardless of
|
|
695
|
+
* whether the email is registered, so the endpoint is safe against enumeration.
|
|
696
|
+
* Regular emails are delivered out-of-band and the response is `{}`.
|
|
697
|
+
*/
|
|
698
|
+
export const LoginResponseSchema = Schema.Struct({
|
|
699
|
+
token: Schema.optional(Schema.String),
|
|
700
|
+
needsIdentity: Schema.optional(Schema.Boolean),
|
|
701
|
+
admitted: Schema.optional(Schema.Boolean),
|
|
702
|
+
});
|
|
703
|
+
export type LoginResponse = Schema.Schema.Type<typeof LoginResponseSchema>;
|
|
704
|
+
|
|
705
|
+
// Two-step signup: invitation code + identity DID + email.
|
|
706
|
+
export const RedeemInvitationCodeRequestSchema = Schema.Struct({
|
|
707
|
+
code: Schema.optional(InvitationCodeSchema),
|
|
708
|
+
identityDid: Schema.optional(Schema.String),
|
|
709
|
+
/** Raw hex public key, stored alongside the DID for the magic-link recovery flow. */
|
|
710
|
+
identityKey: Schema.optional(Schema.String),
|
|
711
|
+
email: Schema.String,
|
|
712
|
+
});
|
|
713
|
+
export type RedeemInvitationCodeRequest = Schema.Schema.Type<typeof RedeemInvitationCodeRequestSchema>;
|
|
714
|
+
export type RedeemInvitationCodeResponse =
|
|
715
|
+
| { accountId: string; emailVerificationSent: boolean }
|
|
716
|
+
| { needsIdentity: true };
|
|
717
|
+
|
|
718
|
+
export const GetAccountResponseSchema = Schema.Struct({
|
|
719
|
+
identityDid: Schema.String,
|
|
720
|
+
email: Schema.String,
|
|
721
|
+
emailVerified: Schema.Boolean,
|
|
722
|
+
/** ISO timestamp. */
|
|
723
|
+
createdAt: Schema.String,
|
|
724
|
+
invitationsRemaining: Schema.Number,
|
|
725
|
+
});
|
|
726
|
+
export type GetAccountResponse = Schema.Schema.Type<typeof GetAccountResponseSchema>;
|
|
727
|
+
|
|
728
|
+
export const AccountInvitationSchema = Schema.Struct({
|
|
729
|
+
code: Schema.String,
|
|
730
|
+
/** ISO timestamp. */
|
|
731
|
+
createdAt: Schema.String,
|
|
732
|
+
redeemedByIdentityDid: Schema.optional(Schema.String),
|
|
733
|
+
/** ISO timestamp. */
|
|
734
|
+
redeemedAt: Schema.optional(Schema.String),
|
|
735
|
+
});
|
|
736
|
+
export type AccountInvitation = Schema.Schema.Type<typeof AccountInvitationSchema>;
|
|
737
|
+
|
|
738
|
+
export const ListAccountInvitationsResponseSchema = Schema.Struct({
|
|
739
|
+
invitations: Schema.Array(AccountInvitationSchema),
|
|
740
|
+
});
|
|
741
|
+
export type ListAccountInvitationsResponse = Schema.Schema.Type<typeof ListAccountInvitationsResponseSchema>;
|
|
742
|
+
|
|
743
|
+
export type IssueInvitationResponse = { code: string };
|
|
744
|
+
|
|
745
|
+
export type ResendVerificationEmailResponse = {
|
|
746
|
+
sent: boolean;
|
|
747
|
+
cooldownSecondsRemaining?: number;
|
|
748
|
+
};
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* Submitted by users without an Account who want to request access. Captured
|
|
752
|
+
* by Hub for admin follow-up (e.g. mailing list, Discord notification).
|
|
753
|
+
*/
|
|
754
|
+
export const RequestAccessRequestSchema = Schema.Struct({
|
|
755
|
+
email: Schema.String,
|
|
756
|
+
/** Optional: identity DID the user is currently signed in as. */
|
|
757
|
+
identityDid: Schema.optional(Schema.String),
|
|
758
|
+
/** Optional free-form message from the requester. */
|
|
759
|
+
message: Schema.optional(Schema.String),
|
|
760
|
+
});
|
|
761
|
+
export type RequestAccessRequest = Schema.Schema.Type<typeof RequestAccessRequestSchema>;
|
|
762
|
+
export type RequestAccessResponse = { received: boolean };
|
|
763
|
+
|
|
764
|
+
//
|
|
765
|
+
// Admin (X-API-KEY)
|
|
766
|
+
//
|
|
767
|
+
|
|
768
|
+
export type AdminListAccountsResponse = {
|
|
769
|
+
accounts: GetAccountResponse[];
|
|
770
|
+
};
|
|
771
|
+
|
|
772
|
+
export const AdminGrantInvitationsRequestSchema = Schema.Struct({
|
|
773
|
+
identityDid: Schema.String,
|
|
774
|
+
count: Schema.Number,
|
|
775
|
+
});
|
|
776
|
+
export type AdminGrantInvitationsRequest = Schema.Schema.Type<typeof AdminGrantInvitationsRequestSchema>;
|
|
777
|
+
|
|
778
|
+
export const AdminCreateInvitationCodesRequestSchema = Schema.Struct({
|
|
779
|
+
count: Schema.Number,
|
|
780
|
+
note: Schema.optional(Schema.String),
|
|
781
|
+
});
|
|
782
|
+
export type AdminCreateInvitationCodesRequest = Schema.Schema.Type<typeof AdminCreateInvitationCodesRequestSchema>;
|
|
783
|
+
export type AdminCreateInvitationCodesResponse = { codes: string[] };
|
|
784
|
+
|
|
785
|
+
export type AdminListInvitationCodesResponse = {
|
|
786
|
+
codes: Array<{
|
|
787
|
+
code: string;
|
|
788
|
+
/** ISO timestamp. */
|
|
789
|
+
createdAt: string;
|
|
790
|
+
note?: string;
|
|
791
|
+
issuedByIdentityDid?: string;
|
|
792
|
+
redeemedByIdentityDid?: string;
|
|
793
|
+
/** ISO timestamp. */
|
|
794
|
+
redeemedAt?: string;
|
|
795
|
+
/** ISO timestamp. Set when revoked. */
|
|
796
|
+
revokedAt?: string;
|
|
797
|
+
}>;
|
|
798
|
+
};
|
|
799
|
+
|
|
800
|
+
export const AdminRevokeInvitationCodeRequestSchema = Schema.Struct({
|
|
801
|
+
code: InvitationCodeSchema,
|
|
802
|
+
});
|
|
803
|
+
export type AdminRevokeInvitationCodeRequest = Schema.Schema.Type<typeof AdminRevokeInvitationCodeRequestSchema>;
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Account/invitation-related variants placed in `EdgeFailure.data.type`.
|
|
807
|
+
* EdgeErrorData is open-ended; these are documentation for known values.
|
|
808
|
+
*/
|
|
809
|
+
export type AccountErrorType =
|
|
810
|
+
| 'invitation_code_invalid'
|
|
811
|
+
| 'invitation_code_already_redeemed'
|
|
812
|
+
| 'invitation_code_revoked'
|
|
813
|
+
| 'email_already_registered'
|
|
814
|
+
| 'identity_already_associated'
|
|
815
|
+
| 'no_invitations_remaining'
|
|
816
|
+
| 'identity_not_associated_with_account'
|
|
817
|
+
| 'no_account'
|
|
818
|
+
| 'rate_limited';
|