@zlink-systems/framework 0.26.0 → 0.27.0
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/CoreTypes.d.ts +6 -0
- package/dist/contracts/Common/CoreTypes.js +7 -0
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/index.js +0 -1
- package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
- package/dist/contracts/Configuration/InternalDefaults.js +9 -1
- package/dist/contracts/Configuration/Registration.d.ts +13 -2
- package/dist/contracts/Configuration/Registration.js +58 -36
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
- package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
- package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
- package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
- package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
- package/dist/contracts/Handlers/JsonContract.js +10 -4
- package/dist/contracts/Locations/Authority.d.ts +1 -1
- package/dist/contracts/Locations/Authority.js +3 -2
- package/dist/contracts/Locations/Options.js +1 -1
- package/dist/contracts/Locations/Stores.d.ts +12 -0
- package/dist/contracts/Locations/Stores.js +9 -0
- package/dist/contracts/Spots/Contracts.d.ts +1 -1
- package/dist/internal.d.ts +4 -0
- package/dist/internal.js +15 -1
- package/dist/nest-integration.d.ts +4 -2
- package/dist/nest-integration.js +14 -4
- package/dist/runtime/abort.d.ts +1 -0
- package/dist/runtime/abort.js +8 -5
- package/dist/runtime/activation-admission.d.ts +1 -2
- package/dist/runtime/activation-admission.js +2 -6
- package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
- package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
- package/dist/runtime/actors/actor-client.d.ts +2 -2
- package/dist/runtime/actors/actor-client.js +42 -143
- package/dist/runtime/actors/actor-context.d.ts +3 -5
- package/dist/runtime/actors/actor-context.js +13 -11
- package/dist/runtime/actors/actor-handoff.d.ts +4 -4
- package/dist/runtime/actors/actor-handoff.js +8 -8
- package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
- package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
- package/dist/runtime/actors/actor-local-native-join.js +83 -105
- package/dist/runtime/actors/actor-native-lookup.js +2 -8
- package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
- package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
- package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
- package/dist/runtime/actors/actor-remote-joiner.js +5 -9
- package/dist/runtime/actors/actor-remote-wire.js +5 -3
- package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
- package/dist/runtime/actors/actor-request-deadline.js +31 -0
- package/dist/runtime/actors/actor-retry-delay.js +2 -1
- package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
- package/dist/runtime/actors/actor-runtime-state.js +70 -187
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
- package/dist/runtime/actors/deferred-join-completion.js +1 -0
- package/dist/runtime/actors/index.d.ts +9 -7
- package/dist/runtime/actors/index.js +87 -69
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
- package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
- package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
- package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
- package/dist/runtime/admission.d.ts +2 -0
- package/dist/runtime/admission.js +7 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
- package/dist/runtime/backend/contracts/index.d.ts +6 -23
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
- package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
- package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
- package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/runtime-values.d.ts +4 -1
- package/dist/runtime/backend/runtime-values.js +2 -0
- package/dist/runtime/channels/channel-clients.d.ts +20 -8
- package/dist/runtime/channels/channel-clients.js +68 -52
- package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
- package/dist/runtime/channels/channel-envelope.js +47 -29
- package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
- package/dist/runtime/channels/channel-outbound-operations.js +9 -10
- package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
- package/dist/runtime/channels/channel-receive-loops.js +27 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
- package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
- package/dist/runtime/channels/channel-runtime-manager.js +5 -2
- package/dist/runtime/channels/channel-socket-options.js +3 -2
- package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
- package/dist/runtime/channels/channel-socket-registry.js +248 -174
- package/dist/runtime/channels/channel-transports.d.ts +11 -17
- package/dist/runtime/channels/channel-transports.js +68 -47
- package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/client-server-location-runtime.js +10 -11
- package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
- package/dist/runtime/channels/client-server-service-wire.js +32 -11
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
- package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
- package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
- package/dist/runtime/channels/fanout-location-runtime.js +130 -72
- package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
- package/dist/runtime/channels/spot-direct-envelope.js +4 -3
- package/dist/runtime/channels/spot-node-route-transport.js +3 -2
- package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
- package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
- package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
- package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
- package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
- package/dist/runtime/diagnostics/flow-context.js +16 -2
- package/dist/runtime/diagnostics/index.d.ts +4 -2
- package/dist/runtime/diagnostics/index.js +14 -4
- package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
- package/dist/runtime/diagnostics/message-flow.js +10 -19
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
- package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
- package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
- package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
- package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
- package/dist/runtime/disposal.d.ts +5 -0
- package/dist/runtime/disposal.js +22 -0
- package/dist/runtime/execution/index.d.ts +12 -9
- package/dist/runtime/execution/index.js +58 -14
- package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
- package/dist/runtime/execution/serial-execution-queue.js +54 -15
- package/dist/runtime/execution/state-lane.d.ts +8 -1
- package/dist/runtime/execution/state-lane.js +118 -3
- package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
- package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
- package/dist/runtime/foundation/event-loop-resources.js +6 -119
- package/dist/runtime/foundation/operation-identity.d.ts +2 -0
- package/dist/runtime/foundation/operation-identity.js +9 -5
- package/dist/runtime/foundation/operation-registry.d.ts +5 -7
- package/dist/runtime/foundation/operation-registry.js +34 -44
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
- package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
- package/dist/runtime/foundation/runtime-state-projections.js +8 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +22 -3
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
- package/dist/runtime/foundation/service-liveness-registry.js +2 -1
- package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
- package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
- package/dist/runtime/foundation/service-metadata-codec.js +3 -3
- package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
- package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
- package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
- package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
- package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-stateful-registry.js +10 -2
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
- package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
- package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
- package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
- package/dist/runtime/foundation/service-topology-registry.js +17 -32
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
- package/dist/runtime/foundation/service-wire-codec.js +10 -8
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
- package/dist/runtime/framework-errors-internal.d.ts +2 -1
- package/dist/runtime/framework-errors-internal.js +343 -122
- package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
- package/dist/runtime/handlers/handler-instance-scope.js +61 -74
- package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
- package/dist/runtime/host/actor-packet-relay.js +48 -91
- package/dist/runtime/host/actor-placement-coordinator.js +7 -5
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
- package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
- package/dist/runtime/host/actor-transfer-runtime.js +143 -176
- package/dist/runtime/host/application-job-queue.js +16 -33
- package/dist/runtime/host/bound-session-relay.js +1 -1
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
- package/dist/runtime/host/index.d.ts +14 -13
- package/dist/runtime/host/index.js +190 -157
- package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
- package/dist/runtime/host/instance-activation-authority.js +17 -45
- package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
- package/dist/runtime/host/location-runtime-owner.js +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
- package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
- package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
- package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
- package/dist/runtime/host/remote-bound-session-relay.js +7 -20
- package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
- package/dist/runtime/host/route-mesh-runtime.js +171 -252
- package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
- package/dist/runtime/host/runtime-shutdown.js +18 -21
- package/dist/runtime/host/service-relocation-control.js +6 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
- package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
- package/dist/runtime/host/spot-address-transport.d.ts +2 -3
- package/dist/runtime/host/spot-address-transport.js +34 -136
- package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
- package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
- package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
- package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
- package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
- package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
- package/dist/runtime/locations/authority-key-codec.js +4 -3
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
- package/dist/runtime/locations/creation-operation-id.js +6 -4
- package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
- package/dist/runtime/locations/in-memory-authority-store.js +31 -15
- package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
- package/dist/runtime/locations/in-memory-location-store.js +17 -14
- package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
- package/dist/runtime/locations/key-codec.js +3 -2
- package/dist/runtime/locations/lease-tracker.d.ts +3 -5
- package/dist/runtime/locations/lease-tracker.js +7 -11
- package/dist/runtime/locations/lifecycle.d.ts +4 -9
- package/dist/runtime/locations/lifecycle.js +2 -31
- package/dist/runtime/locations/location-store-failure.d.ts +2 -0
- package/dist/runtime/locations/location-store-failure.js +7 -0
- package/dist/runtime/locations/location-store-pages.d.ts +3 -0
- package/dist/runtime/locations/location-store-pages.js +13 -0
- package/dist/runtime/locations/location-store-repository.d.ts +5 -7
- package/dist/runtime/locations/location-store-repository.js +303 -332
- package/dist/runtime/locations/relocation-blob.js +18 -5
- package/dist/runtime/locations/resolvers.d.ts +5 -5
- package/dist/runtime/locations/resolvers.js +37 -28
- package/dist/runtime/locations/runtime.d.ts +5 -4
- package/dist/runtime/locations/runtime.js +123 -92
- package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
- package/dist/runtime/locations/spot-location-claims.js +42 -1
- package/dist/runtime/messaging/payload-codec.js +26 -20
- package/dist/runtime/messaging/submission-result.d.ts +3 -0
- package/dist/runtime/messaging/submission-result.js +48 -0
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
- package/dist/runtime/spots/index.d.ts +14 -20
- package/dist/runtime/spots/index.js +302 -176
- package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
- package/dist/runtime/spots/spot-activation-registry.js +14 -50
- package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
- package/dist/runtime/spots/spot-activation-state.js +2 -2
- package/dist/runtime/spots/spot-activation.d.ts +3 -4
- package/dist/runtime/spots/spot-activation.js +49 -32
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
- package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
- package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
- package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
- package/dist/runtime/spots/spot-actor-membership.js +22 -45
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
- package/dist/runtime/spots/spot-context.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.js +9 -20
- package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
- package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
- package/dist/runtime/spots/spot-manager-public.js +5 -4
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
- package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
- package/dist/runtime/spots/spot-outbound.d.ts +4 -3
- package/dist/runtime/spots/spot-outbound.js +9 -8
- package/dist/runtime/spots/spot-remote-codec.js +5 -3
- package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
- package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
- package/dist/runtime/spots/spot-route-replies.js +3 -1
- package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
- package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
- package/dist/runtime/spots/spot-serial-executor.js +2 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
- package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
- package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
- package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
- package/dist/runtime/streams/bound-session-service.d.ts +7 -0
- package/dist/runtime/streams/bound-session-service.js +11 -1
- package/dist/runtime/streams/index.d.ts +14 -15
- package/dist/runtime/streams/index.js +20 -21
- package/dist/runtime/streams/managed-stream.d.ts +3 -0
- package/dist/runtime/streams/managed-stream.js +17 -8
- package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
- package/dist/runtime/streams/protocol.d.ts +6 -33
- package/dist/runtime/streams/protocol.js +38 -110
- package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
- package/dist/runtime/streams/session-actor-coordinator.js +12 -4
- package/dist/runtime/streams/session-calls.d.ts +1 -1
- package/dist/runtime/streams/session-calls.js +5 -4
- package/dist/runtime/streams/session-context.d.ts +6 -6
- package/dist/runtime/streams/session-context.js +22 -4
- package/dist/runtime/streams/session-requests.js +2 -1
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
- package/dist/runtime/streams/stream-frame-factory.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
- package/dist/runtime/streams/stream-session-runtime.js +25 -33
- package/dist/runtime/workers/index.d.ts +2 -2
- package/dist/runtime/workers/index.js +5 -4
- package/package.json +3 -3
- package/src/contracts/Common/CoreTypes.ts +7 -0
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Configuration/InternalDefaults.ts +12 -0
- package/src/contracts/Configuration/Registration.ts +92 -48
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
- package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
- package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
- package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
- package/src/contracts/Handlers/JsonContract.ts +14 -4
- package/src/contracts/Locations/Authority.ts +7 -3
- package/src/contracts/Locations/Options.ts +1 -1
- package/src/contracts/Locations/Stores.ts +14 -0
- package/src/contracts/Spots/Contracts.ts +1 -1
- package/src/internal.ts +14 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +2 -8
- package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
- package/src/runtime/actors/actor-client.ts +77 -204
- package/src/runtime/actors/actor-context.ts +39 -33
- package/src/runtime/actors/actor-handoff.ts +24 -22
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +172 -174
- package/src/runtime/actors/actor-native-lookup.ts +2 -9
- package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
- package/src/runtime/actors/actor-remote-joiner.ts +9 -11
- package/src/runtime/actors/actor-remote-wire.ts +5 -3
- package/src/runtime/actors/actor-request-deadline.ts +49 -0
- package/src/runtime/actors/actor-retry-delay.ts +2 -1
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +10 -6
- package/src/runtime/actors/index.ts +100 -79
- package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
- package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
- package/src/runtime/admission.ts +8 -1
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +13 -29
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
- package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
- package/src/runtime/backend/raw-binding-port.ts +1 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +132 -85
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
- package/src/runtime/channels/channel-envelope.ts +58 -29
- package/src/runtime/channels/channel-outbound-operations.ts +10 -23
- package/src/runtime/channels/channel-receive-loops.ts +39 -7
- package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
- package/src/runtime/channels/channel-runtime-manager.ts +6 -2
- package/src/runtime/channels/channel-socket-options.ts +8 -2
- package/src/runtime/channels/channel-socket-registry.ts +301 -192
- package/src/runtime/channels/channel-transports.ts +161 -112
- package/src/runtime/channels/client-server-location-runtime.ts +17 -17
- package/src/runtime/channels/client-server-service-wire.ts +40 -12
- package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
- package/src/runtime/channels/fanout-location-runtime.ts +172 -91
- package/src/runtime/channels/spot-direct-envelope.ts +1 -1
- package/src/runtime/channels/spot-node-route-transport.ts +5 -2
- package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
- package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
- package/src/runtime/diagnostics/flow-context.ts +16 -2
- package/src/runtime/diagnostics/index.ts +27 -17
- package/src/runtime/diagnostics/message-flow.ts +15 -25
- package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
- package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
- package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
- package/src/runtime/disposal.ts +19 -0
- package/src/runtime/execution/index.ts +60 -20
- package/src/runtime/execution/serial-execution-queue.ts +131 -18
- package/src/runtime/execution/state-lane.ts +142 -4
- package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
- package/src/runtime/foundation/event-loop-resources.ts +5 -122
- package/src/runtime/foundation/operation-identity.ts +11 -5
- package/src/runtime/foundation/operation-registry.ts +33 -50
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
- package/src/runtime/foundation/service-discovery-registry.ts +32 -3
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
- package/src/runtime/foundation/service-liveness-registry.ts +2 -1
- package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
- package/src/runtime/foundation/service-metadata-codec.ts +2 -2
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
- package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
- package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
- package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
- package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
- package/src/runtime/foundation/service-topology-registry.ts +23 -32
- package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
- package/src/runtime/foundation/service-wire-codec.ts +15 -8
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
- package/src/runtime/framework-errors-internal.ts +380 -134
- package/src/runtime/handlers/handler-instance-scope.ts +68 -95
- package/src/runtime/host/actor-packet-relay.ts +57 -147
- package/src/runtime/host/actor-placement-coordinator.ts +8 -5
- package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
- package/src/runtime/host/actor-transfer-runtime.ts +180 -260
- package/src/runtime/host/application-job-queue.ts +28 -34
- package/src/runtime/host/bound-session-relay.ts +1 -2
- package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
- package/src/runtime/host/index.ts +327 -296
- package/src/runtime/host/instance-activation-authority.ts +89 -109
- package/src/runtime/host/location-runtime-owner.ts +4 -2
- package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
- package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
- package/src/runtime/host/remote-bound-session-relay.ts +8 -41
- package/src/runtime/host/route-mesh-runtime.ts +228 -271
- package/src/runtime/host/runtime-shutdown.ts +17 -21
- package/src/runtime/host/service-relocation-control.ts +14 -1
- package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
- package/src/runtime/host/spot-address-transport.ts +73 -195
- package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
- package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
- package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
- package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
- package/src/runtime/locations/authority-key-codec.ts +7 -3
- package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
- package/src/runtime/locations/creation-operation-id.ts +6 -3
- package/src/runtime/locations/domain-store-contract.ts +12 -3
- package/src/runtime/locations/in-memory-authority-store.ts +44 -15
- package/src/runtime/locations/in-memory-location-store.ts +50 -39
- package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +13 -43
- package/src/runtime/locations/location-store-failure.ts +4 -0
- package/src/runtime/locations/location-store-pages.ts +18 -0
- package/src/runtime/locations/location-store-repository.ts +450 -478
- package/src/runtime/locations/relocation-blob.ts +17 -6
- package/src/runtime/locations/resolvers.ts +75 -49
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +58 -1
- package/src/runtime/messaging/payload-codec.ts +35 -24
- package/src/runtime/messaging/submission-result.ts +57 -1
- package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
- package/src/runtime/spots/index.ts +433 -229
- package/src/runtime/spots/spot-activation-registry.ts +30 -69
- package/src/runtime/spots/spot-activation-state.ts +2 -2
- package/src/runtime/spots/spot-activation.ts +67 -37
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
- package/src/runtime/spots/spot-actor-membership.ts +40 -72
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
- package/src/runtime/spots/spot-context.ts +3 -3
- package/src/runtime/spots/spot-entry-activation.ts +13 -30
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +21 -17
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
- package/src/runtime/spots/spot-outbound.ts +45 -23
- package/src/runtime/spots/spot-remote-codec.ts +7 -3
- package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
- package/src/runtime/spots/spot-route-replies.ts +6 -4
- package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +5 -27
- package/src/runtime/spots/spot-serial-executor.ts +2 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
- package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
- package/src/runtime/streams/bound-session-service.ts +21 -1
- package/src/runtime/streams/index.ts +76 -64
- package/src/runtime/streams/managed-stream.ts +29 -10
- package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
- package/src/runtime/streams/protocol.ts +34 -88
- package/src/runtime/streams/session-actor-coordinator.ts +17 -5
- package/src/runtime/streams/session-calls.ts +6 -5
- package/src/runtime/streams/session-context.ts +54 -10
- package/src/runtime/streams/session-requests.ts +2 -1
- package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
- package/src/runtime/streams/stream-frame-factory.ts +2 -3
- package/src/runtime/streams/stream-session-runtime.ts +57 -59
- package/src/runtime/workers/index.ts +13 -12
- package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
- package/dist/runtime/actors/post-commit-actor-location.js +0 -72
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
- package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZLINK_STREAM_HEARTBEAT_PONG = exports.ZLINK_STREAM_HEARTBEAT_PING = exports.
|
|
3
|
+
exports.ZLINK_STREAM_HEARTBEAT_PONG = exports.ZLINK_STREAM_HEARTBEAT_PING = exports.ZLinkStreamCodec = exports.utf8Encode = exports.utf8Decode = exports.ZLinkStreamCloseReasonCode = exports.ZLinkStreamHeaderFlags = exports.ZLinkStreamMessageKind = void 0;
|
|
4
4
|
exports.streamCodecContentType = streamCodecContentType;
|
|
5
5
|
exports.streamCodecForContentType = streamCodecForContentType;
|
|
6
6
|
exports.resolvePacketName = resolvePacketName;
|
|
@@ -20,79 +20,30 @@ exports.createStreamReplyHeader = createStreamReplyHeader;
|
|
|
20
20
|
exports.messageToBytes = messageToBytes;
|
|
21
21
|
exports.lz4Pickle = lz4Pickle;
|
|
22
22
|
exports.lz4Unpickle = lz4Unpickle;
|
|
23
|
-
const packet_name_1 = require("../messaging/packet-name");
|
|
24
23
|
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
24
|
+
const packet_name_1 = require("../messaging/packet-name");
|
|
25
25
|
const submission_result_1 = require("../messaging/submission-result");
|
|
26
26
|
var stream_wire_2 = require("@zlink-systems/stream-wire");
|
|
27
|
-
Object.defineProperty(exports, "
|
|
28
|
-
Object.defineProperty(exports, "
|
|
29
|
-
|
|
27
|
+
Object.defineProperty(exports, "ZLinkStreamMessageKind", { enumerable: true, get: function () { return stream_wire_2.ZlinkStreamMessageKind; } });
|
|
28
|
+
Object.defineProperty(exports, "ZLinkStreamHeaderFlags", { enumerable: true, get: function () { return stream_wire_2.ZlinkStreamHeaderFlags; } });
|
|
29
|
+
Object.defineProperty(exports, "ZLinkStreamCloseReasonCode", { enumerable: true, get: function () { return stream_wire_2.ZlinkStreamCloseReasonCode; } });
|
|
30
|
+
var stream_wire_3 = require("@zlink-systems/stream-wire");
|
|
31
|
+
Object.defineProperty(exports, "utf8Decode", { enumerable: true, get: function () { return stream_wire_3.utf8Decode; } });
|
|
32
|
+
Object.defineProperty(exports, "utf8Encode", { enumerable: true, get: function () { return stream_wire_3.utf8Encode; } });
|
|
30
33
|
const actorRequestDeadlineMetadataKey = '$zlink.actor-request-deadline-unix-ms';
|
|
31
34
|
// Shared empty metadata for the dominant no-metadata frame; ReadonlyMap
|
|
32
35
|
// keeps every consumer from mutating it.
|
|
33
36
|
const EMPTY_STREAM_METADATA = new Map();
|
|
34
|
-
var
|
|
35
|
-
(function (
|
|
36
|
-
ZLinkStreamCodec[ZLinkStreamCodec["Raw"] = 0] = "Raw";
|
|
37
|
-
ZLinkStreamCodec[ZLinkStreamCodec["Json"] = 1] = "Json";
|
|
38
|
-
ZLinkStreamCodec[ZLinkStreamCodec["MessagePack"] = 2] = "MessagePack";
|
|
39
|
-
ZLinkStreamCodec[ZLinkStreamCodec["Protobuf"] = 3] = "Protobuf";
|
|
40
|
-
})(ZLinkStreamCodec || (exports.ZLinkStreamCodec = ZLinkStreamCodec = {}));
|
|
37
|
+
var stream_wire_4 = require("@zlink-systems/stream-wire");
|
|
38
|
+
Object.defineProperty(exports, "ZLinkStreamCodec", { enumerable: true, get: function () { return stream_wire_4.ZlinkStreamCodec; } });
|
|
41
39
|
function streamCodecContentType(codec) {
|
|
42
|
-
|
|
43
|
-
case ZLinkStreamCodec.Json:
|
|
44
|
-
return 'application/json';
|
|
45
|
-
case ZLinkStreamCodec.MessagePack:
|
|
46
|
-
return 'application/x-msgpack';
|
|
47
|
-
case ZLinkStreamCodec.Protobuf:
|
|
48
|
-
return 'application/x-protobuf';
|
|
49
|
-
case ZLinkStreamCodec.Raw:
|
|
50
|
-
return 'application/octet-stream';
|
|
51
|
-
}
|
|
52
|
-
throw new TypeError(`Unsupported STREAM codec '${codec}'.`);
|
|
40
|
+
return (0, stream_wire_1.streamCodecContentType)(codec);
|
|
53
41
|
}
|
|
54
42
|
function streamCodecForContentType(contentType) {
|
|
55
|
-
|
|
56
|
-
case 'application/json':
|
|
57
|
-
return ZLinkStreamCodec.Json;
|
|
58
|
-
case 'application/x-msgpack':
|
|
59
|
-
return ZLinkStreamCodec.MessagePack;
|
|
60
|
-
case 'application/x-protobuf':
|
|
61
|
-
return ZLinkStreamCodec.Protobuf;
|
|
62
|
-
case 'application/octet-stream':
|
|
63
|
-
return ZLinkStreamCodec.Raw;
|
|
64
|
-
}
|
|
65
|
-
throw new TypeError(`Unsupported STREAM content type '${contentType}'.`);
|
|
43
|
+
return (0, stream_wire_1.streamCodecForContentType)(contentType);
|
|
66
44
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Send"] = 1] = "Send";
|
|
70
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Request"] = 2] = "Request";
|
|
71
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Response"] = 3] = "Response";
|
|
72
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Error"] = 4] = "Error";
|
|
73
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Control"] = 5] = "Control";
|
|
74
|
-
})(ZLinkStreamMessageKind || (exports.ZLinkStreamMessageKind = ZLinkStreamMessageKind = {}));
|
|
75
|
-
var ZLinkStreamHeaderFlags;
|
|
76
|
-
(function (ZLinkStreamHeaderFlags) {
|
|
77
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["None"] = 0] = "None";
|
|
78
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasRequestSeq"] = 1] = "HasRequestSeq";
|
|
79
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasMetadata"] = 2] = "HasMetadata";
|
|
80
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["PayloadCompressed"] = 4] = "PayloadCompressed";
|
|
81
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasCorrelationId"] = 8] = "HasCorrelationId";
|
|
82
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasFlowId"] = 16] = "HasFlowId";
|
|
83
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasActorSlot"] = 32] = "HasActorSlot";
|
|
84
|
-
})(ZLinkStreamHeaderFlags || (exports.ZLinkStreamHeaderFlags = ZLinkStreamHeaderFlags = {}));
|
|
85
|
-
var ZLinkStreamCloseReasonCode;
|
|
86
|
-
(function (ZLinkStreamCloseReasonCode) {
|
|
87
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["ClientClose"] = 1] = "ClientClose";
|
|
88
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["IdleTimeout"] = 2] = "IdleTimeout";
|
|
89
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["HeartbeatTimeout"] = 3] = "HeartbeatTimeout";
|
|
90
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["ServerDrain"] = 4] = "ServerDrain";
|
|
91
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["ProtocolError"] = 5] = "ProtocolError";
|
|
92
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["TransportError"] = 6] = "TransportError";
|
|
93
|
-
})(ZLinkStreamCloseReasonCode || (exports.ZLinkStreamCloseReasonCode = ZLinkStreamCloseReasonCode = {}));
|
|
94
|
-
exports.ZLINK_STREAM_HEARTBEAT_PING = '$zlink.heartbeat.ping';
|
|
95
|
-
exports.ZLINK_STREAM_HEARTBEAT_PONG = '$zlink.heartbeat.pong';
|
|
45
|
+
exports.ZLINK_STREAM_HEARTBEAT_PING = stream_wire_1.ZlinkStreamControlPacket.HeartbeatPing;
|
|
46
|
+
exports.ZLINK_STREAM_HEARTBEAT_PONG = stream_wire_1.ZlinkStreamControlPacket.HeartbeatPong;
|
|
96
47
|
function resolvePacketName(message, explicitPacketName) {
|
|
97
48
|
const packetName = (0, packet_name_1.resolveFrameworkPacketName)(message, explicitPacketName, 'Stream');
|
|
98
49
|
if (packetName.trim().length === 0) {
|
|
@@ -110,50 +61,27 @@ function encodeStreamFrame(header, payload) {
|
|
|
110
61
|
}
|
|
111
62
|
function encodeStreamControlFrame(name) {
|
|
112
63
|
return encodeStreamFrame({
|
|
113
|
-
kind:
|
|
114
|
-
codec:
|
|
115
|
-
flags:
|
|
64
|
+
kind: stream_wire_1.ZlinkStreamMessageKind.Control,
|
|
65
|
+
codec: stream_wire_1.ZlinkStreamCodec.Raw,
|
|
66
|
+
flags: stream_wire_1.ZlinkStreamHeaderFlags.None,
|
|
116
67
|
name,
|
|
117
68
|
metadata: EMPTY_STREAM_METADATA
|
|
118
69
|
}, new Uint8Array());
|
|
119
70
|
}
|
|
120
71
|
function encodeActorBoundFrame(actorSlot, actorId) {
|
|
121
|
-
|
|
122
|
-
if (actorIdBytes.length < 1 || actorIdBytes.length > 0xff) {
|
|
123
|
-
throw new Error('Actor id length is invalid for a STREAM binding control packet.');
|
|
124
|
-
}
|
|
125
|
-
const payload = new Uint8Array(4 + actorIdBytes.length);
|
|
126
|
-
payload[0] = 1;
|
|
127
|
-
payload[1] = actorSlot >>> 8;
|
|
128
|
-
payload[2] = actorSlot & 0xff;
|
|
129
|
-
payload[3] = actorIdBytes.length;
|
|
130
|
-
payload.set(actorIdBytes, 4);
|
|
131
|
-
return encodeStreamFrame(controlHeader('$zlink.actor.bound'), payload);
|
|
72
|
+
return encodeStreamFrame(controlHeader(stream_wire_1.ZlinkStreamControlPacket.ActorBound), (0, stream_wire_1.encodeStreamWireActorBoundPayload)(actorSlot, actorId));
|
|
132
73
|
}
|
|
133
74
|
function encodeActorUnboundFrame(actorSlot) {
|
|
134
|
-
|
|
135
|
-
payload[0] = 1;
|
|
136
|
-
payload[1] = actorSlot >>> 8;
|
|
137
|
-
payload[2] = actorSlot & 0xff;
|
|
138
|
-
return encodeStreamFrame(controlHeader('$zlink.actor.unbound'), payload);
|
|
75
|
+
return encodeStreamFrame(controlHeader(stream_wire_1.ZlinkStreamControlPacket.ActorUnbound), (0, stream_wire_1.encodeStreamWireActorUnboundPayload)(actorSlot));
|
|
139
76
|
}
|
|
140
|
-
function encodeSessionClosingFrame(diagnostic = '', reason =
|
|
141
|
-
const diagnosticBytes = (0, stream_wire_1.utf8Encode)(diagnostic);
|
|
142
|
-
if (diagnosticBytes.length > 512)
|
|
143
|
-
throw new Error('Session-closing diagnostic is too large.');
|
|
144
|
-
const payload = new Uint8Array(4 + diagnosticBytes.length);
|
|
145
|
-
payload[0] = 1;
|
|
146
|
-
payload[1] = reason;
|
|
147
|
-
payload[2] = diagnosticBytes.length >>> 8;
|
|
148
|
-
payload[3] = diagnosticBytes.length & 0xff;
|
|
149
|
-
payload.set(diagnosticBytes, 4);
|
|
77
|
+
function encodeSessionClosingFrame(diagnostic = '', reason = stream_wire_1.ZlinkStreamCloseReasonCode.ServerDrain) {
|
|
150
78
|
return encodeStreamFrame({
|
|
151
|
-
kind:
|
|
152
|
-
codec:
|
|
153
|
-
flags:
|
|
154
|
-
name:
|
|
79
|
+
kind: stream_wire_1.ZlinkStreamMessageKind.Control,
|
|
80
|
+
codec: stream_wire_1.ZlinkStreamCodec.Raw,
|
|
81
|
+
flags: stream_wire_1.ZlinkStreamHeaderFlags.None,
|
|
82
|
+
name: stream_wire_1.ZlinkStreamControlPacket.SessionClosing,
|
|
155
83
|
metadata: new Map()
|
|
156
|
-
},
|
|
84
|
+
}, (0, stream_wire_1.encodeStreamWireSessionClosingPayload)(reason, diagnostic));
|
|
157
85
|
}
|
|
158
86
|
function decodeStreamFrame(frame) {
|
|
159
87
|
return (0, stream_wire_1.decodeStreamWireFrame)(frame);
|
|
@@ -167,7 +95,7 @@ function encodeStreamHeader(header) {
|
|
|
167
95
|
const hasCorrelation = header.correlationId !== undefined && header.correlationId.length > 0;
|
|
168
96
|
const hasFlow = header.flowId !== undefined || header.flowOrigin !== undefined;
|
|
169
97
|
const hasActorSlot = header.actorSlot !== undefined;
|
|
170
|
-
if (header.kind ===
|
|
98
|
+
if (header.kind === stream_wire_1.ZlinkStreamMessageKind.Control &&
|
|
171
99
|
(hasCorrelation || hasRequestSeq || hasMetadata || hasFlow || hasActorSlot)) {
|
|
172
100
|
throw new Error('Control packet must not contain a request sequence, metadata, correlation id, or flow id.');
|
|
173
101
|
}
|
|
@@ -190,12 +118,12 @@ function decodeStreamHeader(header, flowEnabled = true) {
|
|
|
190
118
|
const decoded = (0, stream_wire_1.decodeStreamWireHeader)(header, undefined, flowEnabled);
|
|
191
119
|
const kind = decoded.kind;
|
|
192
120
|
const flags = decoded.flags;
|
|
193
|
-
const hasRequestSeq = (flags &
|
|
194
|
-
const hasMetadata = (flags &
|
|
195
|
-
const hasCorrelation = (flags &
|
|
196
|
-
const hasFlow = (flags &
|
|
197
|
-
const hasActorSlot = (flags &
|
|
198
|
-
if (kind ===
|
|
121
|
+
const hasRequestSeq = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasRequestSeq) !== 0;
|
|
122
|
+
const hasMetadata = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasMetadata) !== 0;
|
|
123
|
+
const hasCorrelation = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasCorrelationId) !== 0;
|
|
124
|
+
const hasFlow = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasFlowId) !== 0;
|
|
125
|
+
const hasActorSlot = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasActorSlot) !== 0;
|
|
126
|
+
if (kind === stream_wire_1.ZlinkStreamMessageKind.Control &&
|
|
199
127
|
(hasCorrelation || hasRequestSeq || hasMetadata || hasFlow || hasActorSlot)) {
|
|
200
128
|
throw new Error('Control packet must not contain a request sequence, metadata, correlation id, or flow id.');
|
|
201
129
|
}
|
|
@@ -203,8 +131,8 @@ function decodeStreamHeader(header, flowEnabled = true) {
|
|
|
203
131
|
return {
|
|
204
132
|
kind,
|
|
205
133
|
codec: decoded.codec,
|
|
206
|
-
flags: (metadata.size === 0 ? flags & ~
|
|
207
|
-
(flowEnabled ? ~0 : ~
|
|
134
|
+
flags: (metadata.size === 0 ? flags & ~stream_wire_1.ZlinkStreamHeaderFlags.HasMetadata : flags) &
|
|
135
|
+
(flowEnabled ? ~0 : ~stream_wire_1.ZlinkStreamHeaderFlags.HasFlowId),
|
|
208
136
|
requestSeq: decoded.requestSeq,
|
|
209
137
|
name: decoded.name,
|
|
210
138
|
metadata,
|
|
@@ -254,9 +182,9 @@ function createStreamReplyHeader(requestHeader, kind, codec, flags, metadata, in
|
|
|
254
182
|
}
|
|
255
183
|
function controlHeader(name) {
|
|
256
184
|
return {
|
|
257
|
-
kind:
|
|
258
|
-
codec:
|
|
259
|
-
flags:
|
|
185
|
+
kind: stream_wire_1.ZlinkStreamMessageKind.Control,
|
|
186
|
+
codec: stream_wire_1.ZlinkStreamCodec.Raw,
|
|
187
|
+
flags: stream_wire_1.ZlinkStreamHeaderFlags.None,
|
|
260
188
|
name,
|
|
261
189
|
metadata: EMPTY_STREAM_METADATA
|
|
262
190
|
};
|
|
@@ -287,6 +215,6 @@ function messageToBytes(message) {
|
|
|
287
215
|
function lz4Pickle(payload) {
|
|
288
216
|
return (0, stream_wire_1.lz4PickleUncompressed)(payload);
|
|
289
217
|
}
|
|
290
|
-
function lz4Unpickle(payload, maxDecompressedSize = defaultMaxDecompressedPayloadSize) {
|
|
218
|
+
function lz4Unpickle(payload, maxDecompressedSize = stream_wire_1.defaultMaxDecompressedPayloadSize) {
|
|
291
219
|
return (0, stream_wire_1.lz4UnpicklePayload)(payload, maxDecompressedSize);
|
|
292
220
|
}
|
|
@@ -3,6 +3,7 @@ import type { ZLinkRuntimeMetrics } from '../diagnostics';
|
|
|
3
3
|
import { ZLinkActorSessionBindingRegistry, type ZLinkActorSessionAuthorityFence } from './actor-session-binding-registry';
|
|
4
4
|
import { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
|
|
5
5
|
import { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './session-context';
|
|
6
|
+
import type { ZLinkSessionBindingConfirmationOptions } from './stream-binding-runtime-ports';
|
|
6
7
|
export interface ZLinkSessionActorCoordinatorOptions {
|
|
7
8
|
readonly actorBindTimeoutMs?: number;
|
|
8
9
|
readonly actorRefResolver?: (actor: ZLinkActor) => ActorRef;
|
|
@@ -13,9 +14,7 @@ export interface ZLinkSessionActorCoordinatorOptions {
|
|
|
13
14
|
};
|
|
14
15
|
} | undefined;
|
|
15
16
|
readonly nativeActorMeshNameProvider?: () => string | undefined;
|
|
16
|
-
readonly confirmRemoteActorSessionBinding?: (actor: ActorRef, sessionRid: ActorRef['nodeRid'], signal?: AbortSignal, options?:
|
|
17
|
-
readonly waitForAcknowledgement?: boolean;
|
|
18
|
-
}) => Promise<void>;
|
|
17
|
+
readonly confirmRemoteActorSessionBinding?: (actor: ActorRef, sessionRid: ActorRef['nodeRid'], signal?: AbortSignal, options?: ZLinkSessionBindingConfirmationOptions) => Promise<void>;
|
|
19
18
|
readonly errorSink?: () => {
|
|
20
19
|
reportRuntimeTaskException(taskName: string, error: unknown): void;
|
|
21
20
|
} | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkSessionActorCoordinator = void 0;
|
|
4
|
+
const bound_actor_relay_sender_1 = require("./bound-actor-relay-sender");
|
|
4
5
|
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
5
6
|
const contracts_1 = require("../../contracts");
|
|
6
7
|
const abort_1 = require("../abort");
|
|
@@ -75,7 +76,12 @@ class ZLinkSessionActorCoordinator {
|
|
|
75
76
|
if (confirmRemoteSessionBinding !== false &&
|
|
76
77
|
this.options.confirmRemoteActorSessionBinding !== undefined) {
|
|
77
78
|
const waitForAcknowledgement = previous === undefined && confirmRemoteSessionBinding !== 'send';
|
|
78
|
-
const confirmation = this.options.confirmRemoteActorSessionBinding(boundActorRef, this.actorBindingRoutingId(context), undefined, {
|
|
79
|
+
const confirmation = this.options.confirmRemoteActorSessionBinding(boundActorRef, this.actorBindingRoutingId(context), undefined, {
|
|
80
|
+
waitForAcknowledgement,
|
|
81
|
+
binding: context.stream instanceof managed_stream_1.ZLinkManagedStream
|
|
82
|
+
? context.stream.actorBinding(actorRef.actorId)
|
|
83
|
+
: undefined
|
|
84
|
+
});
|
|
79
85
|
const reportFailure = (error) => {
|
|
80
86
|
// A fire-and-forget route update retains the already-current binding;
|
|
81
87
|
// its failure is bounded diagnostics rather than a rollback. The
|
|
@@ -96,7 +102,7 @@ class ZLinkSessionActorCoordinator {
|
|
|
96
102
|
// the relay's typed failure for the caller.
|
|
97
103
|
try {
|
|
98
104
|
if (context.stream instanceof managed_stream_1.ZLinkManagedStream) {
|
|
99
|
-
await context.stream.unbindActor(actorRef.actorId, this.options.actorBindTimeoutMs ??
|
|
105
|
+
await context.stream.unbindActor(actorRef.actorId, this.options.actorBindTimeoutMs ?? bound_actor_relay_sender_1.DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS);
|
|
100
106
|
}
|
|
101
107
|
}
|
|
102
108
|
catch (cleanupError) {
|
|
@@ -204,7 +210,9 @@ class ZLinkSessionActorCoordinator {
|
|
|
204
210
|
!(await this.routes.validateSeal(normalizedActorRef.actorId, options.releaseSeal.sealId))) {
|
|
205
211
|
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale, `Actor '${normalizedActorRef.actorId}' route switch did not match its relocation seal.`, true);
|
|
206
212
|
}
|
|
207
|
-
route
|
|
213
|
+
// A location refresh never changes the route's Session binding
|
|
214
|
+
// generation; the native bind owns it.
|
|
215
|
+
route.actor.updateRef(withBindingGeneration(normalizedActorRef, bindingGenerationOf(route.actor.ref), undefined));
|
|
208
216
|
if (authorityFence !== undefined) {
|
|
209
217
|
await this.routes.updateAuthorityFence(normalizedActorRef.actorId, authorityFence);
|
|
210
218
|
}
|
|
@@ -265,7 +273,7 @@ class ZLinkSessionActorCoordinator {
|
|
|
265
273
|
return;
|
|
266
274
|
}
|
|
267
275
|
try {
|
|
268
|
-
await context.stream.bindActor(actorRef, this.options.actorBindTimeoutMs ??
|
|
276
|
+
await context.stream.bindActor(actorRef, this.options.actorBindTimeoutMs ?? bound_actor_relay_sender_1.DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS, signal, context.actorBindingReplacedHandler, authorityFence);
|
|
269
277
|
}
|
|
270
278
|
catch (error) {
|
|
271
279
|
if (error instanceof contracts_1.ZLinkFrameworkException) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ZLinkBoundSessionSendCall, ZLinkSessionReplyCall, ZLinkSessionSendCall } from '../../contracts';
|
|
2
|
-
import type { ZLinkSubmitResult } from '../messaging/submission-result';
|
|
3
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
3
|
+
import { type ZLinkSubmitResult } from '../messaging/submission-result';
|
|
4
4
|
import { type ZLinkStreamFrameHeader, ZLinkStreamMessageKind, type ZLinkStreamReplyMessageKind } from './protocol';
|
|
5
5
|
export interface ZLinkBoundSessionSendRuntime {
|
|
6
6
|
sendBoundSession(actorId: string, message: unknown, packetName: string | undefined, metadata: ReadonlyMap<string, string>, signal?: AbortSignal): Promise<ZLinkSubmitResult>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultZLinkSessionReplyCall = exports.DefaultZLinkSessionSendCall = exports.DefaultZLinkBoundSessionSendCall = void 0;
|
|
4
|
-
const
|
|
5
|
-
const submission_result_1 = require("../messaging/submission-result");
|
|
4
|
+
const SendTimeoutValidation_1 = require("../../contracts/Configuration/SendTimeoutValidation");
|
|
6
5
|
const abort_1 = require("../abort");
|
|
7
6
|
const configuration_1 = require("../configuration");
|
|
7
|
+
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
8
|
+
const submission_result_1 = require("../messaging/submission-result");
|
|
8
9
|
const protocol_1 = require("./protocol");
|
|
9
10
|
class DefaultZLinkBoundSessionSendCall {
|
|
10
11
|
runtime;
|
|
@@ -61,8 +62,8 @@ class DefaultZLinkSessionSendCall {
|
|
|
61
62
|
return this;
|
|
62
63
|
}
|
|
63
64
|
timeout(timeoutMs) {
|
|
64
|
-
if (!Number.isInteger(timeoutMs) || timeoutMs < 1 || timeoutMs >
|
|
65
|
-
throw new configuration_1.ZLinkConfigurationException(
|
|
65
|
+
if (!Number.isInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > SendTimeoutValidation_1.ZLINK_MAX_SEND_TIMEOUT_MS) {
|
|
66
|
+
throw new configuration_1.ZLinkConfigurationException(`STREAM session send timeout must be an integer from 1 through ${SendTimeoutValidation_1.ZLINK_MAX_SEND_TIMEOUT_MS} milliseconds.`);
|
|
66
67
|
}
|
|
67
68
|
this.selectedTimeoutMs = timeoutMs;
|
|
68
69
|
return this;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { ActorRef, RoutingId,
|
|
2
|
-
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
3
|
-
import type { ZLinkSubmitResult } from '../messaging/submission-result';
|
|
1
|
+
import type { ActorRef, RoutingId, ZLinkActor, ZLinkBoundSession, ZLinkMessage, ZLinkSessionActor, ZLinkSessionActors, ZLinkSessionClient, ZLinkSessionContext, ZLinkSessionDispatchContext, ZLinkSessionHandlerRegistry, ZLinkStream } from '../../contracts';
|
|
4
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
5
|
-
import
|
|
6
|
-
import { DefaultZLinkBoundSessionSendCall } from './session-calls';
|
|
7
|
-
import { type ZLinkPendingSessionRequest } from './session-requests';
|
|
3
|
+
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
8
4
|
import type { ServiceActorRef } from '../foundation/service-stateful-registry';
|
|
9
5
|
import type { ServiceRetiredBoundSessionRouteFence } from '../foundation/service-stateful-wire-codec';
|
|
6
|
+
import { type ZLinkSubmitResult } from '../messaging/submission-result';
|
|
7
|
+
import { ZLinkStreamMessageKind, type ZLinkStreamFrameHeader, type ZLinkStreamReplyMessageKind } from './protocol';
|
|
8
|
+
import { DefaultZLinkBoundSessionSendCall } from './session-calls';
|
|
9
|
+
import { type ZLinkPendingSessionRequest } from './session-requests';
|
|
10
10
|
export interface ZLinkSessionContextStream extends ZLinkStream {
|
|
11
11
|
writeRaw(payload: Message, flags?: number): boolean;
|
|
12
12
|
submitRaw(payload: Message, signal?: AbortSignal, timeoutMs?: number): Promise<ZLinkSubmitResult>;
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultZLinkBoundSessionFactory = exports.DefaultZLinkBoundSession = exports.DefaultZLinkSessionActor = exports.DefaultZLinkSessionContext = void 0;
|
|
4
4
|
exports.createSessionDispatchContext = createSessionDispatchContext;
|
|
5
|
-
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
6
|
-
const submission_result_1 = require("../messaging/submission-result");
|
|
7
5
|
const Attributes_1 = require("../../contracts/Handlers/Attributes");
|
|
8
6
|
const abort_1 = require("../abort");
|
|
7
|
+
const application_job_queue_scope_1 = require("../application-jobs/application-job-queue-scope");
|
|
9
8
|
const configuration_1 = require("../configuration");
|
|
9
|
+
const state_lane_1 = require("../execution/state-lane");
|
|
10
|
+
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
11
|
+
const submission_result_1 = require("../messaging/submission-result");
|
|
10
12
|
const protocol_1 = require("./protocol");
|
|
11
13
|
const session_calls_1 = require("./session-calls");
|
|
12
|
-
const session_requests_1 = require("./session-requests");
|
|
13
14
|
const session_local_actors_1 = require("./session-local-actors");
|
|
14
|
-
const
|
|
15
|
+
const session_requests_1 = require("./session-requests");
|
|
15
16
|
class DefaultZLinkSessionContext {
|
|
16
17
|
runtime;
|
|
17
18
|
stream;
|
|
@@ -393,3 +394,20 @@ function sameRetiredSession(left, right) {
|
|
|
393
394
|
left.sessionRid === right.sessionRid &&
|
|
394
395
|
left.retiredBindingGeneration === right.retiredBindingGeneration);
|
|
395
396
|
}
|
|
397
|
+
if ((0, state_lane_1.isStructuralGuardEnabled)()) {
|
|
398
|
+
const controlsGetter = Object.getOwnPropertyDescriptor(DefaultZLinkSessionContext.prototype, 'actorSlotControls')?.get;
|
|
399
|
+
if (controlsGetter !== undefined) {
|
|
400
|
+
Object.defineProperty(DefaultZLinkSessionContext.prototype, 'actorSlotControls', {
|
|
401
|
+
configurable: true,
|
|
402
|
+
get() {
|
|
403
|
+
const controls = controlsGetter.call(this);
|
|
404
|
+
if (controls === undefined)
|
|
405
|
+
return undefined;
|
|
406
|
+
return {
|
|
407
|
+
enqueueBound: (actorSlot, actorId) => (0, state_lane_1.guardStateLaneCompletion)((0, state_lane_1.trackDiagnosticCompletion)(controls.enqueueBound(actorSlot, actorId), `binding transport bound ${actorId}`), 'binding transport completion'),
|
|
408
|
+
enqueueUnbound: (actorSlot) => (0, state_lane_1.guardStateLaneCompletion)((0, state_lane_1.trackDiagnosticCompletion)(controls.enqueueUnbound(actorSlot), `binding transport unbound ${actorSlot}`), 'binding transport completion')
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkSessionRequestTracker = exports.ZLinkPendingSessionRequest = void 0;
|
|
4
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
4
5
|
const stream_message_utils_1 = require("./stream-message-utils");
|
|
5
6
|
class ZLinkPendingSessionRequest {
|
|
6
7
|
tracker;
|
|
@@ -92,7 +93,7 @@ class ZLinkSessionRequestTracker {
|
|
|
92
93
|
}
|
|
93
94
|
next() {
|
|
94
95
|
do {
|
|
95
|
-
this.nextRequestSeq = (this.nextRequestSeq + 1n) &
|
|
96
|
+
this.nextRequestSeq = (this.nextRequestSeq + 1n) & stream_wire_1.UINT64_MAX;
|
|
96
97
|
} while (this.nextRequestSeq === 0n);
|
|
97
98
|
return this.nextRequestSeq;
|
|
98
99
|
}
|
|
@@ -3,6 +3,7 @@ import type { ZLinkBackendActorSessionNode } from '../backend';
|
|
|
3
3
|
import type { ZLinkSubmitResult } from '../messaging/submission-result';
|
|
4
4
|
import type { DefaultZLinkSessionActor } from './session-context';
|
|
5
5
|
import type { ZLinkBoundSessionResponseTarget } from './bound-session-response-target';
|
|
6
|
+
import type { ServiceStreamSessionBinding } from '../foundation/service-runtime-contracts';
|
|
6
7
|
export interface ZLinkStreamActorLookupPort {
|
|
7
8
|
find(actorId: string): Promise<DefaultZLinkSessionActor | undefined>;
|
|
8
9
|
authorityFence(actorId: string): Promise<{
|
|
@@ -44,8 +45,22 @@ export interface ZLinkBoundSessionResponsePort {
|
|
|
44
45
|
sendLocalBoundSessionResponse(actorId: string, packetName: string, requestSeq: bigint, message: unknown, metadata: ReadonlyMap<string, string>, compressPayload: boolean): Promise<boolean>;
|
|
45
46
|
sendLocalBoundSessionError(actorId: string, packetName: string, requestSeq: bigint, error: unknown, metadata: ReadonlyMap<string, string>): Promise<boolean>;
|
|
46
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Session–Actor binding §5: the Session owner's registry snapshot travels with
|
|
50
|
+
* the bind confirmation so a same-node Actor owner installs the same identity a
|
|
51
|
+
* remote command 38 would carry.
|
|
52
|
+
*/
|
|
53
|
+
export interface ZLinkSessionBindingConfirmationOptions {
|
|
54
|
+
readonly waitForAcknowledgement?: boolean;
|
|
55
|
+
readonly binding?: ServiceStreamSessionBinding;
|
|
56
|
+
}
|
|
57
|
+
/** The exact Session binding identity a relocation validated (§8.1). */
|
|
58
|
+
export interface ZLinkSessionBindingIdentity {
|
|
59
|
+
readonly sessionRid: string;
|
|
60
|
+
readonly bindingGeneration: bigint;
|
|
61
|
+
}
|
|
47
62
|
export interface ZLinkRemoteBoundSessionPort extends ZLinkStreamActorLifecyclePort {
|
|
48
|
-
|
|
63
|
+
closeSessionBinding(actorId: string, expected: ZLinkSessionBindingIdentity, signal?: AbortSignal): Promise<void>;
|
|
49
64
|
sendLocalBoundSession(actorId: string, message: unknown, packetName: string | undefined, metadata: ReadonlyMap<string, string>): Promise<boolean>;
|
|
50
65
|
sendLocalBoundSessionResponse(actorId: string, packetName: string, requestSeq: bigint, message: unknown, metadata: ReadonlyMap<string, string>, compressPayload: boolean): Promise<boolean>;
|
|
51
66
|
sendLocalBoundSessionError(actorId: string, packetName: string, requestSeq: bigint, error: unknown, metadata: ReadonlyMap<string, string>): Promise<boolean>;
|
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.zlinkStreamLz4CompressionCodec = exports.ZLinkStreamFrameMessageFactory = void 0;
|
|
4
4
|
exports.resolveStreamCompressionCodec = resolveStreamCompressionCodec;
|
|
5
5
|
exports.decompressStreamPayload = decompressStreamPayload;
|
|
6
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
6
7
|
const runtime_message_1 = require("../backend/runtime-message");
|
|
7
8
|
const flow_context_1 = require("../diagnostics/flow-context");
|
|
8
9
|
const framework_json_v1_1 = require("../messaging/framework-json-v1");
|
|
9
10
|
const Attributes_1 = require("../../contracts/Handlers/Attributes");
|
|
10
11
|
const protocol_1 = require("./protocol");
|
|
11
|
-
const DEFAULT_MAX_DECOMPRESSED_STREAM_PAYLOAD_SIZE = 64 * 1024;
|
|
12
12
|
class ZLinkStreamFrameMessageFactory {
|
|
13
13
|
options;
|
|
14
14
|
compressionCodec;
|
|
@@ -130,7 +130,7 @@ function compressStreamPayload(payload, codec) {
|
|
|
130
130
|
throw new Error(`Compression failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
-
function decompressStreamPayload(payload, codec, maxDecompressedSize =
|
|
133
|
+
function decompressStreamPayload(payload, codec, maxDecompressedSize = stream_wire_1.defaultMaxDecompressedPayloadSize) {
|
|
134
134
|
if (codec === undefined) {
|
|
135
135
|
throw new Error('Compression codec is not configured.');
|
|
136
136
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { ZLinkMessageSerializer, ZLinkSession } from '../../contracts';
|
|
2
|
-
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
3
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
4
|
-
import {
|
|
5
|
-
import type
|
|
6
|
-
import type {
|
|
3
|
+
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
4
|
+
import { type ZLinkApplicationWorkClaim } from '../admission';
|
|
5
|
+
import type { ApplicationJobPermitPort, ApplicationJobQueuePort } from '../application-jobs/contracts';
|
|
6
|
+
import type { ZLinkBackendReadablePoller, ZLinkBackendSocketMonitor, ZLinkBackendStreamPacket, ZLinkBackendStreamSocket } from '../backend/contracts';
|
|
7
7
|
import type { ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
|
|
8
|
+
import { ZLinkDispatchErrorReporter } from '../channels';
|
|
9
|
+
import { type ZLinkRuntimeMetrics } from '../diagnostics';
|
|
8
10
|
import type { StreamSessionService } from '../foundation/service-runtime-contracts';
|
|
9
|
-
import { type ZLinkStreamFrameHeader } from './protocol';
|
|
10
|
-
import { ZLinkManagedStream, type ZLinkNativeSessionRoute } from './managed-stream';
|
|
11
|
-
import { DefaultZLinkSessionContext } from './session-context';
|
|
12
|
-
import type { ZLinkApplicationWorkClaim } from '../admission';
|
|
13
11
|
import type { ServiceActorRef } from '../foundation/service-stateful-registry';
|
|
14
12
|
import type { ServiceRetiredBoundSessionRouteFence } from '../foundation/service-stateful-wire-codec';
|
|
15
|
-
import
|
|
13
|
+
import { ZLinkManagedStream, type ZLinkNativeSessionRoute } from './managed-stream';
|
|
14
|
+
import { type ZLinkStreamFrameHeader } from './protocol';
|
|
15
|
+
import { DefaultZLinkSessionContext } from './session-context';
|
|
16
16
|
interface ZLinkStreamLivenessClock {
|
|
17
17
|
now(): number;
|
|
18
18
|
setTimer(callback: () => void, delayMs: number): unknown;
|
|
@@ -67,7 +67,7 @@ export declare class ZLinkStreamSessionRuntime {
|
|
|
67
67
|
private metricsClosed;
|
|
68
68
|
private readonly livenessClock;
|
|
69
69
|
private lastApplicationActivityAt;
|
|
70
|
-
private
|
|
70
|
+
private lastInboundFrameAt;
|
|
71
71
|
private livenessTimer;
|
|
72
72
|
constructor(options: ZLinkStreamSessionRuntimeOptions & ZLinkStreamLivenessOptions, routingId: unknown, removeSession?: (sessionId: string, session: ZLinkStreamSessionRuntime) => void);
|
|
73
73
|
get session(): Promise<ZLinkSession>;
|
|
@@ -125,7 +125,6 @@ export declare class ZLinkStreamSessionNodeRuntime {
|
|
|
125
125
|
private readonly unaddressedMonitorSessions;
|
|
126
126
|
private unaddressedMonitorSessionHead;
|
|
127
127
|
private unaddressedMonitorSessionCount;
|
|
128
|
-
private readonly disconnectedEndpoints;
|
|
129
128
|
private pendingEndpointlessDisconnect;
|
|
130
129
|
private activityVersion;
|
|
131
130
|
private stopped;
|