@zlink-systems/framework 0.25.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/Channels/IZLinkFanoutClient.d.ts +0 -6
- 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/RouteMesh/RuntimeTopology.d.ts +8 -0
- package/dist/contracts/Spots/Contracts.d.ts +1 -1
- package/dist/internal.d.ts +5 -0
- package/dist/internal.js +16 -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 +28 -0
- package/dist/runtime/activation-admission.js +57 -0
- 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 +19 -17
- package/dist/runtime/actors/actor-handoff.d.ts +13 -7
- package/dist/runtime/actors/actor-handoff.js +36 -25
- 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 +85 -123
- 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 +3 -3
- package/dist/runtime/actors/actor-remote-joiner.js +11 -17
- 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-contracts.d.ts +4 -2
- 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/actor-source-transfer.d.ts +5 -5
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
- package/dist/runtime/actors/deferred-join-completion.js +21 -0
- package/dist/runtime/actors/index.d.ts +10 -8
- package/dist/runtime/actors/index.js +101 -73
- 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 +7 -1
- package/dist/runtime/admission.js +11 -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 +8 -33
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
- 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-factory.d.ts +1 -2
- package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
- package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
- package/dist/runtime/backend/raw-binding-port.d.ts +13 -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 -9
- package/dist/runtime/channels/channel-clients.js +68 -60
- 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 -18
- 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.d.ts +2 -5
- package/dist/runtime/channels/channel-runtime-manager.js +4 -12
- package/dist/runtime/channels/channel-socket-options.js +3 -2
- package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
- package/dist/runtime/channels/channel-socket-registry.js +296 -235
- package/dist/runtime/channels/channel-transports.d.ts +11 -20
- 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 +133 -81
- 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 +22 -9
- package/dist/runtime/execution/index.js +107 -37
- package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
- package/dist/runtime/execution/serial-execution-queue.js +99 -26
- 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/listener-records.d.ts +11 -0
- package/dist/runtime/foundation/listener-records.js +20 -0
- 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 +18 -26
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
- 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.d.ts +1 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +30 -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 +23 -8
- 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-coordinator.d.ts +9 -0
- package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
- package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
- 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 -19
- 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 +28 -24
- package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
- package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
- package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
- package/dist/runtime/foundation/service-topology-registry.js +22 -61
- 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 +28 -28
- package/dist/runtime/host/actor-transfer-runtime.js +210 -256
- 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 +19 -14
- package/dist/runtime/host/index.js +234 -175
- 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 +11 -23
- package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
- package/dist/runtime/host/route-mesh-runtime.js +178 -257
- 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 +71 -38
- package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
- 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 -7
- package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
- package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
- package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
- 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 +79 -27
- 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 +5 -10
- package/dist/runtime/locations/lifecycle.js +4 -33
- 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 +44 -30
- 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 +8 -2
- package/dist/runtime/locations/spot-location-claims.js +40 -23
- 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 +2 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
- package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
- package/dist/runtime/spots/index.d.ts +29 -29
- package/dist/runtime/spots/index.js +441 -313
- package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
- package/dist/runtime/spots/spot-activation-registry.js +27 -60
- package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
- package/dist/runtime/spots/spot-activation-state.js +4 -17
- package/dist/runtime/spots/spot-activation.d.ts +10 -9
- package/dist/runtime/spots/spot-activation.js +103 -81
- 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 +5 -55
- package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
- package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
- package/dist/runtime/spots/spot-actor-membership.js +44 -53
- 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 +3 -4
- package/dist/runtime/spots/spot-entry-activation.js +9 -21
- 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 +6 -5
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
- package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
- package/dist/runtime/spots/spot-outbound.d.ts +4 -3
- package/dist/runtime/spots/spot-outbound.js +10 -37
- 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 -2
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
- 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 +4 -20
- package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
- package/dist/runtime/spots/spot-serial-executor.js +9 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
- package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
- package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
- 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 +12 -19
- package/dist/runtime/streams/index.d.ts +15 -14
- package/dist/runtime/streams/index.js +38 -39
- 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/session-serial-executor.js +2 -2
- 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/Channels/IZLinkFanoutClient.ts +0 -7
- 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/RouteMesh/RuntimeTopology.ts +10 -0
- package/src/contracts/Spots/Contracts.ts +1 -1
- package/src/internal.ts +15 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +72 -0
- 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 +45 -39
- package/src/runtime/actors/actor-handoff.ts +55 -45
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +174 -215
- 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 +15 -36
- 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-contracts.ts +4 -10
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/actor-source-transfer.ts +5 -18
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +44 -0
- package/src/runtime/actors/index.ts +122 -88
- 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 +13 -2
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +15 -42
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
- package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
- package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
- package/src/runtime/backend/raw-binding-port.ts +14 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +132 -96
- 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 -31
- 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 +8 -15
- package/src/runtime/channels/channel-socket-options.ts +8 -2
- package/src/runtime/channels/channel-socket-registry.ts +369 -262
- package/src/runtime/channels/channel-transports.ts +161 -115
- 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 +175 -106
- 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 +116 -38
- package/src/runtime/execution/serial-execution-queue.ts +179 -34
- 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/listener-records.ts +21 -0
- 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 +170 -571
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +41 -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 +30 -19
- 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-coordinator.ts +13 -0
- package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
- 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 -25
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
- package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
- package/src/runtime/foundation/service-topology-registry.ts +30 -79
- 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 +266 -418
- 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 +408 -312
- 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 +12 -44
- package/src/runtime/host/route-mesh-runtime.ts +236 -275
- 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 +1161 -904
- 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 +92 -30
- package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
- package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
- 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 +110 -31
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +16 -45
- 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 +90 -58
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +54 -26
- 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 +27 -10
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
- package/src/runtime/spots/index.ts +687 -437
- package/src/runtime/spots/spot-activation-registry.ts +42 -71
- package/src/runtime/spots/spot-activation-state.ts +4 -16
- package/src/runtime/spots/spot-activation.ts +167 -115
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
- package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
- package/src/runtime/spots/spot-actor-membership.ts +107 -75
- 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 -33
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +29 -21
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
- package/src/runtime/spots/spot-outbound.ts +47 -68
- 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 -6
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +10 -43
- package/src/runtime/spots/spot-serial-executor.ts +10 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
- package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
- package/src/runtime/streams/bound-session-service.ts +23 -37
- package/src/runtime/streams/index.ts +102 -88
- 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/session-serial-executor.ts +2 -2
- 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/deferred-join-accepted-journal.d.ts +0 -47
- package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
- 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/deferred-join-accepted-journal.ts +0 -1346
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -9,6 +9,7 @@ exports.wrapFrameworkPayloadMessage = wrapFrameworkPayloadMessage;
|
|
|
9
9
|
exports.selectDefaultSerializer = selectDefaultSerializer;
|
|
10
10
|
exports.selectSerializer = selectSerializer;
|
|
11
11
|
exports.selectSerializerWithContentType = selectSerializerWithContentType;
|
|
12
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
12
13
|
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
13
14
|
const runtime_message_1 = require("../backend/runtime-message");
|
|
14
15
|
const contracts_1 = require("../../contracts");
|
|
@@ -20,8 +21,11 @@ const Attributes_1 = require("../../contracts/Handlers/Attributes");
|
|
|
20
21
|
const packet_name_1 = require("./packet-name");
|
|
21
22
|
const CodecContentType_1 = require("../../contracts/Configuration/CodecContentType");
|
|
22
23
|
const CodecSerializerSelection_1 = require("../../contracts/Configuration/CodecSerializerSelection");
|
|
24
|
+
const MAX_DECLARED_TYPE_SELECTIONS = 1024;
|
|
23
25
|
const noSerializer = Symbol('noSerializer');
|
|
24
|
-
const JSON_CONTENT_TYPE =
|
|
26
|
+
const JSON_CONTENT_TYPE = stream_wire_1.ZlinkStreamContentType.Json;
|
|
27
|
+
const frameworkJsonReceiveCodec = Symbol('frameworkJsonReceiveCodec');
|
|
28
|
+
const defaultReceiveCodecs = new Map([[JSON_CONTENT_TYPE, frameworkJsonReceiveCodec]]);
|
|
25
29
|
// Registration maps are created during host configuration and are immutable
|
|
26
30
|
// for the runtime lifetime. Compile the candidate list and reverse content
|
|
27
31
|
// type lookup once per map so the message path does not allocate arrays or
|
|
@@ -36,8 +40,8 @@ function encodeFrameworkPayload(payload, registry, packetName, contractPart = 'p
|
|
|
36
40
|
if ((0, contracts_1.isZLinkMessage)(payload)) {
|
|
37
41
|
if (payload.isEncoded()) {
|
|
38
42
|
return {
|
|
39
|
-
message: rememberContentType(toRuntimeMessage(payload.toEncodedPayload()),
|
|
40
|
-
contentType:
|
|
43
|
+
message: rememberContentType(toRuntimeMessage(payload.toEncodedPayload()), stream_wire_1.ZlinkStreamContentType.Raw),
|
|
44
|
+
contentType: stream_wire_1.ZlinkStreamContentType.Raw
|
|
41
45
|
};
|
|
42
46
|
}
|
|
43
47
|
declaredType = (0, ZLinkMessage_1.readZLinkMessageDeclaredType)(payload);
|
|
@@ -72,16 +76,11 @@ function decodeFrameworkTypedPayloadMessage(message, registry, type, contentType
|
|
|
72
76
|
return decodeFrameworkPayload(message, registry, type, contentType, packetName, contractPart);
|
|
73
77
|
}
|
|
74
78
|
function decodeFrameworkPayload(message, registry, type, contentType, packetName, contractPart) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
if (contentType !== JSON_CONTENT_TYPE) {
|
|
79
|
-
const serializer = serializerMapOf(registry)?.get(contentType);
|
|
80
|
-
if (serializer === undefined)
|
|
81
|
-
throw unsupportedContentType(contentType);
|
|
79
|
+
const codec = receiveCodecFor(contentType, registry);
|
|
80
|
+
if (codec !== frameworkJsonReceiveCodec) {
|
|
82
81
|
if (message.isEmpty())
|
|
83
82
|
return undefined;
|
|
84
|
-
return
|
|
83
|
+
return codec.deserialize(encodedPayloadFromOwned(message.data()), (type ?? Object));
|
|
85
84
|
}
|
|
86
85
|
if (message.isEmpty())
|
|
87
86
|
return undefined;
|
|
@@ -96,16 +95,11 @@ function wrapFrameworkPayloadMessage(message, registry, contentType = JSON_CONTE
|
|
|
96
95
|
return (0, ZLinkMessage_1.createZLinkMessageFromEncoded)(payload, (type) => decodeFrameworkEncodedPayload(payload, registry, type, contentType, packetName, contractPart));
|
|
97
96
|
}
|
|
98
97
|
function decodeFrameworkEncodedPayload(payload, registry, type, contentType, packetName, contractPart) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
if (contentType !== JSON_CONTENT_TYPE) {
|
|
103
|
-
const serializer = serializerMapOf(registry)?.get(contentType);
|
|
104
|
-
if (serializer === undefined)
|
|
105
|
-
throw unsupportedContentType(contentType);
|
|
98
|
+
const codec = receiveCodecFor(contentType, registry);
|
|
99
|
+
if (codec !== frameworkJsonReceiveCodec) {
|
|
106
100
|
if (payload.isEmpty())
|
|
107
101
|
return undefined;
|
|
108
|
-
return
|
|
102
|
+
return codec.deserialize(payload, (type ?? Object));
|
|
109
103
|
}
|
|
110
104
|
if (payload.isEmpty())
|
|
111
105
|
return undefined;
|
|
@@ -117,6 +111,18 @@ function decodeFrameworkEncodedPayload(payload, registry, type, contentType, pac
|
|
|
117
111
|
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PayloadDecodeFailed, 'PayloadDecodeFailed: framework payload is not valid JSON.', false, error);
|
|
118
112
|
}
|
|
119
113
|
}
|
|
114
|
+
function receiveCodecFor(contentType, registry) {
|
|
115
|
+
if (!(0, CodecContentType_1.isCanonicalCodecContentType)(contentType)) {
|
|
116
|
+
throw unsupportedContentType(contentType);
|
|
117
|
+
}
|
|
118
|
+
const registeredCodec = serializerMapOf(registry)?.get(contentType);
|
|
119
|
+
if (registeredCodec !== undefined)
|
|
120
|
+
return registeredCodec;
|
|
121
|
+
const defaultCodec = defaultReceiveCodecs.get(contentType);
|
|
122
|
+
if (defaultCodec !== undefined)
|
|
123
|
+
return defaultCodec;
|
|
124
|
+
throw unsupportedContentType(contentType);
|
|
125
|
+
}
|
|
120
126
|
function schemaForDecode(type, packetName, contractPart) {
|
|
121
127
|
const contract = type === undefined ? undefined : (0, packet_name_1.readFrameworkPacketJsonContract)(type, packetName);
|
|
122
128
|
return (contract ??
|
|
@@ -167,7 +173,7 @@ function serializerSelectionPlanOf(registry) {
|
|
|
167
173
|
return cached === noSerializer ? undefined : cached;
|
|
168
174
|
}
|
|
169
175
|
const selected = selectSerializerFromEntries(frozenEntries, declaredType);
|
|
170
|
-
if (cachedBusinessTypeCount <
|
|
176
|
+
if (cachedBusinessTypeCount < MAX_DECLARED_TYPE_SELECTIONS) {
|
|
171
177
|
outboundByBusinessType.set(declaredType, selected ?? noSerializer);
|
|
172
178
|
cachedBusinessTypeCount += 1;
|
|
173
179
|
}
|
|
@@ -10,6 +10,9 @@ export declare enum ZLinkSubmitStatus {
|
|
|
10
10
|
export interface ZLinkSubmitResult {
|
|
11
11
|
readonly status: ZLinkSubmitStatus;
|
|
12
12
|
}
|
|
13
|
+
/** Projects the Core submit result once; phase only determines capacity refusal meaning. */
|
|
14
|
+
export declare function submitToRequestResult(result: number, phase: 'submit' | 'completion'): number;
|
|
15
|
+
export declare function classifySubmitResult(result: number, operation: string, phase?: 'submit' | 'completion'): ZLinkSubmitResult;
|
|
13
16
|
export declare function requireOneWayCompletion(result: ZLinkSubmitResult, operation: string, notFoundKind?: ZLinkFrameworkInternalErrorKind): void;
|
|
14
17
|
export declare function requirePublishCompletion(result: ZLinkSubmitResult, operation: string): void;
|
|
15
18
|
export declare function throwAlreadySubmitted(operation: string): never;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkSubmitStatus = void 0;
|
|
4
|
+
exports.submitToRequestResult = submitToRequestResult;
|
|
5
|
+
exports.classifySubmitResult = classifySubmitResult;
|
|
4
6
|
exports.requireOneWayCompletion = requireOneWayCompletion;
|
|
5
7
|
exports.requirePublishCompletion = requirePublishCompletion;
|
|
6
8
|
exports.throwAlreadySubmitted = throwAlreadySubmitted;
|
|
7
9
|
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
10
|
+
const contracts_1 = require("../../contracts");
|
|
11
|
+
const runtime_values_1 = require("../backend/runtime-values");
|
|
8
12
|
var ZLinkSubmitStatus;
|
|
9
13
|
(function (ZLinkSubmitStatus) {
|
|
10
14
|
ZLinkSubmitStatus["Submitted"] = "submitted";
|
|
@@ -14,6 +18,50 @@ var ZLinkSubmitStatus;
|
|
|
14
18
|
ZLinkSubmitStatus["RouteNotConnected"] = "routeNotConnected";
|
|
15
19
|
ZLinkSubmitStatus["Shutdown"] = "shutdown";
|
|
16
20
|
})(ZLinkSubmitStatus || (exports.ZLinkSubmitStatus = ZLinkSubmitStatus = {}));
|
|
21
|
+
/** Projects the Core submit result once; phase only determines capacity refusal meaning. */
|
|
22
|
+
function submitToRequestResult(result, phase) {
|
|
23
|
+
switch (result) {
|
|
24
|
+
case runtime_values_1.SubmitResult.Ok:
|
|
25
|
+
return runtime_values_1.RequestResult.Ok;
|
|
26
|
+
case runtime_values_1.SubmitResult.Backpressured:
|
|
27
|
+
return phase === 'submit' ? runtime_values_1.RequestResult.NotConnected : runtime_values_1.RequestResult.TimedOut;
|
|
28
|
+
case runtime_values_1.SubmitResult.NotConnected:
|
|
29
|
+
return runtime_values_1.RequestResult.NotConnected;
|
|
30
|
+
case runtime_values_1.SubmitResult.NotFound:
|
|
31
|
+
return runtime_values_1.RequestResult.NotFound;
|
|
32
|
+
case runtime_values_1.SubmitResult.NotAdmitted:
|
|
33
|
+
return runtime_values_1.RequestResult.Rejected;
|
|
34
|
+
case runtime_values_1.SubmitResult.InvalidHandle:
|
|
35
|
+
case runtime_values_1.SubmitResult.InvalidArgument:
|
|
36
|
+
case runtime_values_1.SubmitResult.ThreadViolation:
|
|
37
|
+
return runtime_values_1.RequestResult.InvalidArgument;
|
|
38
|
+
case runtime_values_1.SubmitResult.InvalidState:
|
|
39
|
+
return runtime_values_1.RequestResult.InvalidState;
|
|
40
|
+
case runtime_values_1.SubmitResult.NotSupported:
|
|
41
|
+
return runtime_values_1.RequestResult.NotSupported;
|
|
42
|
+
case runtime_values_1.SubmitResult.Terminated:
|
|
43
|
+
return runtime_values_1.RequestResult.Terminated;
|
|
44
|
+
default:
|
|
45
|
+
return runtime_values_1.RequestResult.InternalError;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function classifySubmitResult(result, operation, phase = 'completion') {
|
|
49
|
+
const terminal = submitToRequestResult(result, phase);
|
|
50
|
+
switch (terminal) {
|
|
51
|
+
case runtime_values_1.RequestResult.Ok:
|
|
52
|
+
return { status: ZLinkSubmitStatus.Submitted };
|
|
53
|
+
case runtime_values_1.RequestResult.TimedOut:
|
|
54
|
+
return { status: ZLinkSubmitStatus.TimedOut };
|
|
55
|
+
case runtime_values_1.RequestResult.NotFound:
|
|
56
|
+
return { status: ZLinkSubmitStatus.TargetNotFound };
|
|
57
|
+
case runtime_values_1.RequestResult.NotConnected:
|
|
58
|
+
return { status: ZLinkSubmitStatus.RouteNotConnected };
|
|
59
|
+
case runtime_values_1.RequestResult.Terminated:
|
|
60
|
+
return { status: ZLinkSubmitStatus.Shutdown };
|
|
61
|
+
default:
|
|
62
|
+
throw new contracts_1.ZLinkFrameworkException((0, framework_errors_internal_1.requestResultToPublicErrorKind)(terminal), `${operation} failed with submit result ${result}.`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
17
65
|
function requireOneWayCompletion(result, operation, notFoundKind = framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound) {
|
|
18
66
|
switch (result.status) {
|
|
19
67
|
case ZLinkSubmitStatus.Submitted:
|
|
@@ -343,6 +343,7 @@ export type SessionRelocationRouteUpdate = {
|
|
|
343
343
|
readonly targetAuthorityOwnerGeneration: NonzeroU64;
|
|
344
344
|
readonly targetNodeRid: Rid;
|
|
345
345
|
readonly targetNodeGeneration: NonzeroU64;
|
|
346
|
+
readonly targetOwnerLeaseGeneration: NonzeroU64;
|
|
346
347
|
} | {
|
|
347
348
|
readonly action: "abort";
|
|
348
349
|
readonly currentAuthorityOwnerGeneration: NonzeroU64;
|
|
@@ -1003,6 +1004,7 @@ export type InstanceRouteV1 = {
|
|
|
1003
1004
|
readonly targetNodeGeneration: NonzeroU64;
|
|
1004
1005
|
readonly targetSpotId: Text8;
|
|
1005
1006
|
readonly authority: AuthorityGenerationFence;
|
|
1007
|
+
readonly instanceIntent: Bool8;
|
|
1006
1008
|
} | {
|
|
1007
1009
|
readonly routeKind: "coldActivation";
|
|
1008
1010
|
readonly targetNodeRid: Rid;
|
|
@@ -3701,6 +3701,7 @@ function readSessionRelocationRouteUpdate(reader, context, enclosing, flags) {
|
|
|
3701
3701
|
value["targetAuthorityOwnerGeneration"] = readNonzeroU64(body, context, value, flags);
|
|
3702
3702
|
value["targetNodeRid"] = readRid(body, context, value, flags);
|
|
3703
3703
|
value["targetNodeGeneration"] = readNonzeroU64(body, context, value, flags);
|
|
3704
|
+
value["targetOwnerLeaseGeneration"] = readNonzeroU64(body, context, value, flags);
|
|
3704
3705
|
}
|
|
3705
3706
|
else if (same(value["action"], "abort")) {
|
|
3706
3707
|
value["currentAuthorityOwnerGeneration"] = readNonzeroU64(body, context, value, flags);
|
|
@@ -3732,9 +3733,12 @@ function writeSessionRelocationRouteUpdate(input, writer, context, enclosing, fl
|
|
|
3732
3733
|
if (value["targetNodeGeneration"] === undefined)
|
|
3733
3734
|
fail("targetNodeGeneration required");
|
|
3734
3735
|
writeNonzeroU64(numeric(value["targetNodeGeneration"]), body, context, value, flags);
|
|
3736
|
+
if (value["targetOwnerLeaseGeneration"] === undefined)
|
|
3737
|
+
fail("targetOwnerLeaseGeneration required");
|
|
3738
|
+
writeNonzeroU64(numeric(value["targetOwnerLeaseGeneration"]), body, context, value, flags);
|
|
3735
3739
|
}
|
|
3736
3740
|
else if (same(value["action"], "abort")) {
|
|
3737
|
-
if (value["previousAuthorityOwnerGeneration"] !== undefined || value["targetAuthorityOwnerGeneration"] !== undefined || value["targetNodeRid"] !== undefined || value["targetNodeGeneration"] !== undefined)
|
|
3741
|
+
if (value["previousAuthorityOwnerGeneration"] !== undefined || value["targetAuthorityOwnerGeneration"] !== undefined || value["targetNodeRid"] !== undefined || value["targetNodeGeneration"] !== undefined || value["targetOwnerLeaseGeneration"] !== undefined)
|
|
3738
3742
|
fail("session-relocation-route-update discriminator agreement");
|
|
3739
3743
|
if (value["currentAuthorityOwnerGeneration"] === undefined)
|
|
3740
3744
|
fail("currentAuthorityOwnerGeneration required");
|
|
@@ -5397,7 +5401,7 @@ function readChannelEntry(reader, context, enclosing, flags) {
|
|
|
5397
5401
|
const value = {};
|
|
5398
5402
|
value["channelName"] = readText8(reader, context, value, flags);
|
|
5399
5403
|
value["weight"] = readU32(reader, context, value, flags);
|
|
5400
|
-
if (numeric(value["weight"]) < 0n || numeric(value["weight"]) >
|
|
5404
|
+
if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 10000n)
|
|
5401
5405
|
fail("weight constraint");
|
|
5402
5406
|
return value;
|
|
5403
5407
|
}
|
|
@@ -5411,7 +5415,7 @@ function writeChannelEntry(input, writer, context, enclosing, flags) {
|
|
|
5411
5415
|
writeText8(value["channelName"], writer, context, value, flags);
|
|
5412
5416
|
if (value["weight"] === undefined)
|
|
5413
5417
|
fail("weight required");
|
|
5414
|
-
if (numeric(value["weight"]) < 0n || numeric(value["weight"]) >
|
|
5418
|
+
if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 10000n)
|
|
5415
5419
|
fail("weight constraint");
|
|
5416
5420
|
writeU32(value["weight"], writer, context, value, flags);
|
|
5417
5421
|
}
|
|
@@ -5665,7 +5669,7 @@ function readDescriptorExtension(reader, context, enclosing, flags) {
|
|
|
5665
5669
|
if (value["placementWeight"] !== undefined)
|
|
5666
5670
|
fail("descriptor-extension duplicate");
|
|
5667
5671
|
value["placementWeight"] = readU32(item, context, value, flags);
|
|
5668
|
-
if (numeric(value["placementWeight"]) < 0n || numeric(value["placementWeight"]) >
|
|
5672
|
+
if (numeric(value["placementWeight"]) < 0n || numeric(value["placementWeight"]) > 10000n)
|
|
5669
5673
|
fail("placementWeight constraint");
|
|
5670
5674
|
item.done("placementWeight");
|
|
5671
5675
|
break;
|
|
@@ -5774,7 +5778,7 @@ function writeDescriptorExtension(input, writer, context, enclosing, flags) {
|
|
|
5774
5778
|
body.put(itemBytes);
|
|
5775
5779
|
}
|
|
5776
5780
|
if (value["placementWeight"] !== undefined) {
|
|
5777
|
-
if (numeric(value["placementWeight"]) < 0n || numeric(value["placementWeight"]) >
|
|
5781
|
+
if (numeric(value["placementWeight"]) < 0n || numeric(value["placementWeight"]) > 10000n)
|
|
5778
5782
|
fail("placementWeight constraint");
|
|
5779
5783
|
const item = new Writer();
|
|
5780
5784
|
writeU32(value["placementWeight"], item, context, value, flags);
|
|
@@ -5890,7 +5894,7 @@ function readClientServerAdmission(reader, context, enclosing, flags) {
|
|
|
5890
5894
|
value["lifecycleGeneration"] = readNonzeroU64(body, context, value, flags);
|
|
5891
5895
|
value["descriptorRevision"] = readNonzeroU64(body, context, value, flags);
|
|
5892
5896
|
value["weight"] = readU32(body, context, value, flags);
|
|
5893
|
-
if (numeric(value["weight"]) < 0n || numeric(value["weight"]) >
|
|
5897
|
+
if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 10000n)
|
|
5894
5898
|
fail("weight constraint");
|
|
5895
5899
|
value["runtimeState"] = readRuntimeState(body, context, value, flags);
|
|
5896
5900
|
value["securityIdentity"] = readText8(body, context, value, flags);
|
|
@@ -5947,7 +5951,7 @@ function writeClientServerAdmission(input, writer, context, enclosing, flags) {
|
|
|
5947
5951
|
writeNonzeroU64(numeric(value["descriptorRevision"]), body, context, value, flags);
|
|
5948
5952
|
if (value["weight"] === undefined)
|
|
5949
5953
|
fail("weight required");
|
|
5950
|
-
if (numeric(value["weight"]) < 0n || numeric(value["weight"]) >
|
|
5954
|
+
if (numeric(value["weight"]) < 0n || numeric(value["weight"]) > 10000n)
|
|
5951
5955
|
fail("weight constraint");
|
|
5952
5956
|
writeU32(value["weight"], body, context, value, flags);
|
|
5953
5957
|
if (value["runtimeState"] === undefined)
|
|
@@ -7305,6 +7309,7 @@ function readInstanceRouteV1(reader, context, enclosing, flags) {
|
|
|
7305
7309
|
value["targetNodeGeneration"] = readNonzeroU64(body, context, value, flags);
|
|
7306
7310
|
value["targetSpotId"] = readText8(body, context, value, flags);
|
|
7307
7311
|
value["authority"] = readAuthorityGenerationFence(body, context, value, flags);
|
|
7312
|
+
value["instanceIntent"] = readBool8(body, context, value, flags);
|
|
7308
7313
|
}
|
|
7309
7314
|
else if (same(value["routeKind"], "coldActivation")) {
|
|
7310
7315
|
value["targetNodeRid"] = readRid(body, context, value, flags);
|
|
@@ -7332,6 +7337,7 @@ function* readIncrementalInstanceRouteV1(reader, context, enclosing, flags) {
|
|
|
7332
7337
|
value["targetNodeGeneration"] = yield* readIncrementalNonzeroU64(body, context, value, flags);
|
|
7333
7338
|
value["targetSpotId"] = yield* readIncrementalText8(body, context, value, flags);
|
|
7334
7339
|
value["authority"] = yield* readIncrementalAuthorityGenerationFence(body, context, value, flags);
|
|
7340
|
+
value["instanceIntent"] = yield* readIncrementalBool8(body, context, value, flags);
|
|
7335
7341
|
}
|
|
7336
7342
|
else if (same(value["routeKind"], "coldActivation")) {
|
|
7337
7343
|
value["targetNodeRid"] = yield* readIncrementalRid(body, context, value, flags);
|
|
@@ -7369,9 +7375,12 @@ function writeInstanceRouteV1(input, writer, context, enclosing, flags) {
|
|
|
7369
7375
|
if (value["authority"] === undefined)
|
|
7370
7376
|
fail("authority required");
|
|
7371
7377
|
writeAuthorityGenerationFence(value["authority"], body, context, value, flags);
|
|
7378
|
+
if (value["instanceIntent"] === undefined)
|
|
7379
|
+
fail("instanceIntent required");
|
|
7380
|
+
writeBool8(value["instanceIntent"], body, context, value, flags);
|
|
7372
7381
|
}
|
|
7373
7382
|
else if (same(value["routeKind"], "coldActivation")) {
|
|
7374
|
-
if (value["authority"] !== undefined)
|
|
7383
|
+
if (value["authority"] !== undefined || value["instanceIntent"] !== undefined)
|
|
7375
7384
|
fail("instance-route-v1 discriminator agreement");
|
|
7376
7385
|
if (value["targetNodeRid"] === undefined)
|
|
7377
7386
|
fail("targetNodeRid required");
|
|
@@ -200,6 +200,7 @@ export type ServiceWireSessionRouteUpdate = {
|
|
|
200
200
|
readonly targetAuthorityOwnerGeneration: bigint;
|
|
201
201
|
readonly targetNodeRid: Uint8Array;
|
|
202
202
|
readonly targetNodeGeneration: bigint;
|
|
203
|
+
readonly targetOwnerLeaseGeneration: bigint;
|
|
203
204
|
} | {
|
|
204
205
|
readonly action: "abort";
|
|
205
206
|
readonly currentAuthorityOwnerGeneration: bigint;
|
|
@@ -522,12 +522,13 @@ function b3ValidTerminal(result, failure, payload) { const boundary = [101, 103,
|
|
|
522
522
|
} if (b3FailureResults.get(failure) !== result)
|
|
523
523
|
throw new RangeError("typed failure"); }
|
|
524
524
|
function b3WriteRoute(out, v) { out.push(v.action === "commit" ? 1 : 2); body16(out, b => { if (v.action === "commit") {
|
|
525
|
-
if (v.previousAuthorityOwnerGeneration === 0n || v.targetAuthorityOwnerGeneration === 0n || v.targetNodeGeneration === 0n)
|
|
525
|
+
if (v.previousAuthorityOwnerGeneration === 0n || v.targetAuthorityOwnerGeneration === 0n || v.targetNodeGeneration === 0n || v.targetOwnerLeaseGeneration === 0n)
|
|
526
526
|
throw new RangeError("route commit");
|
|
527
527
|
u64(b, v.previousAuthorityOwnerGeneration);
|
|
528
528
|
u64(b, v.targetAuthorityOwnerGeneration);
|
|
529
529
|
rid(b, v.targetNodeRid);
|
|
530
530
|
u64(b, v.targetNodeGeneration);
|
|
531
|
+
u64(b, v.targetOwnerLeaseGeneration);
|
|
531
532
|
}
|
|
532
533
|
else {
|
|
533
534
|
if (v.currentAuthorityOwnerGeneration === 0n)
|
|
@@ -535,7 +536,7 @@ else {
|
|
|
535
536
|
u64(b, v.currentAuthorityOwnerGeneration);
|
|
536
537
|
} }); }
|
|
537
538
|
function b3ReadRoute(bytes, at) { const action = read8(bytes, at), end = boundedEnd(bytes, at, read16(bytes, at), "session route"); let value; if (action === 1)
|
|
538
|
-
value = { action: "commit", previousAuthorityOwnerGeneration: nonzero64(bytes, at, "previous authority"), targetAuthorityOwnerGeneration: nonzero64(bytes, at, "target authority"), targetNodeRid: readRid(bytes, at), targetNodeGeneration: nonzero64(bytes, at, "target node") };
|
|
539
|
+
value = { action: "commit", previousAuthorityOwnerGeneration: nonzero64(bytes, at, "previous authority"), targetAuthorityOwnerGeneration: nonzero64(bytes, at, "target authority"), targetNodeRid: readRid(bytes, at), targetNodeGeneration: nonzero64(bytes, at, "target node"), targetOwnerLeaseGeneration: nonzero64(bytes, at, "target lease") };
|
|
539
540
|
else if (action === 2)
|
|
540
541
|
value = { action: "abort", currentAuthorityOwnerGeneration: nonzero64(bytes, at, "current authority") };
|
|
541
542
|
else
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ActorRef, RoutingId, ZLinkActor, ZLinkActorJoinOperationId } from '../../contracts';
|
|
2
2
|
import type { ZLinkRemoteBoundSessionTarget } from '../actors/actor-runtime-state';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ZLinkDeferredJoinCompletion } from '../actors/deferred-join-completion';
|
|
4
4
|
import type { ZLinkActorRequestTerminal } from './spot-actor-packet-dispatch';
|
|
5
5
|
/**
|
|
6
6
|
* One production-ingress arrival parked at the target between admission
|
|
@@ -40,7 +40,7 @@ export interface ZLinkFormalRemoteActorAdmissionOutcome {
|
|
|
40
40
|
readonly actorRef: ActorRef;
|
|
41
41
|
readonly reply?: Buffer;
|
|
42
42
|
readonly replyContentType?: string;
|
|
43
|
-
readonly
|
|
43
|
+
readonly deferredJoinCompletion?: ZLinkDeferredJoinCompletion;
|
|
44
44
|
}
|
|
45
45
|
export interface ZLinkFormalRemoteActorAdmissionFailure {
|
|
46
46
|
readonly error: unknown;
|
|
@@ -111,7 +111,7 @@ export declare class ZLinkFormalRemoteActorAdmissionRegistry {
|
|
|
111
111
|
complete(transferId: string, outcome: ZLinkFormalRemoteActorAdmissionOutcome): void;
|
|
112
112
|
fail(transferId: string, error: unknown): void;
|
|
113
113
|
markCommitted(transferId: string, actor: ZLinkActor): void;
|
|
114
|
-
|
|
114
|
+
attachDeferredJoinCompletion(transferId: string, root: ZLinkDeferredJoinCompletion): void;
|
|
115
115
|
abort(transferId: string): void;
|
|
116
116
|
/**
|
|
117
117
|
* Releases the admission for {@code transferId} — normal retention
|
|
@@ -161,9 +161,9 @@ class ZLinkFormalRemoteActorAdmissionRegistry {
|
|
|
161
161
|
...(outcome.replyContentType === undefined
|
|
162
162
|
? {}
|
|
163
163
|
: { replyContentType: outcome.replyContentType }),
|
|
164
|
-
...(outcome.
|
|
164
|
+
...(outcome.deferredJoinCompletion === undefined
|
|
165
165
|
? {}
|
|
166
|
-
: {
|
|
166
|
+
: { deferredJoinCompletion: outcome.deferredJoinCompletion })
|
|
167
167
|
};
|
|
168
168
|
entry.resolveResult(entry.result);
|
|
169
169
|
if (!outcome.accepted) {
|
|
@@ -192,7 +192,7 @@ class ZLinkFormalRemoteActorAdmissionRegistry {
|
|
|
192
192
|
entry.state = 'committed';
|
|
193
193
|
entry.actor = actor;
|
|
194
194
|
}
|
|
195
|
-
|
|
195
|
+
attachDeferredJoinCompletion(transferId, root) {
|
|
196
196
|
const entry = this.admissions.get(transferId);
|
|
197
197
|
if (entry === undefined ||
|
|
198
198
|
entry.state !== 'admitted' ||
|
|
@@ -201,7 +201,7 @@ class ZLinkFormalRemoteActorAdmissionRegistry {
|
|
|
201
201
|
!entry.result.accepted) {
|
|
202
202
|
throw new Error(`Remote actor admission '${transferId}' cannot attach deferred recovery.`);
|
|
203
203
|
}
|
|
204
|
-
entry.result = { ...entry.result,
|
|
204
|
+
entry.result = { ...entry.result, deferredJoinCompletion: root };
|
|
205
205
|
}
|
|
206
206
|
abort(transferId) {
|
|
207
207
|
const entry = this.admissions.get(transferId);
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { RoutingId, ZLinkActor } from '../../contracts';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ZLinkDeferredJoinCompletion, ZLinkRemoteBoundSessionTarget } from '../actors';
|
|
3
3
|
import type { ZLinkActorHandoffPacket } from '../actors/actor-handoff';
|
|
4
4
|
export interface ZLinkFormalRemoteActorTransfer {
|
|
5
5
|
readonly actor: ZLinkActor;
|
|
6
6
|
readonly spotId: RoutingId;
|
|
7
7
|
readonly transferId: string;
|
|
8
8
|
readonly handoffBacklog: readonly ZLinkActorHandoffPacket[];
|
|
9
|
-
readonly
|
|
9
|
+
readonly deferredJoinCompletion?: ZLinkDeferredJoinCompletion;
|
|
10
|
+
/** The Session seal this relocation carries until it publishes command 44. */
|
|
11
|
+
readonly sealedSession?: ZLinkRemoteBoundSessionTarget;
|
|
10
12
|
readonly targetLifecycleCompleted: Promise<void>;
|
|
11
13
|
readonly sourceLeaveSubmitted: Promise<boolean>;
|
|
12
14
|
}
|
|
@@ -23,7 +25,8 @@ export declare class ZLinkFormalRemoteActorTransferRegistry {
|
|
|
23
25
|
readonly spotId: RoutingId;
|
|
24
26
|
readonly transferId: string;
|
|
25
27
|
readonly handoffBacklog: readonly ZLinkActorHandoffPacket[];
|
|
26
|
-
readonly
|
|
28
|
+
readonly deferredJoinCompletion?: ZLinkDeferredJoinCompletion;
|
|
29
|
+
readonly sealedSession?: ZLinkRemoteBoundSessionTarget;
|
|
27
30
|
}): ZLinkFormalRemoteActorTransfer;
|
|
28
31
|
delete(actorId: string): void;
|
|
29
32
|
completeTargetLifecycle(actorId: string, transferId: string): boolean;
|
|
@@ -8,13 +8,13 @@ export { ZLinkSpotActorAdmissionCoordinator } from './spot-actor-admission-coord
|
|
|
8
8
|
import type { ZLinkSpotRouteResolver, ZLinkSpotRouteTarget } from './spot-routing-internal';
|
|
9
9
|
import type { Message } from '../../contracts/Common/Message';
|
|
10
10
|
import type { ZLinkMessageFollowOrigin } from '../foundation/service-runtime-contracts';
|
|
11
|
-
import { ZLinkMessage } from '../../contracts';
|
|
11
|
+
import { ZLinkMessage, ZLinkFrameworkRuntimeState } from '../../contracts';
|
|
12
12
|
import { type ZLinkRuntimeEventPublisher } from '../diagnostics';
|
|
13
13
|
import { type ReadyRecord, type ReceiveRecord } from '../foundation/service-runtime-contracts';
|
|
14
14
|
import type { ZLinkBackendSpot, ZLinkBackendSpotNode } from '../backend/contracts';
|
|
15
15
|
import { ZLinkDispatchErrorReporter } from '../channels';
|
|
16
16
|
import { ZLinkWorkerRuntime } from '../workers';
|
|
17
|
-
import { type
|
|
17
|
+
import { type ZLinkRemoteBoundSessionTarget } from '../actors';
|
|
18
18
|
import type { ZLinkLocationLifecycle } from '../locations';
|
|
19
19
|
import { type ZLinkActorHandoffPacket } from '../actors/actor-handoff';
|
|
20
20
|
import type { CanonicalActorJoinRecovery } from '../foundation/actor-join-recovery-codec';
|
|
@@ -25,11 +25,11 @@ export { DefaultZLinkSpotOutbound, type ZLinkSpotAddressCallOptions, type ZLinkS
|
|
|
25
25
|
import { type ZLinkSpotRoutedTransport } from './spot-outbound';
|
|
26
26
|
export { DefaultZLinkSpotHandlerRegistry, type ZLinkSpotHandlerRegistration } from './spot-handler-registry';
|
|
27
27
|
export { ZLinkRuntimeSpotPublisherTransport } from './spot-publisher-transport';
|
|
28
|
-
import {
|
|
28
|
+
import type { ZLinkSpotActivation } from './spot-activation-state';
|
|
29
29
|
import { type ZLinkNativeSpotAuthority } from './spot-activation';
|
|
30
|
-
import { type ZLinkActorJoinRollback } from './spot-actor-membership';
|
|
31
30
|
import type { ZLinkSpotActorHandoffRuntime, ZLinkSpotActorTransferRuntime, ZLinkSpotBoundSessionRuntime } from './spot-runtime-ports';
|
|
32
31
|
import type { ZLinkRuntimeAdmissionGate } from '../admission';
|
|
32
|
+
import type { ZLinkActivationAdmission } from '../activation-admission';
|
|
33
33
|
import type { ZLinkDetachedTaskRunner } from './spot-actor-join-dispatch';
|
|
34
34
|
import type { ZLinkLocalSpotCreateResult } from './spot-manager-internal-contracts';
|
|
35
35
|
export type { ZLinkLocalSpotCreateResult } from './spot-manager-internal-contracts';
|
|
@@ -61,6 +61,7 @@ export interface ZLinkSpotManagerOptions {
|
|
|
61
61
|
* stateful reply has committed Core membership.
|
|
62
62
|
*/
|
|
63
63
|
readonly dispatchEntryActorJoin?: (meshName: string, actor: ZLinkActor, handoffBacklog?: readonly ZLinkActorHandoffPacket[]) => Promise<void>;
|
|
64
|
+
readonly executeEntryActor?: <T>(meshName: string, actorId: string, operation: () => Promise<T>) => Promise<T>;
|
|
64
65
|
readonly actorCountProvider?: (spotId: RoutingId) => number;
|
|
65
66
|
readonly userSpotExecutionMode?: (meshName: string, spotType: Type<ZLinkSpot>) => import('../../contracts').ZLinkUserSpotExecutionMode;
|
|
66
67
|
readonly userSpotRelocationCoordinationMode?: (meshName: string, spotType: Type<ZLinkSpot>) => import('../../contracts').ZLinkSpotRelocationCoordinationMode;
|
|
@@ -68,7 +69,6 @@ export interface ZLinkSpotManagerOptions {
|
|
|
68
69
|
readonly actorRef?: ActorRef;
|
|
69
70
|
readonly spotId?: RoutingId;
|
|
70
71
|
};
|
|
71
|
-
readonly actorBindingGenerationObserver?: (actorId: string, generation: bigint) => void;
|
|
72
72
|
readonly channelClient?: ZLinkChannelClient;
|
|
73
73
|
readonly fanoutClient?: ZLinkFanoutClient;
|
|
74
74
|
readonly spotPublisherClient?: ZLinkSpotPublisherClient;
|
|
@@ -76,27 +76,24 @@ export interface ZLinkSpotManagerOptions {
|
|
|
76
76
|
readonly routedTransport?: ZLinkSpotRoutedTransport;
|
|
77
77
|
readonly addressTransport?: import('./spot-outbound').ZLinkSpotAddressTransport;
|
|
78
78
|
readonly spotRouterChannelIdForMesh?: (meshName: string) => string;
|
|
79
|
-
readonly channelMeshNameForChannel?: (channelName: string) => string | undefined;
|
|
80
79
|
readonly providerResolver?: ZLinkProviderResolver;
|
|
81
80
|
readonly dispatchErrors?: ZLinkDispatchErrorReporter;
|
|
81
|
+
readonly closeErrorSink?: import('../diagnostics/dispatch-error-port').ZLinkDispatchErrorSink;
|
|
82
82
|
readonly runtimeEventPublisher?: ZLinkRuntimeEventPublisher;
|
|
83
83
|
readonly workerRuntime?: ZLinkWorkerRuntime;
|
|
84
84
|
readonly messageSerializers?: ReadonlyMap<string, ZLinkMessageSerializer>;
|
|
85
85
|
readonly locationLifecycle?: ZLinkLocationLifecycle;
|
|
86
86
|
readonly releaseInstanceAuthority?: (meshName: string, spotId: RoutingId, objectGeneration: bigint) => Promise<void>;
|
|
87
|
-
readonly beginInstanceIdleClosingAuthority?: (meshName: string, spotId: RoutingId) => Promise<
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
readonly
|
|
91
|
-
restoreReady(): Promise<void>;
|
|
92
|
-
} | undefined>;
|
|
87
|
+
readonly beginInstanceIdleClosingAuthority?: (meshName: string, spotId: RoutingId, onCommitted: () => void) => Promise<import('../locations/spot-location-claims').ZLinkInstanceClosingAuthority | undefined>;
|
|
88
|
+
readonly beginInstanceClosingAuthority?: (meshName: string, spotId: RoutingId, onCommitted: () => void, objectGeneration: bigint) => Promise<import('../locations/spot-location-claims').ZLinkInstanceClosingAuthority | undefined>;
|
|
89
|
+
/** Moves a local User Spot incarnation's authority to Closing for a context Close. */
|
|
90
|
+
readonly beginUserClosingAuthority?: (meshName: string, spotId: RoutingId, objectGeneration: bigint, onCommitted: () => void) => Promise<import('../locations/spot-location-claims').ZLinkInstanceClosingAuthority | undefined>;
|
|
93
91
|
readonly instanceSpotApplicationTargetProvider?: (meshName: string, spotId: RoutingId) => {
|
|
94
92
|
readonly stableType: string;
|
|
95
93
|
readonly objectGeneration: bigint;
|
|
96
94
|
} | undefined;
|
|
97
95
|
readonly instanceSpotApplicationQuiescenceProvider?: (meshName: string, spotId: RoutingId, signal?: AbortSignal) => Promise<void>;
|
|
98
96
|
readonly createNativeSpot?: (meshName: string, spotId: RoutingId, authority?: ZLinkNativeSpotAuthority) => ZLinkBackendSpot | undefined;
|
|
99
|
-
readonly createReceived?: () => import('../backend').ZLinkBackendReceived;
|
|
100
97
|
readonly createTopicMessage?: () => import('../backend').ZLinkBackendTopicMessage;
|
|
101
98
|
readonly nativeSpotNodeProvider?: (meshName: string) => ZLinkBackendSpotNode | undefined;
|
|
102
99
|
readonly actorResolver?: (actorId: string) => ZLinkActor | undefined;
|
|
@@ -111,15 +108,17 @@ export interface ZLinkSpotManagerOptions {
|
|
|
111
108
|
readonly actorType: string;
|
|
112
109
|
}>;
|
|
113
110
|
readonly actorLifecycleResolver?: (actorId: string) => ZLinkActor | undefined;
|
|
114
|
-
readonly detachedTaskRunner
|
|
111
|
+
readonly detachedTaskRunner: ZLinkDetachedTaskRunner;
|
|
115
112
|
readonly actorTransferRuntime?: ZLinkSpotActorTransferRuntime;
|
|
116
113
|
readonly boundSessionRuntime?: ZLinkSpotBoundSessionRuntime;
|
|
117
114
|
readonly actorHandoffRuntime?: ZLinkSpotActorHandoffRuntime;
|
|
118
115
|
readonly metrics?: import('../diagnostics').ZLinkRuntimeMetrics;
|
|
119
116
|
readonly admission?: ZLinkRuntimeAdmissionGate;
|
|
120
|
-
readonly
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
readonly statefulExecution?: {
|
|
118
|
+
readonly admissionOpen: () => boolean;
|
|
119
|
+
readonly hostState: () => ZLinkFrameworkRuntimeState;
|
|
120
|
+
};
|
|
121
|
+
readonly activationAdmission?: ZLinkActivationAdmission;
|
|
123
122
|
}
|
|
124
123
|
export declare class DefaultZLinkSpotManager {
|
|
125
124
|
private readonly options;
|
|
@@ -134,8 +133,7 @@ export declare class DefaultZLinkSpotManager {
|
|
|
134
133
|
private readonly formalRemoteActorAdmissions;
|
|
135
134
|
private readonly pendingInstanceMaterializations;
|
|
136
135
|
private readonly pendingInstanceMaterializationsByPrefix;
|
|
137
|
-
private readonly
|
|
138
|
-
private readonly pendingInstanceCloses;
|
|
136
|
+
private readonly closeOperations;
|
|
139
137
|
private readonly pendingInstanceTerminals;
|
|
140
138
|
private readonly pendingInstanceTerminalGenerations;
|
|
141
139
|
private readonly deferredInstanceAuthorityReleases;
|
|
@@ -145,10 +143,6 @@ export declare class DefaultZLinkSpotManager {
|
|
|
145
143
|
entrySpotIdForMesh(meshName: string): string | undefined;
|
|
146
144
|
relocationActivations(meshName: string): readonly ZLinkSpotActivation[];
|
|
147
145
|
activeSpotCount(meshName: string): number;
|
|
148
|
-
instanceActivationConcurrency(meshName: string): {
|
|
149
|
-
readonly active: number;
|
|
150
|
-
readonly limit: number;
|
|
151
|
-
};
|
|
152
146
|
resolveRelocationActivation(meshName: string, spotId: RoutingId): ZLinkSpotActivation | undefined;
|
|
153
147
|
prepareRelocationSpot(meshName: string, objectKind: 'user_spot' | 'instance_spot', stableType: string, implementation: Type<ZLinkSpot | ZLinkInstanceSpot>, spotId: RoutingId, objectGeneration: bigint, authorityOwnerGeneration: bigint, signal?: AbortSignal): Promise<ZLinkSpotActivation>;
|
|
154
148
|
publishRelocationSpot(activation: ZLinkSpotActivation, beforeAdmission?: () => Promise<void>): Promise<void>;
|
|
@@ -156,11 +150,11 @@ export declare class DefaultZLinkSpotManager {
|
|
|
156
150
|
completeRelocationSource(activation: ZLinkSpotActivation): Promise<void>;
|
|
157
151
|
materializeInstance(meshName: string, instanceType: string, spotId: RoutingId, objectGeneration: bigint, signal?: AbortSignal): Promise<void>;
|
|
158
152
|
private materializeInstanceCore;
|
|
159
|
-
private acquireInstanceActivation;
|
|
160
|
-
private releaseInstanceActivation;
|
|
161
153
|
isInstanceMaterialized(meshName: string, instanceType: string, spotId: RoutingId): boolean;
|
|
154
|
+
private resolveApplicationActivation;
|
|
162
155
|
isInstanceMaterializing(meshName: string, spotId: RoutingId): boolean;
|
|
163
|
-
|
|
156
|
+
isSpotClosing(meshName: string, spotId: RoutingId): boolean;
|
|
157
|
+
pendingSpotCloseDecision(meshName: string, spotId: RoutingId): Promise<void> | undefined;
|
|
164
158
|
discardInstance(meshName: string, spotId: RoutingId): Promise<void>;
|
|
165
159
|
isInstanceSpotIdleEvicting(meshName: string, spotId: RoutingId): boolean;
|
|
166
160
|
beginInstanceSpotIdleEviction(meshName: string, spotId: RoutingId): boolean;
|
|
@@ -185,15 +179,18 @@ export declare class DefaultZLinkSpotManager {
|
|
|
185
179
|
list(meshName: string): Promise<readonly ZLinkSpotInfo[]>;
|
|
186
180
|
drainForShutdown(meshName: string, signal?: AbortSignal, deadline?: Date): Promise<void>;
|
|
187
181
|
close(meshName: string, spotId: RoutingId, signal?: AbortSignal): Promise<boolean>;
|
|
182
|
+
closeUserWithAuthority(meshName: string, spotId: RoutingId, beginAuthority: (onCommitted: () => void) => Promise<import('../locations/spot-location-claims').ZLinkInstanceClosingAuthority>, signal?: AbortSignal): Promise<boolean>;
|
|
183
|
+
private closeFromContext;
|
|
188
184
|
private closeWithReason;
|
|
185
|
+
private runCloseOperation;
|
|
186
|
+
private beginCloseAuthority;
|
|
189
187
|
executeOnSpot<TSpot extends ZLinkSpot, TResult>(spotType: Type<TSpot>, spotId: RoutingId, operation: (spot: TSpot) => Promise<TResult> | TResult, signal?: AbortSignal): Promise<TResult>;
|
|
190
188
|
hasActiveSpot(spotId: RoutingId): boolean;
|
|
191
|
-
canCloseUserSpot(meshName: string, spotId: RoutingId): boolean;
|
|
192
189
|
beginUserSpotPublication(meshName: string, spotId: RoutingId): void;
|
|
193
190
|
publishUserSpot(meshName: string, spotId: RoutingId): void;
|
|
194
191
|
abortUserSpotPublication(meshName: string, spotId: RoutingId): void;
|
|
195
192
|
resolveLocalSpotRoute(spotId: RoutingId): ZLinkSpotRouteTarget | undefined;
|
|
196
|
-
admitActorJoin(spotId: RoutingId, actor: ZLinkActor, request: Message, commit: (spot: ZLinkSpot) => Promise<
|
|
193
|
+
admitActorJoin(spotId: RoutingId, actor: ZLinkActor, request: Message, commit: (spot: ZLinkSpot) => Promise<void> | void, signal?: AbortSignal, leaveSource?: () => Promise<void>, contentType?: string): Promise<ZLinkSpotActorJoinResult>;
|
|
197
194
|
leaveActor(spotId: RoutingId, actor: ZLinkActor, signal?: AbortSignal): Promise<void>;
|
|
198
195
|
leaveActorInMesh(meshName: string, spotId: RoutingId, actor: ZLinkActor, signal?: AbortSignal): Promise<void>;
|
|
199
196
|
notifyActorLeftAfterTransfer(spotId: RoutingId, actor: ZLinkActor, signal?: AbortSignal): Promise<void>;
|
|
@@ -221,13 +218,16 @@ export declare class DefaultZLinkSpotManager {
|
|
|
221
218
|
dispatchMeshSpot(meshName: string, owner: ReadyRecord, record: ReceiveRecord): Promise<void>;
|
|
222
219
|
private ensureInstanceApplicationActivation;
|
|
223
220
|
dispatchMeshInstance(meshName: string, owner: ReadyRecord, record: ReceiveRecord): Promise<void>;
|
|
221
|
+
private reportInstanceDispatchFailure;
|
|
224
222
|
private traceInstanceMessage;
|
|
225
223
|
dispatchMeshActor(meshName: string, owner: ReadyRecord, record: ReceiveRecord): Promise<void>;
|
|
226
224
|
dispatchMeshActorJoin(meshName: string, owner: ReadyRecord, record: ReceiveRecord): Promise<void>;
|
|
225
|
+
private dispatchMeshActorJoinCore;
|
|
227
226
|
dispatchMeshSpotControl(meshName: string, owner: ReadyRecord, record: ReceiveRecord): Promise<void>;
|
|
227
|
+
private dispatchMeshSpotControlCore;
|
|
228
228
|
completeFormalSourceLeaveTerminal(actorId: string, transferId: string, succeeded: boolean): Promise<boolean>;
|
|
229
229
|
finalizeActorJoinRelocation(meshName: string, relocationId: string, actor: ZLinkActor, actorRef: ActorRef, submitSourceLeave: (sourceNodeRid: RoutingId) => Promise<void>, signal?: AbortSignal): Promise<boolean>;
|
|
230
|
-
restoreCanonicalActorJoinRecovery(recovery: CanonicalActorJoinRecovery, signal?: AbortSignal
|
|
230
|
+
restoreCanonicalActorJoinRecovery(recovery: CanonicalActorJoinRecovery, signal?: AbortSignal): Promise<void>;
|
|
231
231
|
private encodeMeshActorReply;
|
|
232
232
|
private createActivation;
|
|
233
233
|
private requireRegisteredFactory;
|