@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,86 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkActorRuntimeState = void 0;
|
|
4
|
-
exports.mergeRemoteBoundSessionTarget = mergeRemoteBoundSessionTarget;
|
|
5
|
-
exports.preferredRemoteBoundSessionTarget = preferredRemoteBoundSessionTarget;
|
|
6
4
|
exports.toFrameworkRoutingId = toFrameworkRoutingId;
|
|
7
5
|
exports.toFrameworkActorRef = toFrameworkActorRef;
|
|
6
|
+
const state_lane_1 = require("../execution/state-lane");
|
|
8
7
|
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
9
8
|
const routing_id_1 = require("../routing-id");
|
|
10
9
|
const actor_native_lookup_1 = require("./actor-native-lookup");
|
|
11
10
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* service-wire relocation identity until command 44 releases the owner seal.
|
|
11
|
+
* Session–Actor binding §5·§6: the Actor owner keeps one current binding. The
|
|
12
|
+
* stored value is the binding identity and the route to its Session owner; a
|
|
13
|
+
* relocation fence belongs to the relocation operation that created it.
|
|
16
14
|
*/
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
...target,
|
|
29
|
-
sessionNodeRid: target.sessionNodeRid ?? fallback.sessionNodeRid,
|
|
30
|
-
sessionRid: target.sessionRid ?? fallback.sessionRid,
|
|
31
|
-
sessionOwnerNodeGeneration: target.sessionOwnerNodeGeneration ?? fallback.sessionOwnerNodeGeneration,
|
|
32
|
-
sessionOwnerId: target.sessionOwnerId ?? fallback.sessionOwnerId,
|
|
33
|
-
sessionOwnerLeaseGeneration: target.sessionOwnerLeaseGeneration ?? fallback.sessionOwnerLeaseGeneration,
|
|
34
|
-
bindingGeneration: target.bindingGeneration ?? fallback.bindingGeneration,
|
|
35
|
-
previousAuthorityOwnerGeneration: target.previousAuthorityOwnerGeneration ?? fallback.previousAuthorityOwnerGeneration,
|
|
36
|
-
previousOwnerLeaseGeneration: target.previousOwnerLeaseGeneration ?? fallback.previousOwnerLeaseGeneration,
|
|
37
|
-
relocationSealId: target.relocationSealId ?? fallback.relocationSealId,
|
|
38
|
-
serviceWireRelocation: target.serviceWireRelocation ?? fallback.serviceWireRelocation
|
|
15
|
+
function boundSessionIdentity(target) {
|
|
16
|
+
return {
|
|
17
|
+
routerChannelId: target.routerChannelId,
|
|
18
|
+
targetNodeRid: target.targetNodeRid,
|
|
19
|
+
spotId: target.spotId,
|
|
20
|
+
sessionNodeRid: target.sessionNodeRid,
|
|
21
|
+
sessionRid: target.sessionRid,
|
|
22
|
+
sessionOwnerNodeGeneration: target.sessionOwnerNodeGeneration,
|
|
23
|
+
sessionOwnerId: target.sessionOwnerId,
|
|
24
|
+
sessionOwnerLeaseGeneration: target.sessionOwnerLeaseGeneration,
|
|
25
|
+
bindingGeneration: target.bindingGeneration
|
|
39
26
|
};
|
|
40
|
-
return merged;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Spec 48 §125: reconnection creates a new Session; the previous Session's
|
|
44
|
-
* binding — and its staged relocation fence — is never inherited by a
|
|
45
|
-
* successor. A Core bind refresh only omits routing coordinates it did not
|
|
46
|
-
* recompute, so an explicit Session identity on both sides that disagrees
|
|
47
|
-
* marks the refresh as belonging to a different Session binding, not a
|
|
48
|
-
* same-Session coordinate/generation-only refresh (a bindingGeneration bump
|
|
49
|
-
* with the same sessionNodeRid/sessionRid is a legitimate same-Session
|
|
50
|
-
* refresh and must keep the fence — see the transfer-target generation test
|
|
51
|
-
* below).
|
|
52
|
-
*
|
|
53
|
-
* NOTE: this identity check is a no-op on the path exercised by
|
|
54
|
-
* `remoteBoundSessionTargetForSource` (mesh-router-resolver.ts), which never
|
|
55
|
-
* populates sessionNodeRid/sessionRid on the refresh it emits. Confirmed via
|
|
56
|
-
* TTT reproduction (2026-08-22, run-dir preserved) that a rejected successor
|
|
57
|
-
* bound-session send still occurs through that path after this change; see
|
|
58
|
-
* session report for the STOP writeup.
|
|
59
|
-
*/
|
|
60
|
-
function isSuccessorSessionBinding(fallback, target) {
|
|
61
|
-
return ((fallback.sessionNodeRid !== undefined &&
|
|
62
|
-
target.sessionNodeRid !== undefined &&
|
|
63
|
-
!(0, routing_id_1.routingIdsEqual)(fallback.sessionNodeRid, target.sessionNodeRid)) ||
|
|
64
|
-
(fallback.sessionRid !== undefined &&
|
|
65
|
-
target.sessionRid !== undefined &&
|
|
66
|
-
!(0, routing_id_1.routingIdsEqual)(fallback.sessionRid, target.sessionRid)) ||
|
|
67
|
-
(fallback.sessionOwnerNodeGeneration !== undefined &&
|
|
68
|
-
target.sessionOwnerNodeGeneration !== undefined &&
|
|
69
|
-
fallback.sessionOwnerNodeGeneration !== target.sessionOwnerNodeGeneration) ||
|
|
70
|
-
(fallback.sessionOwnerId !== undefined &&
|
|
71
|
-
target.sessionOwnerId !== undefined &&
|
|
72
|
-
fallback.sessionOwnerId !== target.sessionOwnerId) ||
|
|
73
|
-
(fallback.sessionOwnerLeaseGeneration !== undefined &&
|
|
74
|
-
target.sessionOwnerLeaseGeneration !== undefined &&
|
|
75
|
-
fallback.sessionOwnerLeaseGeneration !== target.sessionOwnerLeaseGeneration));
|
|
76
|
-
}
|
|
77
|
-
function samePhysicalRemoteSession(left, right) {
|
|
78
|
-
return (left.sessionNodeRid !== undefined &&
|
|
79
|
-
right.sessionNodeRid !== undefined &&
|
|
80
|
-
left.sessionRid !== undefined &&
|
|
81
|
-
right.sessionRid !== undefined &&
|
|
82
|
-
(0, routing_id_1.routingIdsEqual)(left.sessionNodeRid, right.sessionNodeRid) &&
|
|
83
|
-
(0, routing_id_1.routingIdsEqual)(left.sessionRid, right.sessionRid));
|
|
84
27
|
}
|
|
85
28
|
function sameRemoteSessionOwnerLifecycle(left, right) {
|
|
86
29
|
return (left.sessionNodeRid !== undefined &&
|
|
@@ -108,20 +51,6 @@ function sameRemoteSessionBinding(left, right) {
|
|
|
108
51
|
right.bindingGeneration !== undefined &&
|
|
109
52
|
left.bindingGeneration === right.bindingGeneration);
|
|
110
53
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Selects the route that still carries the relocation fence when a Core
|
|
113
|
-
* binding refresh and a formal transfer target temporarily coexist.
|
|
114
|
-
*/
|
|
115
|
-
function preferredRemoteBoundSessionTarget(remote, transfer) {
|
|
116
|
-
if (remote === undefined)
|
|
117
|
-
return transfer;
|
|
118
|
-
if (hasRelocationFence(remote) || transfer === undefined)
|
|
119
|
-
return remote;
|
|
120
|
-
return transfer;
|
|
121
|
-
}
|
|
122
|
-
function hasRelocationFence(target) {
|
|
123
|
-
return target.relocationSealId !== undefined || target.serviceWireRelocation !== undefined;
|
|
124
|
-
}
|
|
125
54
|
class ZLinkActorRuntimeState {
|
|
126
55
|
actorId;
|
|
127
56
|
creationTask;
|
|
@@ -135,10 +64,8 @@ class ZLinkActorRuntimeState {
|
|
|
135
64
|
spotGenerationValue;
|
|
136
65
|
spotMembershipEpochValue = 0n;
|
|
137
66
|
nativeActorRefValue;
|
|
138
|
-
boundSessionBindingGenerationValue = 0n;
|
|
139
67
|
entryNodeRidValue;
|
|
140
|
-
|
|
141
|
-
boundSessionTransferTargetValue;
|
|
68
|
+
boundSessionValue;
|
|
142
69
|
remoteActorPacketTargetValue;
|
|
143
70
|
createRequestPayloadValue;
|
|
144
71
|
ownsLocationValue = false;
|
|
@@ -149,6 +76,9 @@ class ZLinkActorRuntimeState {
|
|
|
149
76
|
destroyTask;
|
|
150
77
|
constructor(actorId) {
|
|
151
78
|
this.actorId = actorId;
|
|
79
|
+
if ((0, state_lane_1.isStructuralGuardEnabled)()) {
|
|
80
|
+
guardBoundSessionTargetWrites(this);
|
|
81
|
+
}
|
|
152
82
|
}
|
|
153
83
|
get actorType() {
|
|
154
84
|
return this.actorTypeValue;
|
|
@@ -180,16 +110,28 @@ class ZLinkActorRuntimeState {
|
|
|
180
110
|
return this.nativeActorRefValue;
|
|
181
111
|
}
|
|
182
112
|
get boundSessionBindingGeneration() {
|
|
183
|
-
return this.
|
|
113
|
+
return this.boundSessionValue?.bindingGeneration ?? 0n;
|
|
184
114
|
}
|
|
185
115
|
get entryNodeRid() {
|
|
186
116
|
return this.entryNodeRidValue;
|
|
187
117
|
}
|
|
188
|
-
|
|
189
|
-
|
|
118
|
+
/** The one current Session binding of this Actor (Session–Actor binding §6). */
|
|
119
|
+
get boundSession() {
|
|
120
|
+
return this.boundSessionValue;
|
|
190
121
|
}
|
|
191
|
-
|
|
192
|
-
|
|
122
|
+
/**
|
|
123
|
+
* The current binding when its Session owner is another node. A same-node
|
|
124
|
+
* binding is served by the local Session registry, so remote routing sees
|
|
125
|
+
* no target for it.
|
|
126
|
+
*/
|
|
127
|
+
get remoteBoundSessionTarget() {
|
|
128
|
+
const binding = this.boundSessionValue;
|
|
129
|
+
const actorNodeRid = this.nativeActorRefValue?.nodeRid;
|
|
130
|
+
return binding?.sessionNodeRid !== undefined &&
|
|
131
|
+
actorNodeRid !== undefined &&
|
|
132
|
+
(0, routing_id_1.routingIdsEqual)(binding.sessionNodeRid, toFrameworkRoutingId(actorNodeRid))
|
|
133
|
+
? undefined
|
|
134
|
+
: binding;
|
|
193
135
|
}
|
|
194
136
|
get remoteActorPacketTarget() {
|
|
195
137
|
return this.remoteActorPacketTargetValue;
|
|
@@ -344,23 +286,6 @@ class ZLinkActorRuntimeState {
|
|
|
344
286
|
this.nativeActorRefValue = actorRef;
|
|
345
287
|
this.entryNodeRidValue ??= toFrameworkRoutingId(actorRef.nodeRid);
|
|
346
288
|
}
|
|
347
|
-
setBoundSessionBindingGeneration(generation) {
|
|
348
|
-
if (generation > this.boundSessionBindingGenerationValue) {
|
|
349
|
-
this.boundSessionBindingGenerationValue = generation;
|
|
350
|
-
if (this.remoteBoundSessionTargetValue !== undefined) {
|
|
351
|
-
this.remoteBoundSessionTargetValue = {
|
|
352
|
-
...this.remoteBoundSessionTargetValue,
|
|
353
|
-
bindingGeneration: generation
|
|
354
|
-
};
|
|
355
|
-
}
|
|
356
|
-
if (this.boundSessionTransferTargetValue !== undefined) {
|
|
357
|
-
this.boundSessionTransferTargetValue = {
|
|
358
|
-
...this.boundSessionTransferTargetValue,
|
|
359
|
-
bindingGeneration: generation
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
289
|
/** @internal Installs one authority-confirmed binding inside its Actor owner turn. */
|
|
365
290
|
installBoundSessionBinding(target) {
|
|
366
291
|
if (target.sessionNodeRid === undefined ||
|
|
@@ -369,28 +294,22 @@ class ZLinkActorRuntimeState {
|
|
|
369
294
|
target.sessionOwnerId === undefined ||
|
|
370
295
|
target.sessionOwnerLeaseGeneration === undefined ||
|
|
371
296
|
target.bindingGeneration === undefined) {
|
|
372
|
-
throw new TypeError('An installed bound Session target requires its
|
|
297
|
+
throw new TypeError('An installed bound Session target requires its binding identity.');
|
|
373
298
|
}
|
|
374
|
-
const current =
|
|
299
|
+
const current = this.boundSessionValue;
|
|
375
300
|
if (current !== undefined && sameRemoteSessionOwnerLifecycle(current, target)) {
|
|
376
|
-
// A duplicate command for the exact physical Session
|
|
377
|
-
//
|
|
378
|
-
//
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
return
|
|
301
|
+
// A duplicate or late older command for the exact physical Session
|
|
302
|
+
// leaves the current binding; a newer generation of the same Session
|
|
303
|
+
// replaces it. A different Session in the same owner lifecycle must
|
|
304
|
+
// advance that lifecycle's generation; a late equal/lower one is stale.
|
|
305
|
+
const advances = current.bindingGeneration === undefined ||
|
|
306
|
+
target.bindingGeneration > current.bindingGeneration;
|
|
307
|
+
if (!advances)
|
|
308
|
+
return sameRemoteSessionOwner(current, target);
|
|
384
309
|
}
|
|
385
|
-
const installed = mergeRemoteBoundSessionTarget(target, current);
|
|
386
310
|
// Binding generations are scoped to a Session-owner lifecycle. A restarted
|
|
387
311
|
// owner can legitimately reset its counter below the predecessor value.
|
|
388
|
-
this.
|
|
389
|
-
this.remoteBoundSessionTargetValue = undefined;
|
|
390
|
-
this.boundSessionTransferTargetValue = {
|
|
391
|
-
...installed,
|
|
392
|
-
bindingGeneration: target.bindingGeneration
|
|
393
|
-
};
|
|
312
|
+
this.boundSessionValue = boundSessionIdentity(target);
|
|
394
313
|
return true;
|
|
395
314
|
}
|
|
396
315
|
/** @internal Removes only the exact authority-confirmed Session incarnation. */
|
|
@@ -401,51 +320,17 @@ class ZLinkActorRuntimeState {
|
|
|
401
320
|
target.sessionOwnerId === undefined ||
|
|
402
321
|
target.sessionOwnerLeaseGeneration === undefined ||
|
|
403
322
|
target.bindingGeneration === undefined) {
|
|
404
|
-
throw new TypeError('A retired bound Session target requires its
|
|
405
|
-
}
|
|
406
|
-
let retired = false;
|
|
407
|
-
if (this.remoteBoundSessionTargetValue !== undefined &&
|
|
408
|
-
sameRemoteSessionBinding(this.remoteBoundSessionTargetValue, target)) {
|
|
409
|
-
this.remoteBoundSessionTargetValue = undefined;
|
|
410
|
-
retired = true;
|
|
411
|
-
}
|
|
412
|
-
if (this.boundSessionTransferTargetValue !== undefined &&
|
|
413
|
-
sameRemoteSessionBinding(this.boundSessionTransferTargetValue, target)) {
|
|
414
|
-
this.boundSessionTransferTargetValue = undefined;
|
|
415
|
-
retired = true;
|
|
416
|
-
}
|
|
417
|
-
if (retired) {
|
|
418
|
-
this.boundSessionBindingGenerationValue =
|
|
419
|
-
preferredRemoteBoundSessionTarget(this.remoteBoundSessionTargetValue, this.boundSessionTransferTargetValue)?.bindingGeneration ?? 0n;
|
|
323
|
+
throw new TypeError('A retired bound Session target requires its binding identity.');
|
|
420
324
|
}
|
|
421
|
-
|
|
325
|
+
const current = this.boundSessionValue;
|
|
326
|
+
if (current === undefined || !sameRemoteSessionBinding(current, target))
|
|
327
|
+
return false;
|
|
328
|
+
this.boundSessionValue = undefined;
|
|
329
|
+
return true;
|
|
422
330
|
}
|
|
423
331
|
setEntryNodeRid(entryNodeRid) {
|
|
424
332
|
this.entryNodeRidValue = entryNodeRid;
|
|
425
333
|
}
|
|
426
|
-
setRemoteBoundSessionTarget(target) {
|
|
427
|
-
const current = preferredRemoteBoundSessionTarget(this.remoteBoundSessionTargetValue, this.boundSessionTransferTargetValue);
|
|
428
|
-
const merged = target === undefined ? undefined : mergeRemoteBoundSessionTarget(target, current);
|
|
429
|
-
const bindingGeneration = maxBindingGeneration(merged?.bindingGeneration, this.remoteBoundSessionTargetValue?.bindingGeneration, this.boundSessionBindingGenerationValue);
|
|
430
|
-
this.remoteBoundSessionTargetValue =
|
|
431
|
-
merged === undefined
|
|
432
|
-
? undefined
|
|
433
|
-
: bindingGeneration === undefined
|
|
434
|
-
? merged
|
|
435
|
-
: { ...merged, bindingGeneration };
|
|
436
|
-
}
|
|
437
|
-
setBoundSessionTransferTarget(target) {
|
|
438
|
-
const merged = target === undefined
|
|
439
|
-
? undefined
|
|
440
|
-
: mergeRemoteBoundSessionTarget(target, this.boundSessionTransferTargetValue);
|
|
441
|
-
const bindingGeneration = maxBindingGeneration(merged?.bindingGeneration, this.boundSessionTransferTargetValue?.bindingGeneration, this.boundSessionBindingGenerationValue);
|
|
442
|
-
this.boundSessionTransferTargetValue =
|
|
443
|
-
merged === undefined
|
|
444
|
-
? undefined
|
|
445
|
-
: bindingGeneration === undefined
|
|
446
|
-
? merged
|
|
447
|
-
: { ...merged, bindingGeneration };
|
|
448
|
-
}
|
|
449
334
|
setRemoteActorPacketTarget(target) {
|
|
450
335
|
this.remoteActorPacketTargetValue = target;
|
|
451
336
|
}
|
|
@@ -477,10 +362,8 @@ class ZLinkActorRuntimeState {
|
|
|
477
362
|
this.spotGenerationValue = undefined;
|
|
478
363
|
this.spotMembershipEpochValue = 0n;
|
|
479
364
|
this.nativeActorRefValue = undefined;
|
|
480
|
-
this.boundSessionBindingGenerationValue = 0n;
|
|
481
365
|
this.entryNodeRidValue = undefined;
|
|
482
|
-
this.
|
|
483
|
-
this.boundSessionTransferTargetValue = undefined;
|
|
366
|
+
this.boundSessionValue = undefined;
|
|
484
367
|
this.remoteActorPacketTargetValue = undefined;
|
|
485
368
|
this.createRequestPayloadValue = undefined;
|
|
486
369
|
this.ownsLocationValue = false;
|
|
@@ -493,10 +376,6 @@ class ZLinkActorRuntimeState {
|
|
|
493
376
|
prepareForRemoteReentry() {
|
|
494
377
|
if (this.remoteActorPacketTargetValue === undefined)
|
|
495
378
|
return;
|
|
496
|
-
const relocationTransferTarget = this.boundSessionTransferTargetValue !== undefined &&
|
|
497
|
-
hasRelocationFence(this.boundSessionTransferTargetValue)
|
|
498
|
-
? this.boundSessionTransferTargetValue
|
|
499
|
-
: undefined;
|
|
500
379
|
this.creationTask = undefined;
|
|
501
380
|
this.configured = false;
|
|
502
381
|
this.context = undefined;
|
|
@@ -505,9 +384,8 @@ class ZLinkActorRuntimeState {
|
|
|
505
384
|
this.spotValue = undefined;
|
|
506
385
|
this.spotIdValue = undefined;
|
|
507
386
|
this.nativeActorRefValue = undefined;
|
|
508
|
-
|
|
509
|
-
this.
|
|
510
|
-
this.boundSessionTransferTargetValue = relocationTransferTarget;
|
|
387
|
+
// The arriving relocation installs the binding it carries.
|
|
388
|
+
this.boundSessionValue = undefined;
|
|
511
389
|
this.remoteActorPacketTargetValue = undefined;
|
|
512
390
|
this.createRequestPayloadValue = undefined;
|
|
513
391
|
this.ownsLocationValue = false;
|
|
@@ -519,15 +397,20 @@ class ZLinkActorRuntimeState {
|
|
|
519
397
|
}
|
|
520
398
|
}
|
|
521
399
|
exports.ZLinkActorRuntimeState = ZLinkActorRuntimeState;
|
|
522
|
-
function
|
|
523
|
-
let
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
400
|
+
function guardBoundSessionTargetWrites(actor) {
|
|
401
|
+
let current;
|
|
402
|
+
Object.defineProperty(actor, 'boundSessionValue', {
|
|
403
|
+
configurable: true,
|
|
404
|
+
enumerable: true,
|
|
405
|
+
get: () => current,
|
|
406
|
+
set: (target) => {
|
|
407
|
+
if (target !== undefined &&
|
|
408
|
+
new Error().stack?.includes('installBoundSessionBinding') !== true) {
|
|
409
|
+
throw new Error('Bound Session target must be installed by installBoundSessionBinding.');
|
|
410
|
+
}
|
|
411
|
+
current = target;
|
|
412
|
+
}
|
|
413
|
+
});
|
|
531
414
|
}
|
|
532
415
|
function toFrameworkRoutingId(routingId) {
|
|
533
416
|
// Runtime routing identities are opaque binary values. Preserve binding
|
|
@@ -10,6 +10,7 @@ exports.decodeRemoteBoundSessionSendPayload = decodeRemoteBoundSessionSendPayloa
|
|
|
10
10
|
exports.decodeRemoteBoundSessionResponsePayload = decodeRemoteBoundSessionResponsePayload;
|
|
11
11
|
exports.decodeRemoteBoundSessionErrorPayload = decodeRemoteBoundSessionErrorPayload;
|
|
12
12
|
exports.streamMetadataMap = streamMetadataMap;
|
|
13
|
+
const flow_context_1 = require("../diagnostics/flow-context");
|
|
13
14
|
exports.ZLINK_REMOTE_BOUND_SESSION_FENCE_NACK_CODE = 'zlink.bound_session.fence';
|
|
14
15
|
/**
|
|
15
16
|
* Permanent command 42/44/45 fence rejection from the session owner. The
|
|
@@ -61,14 +62,8 @@ function encodeRemoteBoundSessionSendPayload(input) {
|
|
|
61
62
|
flowOrigin: encodeWireFlowOrigin(input.flowOrigin)
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
|
-
const WIRE_FLOW_ORIGIN = {
|
|
65
|
-
Inbound: 'inbound',
|
|
66
|
-
Timer: 'timer',
|
|
67
|
-
Application: 'application',
|
|
68
|
-
Lifecycle: 'lifecycle'
|
|
69
|
-
};
|
|
70
65
|
function encodeWireFlowOrigin(origin) {
|
|
71
|
-
return origin === undefined ? undefined :
|
|
66
|
+
return origin === undefined ? undefined : flow_context_1.FLOW_ORIGIN_VALUES[origin];
|
|
72
67
|
}
|
|
73
68
|
function encodeRemoteBoundSessionResponsePayload(input) {
|
|
74
69
|
return {
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import type { ActorRef, ZLinkActorJoinOperationId } from '../../contracts';
|
|
1
|
+
import type { ActorRef, ZLinkActorJoinOperationId, ZLinkFrameworkErrorKind } from '../../contracts';
|
|
2
2
|
/**
|
|
3
|
-
* The Accepted
|
|
4
|
-
* sections 4-5: the public OperationId,
|
|
3
|
+
* The Accepted or Failed result of a deferred cross-node Join. Spot Actor
|
|
4
|
+
* membership sections 4-5: the public OperationId, optional reply and delivery
|
|
5
5
|
* state live only while the current source and target processes run. The
|
|
6
|
-
* completion is never written to a Store
|
|
6
|
+
* completion is never written to a Store or replayed after a restart.
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export type ZLinkDeferredJoinCompletion = {
|
|
9
9
|
readonly operationId: ZLinkActorJoinOperationId;
|
|
10
10
|
readonly actor: ActorRef;
|
|
11
11
|
readonly rawReply: Buffer;
|
|
12
12
|
readonly replyContentType?: string;
|
|
13
|
-
}
|
|
13
|
+
} & ({
|
|
14
|
+
readonly status: 'accepted';
|
|
15
|
+
} | {
|
|
16
|
+
readonly status: 'failed';
|
|
17
|
+
readonly kind: ZLinkFrameworkErrorKind;
|
|
18
|
+
});
|
|
14
19
|
export declare function createDeferredJoinCompletion(actorId: string, operationId: ZLinkActorJoinOperationId, actor: ActorRef, rawReply: Uint8Array, replyContentType?: string): ZLinkDeferredJoinCompletion;
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { ZLinkMessage } from '../../contracts';
|
|
1
|
+
import { type ActorRef, type RoutingId, type SpotRef, type ZLinkActor, type ZLinkActorCreateCall, type ZLinkActorGetOrCreateCall, type ZLinkActorManager, ZLinkMessage } from '../../contracts';
|
|
3
2
|
import type { ZLinkBackendActorRef, ZLinkBackendSpotNode } from '../backend/contracts';
|
|
3
|
+
import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
|
|
4
|
+
import { ZLinkActorRuntimeState } from './actor-runtime-state';
|
|
4
5
|
export { DefaultZLinkActorClient, forwardEncodedActorPacket, type ZLinkActorClientOptions } from './actor-client';
|
|
5
6
|
export { DefaultZLinkActorContext, ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME } from './actor-context';
|
|
6
7
|
export { ZLinkActorSerialExecutor } from './actor-mailbox';
|
|
7
8
|
export { DEFAULT_MESSAGE_FOLLOW_DURATION_MS, ZLinkActorHandoffCoordinator, decodeHandoffPacket, type ZLinkActorHandoffPacket, type ZLinkActorHandoffDispatch, type ZLinkActorHandoffPrefixAdmission, type ZLinkActorHandoffPrefixQueue, type ZLinkActorHandoffPrefixRecord, type ZLinkActorHandoffPreparedReplayAdmission, type ZLinkActorHandoffReplayAdmission, type ZLinkActorHandoffReplayPreparation, type ZLinkActorHandoffResult } from './actor-handoff';
|
|
8
9
|
export { actorMessageFollowContext, attachActorMessageFollowContext, decodeActorMessageFollowContext, type ZLinkActorMessageFollowContext, type ZLinkActorMessageFollowOwnerFence } from './actor-message-follow-context';
|
|
9
|
-
export { ZLinkActorRuntimeState,
|
|
10
|
+
export { ZLinkActorRuntimeState, toFrameworkActorRef, toFrameworkRoutingId, type ZLinkActorCreationOperation, type ZLinkRemoteActorPacketTarget, type ZLinkRemoteBoundSessionTarget } from './actor-runtime-state';
|
|
10
11
|
export { createDeferredJoinCompletion, type ZLinkDeferredJoinCompletion } from './deferred-join-completion';
|
|
11
12
|
export { decodeActorAuthorityIdentity, decodeRelocatingActorAuthorityIdentity, encodeActorAuthorityIdentity, isActorAuthorityPayload, rewriteActorAuthorityRoute, rewriteActorAuthorityOwner, publishInitialActorAuthority, type ZLinkActorAuthorityIdentity } from './actor-authority-publication';
|
|
12
|
-
import { ZLinkActorRuntimeState } from './actor-runtime-state';
|
|
13
13
|
export { ZLinkActorPacketKind, ZLinkSpotActorDispatcher, ZLinkSpotActorHandlerRegistryRuntime, type ZLinkActorPacketDescriptor, type ZLinkSpotActorDispatcherOptions } from './spot-actor-dispatch';
|
|
14
14
|
export { ZLinkActorNativeJoinCoordinator, type ZLinkActorNativeJoinCoordinatorOptions } from './actor-remote-joiner';
|
|
15
15
|
export type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
|
|
16
16
|
export type { ZLinkActorBoundSessionFactory, ZLinkActorJoinCoordinator, ZLinkActorManagerOptions } from './actor-runtime-contracts';
|
|
17
|
-
import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
|
|
18
17
|
export { ZLinkActorTransferRegistry, type ZLinkActorTransferPayloadState } from './actor-transfer-registry';
|
|
19
18
|
export { ZLINK_REMOTE_ACTOR_JOIN_PACKET, ZLINK_REMOTE_ACTOR_SOURCE_LEAVE_TERMINAL, decodeRemoteActorSourceLeaveTerminal } from './actor-remote-wire';
|
|
20
19
|
export { ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET, ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET } from './actor-packet-relay-wire';
|
|
@@ -22,12 +21,13 @@ export { ZLINK_REMOTE_BOUND_SESSION_ERROR_PACKET, ZLINK_REMOTE_BOUND_SESSION_FEN
|
|
|
22
21
|
export { actorJoinIdentity, createActorJoinRequest, createActorMembership, ZLINK_ACTOR_LIFECYCLE_SNAPSHOT, type ZLinkActorLifecycleSnapshotSource } from './actor-lifecycle-snapshot';
|
|
23
22
|
export declare class DefaultZLinkActorManager implements ZLinkActorManager {
|
|
24
23
|
private readonly options;
|
|
24
|
+
private readonly detachedTaskRunner;
|
|
25
25
|
private readonly states;
|
|
26
26
|
private readonly actorMeshNames;
|
|
27
27
|
private readonly relocationStaged;
|
|
28
28
|
private readonly creation;
|
|
29
29
|
private readonly transferredActorRollback;
|
|
30
|
-
constructor(options: ZLinkActorManagerOptions);
|
|
30
|
+
constructor(options: ZLinkActorManagerOptions, detachedTaskRunner: import('../spots/spot-actor-join-dispatch').ZLinkDetachedTaskRunner);
|
|
31
31
|
create(actorId: string, actorType: string): ZLinkActorCreateCall;
|
|
32
32
|
find(actorId: string, signal?: AbortSignal): Promise<ActorRef | undefined>;
|
|
33
33
|
getOrCreate(actorId: string, actorType: string): ZLinkActorGetOrCreateCall;
|
|
@@ -44,7 +44,7 @@ export declare class DefaultZLinkActorManager implements ZLinkActorManager {
|
|
|
44
44
|
private rememberActorMeshFromType;
|
|
45
45
|
findActor(actorId: string, signal?: AbortSignal): Promise<ZLinkActor | undefined>;
|
|
46
46
|
requireRelocationActorFactory(actorType: string): void;
|
|
47
|
-
prepareRelocationActor(actorId: string, actorType: string, objectGeneration: bigint, authorityOwnerGeneration: bigint, spotId: RoutingId, spotGeneration: bigint, membershipEpoch: bigint, signal?: AbortSignal, transfer?: {
|
|
47
|
+
prepareRelocationActor(actorId: string, actorType: string, objectGeneration: bigint, authorityOwnerGeneration: bigint, spotId: RoutingId | undefined, spotGeneration: bigint, membershipEpoch: bigint, signal?: AbortSignal, transfer?: {
|
|
48
48
|
readonly adapterKey: string;
|
|
49
49
|
readonly state: ZLinkMessage;
|
|
50
50
|
}): Promise<ZLinkActor>;
|
|
@@ -53,6 +53,8 @@ export declare class DefaultZLinkActorManager implements ZLinkActorManager {
|
|
|
53
53
|
completeRelocationSource(actorId: string, sourceActorRef?: ZLinkBackendActorRef): Promise<void>;
|
|
54
54
|
private removeRelocationActor;
|
|
55
55
|
completeCoreRelocationSource(actorId: string): Promise<void>;
|
|
56
|
+
private finalizeActorState;
|
|
57
|
+
private finalizeDestroyedActor;
|
|
56
58
|
getOrCreateActor(actorId: string, actorType: string, signal?: AbortSignal): Promise<ZLinkActor>;
|
|
57
59
|
getOrCreateWithNativeRef(actorId: string, actorType: string, actorRef: ZLinkBackendActorRef, createRequest?: unknown, signal?: AbortSignal): Promise<ZLinkActor>;
|
|
58
60
|
getOrCreateActorResult(actorId: string, actorType: string, createRequest?: unknown, signal?: AbortSignal): Promise<ZLinkActorLocalCreateResult>;
|