@zlink-systems/framework 0.26.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/contracts/Common/CoreTypes.d.ts +6 -0
- package/dist/contracts/Common/CoreTypes.js +7 -0
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/index.js +0 -1
- package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
- package/dist/contracts/Configuration/InternalDefaults.js +9 -1
- package/dist/contracts/Configuration/Registration.d.ts +13 -2
- package/dist/contracts/Configuration/Registration.js +58 -36
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
- package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
- package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
- package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
- package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
- package/dist/contracts/Handlers/JsonContract.js +10 -4
- package/dist/contracts/Locations/Authority.d.ts +1 -1
- package/dist/contracts/Locations/Authority.js +3 -2
- package/dist/contracts/Locations/Options.js +1 -1
- package/dist/contracts/Locations/Stores.d.ts +12 -0
- package/dist/contracts/Locations/Stores.js +9 -0
- package/dist/contracts/Spots/Contracts.d.ts +1 -1
- package/dist/internal.d.ts +4 -0
- package/dist/internal.js +15 -1
- package/dist/nest-integration.d.ts +4 -2
- package/dist/nest-integration.js +14 -4
- package/dist/runtime/abort.d.ts +1 -0
- package/dist/runtime/abort.js +8 -5
- package/dist/runtime/activation-admission.d.ts +1 -2
- package/dist/runtime/activation-admission.js +2 -6
- package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
- package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
- package/dist/runtime/actors/actor-client.d.ts +2 -2
- package/dist/runtime/actors/actor-client.js +42 -143
- package/dist/runtime/actors/actor-context.d.ts +3 -5
- package/dist/runtime/actors/actor-context.js +13 -11
- package/dist/runtime/actors/actor-handoff.d.ts +4 -4
- package/dist/runtime/actors/actor-handoff.js +8 -8
- package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
- package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
- package/dist/runtime/actors/actor-local-native-join.js +83 -105
- package/dist/runtime/actors/actor-native-lookup.js +2 -8
- package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
- package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
- package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
- package/dist/runtime/actors/actor-remote-joiner.js +5 -9
- package/dist/runtime/actors/actor-remote-wire.js +5 -3
- package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
- package/dist/runtime/actors/actor-request-deadline.js +31 -0
- package/dist/runtime/actors/actor-retry-delay.js +2 -1
- package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
- package/dist/runtime/actors/actor-runtime-state.js +70 -187
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
- package/dist/runtime/actors/deferred-join-completion.js +1 -0
- package/dist/runtime/actors/index.d.ts +9 -7
- package/dist/runtime/actors/index.js +87 -69
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
- package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
- package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
- package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
- package/dist/runtime/admission.d.ts +2 -0
- package/dist/runtime/admission.js +7 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
- package/dist/runtime/backend/contracts/index.d.ts +6 -23
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
- package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
- package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
- package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/runtime-values.d.ts +4 -1
- package/dist/runtime/backend/runtime-values.js +2 -0
- package/dist/runtime/channels/channel-clients.d.ts +20 -8
- package/dist/runtime/channels/channel-clients.js +68 -52
- package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
- package/dist/runtime/channels/channel-envelope.js +47 -29
- package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
- package/dist/runtime/channels/channel-outbound-operations.js +9 -10
- package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
- package/dist/runtime/channels/channel-receive-loops.js +27 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
- package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
- package/dist/runtime/channels/channel-runtime-manager.js +5 -2
- package/dist/runtime/channels/channel-socket-options.js +3 -2
- package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
- package/dist/runtime/channels/channel-socket-registry.js +248 -174
- package/dist/runtime/channels/channel-transports.d.ts +11 -17
- package/dist/runtime/channels/channel-transports.js +68 -47
- package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/client-server-location-runtime.js +10 -11
- package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
- package/dist/runtime/channels/client-server-service-wire.js +32 -11
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
- package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
- package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
- package/dist/runtime/channels/fanout-location-runtime.js +130 -72
- package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
- package/dist/runtime/channels/spot-direct-envelope.js +4 -3
- package/dist/runtime/channels/spot-node-route-transport.js +3 -2
- package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
- package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
- package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
- package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
- package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
- package/dist/runtime/diagnostics/flow-context.js +16 -2
- package/dist/runtime/diagnostics/index.d.ts +4 -2
- package/dist/runtime/diagnostics/index.js +14 -4
- package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
- package/dist/runtime/diagnostics/message-flow.js +10 -19
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
- package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
- package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
- package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
- package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
- package/dist/runtime/disposal.d.ts +5 -0
- package/dist/runtime/disposal.js +22 -0
- package/dist/runtime/execution/index.d.ts +12 -9
- package/dist/runtime/execution/index.js +58 -14
- package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
- package/dist/runtime/execution/serial-execution-queue.js +54 -15
- package/dist/runtime/execution/state-lane.d.ts +8 -1
- package/dist/runtime/execution/state-lane.js +118 -3
- package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
- package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
- package/dist/runtime/foundation/event-loop-resources.js +6 -119
- package/dist/runtime/foundation/operation-identity.d.ts +2 -0
- package/dist/runtime/foundation/operation-identity.js +9 -5
- package/dist/runtime/foundation/operation-registry.d.ts +5 -7
- package/dist/runtime/foundation/operation-registry.js +34 -44
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
- package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
- package/dist/runtime/foundation/runtime-state-projections.js +8 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +22 -3
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
- package/dist/runtime/foundation/service-liveness-registry.js +2 -1
- package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
- package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
- package/dist/runtime/foundation/service-metadata-codec.js +3 -3
- package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
- package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
- package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
- package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
- package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-stateful-registry.js +10 -2
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
- package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
- package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
- package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
- package/dist/runtime/foundation/service-topology-registry.js +17 -32
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
- package/dist/runtime/foundation/service-wire-codec.js +10 -8
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
- package/dist/runtime/framework-errors-internal.d.ts +2 -1
- package/dist/runtime/framework-errors-internal.js +343 -122
- package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
- package/dist/runtime/handlers/handler-instance-scope.js +61 -74
- package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
- package/dist/runtime/host/actor-packet-relay.js +48 -91
- package/dist/runtime/host/actor-placement-coordinator.js +7 -5
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
- package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
- package/dist/runtime/host/actor-transfer-runtime.js +143 -176
- package/dist/runtime/host/application-job-queue.js +16 -33
- package/dist/runtime/host/bound-session-relay.js +1 -1
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
- package/dist/runtime/host/index.d.ts +14 -13
- package/dist/runtime/host/index.js +190 -157
- package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
- package/dist/runtime/host/instance-activation-authority.js +17 -45
- package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
- package/dist/runtime/host/location-runtime-owner.js +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
- package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
- package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
- package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
- package/dist/runtime/host/remote-bound-session-relay.js +7 -20
- package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
- package/dist/runtime/host/route-mesh-runtime.js +171 -252
- package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
- package/dist/runtime/host/runtime-shutdown.js +18 -21
- package/dist/runtime/host/service-relocation-control.js +6 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
- package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
- package/dist/runtime/host/spot-address-transport.d.ts +2 -3
- package/dist/runtime/host/spot-address-transport.js +34 -136
- package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
- package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
- package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
- package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
- package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
- package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
- package/dist/runtime/locations/authority-key-codec.js +4 -3
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
- package/dist/runtime/locations/creation-operation-id.js +6 -4
- package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
- package/dist/runtime/locations/in-memory-authority-store.js +31 -15
- package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
- package/dist/runtime/locations/in-memory-location-store.js +17 -14
- package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
- package/dist/runtime/locations/key-codec.js +3 -2
- package/dist/runtime/locations/lease-tracker.d.ts +3 -5
- package/dist/runtime/locations/lease-tracker.js +7 -11
- package/dist/runtime/locations/lifecycle.d.ts +4 -9
- package/dist/runtime/locations/lifecycle.js +2 -31
- package/dist/runtime/locations/location-store-failure.d.ts +2 -0
- package/dist/runtime/locations/location-store-failure.js +7 -0
- package/dist/runtime/locations/location-store-pages.d.ts +3 -0
- package/dist/runtime/locations/location-store-pages.js +13 -0
- package/dist/runtime/locations/location-store-repository.d.ts +5 -7
- package/dist/runtime/locations/location-store-repository.js +303 -332
- package/dist/runtime/locations/relocation-blob.js +18 -5
- package/dist/runtime/locations/resolvers.d.ts +5 -5
- package/dist/runtime/locations/resolvers.js +37 -28
- package/dist/runtime/locations/runtime.d.ts +5 -4
- package/dist/runtime/locations/runtime.js +123 -92
- package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
- package/dist/runtime/locations/spot-location-claims.js +42 -1
- package/dist/runtime/messaging/payload-codec.js +26 -20
- package/dist/runtime/messaging/submission-result.d.ts +3 -0
- package/dist/runtime/messaging/submission-result.js +48 -0
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
- package/dist/runtime/spots/index.d.ts +14 -20
- package/dist/runtime/spots/index.js +302 -176
- package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
- package/dist/runtime/spots/spot-activation-registry.js +14 -50
- package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
- package/dist/runtime/spots/spot-activation-state.js +2 -2
- package/dist/runtime/spots/spot-activation.d.ts +3 -4
- package/dist/runtime/spots/spot-activation.js +49 -32
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
- package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
- package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
- package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
- package/dist/runtime/spots/spot-actor-membership.js +22 -45
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
- package/dist/runtime/spots/spot-context.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.js +9 -20
- package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
- package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
- package/dist/runtime/spots/spot-manager-public.js +5 -4
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
- package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
- package/dist/runtime/spots/spot-outbound.d.ts +4 -3
- package/dist/runtime/spots/spot-outbound.js +9 -8
- package/dist/runtime/spots/spot-remote-codec.js +5 -3
- package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
- package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
- package/dist/runtime/spots/spot-route-replies.js +3 -1
- package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
- package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
- package/dist/runtime/spots/spot-serial-executor.js +2 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
- package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
- package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
- package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
- package/dist/runtime/streams/bound-session-service.d.ts +7 -0
- package/dist/runtime/streams/bound-session-service.js +11 -1
- package/dist/runtime/streams/index.d.ts +14 -15
- package/dist/runtime/streams/index.js +20 -21
- package/dist/runtime/streams/managed-stream.d.ts +3 -0
- package/dist/runtime/streams/managed-stream.js +17 -8
- package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
- package/dist/runtime/streams/protocol.d.ts +6 -33
- package/dist/runtime/streams/protocol.js +38 -110
- package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
- package/dist/runtime/streams/session-actor-coordinator.js +12 -4
- package/dist/runtime/streams/session-calls.d.ts +1 -1
- package/dist/runtime/streams/session-calls.js +5 -4
- package/dist/runtime/streams/session-context.d.ts +6 -6
- package/dist/runtime/streams/session-context.js +22 -4
- package/dist/runtime/streams/session-requests.js +2 -1
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
- package/dist/runtime/streams/stream-frame-factory.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
- package/dist/runtime/streams/stream-session-runtime.js +25 -33
- package/dist/runtime/workers/index.d.ts +2 -2
- package/dist/runtime/workers/index.js +5 -4
- package/package.json +3 -3
- package/src/contracts/Common/CoreTypes.ts +7 -0
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Configuration/InternalDefaults.ts +12 -0
- package/src/contracts/Configuration/Registration.ts +92 -48
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
- package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
- package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
- package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
- package/src/contracts/Handlers/JsonContract.ts +14 -4
- package/src/contracts/Locations/Authority.ts +7 -3
- package/src/contracts/Locations/Options.ts +1 -1
- package/src/contracts/Locations/Stores.ts +14 -0
- package/src/contracts/Spots/Contracts.ts +1 -1
- package/src/internal.ts +14 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +2 -8
- package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
- package/src/runtime/actors/actor-client.ts +77 -204
- package/src/runtime/actors/actor-context.ts +39 -33
- package/src/runtime/actors/actor-handoff.ts +24 -22
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +172 -174
- package/src/runtime/actors/actor-native-lookup.ts +2 -9
- package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
- package/src/runtime/actors/actor-remote-joiner.ts +9 -11
- package/src/runtime/actors/actor-remote-wire.ts +5 -3
- package/src/runtime/actors/actor-request-deadline.ts +49 -0
- package/src/runtime/actors/actor-retry-delay.ts +2 -1
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +10 -6
- package/src/runtime/actors/index.ts +100 -79
- package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
- package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
- package/src/runtime/admission.ts +8 -1
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +13 -29
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
- package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
- package/src/runtime/backend/raw-binding-port.ts +1 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +132 -85
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
- package/src/runtime/channels/channel-envelope.ts +58 -29
- package/src/runtime/channels/channel-outbound-operations.ts +10 -23
- package/src/runtime/channels/channel-receive-loops.ts +39 -7
- package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
- package/src/runtime/channels/channel-runtime-manager.ts +6 -2
- package/src/runtime/channels/channel-socket-options.ts +8 -2
- package/src/runtime/channels/channel-socket-registry.ts +301 -192
- package/src/runtime/channels/channel-transports.ts +161 -112
- package/src/runtime/channels/client-server-location-runtime.ts +17 -17
- package/src/runtime/channels/client-server-service-wire.ts +40 -12
- package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
- package/src/runtime/channels/fanout-location-runtime.ts +172 -91
- package/src/runtime/channels/spot-direct-envelope.ts +1 -1
- package/src/runtime/channels/spot-node-route-transport.ts +5 -2
- package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
- package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
- package/src/runtime/diagnostics/flow-context.ts +16 -2
- package/src/runtime/diagnostics/index.ts +27 -17
- package/src/runtime/diagnostics/message-flow.ts +15 -25
- package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
- package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
- package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
- package/src/runtime/disposal.ts +19 -0
- package/src/runtime/execution/index.ts +60 -20
- package/src/runtime/execution/serial-execution-queue.ts +131 -18
- package/src/runtime/execution/state-lane.ts +142 -4
- package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
- package/src/runtime/foundation/event-loop-resources.ts +5 -122
- package/src/runtime/foundation/operation-identity.ts +11 -5
- package/src/runtime/foundation/operation-registry.ts +33 -50
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
- package/src/runtime/foundation/service-discovery-registry.ts +32 -3
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
- package/src/runtime/foundation/service-liveness-registry.ts +2 -1
- package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
- package/src/runtime/foundation/service-metadata-codec.ts +2 -2
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
- package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
- package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
- package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
- package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
- package/src/runtime/foundation/service-topology-registry.ts +23 -32
- package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
- package/src/runtime/foundation/service-wire-codec.ts +15 -8
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
- package/src/runtime/framework-errors-internal.ts +380 -134
- package/src/runtime/handlers/handler-instance-scope.ts +68 -95
- package/src/runtime/host/actor-packet-relay.ts +57 -147
- package/src/runtime/host/actor-placement-coordinator.ts +8 -5
- package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
- package/src/runtime/host/actor-transfer-runtime.ts +180 -260
- package/src/runtime/host/application-job-queue.ts +28 -34
- package/src/runtime/host/bound-session-relay.ts +1 -2
- package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
- package/src/runtime/host/index.ts +327 -296
- package/src/runtime/host/instance-activation-authority.ts +89 -109
- package/src/runtime/host/location-runtime-owner.ts +4 -2
- package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
- package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
- package/src/runtime/host/remote-bound-session-relay.ts +8 -41
- package/src/runtime/host/route-mesh-runtime.ts +228 -271
- package/src/runtime/host/runtime-shutdown.ts +17 -21
- package/src/runtime/host/service-relocation-control.ts +14 -1
- package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
- package/src/runtime/host/spot-address-transport.ts +73 -195
- package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
- package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
- package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
- package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
- package/src/runtime/locations/authority-key-codec.ts +7 -3
- package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
- package/src/runtime/locations/creation-operation-id.ts +6 -3
- package/src/runtime/locations/domain-store-contract.ts +12 -3
- package/src/runtime/locations/in-memory-authority-store.ts +44 -15
- package/src/runtime/locations/in-memory-location-store.ts +50 -39
- package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +13 -43
- package/src/runtime/locations/location-store-failure.ts +4 -0
- package/src/runtime/locations/location-store-pages.ts +18 -0
- package/src/runtime/locations/location-store-repository.ts +450 -478
- package/src/runtime/locations/relocation-blob.ts +17 -6
- package/src/runtime/locations/resolvers.ts +75 -49
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +58 -1
- package/src/runtime/messaging/payload-codec.ts +35 -24
- package/src/runtime/messaging/submission-result.ts +57 -1
- package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
- package/src/runtime/spots/index.ts +433 -229
- package/src/runtime/spots/spot-activation-registry.ts +30 -69
- package/src/runtime/spots/spot-activation-state.ts +2 -2
- package/src/runtime/spots/spot-activation.ts +67 -37
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
- package/src/runtime/spots/spot-actor-membership.ts +40 -72
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
- package/src/runtime/spots/spot-context.ts +3 -3
- package/src/runtime/spots/spot-entry-activation.ts +13 -30
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +21 -17
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
- package/src/runtime/spots/spot-outbound.ts +45 -23
- package/src/runtime/spots/spot-remote-codec.ts +7 -3
- package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
- package/src/runtime/spots/spot-route-replies.ts +6 -4
- package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +5 -27
- package/src/runtime/spots/spot-serial-executor.ts +2 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
- package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
- package/src/runtime/streams/bound-session-service.ts +21 -1
- package/src/runtime/streams/index.ts +76 -64
- package/src/runtime/streams/managed-stream.ts +29 -10
- package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
- package/src/runtime/streams/protocol.ts +34 -88
- package/src/runtime/streams/session-actor-coordinator.ts +17 -5
- package/src/runtime/streams/session-calls.ts +6 -5
- package/src/runtime/streams/session-context.ts +54 -10
- package/src/runtime/streams/session-requests.ts +2 -1
- package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
- package/src/runtime/streams/stream-frame-factory.ts +2 -3
- package/src/runtime/streams/stream-session-runtime.ts +57 -59
- package/src/runtime/workers/index.ts +13 -12
- package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
- package/dist/runtime/actors/post-commit-actor-location.js +0 -72
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
- package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { type ZLinkBackendMessageLike as MessageLike } from '../backend/runtime-values';
|
|
2
|
-
import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
|
|
3
1
|
import { ZLinkFrameworkException } from '../../contracts';
|
|
4
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
3
|
+
import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
|
|
4
|
+
import { type ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
|
|
5
|
+
import { type ZLinkBackendMessageLike as MessageLike } from '../backend/runtime-values';
|
|
6
|
+
import type { ZLinkRuntimeMetrics } from '../diagnostics';
|
|
7
|
+
import { type ZLinkMessageFlowTracer } from '../diagnostics';
|
|
5
8
|
import { type ZLinkSubmitResult } from '../messaging/submission-result';
|
|
6
9
|
import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
|
|
7
|
-
import type {
|
|
8
|
-
import { type ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
|
|
10
|
+
import type { ZLinkSpotRoutedSendOptions, ZLinkSpotRoutedRequestOptions } from '../spots/spot-outbound';
|
|
9
11
|
import { type ZLinkChannelEnvelopeCodecRegistry } from './channel-envelope';
|
|
10
12
|
export interface ZLinkChannelClientTransport {
|
|
11
13
|
send(channelName: string, packetName: string | undefined, message: unknown, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): void | ZLinkSubmitResult | Promise<void | ZLinkSubmitResult>;
|
|
@@ -61,10 +63,11 @@ export declare class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTrans
|
|
|
61
63
|
private readonly localNodeSubmit?;
|
|
62
64
|
private readonly metrics?;
|
|
63
65
|
private readonly flowCreationEnabled;
|
|
66
|
+
private readonly outboundFlow;
|
|
64
67
|
constructor(manager: () => ZLinkChannelTransportRuntime | undefined, routeChannelPredicate?: ((routerChannelId: string) => boolean) | undefined, meshRuntime?: (() => {
|
|
65
68
|
readonly meshNode: (meshName: string) => ZLinkBackendMeshNode | undefined;
|
|
66
69
|
readonly meshCompletionTable: (meshName: string) => ZLinkMeshCompletionTable | undefined;
|
|
67
|
-
} | undefined) | undefined, codecs?: ZLinkChannelEnvelopeCodecRegistry | undefined, manualNodeTarget?: ((meshName: string, targetNodeRid: string) => boolean | undefined) | undefined, localNodeSubmit?: ((meshName: string, sourceNodeRid: string, parts: readonly MessageLike[]) => ZLinkSubmitResult) | undefined, metrics?: ZLinkRuntimeMetrics | undefined, flowCreationEnabled?: () => boolean);
|
|
70
|
+
} | undefined) | undefined, codecs?: ZLinkChannelEnvelopeCodecRegistry | undefined, manualNodeTarget?: ((meshName: string, targetNodeRid: string) => boolean | undefined) | undefined, localNodeSubmit?: ((meshName: string, sourceNodeRid: string, parts: readonly MessageLike[]) => ZLinkSubmitResult) | undefined, metrics?: ZLinkRuntimeMetrics | undefined, flowCreationEnabled?: () => boolean, outboundFlow?: () => ZLinkMessageFlowTracer | undefined);
|
|
68
71
|
canRouteChannel(routerChannelId: string): boolean;
|
|
69
72
|
canRoutePacketChannel(routerChannelId: string): boolean;
|
|
70
73
|
submit(meshName: string, targetNodeRid: string, packetName: string | undefined, message: unknown, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
@@ -72,17 +75,13 @@ export declare class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTrans
|
|
|
72
75
|
private submitNode;
|
|
73
76
|
request<TReply>(meshName: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): Promise<TReply>;
|
|
74
77
|
private requestScoped;
|
|
78
|
+
private traceNodeRequest;
|
|
75
79
|
submitToChannel(meshName: string, channelName: string, packetName: string | undefined, message: unknown, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
76
80
|
private submitToChannelScoped;
|
|
77
81
|
requestToChannel<TReply>(meshName: string, channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): Promise<TReply>;
|
|
78
82
|
private requestToChannelScoped;
|
|
79
83
|
private submitRequestOperation;
|
|
80
|
-
sendToSpot(spotRouteTarget: ZLinkSpotRouteTarget, message: unknown, options:
|
|
81
|
-
readonly packetName?: string;
|
|
82
|
-
readonly timeoutMs?: number;
|
|
83
|
-
readonly signal?: AbortSignal;
|
|
84
|
-
readonly metadata?: ReadonlyMap<string, string>;
|
|
85
|
-
}): Promise<ZLinkSubmitResult>;
|
|
84
|
+
sendToSpot(spotRouteTarget: ZLinkSpotRouteTarget, message: unknown, options: ZLinkSpotRoutedSendOptions): Promise<ZLinkSubmitResult>;
|
|
86
85
|
private sendToSpotScoped;
|
|
87
86
|
sendFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, message: unknown, options: {
|
|
88
87
|
readonly packetName?: string;
|
|
@@ -90,12 +89,7 @@ export declare class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTrans
|
|
|
90
89
|
readonly signal?: AbortSignal;
|
|
91
90
|
readonly metadata?: ReadonlyMap<string, string>;
|
|
92
91
|
}): Promise<ZLinkSubmitResult>;
|
|
93
|
-
requestToSpot<TReply = unknown>(spotRouteTarget: ZLinkSpotRouteTarget, request: unknown, options:
|
|
94
|
-
readonly packetName?: string;
|
|
95
|
-
readonly timeoutMs?: number;
|
|
96
|
-
readonly signal?: AbortSignal;
|
|
97
|
-
readonly metadata?: ReadonlyMap<string, string>;
|
|
98
|
-
}): Promise<TReply>;
|
|
92
|
+
requestToSpot<TReply = unknown>(spotRouteTarget: ZLinkSpotRouteTarget, request: unknown, options: ZLinkSpotRoutedRequestOptions): Promise<TReply>;
|
|
99
93
|
private requestToSpotScoped;
|
|
100
94
|
requestFromSpotToSpot<TReply = unknown>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: unknown, options: {
|
|
101
95
|
readonly packetName?: string;
|
|
@@ -2,19 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkRuntimeRouteTransport = void 0;
|
|
4
4
|
exports.meshRequestFailure = meshRequestFailure;
|
|
5
|
-
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
6
|
-
const runtime_message_1 = require("../backend/runtime-message");
|
|
7
|
-
const runtime_values_1 = require("../backend/runtime-values");
|
|
8
5
|
const contracts_1 = require("../../contracts");
|
|
9
|
-
const
|
|
10
|
-
const configuration_1 = require("../configuration");
|
|
6
|
+
const Registration_1 = require("../../contracts/Configuration/Registration");
|
|
11
7
|
const Spots_1 = require("../../contracts/Spots");
|
|
12
8
|
const abort_1 = require("../abort");
|
|
13
9
|
const mesh_completion_table_1 = require("../backend/mesh-completion-table");
|
|
10
|
+
const runtime_message_1 = require("../backend/runtime-message");
|
|
11
|
+
const runtime_values_1 = require("../backend/runtime-values");
|
|
12
|
+
const configuration_1 = require("../configuration");
|
|
13
|
+
const flow_context_1 = require("../diagnostics/flow-context");
|
|
14
|
+
const diagnostics_1 = require("../diagnostics");
|
|
15
|
+
const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
|
|
16
|
+
const channel_outbound_operations_1 = require("./channel-outbound-operations");
|
|
17
|
+
const service_stateful_registry_1 = require("../foundation/service-stateful-registry");
|
|
18
|
+
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
19
|
+
const submission_result_1 = require("../messaging/submission-result");
|
|
14
20
|
const routing_id_1 = require("../routing-id");
|
|
15
21
|
const channel_envelope_1 = require("./channel-envelope");
|
|
16
|
-
const service_stateful_registry_1 = require("../foundation/service-stateful-registry");
|
|
17
|
-
const flow_context_1 = require("../diagnostics/flow-context");
|
|
18
22
|
class ZLinkRuntimeRouteTransport {
|
|
19
23
|
manager;
|
|
20
24
|
routeChannelPredicate;
|
|
@@ -24,7 +28,8 @@ class ZLinkRuntimeRouteTransport {
|
|
|
24
28
|
localNodeSubmit;
|
|
25
29
|
metrics;
|
|
26
30
|
flowCreationEnabled;
|
|
27
|
-
|
|
31
|
+
outboundFlow;
|
|
32
|
+
constructor(manager, routeChannelPredicate = undefined, meshRuntime = undefined, codecs, manualNodeTarget, localNodeSubmit, metrics, flowCreationEnabled = () => true, outboundFlow = () => undefined) {
|
|
28
33
|
this.manager = manager;
|
|
29
34
|
this.routeChannelPredicate = routeChannelPredicate;
|
|
30
35
|
this.meshRuntime = meshRuntime;
|
|
@@ -33,6 +38,7 @@ class ZLinkRuntimeRouteTransport {
|
|
|
33
38
|
this.localNodeSubmit = localNodeSubmit;
|
|
34
39
|
this.metrics = metrics;
|
|
35
40
|
this.flowCreationEnabled = flowCreationEnabled;
|
|
41
|
+
this.outboundFlow = outboundFlow;
|
|
36
42
|
}
|
|
37
43
|
canRouteChannel(routerChannelId) {
|
|
38
44
|
const manager = this.manager();
|
|
@@ -88,16 +94,46 @@ class ZLinkRuntimeRouteTransport {
|
|
|
88
94
|
if (node === undefined) {
|
|
89
95
|
return this.requireManager().routeRequest(meshName, targetNodeRid, packetName, request, timeoutMs, signal, metadata);
|
|
90
96
|
}
|
|
91
|
-
(0,
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
const correlationId = (0, channel_envelope_1.newChannelCorrelationId)();
|
|
98
|
+
try {
|
|
99
|
+
(0, abort_1.throwIfAborted)(signal);
|
|
100
|
+
if (node.isObjectClientNodeDirectTarget?.((0, routing_id_1.toBackendRoutingId)(targetNodeRid)) === true) {
|
|
101
|
+
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound, `MeshNode '${meshName}' target '${targetNodeRid}' is an Object Client.`);
|
|
102
|
+
}
|
|
103
|
+
const parts = this.encodeMessage(1 /* ZLinkChannelMessageKind.Request */, meshName, packetName, request, timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, metadata, correlationId);
|
|
104
|
+
const completion = await this.submitRequestOperation(meshName, timeoutMs, signal, `MeshNode '${meshName}' request to node '${targetNodeRid}'`, (remainingTimeoutMs) => {
|
|
105
|
+
const operationId = node.requestToNode((0, routing_id_1.toBackendRoutingId)(targetNodeRid), parts, {
|
|
106
|
+
flags: 1,
|
|
107
|
+
timeoutMs: remainingTimeoutMs
|
|
108
|
+
});
|
|
109
|
+
this.traceNodeRequest(ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Sent, undefined, meshName, targetNodeRid, packetName, correlationId);
|
|
110
|
+
return operationId;
|
|
111
|
+
});
|
|
112
|
+
const reply = this.decodeMeshReply(meshName, completion);
|
|
113
|
+
this.traceNodeRequest(ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.ReplyReceived, 'succeeded', meshName, targetNodeRid, packetName, correlationId);
|
|
114
|
+
return reply;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
if (!(0, channel_outbound_operations_1.isRemoteChannelErrorReply)(error)) {
|
|
118
|
+
this.traceNodeRequest(ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.ReplyReceived, (0, channel_outbound_operations_1.requestTerminalResult)(error, signal), meshName, targetNodeRid, packetName, correlationId, error);
|
|
119
|
+
}
|
|
120
|
+
throw error;
|
|
94
121
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
122
|
+
}
|
|
123
|
+
traceNodeRequest(outcome, result, meshName, targetRid, packetName, correlationId, error) {
|
|
124
|
+
if (!this.flowCreationEnabled())
|
|
125
|
+
return;
|
|
126
|
+
(0, diagnostics_1.flowIfEnabled)(this.outboundFlow(), outcome, result)?.trace({
|
|
127
|
+
outcome,
|
|
128
|
+
result,
|
|
129
|
+
surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.Node,
|
|
130
|
+
messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Request,
|
|
131
|
+
meshName,
|
|
132
|
+
targetRid,
|
|
133
|
+
packetName,
|
|
134
|
+
correlationId,
|
|
135
|
+
...(error instanceof Error ? { errorType: error.name, errorMessage: error.message } : {})
|
|
136
|
+
});
|
|
101
137
|
}
|
|
102
138
|
submitToChannel(meshName, channelName, packetName, message, signal, metadata) {
|
|
103
139
|
return (0, flow_context_1.runWithOutboundFlow)(this.flowCreationEnabled(), () => this.submitToChannelScoped(meshName, channelName, packetName, message, signal, metadata));
|
|
@@ -124,7 +160,7 @@ class ZLinkRuntimeRouteTransport {
|
|
|
124
160
|
async requestToChannelScoped(meshName, channelName, packetName, request, timeoutMs, signal, metadata) {
|
|
125
161
|
(0, abort_1.throwIfAborted)(signal);
|
|
126
162
|
const node = this.requireMeshNode(meshName);
|
|
127
|
-
const parts = this.encodeMessage(1 /* ZLinkChannelMessageKind.Request */, channelName, packetName, request, timeoutMs ??
|
|
163
|
+
const parts = this.encodeMessage(1 /* ZLinkChannelMessageKind.Request */, channelName, packetName, request, timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, metadata);
|
|
128
164
|
const metric = this.metrics?.startRequest(meshName, 'channel');
|
|
129
165
|
try {
|
|
130
166
|
const completion = await this.submitRequestOperation(meshName, timeoutMs, signal, `MeshNode '${meshName}' request to channel '${channelName}'`, (remainingTimeoutMs) => node.requestToChannel(channelName, parts, { flags: 1, timeoutMs: remainingTimeoutMs }));
|
|
@@ -141,7 +177,7 @@ class ZLinkRuntimeRouteTransport {
|
|
|
141
177
|
}
|
|
142
178
|
}
|
|
143
179
|
async submitRequestOperation(meshName, timeoutMs, signal, operation, attempt) {
|
|
144
|
-
const effectiveTimeoutMs = Math.max(1, timeoutMs ??
|
|
180
|
+
const effectiveTimeoutMs = Math.max(1, timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS);
|
|
145
181
|
const deadlineMs = performance.now() + effectiveTimeoutMs;
|
|
146
182
|
const remainingTimeoutMs = deadlineMs - performance.now();
|
|
147
183
|
if (remainingTimeoutMs <= 0) {
|
|
@@ -171,7 +207,7 @@ class ZLinkRuntimeRouteTransport {
|
|
|
171
207
|
try {
|
|
172
208
|
const encoded = this.encodeMessage(3 /* ZLinkChannelMessageKind.Command */, spotRouteTarget.routerChannelId, options.packetName, message, undefined, options.metadata);
|
|
173
209
|
if (spotRouteTarget.spotKind === Spots_1.ZLinkSpotKind.Instance) {
|
|
174
|
-
return mapMeshSubmitResult(await node.sendToInstanceSpot(instanceSpotRouteFence(spotRouteTarget), encoded, undefined, options.metadata));
|
|
210
|
+
return mapMeshSubmitResult(await node.sendToInstanceSpot(instanceSpotRouteFence(spotRouteTarget), encoded, undefined, options.metadata, options.instanceSpot));
|
|
175
211
|
}
|
|
176
212
|
return mapMeshSubmitResult(await node
|
|
177
213
|
.entrySpot()
|
|
@@ -206,7 +242,7 @@ class ZLinkRuntimeRouteTransport {
|
|
|
206
242
|
try {
|
|
207
243
|
const encoded = this.encodeMessage(1 /* ZLinkChannelMessageKind.Request */, meshName, options.packetName, request, options.timeoutMs, options.metadata);
|
|
208
244
|
completionPromise = this.completionTable(meshName).submit(() => spotRouteTarget.spotKind === Spots_1.ZLinkSpotKind.Instance
|
|
209
|
-
? node.requestInstanceSpot(instanceSpotRouteFence(spotRouteTarget), encoded, options.timeoutMs, undefined, options.metadata)
|
|
245
|
+
? node.requestInstanceSpot(instanceSpotRouteFence(spotRouteTarget), encoded, options.timeoutMs, undefined, options.metadata, options.instanceSpot)
|
|
210
246
|
: node
|
|
211
247
|
.entrySpot()
|
|
212
248
|
.requestToSpot((0, routing_id_1.toBackendRoutingId)(spotRouteTarget.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(spotRouteTarget.spotId), spotRouteTarget.targetSpotGeneration ?? 0n, encoded, {
|
|
@@ -311,8 +347,8 @@ class ZLinkRuntimeRouteTransport {
|
|
|
311
347
|
}
|
|
312
348
|
return table;
|
|
313
349
|
}
|
|
314
|
-
encodeMessage(kind, channelName, packetName, message, timeoutMs, metadata) {
|
|
315
|
-
return (0, channel_envelope_1.encodeChannelEnvelopeParts)(kind, channelName, packetName, message, timeoutMs, undefined, this.codecs,
|
|
350
|
+
encodeMessage(kind, channelName, packetName, message, timeoutMs, metadata, correlationId) {
|
|
351
|
+
return (0, channel_envelope_1.encodeChannelEnvelopeParts)(kind, channelName, packetName, message, timeoutMs, undefined, this.codecs, correlationId, this.flowCreationEnabled(), metadata);
|
|
316
352
|
}
|
|
317
353
|
async waitForMeshReply(meshName, completionPromise) {
|
|
318
354
|
const completion = await completionPromise;
|
|
@@ -344,7 +380,7 @@ function directSpotRouteFence(target) {
|
|
|
344
380
|
target.targetOwnerId === undefined ||
|
|
345
381
|
target.ownerLeaseGeneration === undefined ||
|
|
346
382
|
target.authorityStoreVersion === undefined) {
|
|
347
|
-
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.
|
|
383
|
+
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `Spot '${String(target.spotId)}' has no complete Ready authority fence.`);
|
|
348
384
|
}
|
|
349
385
|
return {
|
|
350
386
|
spot: {
|
|
@@ -379,21 +415,7 @@ function instanceSpotRouteFence(target) {
|
|
|
379
415
|
};
|
|
380
416
|
}
|
|
381
417
|
function mapMeshSubmitResult(result) {
|
|
382
|
-
|
|
383
|
-
case runtime_values_1.SubmitResult.Ok:
|
|
384
|
-
return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
|
|
385
|
-
case runtime_values_1.SubmitResult.Backpressured:
|
|
386
|
-
case runtime_values_1.SubmitResult.NotAdmitted:
|
|
387
|
-
return { status: submission_result_1.ZLinkSubmitStatus.Backpressured };
|
|
388
|
-
case runtime_values_1.SubmitResult.NotFound:
|
|
389
|
-
return { status: submission_result_1.ZLinkSubmitStatus.TargetNotFound };
|
|
390
|
-
case runtime_values_1.SubmitResult.NotConnected:
|
|
391
|
-
return { status: submission_result_1.ZLinkSubmitStatus.RouteNotConnected };
|
|
392
|
-
case runtime_values_1.SubmitResult.Terminated:
|
|
393
|
-
return { status: submission_result_1.ZLinkSubmitStatus.Shutdown };
|
|
394
|
-
default:
|
|
395
|
-
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed, `Mesh submission failed with result ${result}.`);
|
|
396
|
-
}
|
|
418
|
+
return (0, submission_result_1.classifySubmitResult)(result, 'Mesh submission');
|
|
397
419
|
}
|
|
398
420
|
function mapMeshSubmissionError(error, operation) {
|
|
399
421
|
if (error instanceof contracts_1.ZLinkFrameworkException) {
|
|
@@ -408,14 +430,13 @@ function mapMeshSubmissionError(error, operation) {
|
|
|
408
430
|
return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotGenerationStale, `${operation} received a stale Spot authority fence: ${error.message}`, true, error);
|
|
409
431
|
}
|
|
410
432
|
if ((0, runtime_values_1.isZLinkBackendResultError)(error)) {
|
|
411
|
-
const
|
|
412
|
-
|
|
413
|
-
error.result
|
|
414
|
-
|
|
415
|
-
error.result
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
: framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `${operation} failed with result ${error.result}.`, retriable, error);
|
|
433
|
+
const terminal = error.operation === 'request'
|
|
434
|
+
? error.result
|
|
435
|
+
: (0, submission_result_1.submitToRequestResult)(error.result, error.phase);
|
|
436
|
+
if (terminal === runtime_values_1.RequestResult.NotFound) {
|
|
437
|
+
return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound, `${operation} failed with result ${error.result}.`, false, error);
|
|
438
|
+
}
|
|
439
|
+
return new contracts_1.ZLinkFrameworkException((0, framework_errors_internal_1.requestResultToPublicErrorKind)(terminal), `${operation} failed with result ${error.result}.`, error);
|
|
419
440
|
}
|
|
420
441
|
return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `${operation} failed before native submission completed: ${error instanceof Error ? error.message : String(error)}`, true, error);
|
|
421
442
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ZLinkClientServerServerDescriptor } from '../../contracts/Locations';
|
|
2
2
|
import { type ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
|
|
3
|
-
import type
|
|
3
|
+
import { type ZLinkFrameworkRegistration } from '../configuration';
|
|
4
4
|
import type { ZLinkLocationRuntime, ZLinkLocationRuntimeStores } from '../locations';
|
|
5
5
|
import { ZLinkChannelSocketRegistry } from './channel-socket-registry';
|
|
6
6
|
/**
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkClientServerLocationRuntime = void 0;
|
|
4
|
+
const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
|
|
4
5
|
const Locations_1 = require("../../contracts/Locations");
|
|
5
6
|
const Options_1 = require("../../contracts/Locations/Options");
|
|
6
|
-
const
|
|
7
|
+
const Stores_1 = require("../../contracts/Locations/Stores");
|
|
7
8
|
const runtime_message_1 = require("../backend/runtime-message");
|
|
8
|
-
const client_server_service_wire_1 = require("./client-server-service-wire");
|
|
9
|
-
const runtime_state_projections_1 = require("../foundation/runtime-state-projections");
|
|
10
|
-
const state_lane_1 = require("../execution/state-lane");
|
|
11
9
|
const runtime_values_1 = require("../backend/runtime-values");
|
|
10
|
+
const configuration_1 = require("../configuration");
|
|
11
|
+
const state_lane_1 = require("../execution/state-lane");
|
|
12
|
+
const runtime_state_projections_1 = require("../foundation/runtime-state-projections");
|
|
13
|
+
const client_server_service_wire_1 = require("./client-server-service-wire");
|
|
12
14
|
/**
|
|
13
15
|
* Owns the dedicated ClientServer discovery domain. It never converts these
|
|
14
16
|
* descriptors into RouteMesh peer rows.
|
|
@@ -129,7 +131,7 @@ class ZLinkClientServerLocationRuntime {
|
|
|
129
131
|
lifecycleGeneration: identity.lifecycleGeneration,
|
|
130
132
|
descriptorRevision: 1n,
|
|
131
133
|
endpoint: identity.endpoint,
|
|
132
|
-
weight: channel.server.weight ??
|
|
134
|
+
weight: channel.server.weight ?? RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT,
|
|
133
135
|
state: Locations_1.ZLinkFrameworkRuntimeState.Serving,
|
|
134
136
|
securityIdentity: 'default',
|
|
135
137
|
ownerId: owner.ownerId,
|
|
@@ -193,7 +195,7 @@ class ZLinkClientServerLocationRuntime {
|
|
|
193
195
|
const rows = [];
|
|
194
196
|
let continuationToken;
|
|
195
197
|
do {
|
|
196
|
-
const page = await this.store.listClientServers(channelName, { pageSize:
|
|
198
|
+
const page = await this.store.listClientServers(channelName, { pageSize: Stores_1.ZLINK_PROVIDER_MAX_PAGE_SIZE, continuationToken }, signal);
|
|
197
199
|
rows.push(...page.items);
|
|
198
200
|
continuationToken = page.continuationToken;
|
|
199
201
|
} while (continuationToken !== undefined);
|
|
@@ -405,7 +407,7 @@ function sameDescriptor(left, right) {
|
|
|
405
407
|
left.ownerId === right.ownerId &&
|
|
406
408
|
left.leaseGeneration === right.leaseGeneration);
|
|
407
409
|
}
|
|
408
|
-
function toDiscoveryDescriptor(descriptor, effectiveMaxMessageBytes =
|
|
410
|
+
function toDiscoveryDescriptor(descriptor, effectiveMaxMessageBytes = client_server_service_wire_1.DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT) {
|
|
409
411
|
return {
|
|
410
412
|
channelName: descriptor.channelName,
|
|
411
413
|
serverRoutingId: String(descriptor.serverRid),
|
|
@@ -422,7 +424,7 @@ function requestAdmission(dealer, descriptor, timeoutMs) {
|
|
|
422
424
|
const message = runtime_message_1.ZLinkBufferMessage.from((0, client_server_service_wire_1.encodeClientServerHello)({
|
|
423
425
|
channelName: descriptor.channelName,
|
|
424
426
|
securityIdentity: descriptor.securityIdentity,
|
|
425
|
-
normalizedEffectiveMaxMessageBytes:
|
|
427
|
+
normalizedEffectiveMaxMessageBytes: (0, client_server_service_wire_1.normalizeClientServerMessageLimit)(dealer.maxMessageSize)
|
|
426
428
|
}));
|
|
427
429
|
return dealer.request(message, timeoutMs).then((parts) => {
|
|
428
430
|
try {
|
|
@@ -464,6 +466,3 @@ function closeMessages(parts) {
|
|
|
464
466
|
for (const part of parts)
|
|
465
467
|
part.close();
|
|
466
468
|
}
|
|
467
|
-
function normalizedMessageLimit(value) {
|
|
468
|
-
return Number.isSafeInteger(value) && value > 0 ? Math.min(value, 0xffff_ffff) : 0x7fff_ffff;
|
|
469
|
-
}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
1
|
+
import { type ZLinkClientServerServerDescriptor, ZLinkFrameworkRuntimeState } from '../../contracts/Locations';
|
|
2
|
+
export declare const DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT = 2147483647;
|
|
3
|
+
export declare function normalizeClientServerMessageLimit(value: number): number;
|
|
4
|
+
export declare enum ClientServerRejectReason {
|
|
5
|
+
ProtocolVersionUnsupported = 1,
|
|
6
|
+
AdmissionMismatch = 3
|
|
7
|
+
}
|
|
3
8
|
export interface ZLinkClientServerHello {
|
|
4
9
|
readonly channelName: string;
|
|
5
10
|
readonly securityIdentity: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZLinkClientServerServiceWireError = void 0;
|
|
3
|
+
exports.ZLinkClientServerServiceWireError = exports.ClientServerRejectReason = exports.DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT = void 0;
|
|
4
|
+
exports.normalizeClientServerMessageLimit = normalizeClientServerMessageLimit;
|
|
4
5
|
exports.encodeClientServerHello = encodeClientServerHello;
|
|
5
6
|
exports.encodeClientServerAdmit = encodeClientServerAdmit;
|
|
6
7
|
exports.encodeClientServerUpdate = encodeClientServerUpdate;
|
|
@@ -9,12 +10,29 @@ exports.encodeClientServerLivenessProbe = encodeClientServerLivenessProbe;
|
|
|
9
10
|
exports.encodeClientServerLivenessAck = encodeClientServerLivenessAck;
|
|
10
11
|
exports.isClientServerControlFrame = isClientServerControlFrame;
|
|
11
12
|
exports.decodeClientServerControl = decodeClientServerControl;
|
|
13
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
14
|
+
const EndpointNotation_1 = require("../../contracts/Configuration/EndpointNotation");
|
|
15
|
+
const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
|
|
12
16
|
const Locations_1 = require("../../contracts/Locations");
|
|
13
17
|
const service_wire_binary_primitives_1 = require("../foundation/service-wire-binary-primitives");
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
const service_wire_constants_generated_1 = require("../foundation/service-wire-constants.generated");
|
|
19
|
+
exports.DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT = 0x7fff_ffff;
|
|
20
|
+
function normalizeClientServerMessageLimit(value) {
|
|
21
|
+
return Number.isSafeInteger(value) && value > 0
|
|
22
|
+
? Math.min(value, stream_wire_1.UINT32_MAX)
|
|
23
|
+
: exports.DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT;
|
|
24
|
+
}
|
|
25
|
+
const CLIENT_SERVER_PREFIX_BYTES = 5;
|
|
26
|
+
const CLIENT_SERVER_ROLE_BODY_MAX_BYTES = 0xffff;
|
|
27
|
+
const CLIENT_SERVER_TEXT_MAX_BYTES = 4096;
|
|
28
|
+
var ClientServerRejectReason;
|
|
29
|
+
(function (ClientServerRejectReason) {
|
|
30
|
+
ClientServerRejectReason[ClientServerRejectReason["ProtocolVersionUnsupported"] = 1] = "ProtocolVersionUnsupported";
|
|
31
|
+
ClientServerRejectReason[ClientServerRejectReason["AdmissionMismatch"] = 3] = "AdmissionMismatch";
|
|
32
|
+
})(ClientServerRejectReason || (exports.ClientServerRejectReason = ClientServerRejectReason = {}));
|
|
33
|
+
const MAGIC_0 = service_wire_constants_generated_1.SERVICE_WIRE_MAGIC[0];
|
|
34
|
+
const MAGIC_1 = service_wire_constants_generated_1.SERVICE_WIRE_MAGIC[1];
|
|
35
|
+
const WIRE_MAJOR = service_wire_constants_generated_1.SERVICE_WIRE_MAJOR;
|
|
18
36
|
const TOPOLOGY_CLIENT_SERVER = 2;
|
|
19
37
|
const ROLE_CLIENT = 1;
|
|
20
38
|
const ROLE_SERVER = 2;
|
|
@@ -26,7 +44,7 @@ const COMMAND_UPDATE = 4;
|
|
|
26
44
|
const COMMAND_LIVENESS_PROBE = 5;
|
|
27
45
|
const COMMAND_LIVENESS_ACK = 6;
|
|
28
46
|
const MAX_DESCRIPTOR_BYTES = 1024 * 1024;
|
|
29
|
-
const MAX_U32 =
|
|
47
|
+
const MAX_U32 = stream_wire_1.UINT32_MAX;
|
|
30
48
|
const MAX_GENERATION = 0x7fffffffffffffffn;
|
|
31
49
|
class ZLinkClientServerServiceWireError extends Error {
|
|
32
50
|
constructor(message) {
|
|
@@ -58,7 +76,10 @@ function encodeClientServerLivenessAck(probeId) {
|
|
|
58
76
|
return encodeLiveness(COMMAND_LIVENESS_ACK, probeId);
|
|
59
77
|
}
|
|
60
78
|
function isClientServerControlFrame(frame) {
|
|
61
|
-
return (frame.byteLength >=
|
|
79
|
+
return (frame.byteLength >= CLIENT_SERVER_PREFIX_BYTES &&
|
|
80
|
+
frame[0] === MAGIC_0 &&
|
|
81
|
+
frame[1] === MAGIC_1 &&
|
|
82
|
+
frame[2] === WIRE_MAJOR);
|
|
62
83
|
}
|
|
63
84
|
function decodeClientServerControl(frame) {
|
|
64
85
|
if (frame.byteLength > MAX_DESCRIPTOR_BYTES)
|
|
@@ -121,7 +142,7 @@ function encodeServerAdmission(command, descriptor, normalizedEffectiveMaxMessag
|
|
|
121
142
|
return encodeAdmission(command, ROLE_SERVER, roleBody);
|
|
122
143
|
}
|
|
123
144
|
function encodeAdmission(command, role, roleBody) {
|
|
124
|
-
if (roleBody.byteLength >
|
|
145
|
+
if (roleBody.byteLength > CLIENT_SERVER_ROLE_BODY_MAX_BYTES)
|
|
125
146
|
fail('ClientServer role body is oversized.');
|
|
126
147
|
const admission = concat(Buffer.of(role), encodeU16(roleBody.byteLength), roleBody);
|
|
127
148
|
const result = concat(prefix(command), Buffer.of(TOPOLOGY_CLIENT_SERVER), encodeU32(admission.byteLength), admission);
|
|
@@ -149,7 +170,7 @@ function decodeServerAdmission(reader) {
|
|
|
149
170
|
const lifecycleGeneration = reader.nonZeroU64('lifecycleGeneration');
|
|
150
171
|
const descriptorRevision = reader.nonZeroU64('descriptorRevision');
|
|
151
172
|
const weight = reader.u32('weight');
|
|
152
|
-
if (
|
|
173
|
+
if (!(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(weight))
|
|
153
174
|
fail('ClientServer weight is invalid.');
|
|
154
175
|
return {
|
|
155
176
|
channelName,
|
|
@@ -196,7 +217,7 @@ function encodeText8(value, field) {
|
|
|
196
217
|
return concat(Buffer.of(bytes.byteLength), bytes);
|
|
197
218
|
}
|
|
198
219
|
function encodeText16(value, field) {
|
|
199
|
-
const bytes = (0, service_wire_binary_primitives_1.encodeCanonicalServiceWireText)(value, field,
|
|
220
|
+
const bytes = (0, service_wire_binary_primitives_1.encodeCanonicalServiceWireText)(value, field, CLIENT_SERVER_TEXT_MAX_BYTES, fail);
|
|
200
221
|
return concat(encodeU16(bytes.byteLength), bytes);
|
|
201
222
|
}
|
|
202
223
|
function runtimeStateToWire(value) {
|
|
@@ -295,7 +316,7 @@ class Reader {
|
|
|
295
316
|
}
|
|
296
317
|
text16(field) {
|
|
297
318
|
const length = this.u16(`${field}.length`);
|
|
298
|
-
if (length < 1 || length >
|
|
319
|
+
if (length < 1 || length > CLIENT_SERVER_TEXT_MAX_BYTES)
|
|
299
320
|
fail(`${field} length is invalid.`);
|
|
300
321
|
return decodeText(this.bytes(length, field), field);
|
|
301
322
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type ZLinkDispatchFailure } from '../../contracts/Dispatch/ZLinkDispatchOptions';
|
|
2
|
-
import type
|
|
3
|
-
import { ZLinkMessageFlowTracer, type ZLinkDiagnosticsContext } from '../diagnostics';
|
|
2
|
+
import { type ZLinkRuntimeMetrics, ZLinkMessageFlowTracer, type ZLinkDiagnosticsContext } from '../diagnostics';
|
|
4
3
|
import type { ZLinkDispatchErrorSink } from '../diagnostics/dispatch-error-port';
|
|
5
4
|
export type { ZLinkDispatchErrorSink } from '../diagnostics/dispatch-error-port';
|
|
6
5
|
type ZLinkRuntimeDispatchFailure = ZLinkDispatchFailure & {
|
|
@@ -4,6 +4,7 @@ exports.ZLinkDispatchErrorReporter = void 0;
|
|
|
4
4
|
const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
|
|
5
5
|
const diagnostics_1 = require("../diagnostics");
|
|
6
6
|
const dispatch_error_details_1 = require("../diagnostics/dispatch-error-details");
|
|
7
|
+
const runtime_metrics_1 = require("../diagnostics/runtime-metrics");
|
|
7
8
|
class ZLinkDispatchErrorReporter {
|
|
8
9
|
metrics;
|
|
9
10
|
reportedEvents = 0;
|
|
@@ -26,7 +27,7 @@ class ZLinkDispatchErrorReporter {
|
|
|
26
27
|
const normalized = normalizeDispatchFailure(event);
|
|
27
28
|
const dropReason = channelDropReason(normalized);
|
|
28
29
|
if (dropReason !== undefined) {
|
|
29
|
-
this.metrics?.count(
|
|
30
|
+
this.metrics?.count(runtime_metrics_1.METRIC_NAMES.MeshNodeMessagesDropped, 1, {
|
|
30
31
|
surface: normalized.surface,
|
|
31
32
|
message_kind: normalized.messageKind,
|
|
32
33
|
reason: dropReason
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type ZLinkFanoutPublisherDescriptor } from '../../contracts/Locations';
|
|
2
2
|
import { type ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
|
|
3
|
-
import type { ZLinkFrameworkRegistration } from '../configuration';
|
|
4
|
-
import type { ZLinkLocationRuntime, ZLinkLocationRuntimeStores } from '../locations';
|
|
5
3
|
import type { ZLinkBackendSubscriberSocket } from '../backend/contracts';
|
|
4
|
+
import { type ZLinkFrameworkRegistration } from '../configuration';
|
|
5
|
+
import type { ZLinkLocationRuntime, ZLinkLocationRuntimeStores } from '../locations';
|
|
6
6
|
import { ZLinkChannelSocketRegistry } from './channel-socket-registry';
|
|
7
7
|
export declare class ZLinkFanoutLocationRuntime {
|
|
8
8
|
private readonly registration;
|
|
@@ -15,7 +15,7 @@ export declare class ZLinkFanoutLocationRuntime {
|
|
|
15
15
|
private readonly store;
|
|
16
16
|
private readonly localDescriptors;
|
|
17
17
|
private readonly publisherIdentities;
|
|
18
|
-
private readonly
|
|
18
|
+
private readonly targets;
|
|
19
19
|
private controller?;
|
|
20
20
|
private timer?;
|
|
21
21
|
constructor(registration: ZLinkFrameworkRegistration, sockets: ZLinkChannelSocketRegistry, locationRuntime: ZLinkLocationRuntime, stores: ZLinkLocationRuntimeStores, options: ZLinkLocationOptionOverrides, onSubscriberOpened: (channelName: string, connectionId: string, subscriber: ZLinkBackendSubscriberSocket) => () => Promise<void>);
|
|
@@ -24,11 +24,24 @@ export declare class ZLinkFanoutLocationRuntime {
|
|
|
24
24
|
private tickCore;
|
|
25
25
|
stop(signal?: AbortSignal): Promise<void>;
|
|
26
26
|
activeTargets(channelName: string): readonly ZLinkFanoutPublisherDescriptor[];
|
|
27
|
+
topologyTargets(channelName: string): {
|
|
28
|
+
channelName: string;
|
|
29
|
+
publisherRoutingId: string;
|
|
30
|
+
lifecycleGeneration: bigint;
|
|
31
|
+
descriptorRevision: bigint;
|
|
32
|
+
advertisedEndpoint: string;
|
|
33
|
+
state: "error" | "preparing" | "serving" | "retiring" | "stopped";
|
|
34
|
+
}[] | undefined;
|
|
35
|
+
private isAutomaticSubscriber;
|
|
27
36
|
reclaimOwnerRows(signal?: AbortSignal): Promise<void>;
|
|
28
37
|
private publishLocalPublishers;
|
|
29
38
|
private reconcileSubscribers;
|
|
39
|
+
private reconcileConnection;
|
|
30
40
|
private openConnection;
|
|
41
|
+
private removeTarget;
|
|
31
42
|
private closeConnection;
|
|
43
|
+
private detachConnection;
|
|
44
|
+
private closeDetachedConnection;
|
|
32
45
|
private replaceConnection;
|
|
33
46
|
private listLivePublishers;
|
|
34
47
|
private storeOwnerLease;
|