@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
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.EventLoopResourceStack = void 0;
|
|
4
|
+
exports.closeResources = closeResources;
|
|
5
|
+
exports.finishResourceCleanup = finishResourceCleanup;
|
|
5
6
|
/** Closes owned runtime resources once, in reverse acquisition order. */
|
|
6
7
|
class EventLoopResourceStack {
|
|
7
8
|
resources = [];
|
|
@@ -31,124 +32,10 @@ async function closeResources(resources) {
|
|
|
31
32
|
failures.push(error);
|
|
32
33
|
}
|
|
33
34
|
}
|
|
35
|
+
finishResourceCleanup(failures);
|
|
36
|
+
}
|
|
37
|
+
function finishResourceCleanup(failures) {
|
|
34
38
|
if (failures.length > 0) {
|
|
35
39
|
throw new AggregateError(failures, 'Event-loop resource cleanup failed.');
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
|
-
/** Keeps infrastructure progress independent from awaiting application handlers. */
|
|
39
|
-
class EventLoopWorkQueues {
|
|
40
|
-
infrastructure = [];
|
|
41
|
-
infrastructureHead = 0;
|
|
42
|
-
infrastructureCount = 0;
|
|
43
|
-
application = [];
|
|
44
|
-
applicationHead = 0;
|
|
45
|
-
applicationCount = 0;
|
|
46
|
-
infrastructureScheduled = false;
|
|
47
|
-
applicationScheduled = false;
|
|
48
|
-
accepting = true;
|
|
49
|
-
submitInfrastructure(task) {
|
|
50
|
-
if (!this.accepting)
|
|
51
|
-
return false;
|
|
52
|
-
this.infrastructure.push(task);
|
|
53
|
-
this.infrastructureCount += 1;
|
|
54
|
-
this.scheduleInfrastructure();
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
submitApplication(task) {
|
|
58
|
-
if (!this.accepting)
|
|
59
|
-
return false;
|
|
60
|
-
this.application.push(task);
|
|
61
|
-
this.applicationCount += 1;
|
|
62
|
-
this.scheduleApplication();
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
stopAdmission() {
|
|
66
|
-
this.accepting = false;
|
|
67
|
-
}
|
|
68
|
-
scheduleInfrastructure() {
|
|
69
|
-
if (this.infrastructureScheduled)
|
|
70
|
-
return;
|
|
71
|
-
this.infrastructureScheduled = true;
|
|
72
|
-
queueMicrotask(() => this.drainInfrastructure());
|
|
73
|
-
}
|
|
74
|
-
drainInfrastructure() {
|
|
75
|
-
this.infrastructureScheduled = false;
|
|
76
|
-
const task = this.takeInfrastructure();
|
|
77
|
-
if (task === undefined)
|
|
78
|
-
return;
|
|
79
|
-
try {
|
|
80
|
-
const result = (0, execution_1.runZLinkExecutionArea)('infrastructure', task);
|
|
81
|
-
if (result instanceof Promise)
|
|
82
|
-
void result.catch(() => undefined);
|
|
83
|
-
}
|
|
84
|
-
finally {
|
|
85
|
-
if (this.infrastructureCount > 0)
|
|
86
|
-
this.scheduleInfrastructure();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
scheduleApplication() {
|
|
90
|
-
if (this.applicationScheduled)
|
|
91
|
-
return;
|
|
92
|
-
this.applicationScheduled = true;
|
|
93
|
-
queueMicrotask(() => void this.drainApplication());
|
|
94
|
-
}
|
|
95
|
-
async drainApplication() {
|
|
96
|
-
try {
|
|
97
|
-
const task = this.takeApplication();
|
|
98
|
-
if (task !== undefined) {
|
|
99
|
-
await (0, execution_1.runZLinkExecutionArea)('application', task);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
// Handler failure is reported by the dispatch owner; it does not stop this queue.
|
|
104
|
-
}
|
|
105
|
-
finally {
|
|
106
|
-
this.applicationScheduled = false;
|
|
107
|
-
if (this.applicationCount > 0)
|
|
108
|
-
this.scheduleApplication();
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
takeInfrastructure() {
|
|
112
|
-
const task = this.infrastructure[this.infrastructureHead];
|
|
113
|
-
if (task === undefined)
|
|
114
|
-
return undefined;
|
|
115
|
-
this.infrastructure[this.infrastructureHead] = undefined;
|
|
116
|
-
this.infrastructureHead += 1;
|
|
117
|
-
this.infrastructureCount -= 1;
|
|
118
|
-
this.compactInfrastructure();
|
|
119
|
-
return task;
|
|
120
|
-
}
|
|
121
|
-
takeApplication() {
|
|
122
|
-
const task = this.application[this.applicationHead];
|
|
123
|
-
if (task === undefined)
|
|
124
|
-
return undefined;
|
|
125
|
-
this.application[this.applicationHead] = undefined;
|
|
126
|
-
this.applicationHead += 1;
|
|
127
|
-
this.applicationCount -= 1;
|
|
128
|
-
this.compactApplication();
|
|
129
|
-
return task;
|
|
130
|
-
}
|
|
131
|
-
compactInfrastructure() {
|
|
132
|
-
if (this.infrastructureCount === 0) {
|
|
133
|
-
this.infrastructure.length = 0;
|
|
134
|
-
this.infrastructureHead = 0;
|
|
135
|
-
}
|
|
136
|
-
else if (this.infrastructureHead >= 1024 &&
|
|
137
|
-
this.infrastructureHead * 2 >= this.infrastructure.length) {
|
|
138
|
-
this.infrastructure.splice(0, this.infrastructureHead);
|
|
139
|
-
this.infrastructureHead = 0;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
compactApplication() {
|
|
143
|
-
if (this.applicationCount === 0) {
|
|
144
|
-
this.application.length = 0;
|
|
145
|
-
this.applicationHead = 0;
|
|
146
|
-
}
|
|
147
|
-
else if (this.applicationHead >= 1024 &&
|
|
148
|
-
this.applicationHead * 2 >= this.application.length) {
|
|
149
|
-
this.application.splice(0, this.applicationHead);
|
|
150
|
-
this.applicationHead = 0;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
exports.EventLoopWorkQueues = EventLoopWorkQueues;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ZLinkListenerKind } from '../../contracts/RouteMesh/RuntimeTopology';
|
|
2
|
+
/**
|
|
3
|
+
* Bound listener records of one runtime generation (spec 04 §3.1). A listener writes its
|
|
4
|
+
* record when it finishes binding. The listener status query reads only this object.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ZLinkListenerRecords {
|
|
7
|
+
private readonly endpoints;
|
|
8
|
+
record(kind: ZLinkListenerKind, name: string, endpoint: string): void;
|
|
9
|
+
clear(): void;
|
|
10
|
+
endpoint(kind: ZLinkListenerKind, name: string): string | undefined;
|
|
11
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZLinkListenerRecords = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Bound listener records of one runtime generation (spec 04 §3.1). A listener writes its
|
|
6
|
+
* record when it finishes binding. The listener status query reads only this object.
|
|
7
|
+
*/
|
|
8
|
+
class ZLinkListenerRecords {
|
|
9
|
+
endpoints = new Map();
|
|
10
|
+
record(kind, name, endpoint) {
|
|
11
|
+
this.endpoints.set(`${kind}:${name}`, endpoint);
|
|
12
|
+
}
|
|
13
|
+
clear() {
|
|
14
|
+
this.endpoints.clear();
|
|
15
|
+
}
|
|
16
|
+
endpoint(kind, name) {
|
|
17
|
+
return this.endpoints.get(`${kind}:${name}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.ZLinkListenerRecords = ZLinkListenerRecords;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE = exports.OPERATION_IDENTITY_BYTES = void 0;
|
|
3
4
|
exports.operationIdentityKey = operationIdentityKey;
|
|
4
5
|
exports.createRandomOperationIdentity = createRandomOperationIdentity;
|
|
6
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
5
7
|
const node_crypto_1 = require("node:crypto");
|
|
8
|
+
exports.OPERATION_IDENTITY_BYTES = 16;
|
|
9
|
+
exports.ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE = 2n;
|
|
6
10
|
function operationIdentityKey(operationId) {
|
|
7
11
|
requireUnsigned64(operationId.high, 'operationId.high');
|
|
8
12
|
requireUnsigned64(operationId.low, 'operationId.low');
|
|
@@ -13,13 +17,13 @@ function operationIdentityKey(operationId) {
|
|
|
13
17
|
}
|
|
14
18
|
function createRandomOperationIdentity(source = node_crypto_1.randomBytes) {
|
|
15
19
|
for (;;) {
|
|
16
|
-
const bytes = source(
|
|
17
|
-
if (bytes.length !==
|
|
18
|
-
throw new RangeError(
|
|
20
|
+
const bytes = source(exports.OPERATION_IDENTITY_BYTES);
|
|
21
|
+
if (bytes.length !== exports.OPERATION_IDENTITY_BYTES) {
|
|
22
|
+
throw new RangeError(`Operation identity entropy source must return exactly ${exports.OPERATION_IDENTITY_BYTES} bytes.`);
|
|
19
23
|
}
|
|
20
24
|
const operationId = {
|
|
21
25
|
high: bytes.readBigUInt64BE(0),
|
|
22
|
-
low: bytes.readBigUInt64BE(
|
|
26
|
+
low: bytes.readBigUInt64BE(stream_wire_1.UINT64_BYTES)
|
|
23
27
|
};
|
|
24
28
|
if (operationId.high !== 0n || operationId.low !== 0n) {
|
|
25
29
|
return operationId;
|
|
@@ -27,7 +31,7 @@ function createRandomOperationIdentity(source = node_crypto_1.randomBytes) {
|
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
function requireUnsigned64(value, name) {
|
|
30
|
-
if (typeof value !== 'bigint' || value < 0n || value >
|
|
34
|
+
if (typeof value !== 'bigint' || value < 0n || value > stream_wire_1.UINT64_MAX) {
|
|
31
35
|
throw new RangeError(`${name} must be an unsigned 64-bit integer.`);
|
|
32
36
|
}
|
|
33
37
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export interface OperationClock {
|
|
2
|
-
|
|
3
|
-
clearTimeout(handle: unknown): void;
|
|
2
|
+
now(): number;
|
|
4
3
|
}
|
|
5
4
|
export declare class OperationTimeoutError extends Error {
|
|
6
5
|
readonly operationId: bigint;
|
|
@@ -17,20 +16,19 @@ export interface PendingOperation<T> {
|
|
|
17
16
|
/** Owns request completion so reply, timeout, cancellation, and shutdown race safely. */
|
|
18
17
|
export declare class OperationRegistry<T> {
|
|
19
18
|
private readonly clock;
|
|
19
|
+
private readonly onPendingChanged?;
|
|
20
20
|
private readonly entries;
|
|
21
21
|
private nextId;
|
|
22
|
-
private
|
|
22
|
+
private deadlineCursor?;
|
|
23
23
|
private closed;
|
|
24
|
-
constructor(clock?: OperationClock);
|
|
24
|
+
constructor(clock?: OperationClock, onPendingChanged?: (() => void) | undefined);
|
|
25
25
|
register(timeoutMs: number, timeoutOwner?: 'registry' | 'sender'): PendingOperation<T>;
|
|
26
26
|
complete(id: bigint, value: T): boolean;
|
|
27
27
|
fail(id: bigint, reason: unknown): boolean;
|
|
28
|
-
private failCore;
|
|
29
28
|
cancel(id: bigint, message?: string): boolean;
|
|
30
29
|
isPending(id: bigint): boolean;
|
|
31
30
|
close(reason?: string): void;
|
|
32
31
|
get size(): number;
|
|
33
|
-
|
|
32
|
+
expire(nowMs: number, turnDeadlineMs: number): number;
|
|
34
33
|
private take;
|
|
35
|
-
private clearTimer;
|
|
36
34
|
}
|
|
@@ -20,25 +20,19 @@ class OperationCancelledError extends Error {
|
|
|
20
20
|
}
|
|
21
21
|
exports.OperationCancelledError = OperationCancelledError;
|
|
22
22
|
const systemClock = {
|
|
23
|
-
|
|
24
|
-
// A request promise is live work. Raw RouteMesh polling deliberately
|
|
25
|
-
// uses unref'ed timers, so this deadline is the handle that keeps a
|
|
26
|
-
// submit() caller alive until a reply, cancellation, or deadline settles.
|
|
27
|
-
return setTimeout(callback, delayMs);
|
|
28
|
-
},
|
|
29
|
-
clearTimeout(handle) {
|
|
30
|
-
clearTimeout(handle);
|
|
31
|
-
}
|
|
23
|
+
now: () => performance.now()
|
|
32
24
|
};
|
|
33
25
|
/** Owns request completion so reply, timeout, cancellation, and shutdown race safely. */
|
|
34
26
|
class OperationRegistry {
|
|
35
27
|
clock;
|
|
28
|
+
onPendingChanged;
|
|
36
29
|
entries = new Map();
|
|
37
30
|
nextId = 1n;
|
|
38
|
-
|
|
31
|
+
deadlineCursor;
|
|
39
32
|
closed = false;
|
|
40
|
-
constructor(clock = systemClock) {
|
|
33
|
+
constructor(clock = systemClock, onPendingChanged) {
|
|
41
34
|
this.clock = clock;
|
|
35
|
+
this.onPendingChanged = onPendingChanged;
|
|
42
36
|
}
|
|
43
37
|
register(timeoutMs, timeoutOwner = 'registry') {
|
|
44
38
|
if (this.closed)
|
|
@@ -47,20 +41,20 @@ class OperationRegistry {
|
|
|
47
41
|
throw new RangeError('timeoutMs must be a non-negative finite number.');
|
|
48
42
|
}
|
|
49
43
|
const id = this.nextId++;
|
|
50
|
-
const generation = this.generation;
|
|
51
44
|
let resolve;
|
|
52
45
|
let reject;
|
|
53
46
|
const promise = new Promise((onResolve, onReject) => {
|
|
54
47
|
resolve = onResolve;
|
|
55
48
|
reject = onReject;
|
|
56
49
|
});
|
|
57
|
-
const entry = {
|
|
50
|
+
const entry = {
|
|
51
|
+
deadlineMs: timeoutOwner === 'registry' ? this.clock.now() + timeoutMs : undefined,
|
|
52
|
+
resolve,
|
|
53
|
+
reject
|
|
54
|
+
};
|
|
58
55
|
this.entries.set(id, entry);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (timeoutOwner === 'registry') {
|
|
62
|
-
entry.timer = this.clock.setTimeout(() => this.rejectIfCurrent(id, generation, new OperationTimeoutError(id)), timeoutMs);
|
|
63
|
-
}
|
|
56
|
+
if (this.entries.size === 1)
|
|
57
|
+
this.onPendingChanged?.();
|
|
64
58
|
return { id, promise };
|
|
65
59
|
}
|
|
66
60
|
complete(id, value) {
|
|
@@ -71,9 +65,6 @@ class OperationRegistry {
|
|
|
71
65
|
return true;
|
|
72
66
|
}
|
|
73
67
|
fail(id, reason) {
|
|
74
|
-
return this.failCore(id, reason);
|
|
75
|
-
}
|
|
76
|
-
failCore(id, reason) {
|
|
77
68
|
const entry = this.take(id);
|
|
78
69
|
if (entry === undefined)
|
|
79
70
|
return false;
|
|
@@ -81,7 +72,7 @@ class OperationRegistry {
|
|
|
81
72
|
return true;
|
|
82
73
|
}
|
|
83
74
|
cancel(id, message) {
|
|
84
|
-
return this.
|
|
75
|
+
return this.fail(id, new OperationCancelledError(id, message));
|
|
85
76
|
}
|
|
86
77
|
isPending(id) {
|
|
87
78
|
return this.entries.has(id);
|
|
@@ -90,39 +81,38 @@ class OperationRegistry {
|
|
|
90
81
|
if (this.closed)
|
|
91
82
|
return;
|
|
92
83
|
this.closed = true;
|
|
93
|
-
this.
|
|
94
|
-
|
|
95
|
-
this.
|
|
96
|
-
for (const [, entry] of pending)
|
|
97
|
-
this.clearTimer(entry);
|
|
98
|
-
for (const [id, entry] of pending) {
|
|
99
|
-
entry.reject(new OperationCancelledError(id, reason));
|
|
100
|
-
}
|
|
84
|
+
for (const id of this.entries.keys())
|
|
85
|
+
this.cancel(id, reason);
|
|
86
|
+
this.deadlineCursor = undefined;
|
|
101
87
|
}
|
|
102
88
|
get size() {
|
|
103
89
|
return this.entries.size;
|
|
104
90
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
91
|
+
expire(nowMs, turnDeadlineMs) {
|
|
92
|
+
let expired = 0;
|
|
93
|
+
while (this.clock.now() < turnDeadlineMs) {
|
|
94
|
+
this.deadlineCursor ??= this.entries.entries();
|
|
95
|
+
const current = this.deadlineCursor.next();
|
|
96
|
+
if (current.done === true) {
|
|
97
|
+
this.deadlineCursor = undefined;
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
const [id, entry] = current.value;
|
|
101
|
+
if (entry.deadlineMs !== undefined && entry.deadlineMs <= nowMs) {
|
|
102
|
+
if (this.fail(id, new OperationTimeoutError(id)))
|
|
103
|
+
expired++;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return expired;
|
|
112
107
|
}
|
|
113
108
|
take(id) {
|
|
114
109
|
const entry = this.entries.get(id);
|
|
115
110
|
if (entry === undefined)
|
|
116
111
|
return undefined;
|
|
117
112
|
this.entries.delete(id);
|
|
118
|
-
this.
|
|
113
|
+
if (this.entries.size === 0)
|
|
114
|
+
this.onPendingChanged?.();
|
|
119
115
|
return entry;
|
|
120
116
|
}
|
|
121
|
-
clearTimer(entry) {
|
|
122
|
-
if (entry.timer === undefined)
|
|
123
|
-
return;
|
|
124
|
-
this.clock.clearTimeout(entry.timer);
|
|
125
|
-
entry.timer = undefined;
|
|
126
|
-
}
|
|
127
117
|
}
|
|
128
118
|
exports.OperationRegistry = OperationRegistry;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { ApplicationIngressRecordOwner } from '../application-jobs/application-ingress-record-owner';
|
|
2
|
+
import type { ApplicationJobQueuePort } from '../application-jobs/contracts';
|
|
1
3
|
import type { ZLinkRawBindingPort } from '../backend/raw-binding-port';
|
|
2
4
|
import { SubmitResult } from '../backend/runtime-values';
|
|
3
|
-
import type { ApplicationJobQueuePort } from '../application-jobs/contracts';
|
|
4
|
-
import { ApplicationIngressRecordOwner } from '../application-jobs/application-ingress-record-owner';
|
|
5
5
|
import { type PendingOperation } from './operation-registry';
|
|
6
6
|
import { ServiceLivenessRegistry, type ServiceLivenessTick } from './service-liveness-registry';
|
|
7
7
|
import { ServiceMailbox, type ServiceMailboxRecord } from './service-mailbox';
|
|
@@ -29,6 +29,7 @@ export interface RawServiceIngressRecord {
|
|
|
29
29
|
}
|
|
30
30
|
export type RawServiceIngressHandler = (record: RawServiceIngressRecord) => RawServicePumpResult | undefined | Promise<RawServicePumpResult | undefined>;
|
|
31
31
|
export interface RawServiceMeshRuntimeOptions {
|
|
32
|
+
readonly onPendingOperationsChanged?: () => void;
|
|
32
33
|
readonly descriptor: ServiceNodeDescriptor;
|
|
33
34
|
readonly resolveAdvertisedEndpoint?: (boundEndpoint: string) => string;
|
|
34
35
|
readonly probeIntervalMs?: number;
|
|
@@ -47,6 +48,7 @@ export interface RawServiceMeshRuntimeOptions {
|
|
|
47
48
|
readonly command?: number;
|
|
48
49
|
}) => void;
|
|
49
50
|
}
|
|
51
|
+
export declare const RAW_MESH_RECEIVE_TIME_BUDGET_MS = 2;
|
|
50
52
|
/**
|
|
51
53
|
* RouteMesh M6A runtime built only on the public raw binding package.
|
|
52
54
|
* It owns protocol, admission, mailbox, request and liveness state.
|
|
@@ -59,17 +61,11 @@ export declare class RawServiceMeshRuntime {
|
|
|
59
61
|
private readonly expectedPeers;
|
|
60
62
|
private readonly endpointOnlyPeers;
|
|
61
63
|
private readonly peerConnectionIntentRemoved;
|
|
62
|
-
private readonly connectionCandidates;
|
|
63
|
-
private readonly unresolvedConnectionCandidates;
|
|
64
|
-
private readonly connectionIds;
|
|
65
64
|
/**
|
|
66
|
-
* The
|
|
67
|
-
*
|
|
68
|
-
* longer usable by the application route.
|
|
65
|
+
* The last observed Core selected route of each RID (Core ROUTER §10.1):
|
|
66
|
+
* RID -> route generation. Only `observeSelectedRoutes` replaces it.
|
|
69
67
|
*/
|
|
70
|
-
private
|
|
71
|
-
private monitorEvents;
|
|
72
|
-
private monitorDrainBuffer;
|
|
68
|
+
private selectedRoutes;
|
|
73
69
|
private readonly bindingPort;
|
|
74
70
|
private readonly applicationJobQueue;
|
|
75
71
|
private readonly peerAdmissionSealed?;
|
|
@@ -82,7 +78,6 @@ export declare class RawServiceMeshRuntime {
|
|
|
82
78
|
private descriptor;
|
|
83
79
|
private host?;
|
|
84
80
|
private router?;
|
|
85
|
-
private monitor?;
|
|
86
81
|
private nextCorrelation;
|
|
87
82
|
private serviceIngress?;
|
|
88
83
|
private closed;
|
|
@@ -112,7 +107,6 @@ export declare class RawServiceMeshRuntime {
|
|
|
112
107
|
requestToNode(targetNodeRoutingId: string, payload: ServiceApplicationPayloadInput, timeoutMs: number): PendingOperation<RawServiceRequestResult>;
|
|
113
108
|
requestToChannel(channelName: string, payload: ServiceApplicationPayloadInput, timeoutMs: number): PendingOperation<RawServiceRequestResult>;
|
|
114
109
|
private selectChannelTarget;
|
|
115
|
-
private isLocalOrReadyPeer;
|
|
116
110
|
setServiceIngress(handler: RawServiceIngressHandler): void;
|
|
117
111
|
reserveLocalIngress(signal?: AbortSignal): Promise<ApplicationIngressRecordOwner>;
|
|
118
112
|
sendService(targetNodeRoutingId: string, parts: readonly Uint8Array[]): Promise<boolean>;
|
|
@@ -120,16 +114,23 @@ export declare class RawServiceMeshRuntime {
|
|
|
120
114
|
replyService(record: Pick<RawServiceIngressRecord, 'sourceRoutingId' | 'sourceRoute' | 'requestSequence' | 'reply'>, parts: readonly Uint8Array[]): void;
|
|
121
115
|
reply(request: ServiceMailboxRecord, payload: ServiceApplicationPayloadInput, terminalResult?: number, failureCode?: number): void;
|
|
122
116
|
pumpOne(nowMs?: number, observe?: RawServicePumpObserver): Promise<RawServicePumpResult>;
|
|
123
|
-
setReadableHandler(handler: () => void): void;
|
|
117
|
+
setReadableHandler(handler: (receiveReady: boolean, routeReady: boolean) => void): void;
|
|
124
118
|
/** Returns whether a receive budget ended before no-data; idle ticks only maintain peers. */
|
|
125
|
-
pumpBatch(receiveReady?: boolean): Promise<boolean>;
|
|
119
|
+
pumpBatch(receiveReady?: boolean, routeReady?: boolean): Promise<boolean>;
|
|
126
120
|
private receiveOne;
|
|
127
|
-
private pullMonitorEvents;
|
|
128
121
|
private reportProtocolError;
|
|
129
122
|
private replyGenericProtocolError;
|
|
130
123
|
private processReceived;
|
|
124
|
+
expireOperations(nowMs: number, turnDeadlineMs: number): number;
|
|
125
|
+
get pendingOperationCount(): number;
|
|
131
126
|
tickLiveness(nowMs?: number): Promise<ServiceLivenessTick>;
|
|
132
|
-
|
|
127
|
+
/**
|
|
128
|
+
* The socket's one route observer (Core ROUTER §10.1). It replaces the
|
|
129
|
+
* observation with Core's selected-route snapshot, ends the admission of
|
|
130
|
+
* every RID whose observed route disappeared or was replaced, and starts the
|
|
131
|
+
* handshake of every newly selected route. Returns the number of changes.
|
|
132
|
+
*/
|
|
133
|
+
observeSelectedRoutes(): Promise<number>;
|
|
133
134
|
close(): void;
|
|
134
135
|
private requestToTarget;
|
|
135
136
|
/**
|
|
@@ -139,18 +140,9 @@ export declare class RawServiceMeshRuntime {
|
|
|
139
140
|
private applicationFrame;
|
|
140
141
|
private applicationPayload;
|
|
141
142
|
private admitPeer;
|
|
142
|
-
private currentConnectionCandidate;
|
|
143
|
-
private createConnectionCandidate;
|
|
144
|
-
private createUnresolvedConnectionCandidate;
|
|
145
|
-
private promoteUnresolvedConnectionCandidate;
|
|
146
|
-
private removeConnectionCandidate;
|
|
147
|
-
private isDiscoveredLifecycleReplacement;
|
|
148
|
-
private expectedPeerRoutingId;
|
|
149
|
-
private acceptsExpectedMonitorEndpoint;
|
|
150
143
|
private retireNotRequiredExpectedPeer;
|
|
151
144
|
private selectBilateralConnection;
|
|
152
145
|
private removePeer;
|
|
153
|
-
private observeMonitorEvent;
|
|
154
146
|
private requireStarted;
|
|
155
147
|
private send;
|
|
156
148
|
}
|