@zlink-systems/framework 0.30.1 → 0.30.2
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/dist/.tsbuildinfo +1 -1
- package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +6 -0
- package/dist/contracts/Common/ZLinkEncodedPayload.js +18 -3
- package/dist/contracts/Common/encoded-payload-storage.d.ts +1 -1
- package/dist/contracts/Common/encoded-payload-storage.js +5 -2
- package/dist/contracts/Configuration/Builders.d.ts +1 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +2 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +5 -1
- package/dist/contracts/Configuration/RegistrationBuilders.js +2 -2
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +2 -2
- package/dist/contracts/Locations/Rows.d.ts +2 -0
- package/dist/contracts/Spots/Contracts.d.ts +4 -0
- package/dist/contracts/Spots/ZLinkSpot.d.ts +3 -3
- package/dist/runtime/abort.d.ts +5 -0
- package/dist/runtime/abort.js +10 -0
- package/dist/runtime/actors/actor-authority-publication.js +3 -2
- package/dist/runtime/actors/actor-client.d.ts +0 -1
- package/dist/runtime/actors/actor-client.js +38 -45
- package/dist/runtime/actors/actor-context.d.ts +2 -0
- package/dist/runtime/actors/actor-context.js +46 -9
- package/dist/runtime/actors/actor-handoff.d.ts +7 -3
- package/dist/runtime/actors/actor-handoff.js +212 -88
- package/dist/runtime/actors/actor-join-relocation.d.ts +2 -0
- package/dist/runtime/actors/actor-local-native-join.js +4 -0
- package/dist/runtime/actors/actor-mailbox.js +27 -1
- package/dist/runtime/actors/actor-remote-joiner.js +3 -1
- package/dist/runtime/actors/actor-reply.d.ts +4 -0
- package/dist/runtime/actors/actor-reply.js +29 -0
- package/dist/runtime/actors/actor-runtime-contracts.d.ts +2 -0
- package/dist/runtime/actors/actor-runtime-state.js +2 -20
- package/dist/runtime/actors/actor-source-transfer.d.ts +1 -17
- package/dist/runtime/actors/index.d.ts +6 -2
- package/dist/runtime/actors/index.js +37 -21
- package/dist/runtime/actors/session-disconnected-wire.d.ts +8 -0
- package/dist/runtime/actors/session-disconnected-wire.js +48 -0
- package/dist/runtime/admission.d.ts +9 -1
- package/dist/runtime/admission.js +55 -32
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +13 -0
- package/dist/runtime/application-jobs/application-job-queue-scope.js +27 -1
- package/dist/runtime/application-jobs/contracts.d.ts +2 -0
- package/dist/runtime/backend/contracts/index.d.ts +19 -3
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +2 -2
- package/dist/runtime/backend/mesh-completion-table.js +5 -0
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +26 -2
- package/dist/runtime/backend/mesh-dispatch-pump.js +193 -107
- package/dist/runtime/backend/node/node-raw-binding-port.js +90 -58
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +33 -8
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +142 -143
- package/dist/runtime/backend/node/node-socket-backend-adapter.d.ts +1 -1
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +5 -5
- package/dist/runtime/channels/channel-clients.d.ts +1 -0
- package/dist/runtime/channels/channel-clients.js +20 -5
- package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +22 -3
- package/dist/runtime/channels/channel-dispatch-pipeline.js +103 -57
- package/dist/runtime/channels/channel-dispatchers.d.ts +3 -2
- package/dist/runtime/channels/channel-dispatchers.js +44 -37
- package/dist/runtime/channels/channel-envelope.d.ts +1 -0
- package/dist/runtime/channels/channel-envelope.js +74 -31
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +4 -3
- package/dist/runtime/channels/channel-runtime-lifecycle.js +19 -24
- package/dist/runtime/channels/channel-runtime-manager.d.ts +3 -2
- package/dist/runtime/channels/channel-runtime-manager.js +4 -4
- package/dist/runtime/channels/channel-transports.d.ts +0 -1
- package/dist/runtime/channels/channel-transports.js +35 -33
- package/dist/runtime/channels/client-server-location-runtime.js +5 -4
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +2 -1
- package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
- package/dist/runtime/channels/fanout-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/fanout-location-runtime.js +3 -3
- package/dist/runtime/diagnostics/flow-context.js +19 -7
- package/dist/runtime/diagnostics/index.js +4 -9
- package/dist/runtime/diagnostics/message-flow.d.ts +8 -0
- package/dist/runtime/diagnostics/message-flow.js +35 -5
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +2 -2
- package/dist/runtime/diagnostics/runtime-metrics.js +10 -8
- package/dist/runtime/execution/index.d.ts +4 -2
- package/dist/runtime/execution/index.js +33 -10
- package/dist/runtime/execution/serial-execution-queue.d.ts +4 -0
- package/dist/runtime/execution/serial-execution-queue.js +21 -2
- package/dist/runtime/execution/state-lane.d.ts +2 -0
- package/dist/runtime/execution/state-lane.js +5 -0
- package/dist/runtime/foundation/operation-registry.d.ts +25 -1
- package/dist/runtime/foundation/operation-registry.js +86 -18
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +39 -3
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +151 -55
- package/dist/runtime/foundation/service-liveness-registry.d.ts +12 -1
- package/dist/runtime/foundation/service-liveness-registry.js +38 -0
- package/dist/runtime/foundation/service-mailbox.d.ts +7 -0
- package/dist/runtime/foundation/service-maintenance-runtime.js +1 -6
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +2 -3
- package/dist/runtime/foundation/service-relocation-object-owner.js +48 -35
- package/dist/runtime/foundation/service-relocation-runtime.js +7 -3
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +8 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +2 -1
- package/dist/runtime/foundation/service-stateful-registry.d.ts +5 -4
- package/dist/runtime/foundation/service-stateful-registry.js +24 -26
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +72 -6
- package/dist/runtime/foundation/service-stateful-runtime.js +444 -117
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +14 -1
- package/dist/runtime/foundation/service-stateful-wire-codec.js +48 -27
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +6 -1
- package/dist/runtime/foundation/service-wire-binary-primitives.js +27 -11
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +1 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +10 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +166 -53
- package/dist/runtime/host/actor-packet-relay.d.ts +6 -4
- package/dist/runtime/host/actor-packet-relay.js +59 -72
- package/dist/runtime/host/actor-placement-coordinator.js +25 -8
- package/dist/runtime/host/actor-transfer-runtime.d.ts +7 -31
- package/dist/runtime/host/actor-transfer-runtime.js +85 -331
- package/dist/runtime/host/application-job-queue.d.ts +24 -3
- package/dist/runtime/host/application-job-queue.js +28 -41
- package/dist/runtime/host/index.d.ts +5 -1
- package/dist/runtime/host/index.js +171 -97
- package/dist/runtime/host/location-runtime-owner.js +2 -6
- package/dist/runtime/host/mesh-router-resolver.d.ts +4 -0
- package/dist/runtime/host/mesh-router-resolver.js +14 -6
- package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -4
- package/dist/runtime/host/remote-bound-session-relay.js +71 -190
- package/dist/runtime/host/route-mesh-runtime.d.ts +2 -2
- package/dist/runtime/host/route-mesh-runtime.js +5 -3
- package/dist/runtime/host/runtime-shutdown.d.ts +1 -0
- package/dist/runtime/host/runtime-shutdown.js +3 -2
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +17 -7
- package/dist/runtime/host/service-relocation-host-runtime.js +550 -367
- package/dist/runtime/host/spot-runtime-options-factory.js +15 -7
- package/dist/runtime/host/user-spot-creation-coordinator.js +33 -84
- package/dist/runtime/locations/auto-connect-loop.d.ts +2 -0
- package/dist/runtime/locations/auto-connect-loop.js +22 -14
- package/dist/runtime/locations/auto-connect-reconciler.js +0 -6
- package/dist/runtime/locations/auto-connect-types.d.ts +0 -1
- package/dist/runtime/locations/descriptor-publication.d.ts +4 -0
- package/dist/runtime/locations/descriptor-publication.js +11 -0
- package/dist/runtime/locations/domain-store-contract.d.ts +1 -0
- package/dist/runtime/locations/in-memory-authority-store.d.ts +7 -1
- package/dist/runtime/locations/in-memory-authority-store.js +56 -19
- package/dist/runtime/locations/in-memory-location-store.js +1 -10
- package/dist/runtime/locations/index.d.ts +1 -0
- package/dist/runtime/locations/index.js +1 -0
- package/dist/runtime/locations/lease-tracker.js +1 -6
- package/dist/runtime/locations/location-store-repository.d.ts +51 -1
- package/dist/runtime/locations/location-store-repository.js +363 -139
- package/dist/runtime/locations/relocation-blob.d.ts +18 -1
- package/dist/runtime/locations/relocation-blob.js +52 -1
- package/dist/runtime/locations/request-source-resolver.d.ts +37 -0
- package/dist/runtime/locations/request-source-resolver.js +80 -0
- package/dist/runtime/locations/resolvers.js +1 -1
- package/dist/runtime/locations/runtime.d.ts +6 -2
- package/dist/runtime/locations/runtime.js +37 -30
- package/dist/runtime/messaging/payload-codec.d.ts +7 -1
- package/dist/runtime/messaging/payload-codec.js +7 -6
- package/dist/runtime/messaging/request-result.js +29 -26
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +19 -1
- package/dist/runtime/protocol/service_wire_codec.generated.js +85 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +7 -1
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +23 -7
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +3 -2
- package/dist/runtime/spots/index.d.ts +18 -11
- package/dist/runtime/spots/index.js +234 -176
- package/dist/runtime/spots/spot-activation-registry.d.ts +4 -2
- package/dist/runtime/spots/spot-activation-registry.js +21 -11
- package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
- package/dist/runtime/spots/spot-activation-state.js +7 -7
- package/dist/runtime/spots/spot-activation.d.ts +6 -3
- package/dist/runtime/spots/spot-activation.js +123 -44
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -0
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +13 -22
- package/dist/runtime/spots/spot-actor-membership.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-membership.js +0 -8
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +33 -8
- package/dist/runtime/spots/spot-actor-packet-drain.js +5 -33
- package/dist/runtime/spots/spot-entry-activation.d.ts +2 -0
- package/dist/runtime/spots/spot-entry-activation.js +14 -9
- package/dist/runtime/spots/spot-handler-registry.d.ts +4 -3
- package/dist/runtime/spots/spot-handler-registry.js +6 -2
- package/dist/runtime/spots/spot-manager-internal-contracts.d.ts +2 -2
- package/dist/runtime/spots/spot-manager-public.js +2 -2
- package/dist/runtime/spots/spot-node-autoconnect.d.ts +2 -1
- package/dist/runtime/spots/spot-node-autoconnect.js +18 -39
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -2
- package/dist/runtime/spots/spot-node-runtime-manager.js +115 -50
- package/dist/runtime/spots/spot-outbound.js +3 -3
- package/dist/runtime/spots/spot-remote-codec.js +5 -1
- package/dist/runtime/spots/spot-runtime-ports.d.ts +0 -1
- package/dist/runtime/spots/spot-serial-executor.d.ts +10 -0
- package/dist/runtime/spots/spot-serial-executor.js +61 -8
- package/dist/runtime/spots/spot-serial-turn-executor.js +19 -2
- package/dist/runtime/spots/spot-subscription-dispatch.js +1 -1
- package/dist/runtime/spots/spot-timer.d.ts +57 -5
- package/dist/runtime/spots/spot-timer.js +287 -103
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +42 -11
- package/dist/runtime/streams/actor-session-binding-registry.js +165 -48
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +8 -4
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +2 -1
- package/dist/runtime/streams/bound-actor-relay-sender.js +15 -8
- package/dist/runtime/streams/bound-session-service.d.ts +1 -1
- package/dist/runtime/streams/bound-session-service.js +6 -11
- package/dist/runtime/streams/index.d.ts +3 -2
- package/dist/runtime/streams/index.js +6 -4
- package/dist/runtime/streams/managed-stream.js +3 -2
- package/dist/runtime/streams/native-fallback-bound-session.js +8 -73
- package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -8
- package/dist/runtime/streams/session-actor-coordinator.js +15 -32
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +3 -10
- package/dist/runtime/streams/stream-session-runtime.js +1 -4
- package/dist/runtime/workers/index.js +1 -1
- package/package.json +3 -3
- package/src/contracts/Common/ZLinkEncodedPayload.ts +24 -4
- package/src/contracts/Common/encoded-payload-storage.ts +6 -3
- package/src/contracts/Configuration/Builders.ts +4 -1
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +7 -2
- package/src/contracts/Configuration/RegistrationBuilders.ts +6 -2
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -1
- package/src/contracts/Locations/Rows.ts +2 -0
- package/src/contracts/Spots/Contracts.ts +8 -0
- package/src/contracts/Spots/ZLinkSpot.ts +3 -3
- package/src/runtime/abort.ts +12 -0
- package/src/runtime/actors/actor-authority-publication.ts +3 -2
- package/src/runtime/actors/actor-client.ts +61 -70
- package/src/runtime/actors/actor-context.ts +49 -9
- package/src/runtime/actors/actor-handoff.ts +282 -106
- package/src/runtime/actors/actor-join-relocation.ts +2 -0
- package/src/runtime/actors/actor-local-native-join.ts +4 -0
- package/src/runtime/actors/actor-mailbox.ts +40 -2
- package/src/runtime/actors/actor-remote-joiner.ts +6 -1
- package/src/runtime/actors/actor-reply.ts +42 -0
- package/src/runtime/actors/actor-runtime-contracts.ts +2 -0
- package/src/runtime/actors/actor-runtime-state.ts +2 -20
- package/src/runtime/actors/actor-source-transfer.ts +1 -34
- package/src/runtime/actors/index.ts +41 -27
- package/src/runtime/actors/session-disconnected-wire.ts +66 -0
- package/src/runtime/admission.ts +69 -34
- package/src/runtime/application-jobs/application-job-queue-scope.ts +33 -1
- package/src/runtime/application-jobs/contracts.ts +2 -0
- package/src/runtime/backend/contracts/index.ts +39 -4
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +5 -3
- package/src/runtime/backend/mesh-completion-table.ts +4 -0
- package/src/runtime/backend/mesh-dispatch-pump.ts +223 -124
- package/src/runtime/backend/node/node-raw-binding-port.ts +106 -70
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +221 -170
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -5
- package/src/runtime/channels/channel-clients.ts +49 -24
- package/src/runtime/channels/channel-dispatch-pipeline.ts +173 -124
- package/src/runtime/channels/channel-dispatchers.ts +116 -72
- package/src/runtime/channels/channel-envelope.ts +105 -36
- package/src/runtime/channels/channel-runtime-lifecycle.ts +13 -13
- package/src/runtime/channels/channel-runtime-manager.ts +12 -5
- package/src/runtime/channels/channel-transports.ts +49 -58
- package/src/runtime/channels/client-server-location-runtime.ts +11 -10
- package/src/runtime/channels/dispatch-error-reporter.ts +4 -2
- package/src/runtime/channels/fanout-location-runtime.ts +17 -9
- package/src/runtime/diagnostics/flow-context.ts +20 -7
- package/src/runtime/diagnostics/index.ts +1 -7
- package/src/runtime/diagnostics/message-flow.ts +47 -9
- package/src/runtime/diagnostics/runtime-metrics.ts +12 -10
- package/src/runtime/execution/index.ts +40 -14
- package/src/runtime/execution/serial-execution-queue.ts +31 -4
- package/src/runtime/execution/state-lane.ts +7 -0
- package/src/runtime/foundation/operation-registry.ts +98 -20
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +244 -67
- package/src/runtime/foundation/service-liveness-registry.ts +39 -0
- package/src/runtime/foundation/service-mailbox.ts +8 -0
- package/src/runtime/foundation/service-maintenance-runtime.ts +1 -8
- package/src/runtime/foundation/service-relocation-object-owner.ts +54 -37
- package/src/runtime/foundation/service-relocation-runtime.ts +7 -3
- package/src/runtime/foundation/service-runtime-contracts.ts +12 -1
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -1
- package/src/runtime/foundation/service-stateful-registry.ts +38 -35
- package/src/runtime/foundation/service-stateful-runtime.ts +667 -152
- package/src/runtime/foundation/service-stateful-wire-codec.ts +49 -11
- package/src/runtime/foundation/service-wire-binary-primitives.ts +35 -12
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +187 -51
- package/src/runtime/host/actor-packet-relay.ts +113 -94
- package/src/runtime/host/actor-placement-coordinator.ts +31 -8
- package/src/runtime/host/actor-transfer-runtime.ts +104 -430
- package/src/runtime/host/application-job-queue.ts +29 -44
- package/src/runtime/host/index.ts +286 -129
- package/src/runtime/host/location-runtime-owner.ts +2 -6
- package/src/runtime/host/mesh-router-resolver.ts +13 -5
- package/src/runtime/host/remote-bound-session-relay.ts +86 -248
- package/src/runtime/host/route-mesh-runtime.ts +11 -5
- package/src/runtime/host/runtime-shutdown.ts +15 -4
- package/src/runtime/host/service-relocation-host-runtime.ts +784 -475
- package/src/runtime/host/spot-runtime-options-factory.ts +18 -7
- package/src/runtime/host/user-spot-creation-coordinator.ts +41 -100
- package/src/runtime/locations/auto-connect-loop.ts +22 -14
- package/src/runtime/locations/auto-connect-reconciler.ts +0 -6
- package/src/runtime/locations/auto-connect-types.ts +0 -1
- package/src/runtime/locations/descriptor-publication.ts +7 -0
- package/src/runtime/locations/domain-store-contract.ts +5 -0
- package/src/runtime/locations/in-memory-authority-store.ts +85 -23
- package/src/runtime/locations/in-memory-location-store.ts +1 -12
- package/src/runtime/locations/index.ts +1 -0
- package/src/runtime/locations/lease-tracker.ts +2 -9
- package/src/runtime/locations/location-store-repository.ts +628 -152
- package/src/runtime/locations/relocation-blob.ts +75 -1
- package/src/runtime/locations/request-source-resolver.ts +138 -0
- package/src/runtime/locations/resolvers.ts +2 -2
- package/src/runtime/locations/runtime.ts +70 -40
- package/src/runtime/messaging/payload-codec.ts +8 -11
- package/src/runtime/messaging/request-result.ts +33 -29
- package/src/runtime/protocol/service_wire_codec.generated.ts +87 -4
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +13 -10
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +3 -2
- package/src/runtime/spots/index.ts +375 -281
- package/src/runtime/spots/spot-activation-registry.ts +25 -13
- package/src/runtime/spots/spot-activation-state.ts +12 -19
- package/src/runtime/spots/spot-activation.ts +170 -86
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +25 -55
- package/src/runtime/spots/spot-actor-membership.ts +0 -15
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +56 -11
- package/src/runtime/spots/spot-actor-packet-drain.ts +9 -52
- package/src/runtime/spots/spot-entry-activation.ts +24 -19
- package/src/runtime/spots/spot-handler-registry.ts +15 -4
- package/src/runtime/spots/spot-manager-internal-contracts.ts +2 -2
- package/src/runtime/spots/spot-manager-public.ts +2 -2
- package/src/runtime/spots/spot-node-autoconnect.ts +22 -45
- package/src/runtime/spots/spot-node-runtime-manager.ts +197 -67
- package/src/runtime/spots/spot-outbound.ts +3 -3
- package/src/runtime/spots/spot-remote-codec.ts +9 -2
- package/src/runtime/spots/spot-runtime-ports.ts +0 -1
- package/src/runtime/spots/spot-serial-executor.ts +97 -25
- package/src/runtime/spots/spot-serial-turn-executor.ts +22 -3
- package/src/runtime/spots/spot-subscription-dispatch.ts +1 -1
- package/src/runtime/spots/spot-timer.ts +413 -157
- package/src/runtime/streams/actor-session-binding-registry.ts +236 -64
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +16 -8
- package/src/runtime/streams/bound-actor-relay-sender.ts +23 -9
- package/src/runtime/streams/bound-session-service.ts +7 -10
- package/src/runtime/streams/index.ts +12 -6
- package/src/runtime/streams/managed-stream.ts +4 -2
- package/src/runtime/streams/native-fallback-bound-session.ts +14 -103
- package/src/runtime/streams/session-actor-coordinator.ts +39 -88
- package/src/runtime/streams/stream-binding-runtime-ports.ts +3 -9
- package/src/runtime/streams/stream-session-runtime.ts +1 -5
- package/src/runtime/workers/index.ts +1 -1
|
@@ -4,6 +4,7 @@ exports.ZLinkNodeRawBindingPort = void 0;
|
|
|
4
4
|
const zlink_1 = require("@zlink-systems/zlink");
|
|
5
5
|
const node_backend_adapter_support_1 = require("./node-backend-adapter-support");
|
|
6
6
|
const node_socket_backend_adapter_1 = require("./node-socket-backend-adapter");
|
|
7
|
+
const runtime_values_1 = require("../runtime-values");
|
|
7
8
|
const node_event_loop_poller_1 = require("./node-event-loop-poller");
|
|
8
9
|
const runtime_message_1 = require("../runtime-message");
|
|
9
10
|
class ZLinkNodeRawBindingPort {
|
|
@@ -183,7 +184,9 @@ class NodeRawRouterPort extends NodeRawSocketPort {
|
|
|
183
184
|
return current;
|
|
184
185
|
};
|
|
185
186
|
replyParts = (targetRid, replyToken, parts) => {
|
|
186
|
-
|
|
187
|
+
// The receive record keeps the binding RoutingId it was delivered with,
|
|
188
|
+
// so the reply addresses that route without rebuilding the identity.
|
|
189
|
+
appendReplyParts(this.socket.reply(targetRid, replyToken), parts).submit();
|
|
187
190
|
};
|
|
188
191
|
preparedRoutingId(routingId) {
|
|
189
192
|
if (typeof routingId !== 'string')
|
|
@@ -207,7 +210,7 @@ class NodeRawRouterPort extends NodeRawSocketPort {
|
|
|
207
210
|
}
|
|
208
211
|
disconnectRid(routingId) {
|
|
209
212
|
this.requireOpen();
|
|
210
|
-
this.socket
|
|
213
|
+
(0, node_socket_backend_adapter_1.disconnectSocketPeer)(this.socket, this.preparedRoutingId(routingId));
|
|
211
214
|
}
|
|
212
215
|
constructor(socket, receiveTimeoutMs) {
|
|
213
216
|
super(socket, true);
|
|
@@ -241,25 +244,19 @@ class NodeRawRouterPort extends NodeRawSocketPort {
|
|
|
241
244
|
requireParts(parts);
|
|
242
245
|
return (0, node_backend_adapter_support_1.submitBindingSend)(this.socket.send(this.preparedRoutingId(targetRid)), parts);
|
|
243
246
|
}
|
|
244
|
-
|
|
245
|
-
this.requireOpen();
|
|
246
|
-
const deadlineMs = performance.now() + timeoutMs;
|
|
247
|
+
request(targetRid, parts, timeoutMs, recordReceived, onAdmitted) {
|
|
247
248
|
let submission;
|
|
249
|
+
const deadlineMs = performance.now() + timeoutMs;
|
|
248
250
|
try {
|
|
251
|
+
this.requireOpen();
|
|
249
252
|
submission = appendRequestParts(this.socket.request(this.preparedRoutingId(targetRid)), parts)
|
|
250
253
|
.timeout(timeoutMs)
|
|
251
254
|
.submit();
|
|
252
255
|
}
|
|
253
256
|
catch (error) {
|
|
254
|
-
|
|
255
|
-
}
|
|
256
|
-
try {
|
|
257
|
-
const replies = await (0, node_backend_adapter_support_1.bindingRequestReply)(submission, deadlineMs, recordReceived, onAdmitted);
|
|
258
|
-
return retainAndClose(replies);
|
|
259
|
-
}
|
|
260
|
-
catch (error) {
|
|
261
|
-
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error, 'completion');
|
|
257
|
+
return Promise.reject((0, node_backend_adapter_support_1.translateBindingResultError)(error, 'submit'));
|
|
262
258
|
}
|
|
259
|
+
return requestReply(submission, deadlineMs, recordReceived, onAdmitted);
|
|
263
260
|
}
|
|
264
261
|
routesSnapshot() {
|
|
265
262
|
this.requireOpen();
|
|
@@ -286,23 +283,17 @@ class NodeRawDealerPort extends NodeRawSocketPort {
|
|
|
286
283
|
requireParts(parts);
|
|
287
284
|
return (0, node_backend_adapter_support_1.submitBindingAsyncSend)(this.socket.send(), parts);
|
|
288
285
|
}
|
|
289
|
-
|
|
290
|
-
this.requireOpen();
|
|
291
|
-
const deadlineMs = performance.now() + timeoutMs;
|
|
286
|
+
request(parts, timeoutMs, onAdmitted) {
|
|
292
287
|
let submission;
|
|
288
|
+
const deadlineMs = performance.now() + timeoutMs;
|
|
293
289
|
try {
|
|
290
|
+
this.requireOpen();
|
|
294
291
|
submission = appendRequestParts(this.socket.request(), parts).timeout(timeoutMs).submit();
|
|
295
292
|
}
|
|
296
293
|
catch (error) {
|
|
297
|
-
|
|
298
|
-
}
|
|
299
|
-
try {
|
|
300
|
-
const replies = await (0, node_backend_adapter_support_1.bindingRequestReply)(submission, deadlineMs, undefined, onAdmitted);
|
|
301
|
-
return retainAndClose(replies);
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error, 'completion');
|
|
294
|
+
return Promise.reject((0, node_backend_adapter_support_1.translateBindingResultError)(error, 'submit'));
|
|
305
295
|
}
|
|
296
|
+
return requestReply(submission, deadlineMs, undefined, onAdmitted);
|
|
306
297
|
}
|
|
307
298
|
receive(dontWait = false) {
|
|
308
299
|
this.requireOpen();
|
|
@@ -363,53 +354,94 @@ function requireParts(parts) {
|
|
|
363
354
|
throw new TypeError('Raw multipart operation requires at least one part.');
|
|
364
355
|
return parts;
|
|
365
356
|
}
|
|
357
|
+
const EMPTY_SOURCE_ROUTE = Buffer.alloc(0);
|
|
358
|
+
/**
|
|
359
|
+
* One received binding record. The payload Buffers are the binding's own
|
|
360
|
+
* `data()` storage, retained under the runtime payload policy instead of a
|
|
361
|
+
* second Framework copy; closing the record releases the binding handles.
|
|
362
|
+
*/
|
|
363
|
+
class NodeRawReceivedRecord {
|
|
364
|
+
received;
|
|
365
|
+
sourceRid;
|
|
366
|
+
sourceRoute;
|
|
367
|
+
routeGeneration;
|
|
368
|
+
requestSeq;
|
|
369
|
+
reply;
|
|
370
|
+
parts;
|
|
371
|
+
closed = false;
|
|
372
|
+
constructor(received, nextRequestSequence, reply) {
|
|
373
|
+
this.received = received;
|
|
374
|
+
const routingId = received.routingId;
|
|
375
|
+
this.sourceRid = routingId?.toString() ?? '';
|
|
376
|
+
this.sourceRoute = routingId?.toBytes() ?? EMPTY_SOURCE_ROUTE;
|
|
377
|
+
this.routeGeneration = received.routeGeneration;
|
|
378
|
+
const replyToken = received.replyToken;
|
|
379
|
+
if (replyToken !== null) {
|
|
380
|
+
this.requestSeq = nextRequestSequence?.();
|
|
381
|
+
if (reply === undefined) {
|
|
382
|
+
const operation = received.reply();
|
|
383
|
+
this.reply = (parts) => appendReplyParts(operation, parts).submit();
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
const target = routingId ?? bindingRoutingId(EMPTY_SOURCE_ROUTE);
|
|
387
|
+
this.reply = (parts) => reply(target, replyToken, parts);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
const parts = received.parts;
|
|
391
|
+
const retained = new Array(parts.length);
|
|
392
|
+
for (let index = 0; index < parts.length; index++)
|
|
393
|
+
retained[index] = runtime_message_1.ZLinkBufferMessage.retainPayload(parts[index]);
|
|
394
|
+
this.parts = retained;
|
|
395
|
+
}
|
|
396
|
+
close() {
|
|
397
|
+
if (this.closed)
|
|
398
|
+
return;
|
|
399
|
+
this.closed = true;
|
|
400
|
+
this.received.close();
|
|
401
|
+
}
|
|
402
|
+
}
|
|
366
403
|
function receiveRecord(socket, dontWait, nextRequestSequence, reply) {
|
|
367
404
|
const received = new zlink_1.Received();
|
|
368
405
|
if (!socket.recv(received, dontWait ? zlink_1.RecvFlags.DontWait : zlink_1.RecvFlags.None)) {
|
|
369
406
|
received.close();
|
|
370
407
|
return undefined;
|
|
371
408
|
}
|
|
372
|
-
let closed = false;
|
|
373
409
|
try {
|
|
374
|
-
|
|
375
|
-
const sourceRoute = received.routingId?.toBytes() ?? Buffer.alloc(0);
|
|
376
|
-
const requestSeq = received.replyToken === null ? undefined : nextRequestSequence?.();
|
|
377
|
-
const replyToken = received.replyToken;
|
|
378
|
-
const receivedReply = replyToken === null
|
|
379
|
-
? undefined
|
|
380
|
-
: reply === undefined
|
|
381
|
-
? received.reply()
|
|
382
|
-
: (parts) => reply(sourceRoute, replyToken, parts);
|
|
383
|
-
return {
|
|
384
|
-
sourceRid,
|
|
385
|
-
sourceRoute,
|
|
386
|
-
routeGeneration: received.routeGeneration,
|
|
387
|
-
...(requestSeq === undefined ? {} : { requestSeq }),
|
|
388
|
-
...(receivedReply === undefined
|
|
389
|
-
? {}
|
|
390
|
-
: {
|
|
391
|
-
reply: (parts) => {
|
|
392
|
-
if (typeof receivedReply === 'function') {
|
|
393
|
-
receivedReply(parts);
|
|
394
|
-
return;
|
|
395
|
-
}
|
|
396
|
-
appendReplyParts(receivedReply, parts).submit();
|
|
397
|
-
}
|
|
398
|
-
}),
|
|
399
|
-
parts: received.parts.map((part) => part.toBytes()),
|
|
400
|
-
close: () => {
|
|
401
|
-
if (closed)
|
|
402
|
-
return;
|
|
403
|
-
closed = true;
|
|
404
|
-
received.close();
|
|
405
|
-
}
|
|
406
|
-
};
|
|
410
|
+
return new NodeRawReceivedRecord(received, nextRequestSequence, reply);
|
|
407
411
|
}
|
|
408
412
|
catch (error) {
|
|
409
413
|
received.close();
|
|
410
414
|
throw error;
|
|
411
415
|
}
|
|
412
416
|
}
|
|
417
|
+
/**
|
|
418
|
+
* Continues once on the binding reply. Admission that completed at submit is
|
|
419
|
+
* confirmed in this turn; a backpressured submission keeps the admission
|
|
420
|
+
* wait that bounds it by the request deadline.
|
|
421
|
+
*/
|
|
422
|
+
function requestReply(submission, deadlineMs, recordReceived, onAdmitted) {
|
|
423
|
+
if (submission.result === runtime_values_1.SubmitResult.Backpressured) {
|
|
424
|
+
return (0, node_backend_adapter_support_1.bindingRequestReply)(submission, deadlineMs, recordReceived, onAdmitted).then(retainAndClose, rejectCompletion);
|
|
425
|
+
}
|
|
426
|
+
try {
|
|
427
|
+
onAdmitted?.();
|
|
428
|
+
}
|
|
429
|
+
catch (error) {
|
|
430
|
+
return Promise.reject((0, node_backend_adapter_support_1.translateBindingResultError)(error, 'completion'));
|
|
431
|
+
}
|
|
432
|
+
return submission.reply.then((replies) => {
|
|
433
|
+
try {
|
|
434
|
+
recordReceived?.();
|
|
435
|
+
return retainAndClose(replies);
|
|
436
|
+
}
|
|
437
|
+
catch (error) {
|
|
438
|
+
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error, 'completion');
|
|
439
|
+
}
|
|
440
|
+
}, rejectCompletion);
|
|
441
|
+
}
|
|
442
|
+
function rejectCompletion(error) {
|
|
443
|
+
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error, 'completion');
|
|
444
|
+
}
|
|
413
445
|
function retainAndClose(messages) {
|
|
414
446
|
try {
|
|
415
447
|
return messages.map((message) => runtime_message_1.ZLinkBufferMessage.retainPayload(message));
|
|
@@ -7,7 +7,7 @@ import { type RawServiceRequestResult } from '../../foundation/raw-service-mesh-
|
|
|
7
7
|
import type { ServiceInstanceActivationRecoveryEnvelope } from '../../foundation/service-instance-activation-recovery-codec';
|
|
8
8
|
import { type MeshOperationId, type MeshPeerEntry, type MeshPublisher, type ReadyBatch, type ReadyRecord, type ReceiveBatch, type ServiceSpot, type StreamSessionService, MeshNodeRuntimeState } from '../../foundation/service-runtime-contracts';
|
|
9
9
|
import type { ServiceActorRef, ServiceSpotState } from '../../foundation/service-stateful-registry';
|
|
10
|
-
import { type ServiceAsyncInstanceActivationAuthority, type ServiceInstanceApplicationLifecycle, type ServicePendingInstanceActivation, type ServiceSpotMessageFollowSeal, type ServiceUserSpotOperationHandler, type ServiceUserSpotOperationResult } from '../../foundation/service-stateful-runtime';
|
|
10
|
+
import { type ServiceAsyncInstanceActivationAuthority, type ServiceInstanceApplicationLifecycle, type ServicePendingInstanceActivation, type ServiceSessionOwnerDescriptors, type ServiceSpotMessageFollowSeal, type ServiceUserSpotOperationHandler, type ServiceUserSpotOperationResult } from '../../foundation/service-stateful-runtime';
|
|
11
11
|
import type { ServiceActorCreateRecord, ServiceDirectSpotRouteFence, ServiceInstanceActivationTarget, ServiceInstanceColdActivationTarget, ServiceInstanceRouteFence, ServiceSpotRouteFence, ServiceUserSpotCloseRecord, ServiceUserSpotCreateRecord } from '../../foundation/service-stateful-wire-codec';
|
|
12
12
|
import type { ServiceNodeDescriptor } from '../../foundation/service-topology-registry';
|
|
13
13
|
import { type ServiceApplicationPayload } from '../../foundation/service-wire-m6a-codec';
|
|
@@ -38,7 +38,8 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
38
38
|
private stateful?;
|
|
39
39
|
private readyHandler?;
|
|
40
40
|
private maintenanceTimer?;
|
|
41
|
-
private
|
|
41
|
+
private maintenanceDueMs;
|
|
42
|
+
private pumpTask?;
|
|
42
43
|
private readable;
|
|
43
44
|
private readonly onReadable;
|
|
44
45
|
private readonly onMaintenance;
|
|
@@ -55,6 +56,8 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
55
56
|
private protocolError?;
|
|
56
57
|
private messageFollowHandler?;
|
|
57
58
|
private dispatchErrors?;
|
|
59
|
+
private sessionOwnerDescriptors?;
|
|
60
|
+
private requestSourceAcceptance?;
|
|
58
61
|
private readonly peerDisconnectedHandlers;
|
|
59
62
|
constructor(meshName: string, routingId: string | undefined, bindingPort: ZLinkRawBindingPort, applicationJobQueue?: ApplicationJobQueuePort | undefined, applicationJobReceiveFlowFailureSink?: ((error: unknown) => void) | undefined, peerAdmissionSealed?: (() => boolean) | undefined, infrastructureTaskRunner?: import("../../spots/spot-actor-join-dispatch").ZLinkDetachedTaskRunner | undefined);
|
|
60
63
|
configureObjectPlacement(options: {
|
|
@@ -70,6 +73,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
70
73
|
readonly owner: string;
|
|
71
74
|
}) => void): void;
|
|
72
75
|
setDispatchErrorReporter(reporter: ZLinkDispatchErrorReporter): void;
|
|
76
|
+
setSessionOwnerDescriptors(source: ServiceSessionOwnerDescriptors): void;
|
|
73
77
|
setProtocolErrorHandler(handler: (record: {
|
|
74
78
|
readonly sourceNodeRid: string;
|
|
75
79
|
readonly request: boolean;
|
|
@@ -87,9 +91,10 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
87
91
|
start(): void;
|
|
88
92
|
setMessageFollowHandler(handler: (record: import('../../foundation/service-stateful-wire-codec').ServiceMessageFollowRecord) => void): void;
|
|
89
93
|
sendMessageFollowNotification(targetNodeRid: string, record: Omit<import('../../foundation/service-stateful-wire-codec').ServiceMessageFollowRecord, 'kind'>): Promise<boolean>;
|
|
90
|
-
shutdown(_timeoutMs: number): RequestResultValue
|
|
94
|
+
shutdown(_timeoutMs: number): Promise<RequestResultValue>;
|
|
95
|
+
cancelPendingOperations(reason: unknown): void;
|
|
91
96
|
publishDraining(): Promise<void>;
|
|
92
|
-
close(): void
|
|
97
|
+
close(): Promise<void>;
|
|
93
98
|
addChannelName(name: string): void;
|
|
94
99
|
setChannelWeight(name: string, weight: number): Promise<void>;
|
|
95
100
|
setPlacementWeight(weight: number): Promise<void>;
|
|
@@ -99,6 +104,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
99
104
|
readonly expectedSecurityIdentity?: string;
|
|
100
105
|
readonly expectedLifecycleGeneration?: bigint;
|
|
101
106
|
}): Promise<bigint>;
|
|
107
|
+
setRequestSourceAcceptance(acceptance: import('../contracts').ZLinkBackendRequestSourceAcceptance): void;
|
|
102
108
|
expectPeer(peer: {
|
|
103
109
|
readonly nodeRoutingId: string;
|
|
104
110
|
readonly endpoint: string;
|
|
@@ -114,6 +120,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
114
120
|
readonly endpoint: string;
|
|
115
121
|
}[]): void;
|
|
116
122
|
isObjectClientNodeDirectTarget(targetRid: unknown): boolean;
|
|
123
|
+
waitForPeerRoute(targetRid: unknown, lifecycleGeneration: bigint, deadlineUnixMs: bigint, signal?: AbortSignal): Promise<void>;
|
|
117
124
|
observePeerRoute(targetRid: unknown): import("../../foundation/durable-service-request").PeerRouteObservation;
|
|
118
125
|
hasPeerRouteOrConnectionIntent(targetRid: unknown, endpoint: string): boolean;
|
|
119
126
|
isPeerRouteReady(targetRid: unknown, lifecycleGeneration?: bigint): boolean;
|
|
@@ -199,7 +206,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
199
206
|
entrySpotRouteFence(targetNodeRid: string, targetSpotId: string): ServiceDirectSpotRouteFence;
|
|
200
207
|
sealSpotMessageFollowIngress(source: ServiceDirectSpotRouteFence): ServiceSpotMessageFollowSeal | undefined;
|
|
201
208
|
abortSpotMessageFollowIngress(seal: ServiceSpotMessageFollowSeal): boolean;
|
|
202
|
-
commitSpotMessageFollowIngress(seal: ServiceSpotMessageFollowSeal, target: ServiceDirectSpotRouteFence, durationMs: number): Promise<boolean>;
|
|
209
|
+
commitSpotMessageFollowIngress(seal: ServiceSpotMessageFollowSeal, target: ServiceDirectSpotRouteFence | null, durationMs: number): Promise<boolean>;
|
|
203
210
|
forgetSpotRoute(spot: ServiceSpotRouteFence['spot'], authorityOwnerGeneration: bigint, storeVersion?: string): void;
|
|
204
211
|
sendToInstanceSpot(route: ServiceInstanceRouteFence, parts: MessageLike | readonly MessageLike[], sourceSpotId?: string, metadata?: ReadonlyMap<string, string>, instanceIntent?: boolean): Promise<SubmitResult>;
|
|
205
212
|
requestInstanceSpot(route: ServiceInstanceRouteFence, parts: MessageLike | readonly MessageLike[], timeoutMs?: number, sourceSpotId?: string, metadata?: ReadonlyMap<string, string>, instanceIntent?: boolean, onAdmitted?: () => void): MeshOperationId;
|
|
@@ -229,11 +236,19 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
229
236
|
readonly phase: 'admission';
|
|
230
237
|
readonly transferId: string;
|
|
231
238
|
}, timeoutMs?: number): MeshOperationId;
|
|
232
|
-
sendToActor(actor: ZLinkBackendActorRef, parts: MessageLike | readonly MessageLike[]
|
|
239
|
+
sendToActor(actor: ZLinkBackendActorRef, parts: MessageLike | readonly MessageLike[], options?: {
|
|
240
|
+
readonly flags?: number;
|
|
241
|
+
readonly routeFence?: import('../../foundation/service-stateful-wire-codec').ServiceActorRouteFence;
|
|
242
|
+
}): Promise<SubmitResultValue>;
|
|
233
243
|
requestToActor(actor: ZLinkBackendActorRef, parts: MessageLike | readonly MessageLike[], options?: {
|
|
234
244
|
readonly timeoutMs?: number;
|
|
235
245
|
readonly onAdmitted?: () => void;
|
|
246
|
+
readonly routeFence?: import('../../foundation/service-stateful-wire-codec').ServiceActorRouteFence;
|
|
236
247
|
}): MeshOperationId;
|
|
248
|
+
acceptRelocatedActorTerminal(operation: {
|
|
249
|
+
readonly high: bigint;
|
|
250
|
+
readonly low: bigint;
|
|
251
|
+
}, replyRouteId: bigint, result: import('../../foundation/service-stateful-runtime').ServiceStatefulResult): 'terminalReceived' | 'alreadyTerminal' | undefined;
|
|
237
252
|
actorSendToActor(source: ZLinkBackendActorRef, target: ZLinkBackendActorRef, parts: MessageLike | readonly MessageLike[]): Promise<SubmitResultValue>;
|
|
238
253
|
actorRequestToActor(source: ZLinkBackendActorRef, target: ZLinkBackendActorRef, parts: MessageLike | readonly MessageLike[], options?: {
|
|
239
254
|
readonly timeoutMs?: number;
|
|
@@ -252,13 +267,23 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
252
267
|
clearSpotSubscriptions(state: ServiceSpotState): void;
|
|
253
268
|
private createDescriptor;
|
|
254
269
|
private resolveAdvertisedEndpoint;
|
|
270
|
+
/**
|
|
271
|
+
* Arms the one maintenance timer for the nearest management deadline
|
|
272
|
+
* (spec 08 §4.2): request expiry, liveness, or a pending peer handshake.
|
|
273
|
+
* An earlier deadline re-arms it; a later one keeps the armed time.
|
|
274
|
+
*/
|
|
255
275
|
private scheduleMaintenance;
|
|
256
276
|
private pump;
|
|
257
|
-
private
|
|
277
|
+
private runPump;
|
|
258
278
|
private notifyReady;
|
|
279
|
+
/**
|
|
280
|
+
* The raw registry takes a remote request's terminal and hands it here,
|
|
281
|
+
* where the Framework completion owner receives it in the same turn.
|
|
282
|
+
*/
|
|
283
|
+
private readonly requestObserver;
|
|
284
|
+
private observedOperation;
|
|
259
285
|
private observeCompletion;
|
|
260
286
|
private observeStateful;
|
|
261
|
-
private observeImmediateFailure;
|
|
262
287
|
private deliverCompletion;
|
|
263
288
|
private drainMailbox;
|
|
264
289
|
private requireRuntime;
|