@zlink-systems/framework 0.21.0 → 0.23.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.
Files changed (516) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -0
  13. package/dist/contracts/Handlers/JsonContract.js +23 -11
  14. package/dist/contracts/Spots/SpotKind.js +16 -8
  15. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -1
  16. package/dist/location-store-integration.js +16 -16
  17. package/dist/nest-integration.js +17 -11
  18. package/dist/runtime/abort.js +9 -5
  19. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  20. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  21. package/dist/runtime/actors/actor-client.js +83 -63
  22. package/dist/runtime/actors/actor-context.js +28 -22
  23. package/dist/runtime/actors/actor-creation.js +4 -3
  24. package/dist/runtime/actors/actor-handoff.js +89 -92
  25. package/dist/runtime/actors/actor-join-deferred-scope.d.ts +0 -1
  26. package/dist/runtime/actors/actor-join-deferred-scope.js +0 -18
  27. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  28. package/dist/runtime/actors/actor-mailbox.js +1 -1
  29. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  30. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  31. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  32. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  33. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  34. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  35. package/dist/runtime/actors/bound-session-wire.js +14 -9
  36. package/dist/runtime/actors/deferred-join-accepted-journal.js +160 -130
  37. package/dist/runtime/actors/index.js +2 -5
  38. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  39. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  40. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  41. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  42. package/dist/runtime/admission.js +2 -6
  43. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  44. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  45. package/dist/runtime/backend/contracts/index.d.ts +1 -0
  46. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  47. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  48. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  49. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  50. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  51. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  52. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +3 -0
  53. package/dist/runtime/backend/node/node-raw-mesh-backend.js +134 -118
  54. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  55. package/dist/runtime/backend/runtime-message.js +3 -3
  56. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  57. package/dist/runtime/backend/runtime-values.js +4 -5
  58. package/dist/runtime/channels/channel-clients.js +27 -24
  59. package/dist/runtime/channels/channel-dispatch-pipeline.js +12 -20
  60. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  61. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  62. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  63. package/dist/runtime/channels/channel-envelope.js +83 -47
  64. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  65. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  66. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  67. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  68. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  69. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  70. package/dist/runtime/channels/channel-transports.js +46 -42
  71. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  72. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  73. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -0
  74. package/dist/runtime/channels/dispatch-error-reporter.js +9 -39
  75. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  76. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  77. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  78. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  79. package/dist/runtime/channels/source-spot-router.js +6 -2
  80. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  81. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  82. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  83. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +6 -0
  84. package/dist/runtime/diagnostics/dispatch-error-details.js +55 -0
  85. package/dist/runtime/diagnostics/flow-context.d.ts +2 -1
  86. package/dist/runtime/diagnostics/flow-context.js +2 -2
  87. package/dist/runtime/diagnostics/index.js +38 -10
  88. package/dist/runtime/diagnostics/message-flow.js +58 -42
  89. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  90. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  91. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  92. package/dist/runtime/execution/index.js +7 -6
  93. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  94. package/dist/runtime/execution/state-lane.js +2 -2
  95. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -27
  96. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  97. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  98. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +4 -2
  99. package/dist/runtime/foundation/raw-service-mesh-runtime.js +169 -144
  100. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  101. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  102. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  103. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  104. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  105. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  106. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  107. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  108. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  109. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  110. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  111. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +1 -0
  112. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  113. package/dist/runtime/foundation/service-stateful-runtime.d.ts +4 -0
  114. package/dist/runtime/foundation/service-stateful-runtime.js +461 -439
  115. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  116. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -0
  117. package/dist/runtime/foundation/service-topology-registry.js +105 -96
  118. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  119. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  120. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  121. package/dist/runtime/framework-errors-internal.js +7 -10
  122. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  123. package/dist/runtime/handlers/index.js +3 -1
  124. package/dist/runtime/host/actor-packet-relay.js +74 -70
  125. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  126. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  127. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  128. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  129. package/dist/runtime/host/application-job-queue.js +18 -22
  130. package/dist/runtime/host/bound-session-relay.js +3 -1
  131. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  132. package/dist/runtime/host/host-capacity-status.js +8 -4
  133. package/dist/runtime/host/index.js +245 -228
  134. package/dist/runtime/host/instance-activation-authority.js +93 -96
  135. package/dist/runtime/host/location-runtime-owner.js +16 -14
  136. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  137. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  138. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  139. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  140. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  141. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  142. package/dist/runtime/host/runtime-shutdown.js +1 -2
  143. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  144. package/dist/runtime/host/spot-address-transport.js +69 -71
  145. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  146. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  147. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  148. package/dist/runtime/locations/actor-location-claims.js +26 -20
  149. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  150. package/dist/runtime/locations/authority-key-codec.js +7 -7
  151. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  152. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  153. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  154. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  155. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  156. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  157. package/dist/runtime/locations/key-codec.js +1 -1
  158. package/dist/runtime/locations/lease-tracker.js +23 -21
  159. package/dist/runtime/locations/lifecycle.js +4 -5
  160. package/dist/runtime/locations/location-store-repository.js +368 -324
  161. package/dist/runtime/locations/opaque-record-key.js +2 -2
  162. package/dist/runtime/locations/resolvers.js +73 -82
  163. package/dist/runtime/locations/runtime.js +68 -63
  164. package/dist/runtime/locations/spot-location-claims.js +39 -35
  165. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  166. package/dist/runtime/messaging/packet-name.js +7 -6
  167. package/dist/runtime/messaging/payload-codec.js +21 -18
  168. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  169. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  170. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +20 -18
  171. package/dist/runtime/routing-id.js +3 -5
  172. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  173. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  174. package/dist/runtime/spots/index.js +209 -220
  175. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  176. package/dist/runtime/spots/spot-activation-state.js +17 -15
  177. package/dist/runtime/spots/spot-activation.js +33 -16
  178. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  179. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  180. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +2 -1
  181. package/dist/runtime/spots/spot-actor-packet-dispatch.js +29 -21
  182. package/dist/runtime/spots/spot-actor-packet-drain.js +14 -10
  183. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  184. package/dist/runtime/spots/spot-closing.js +3 -7
  185. package/dist/runtime/spots/spot-context.js +2 -2
  186. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  187. package/dist/runtime/spots/spot-handle.js +6 -3
  188. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  189. package/dist/runtime/spots/spot-manager-public.js +5 -6
  190. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  191. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  192. package/dist/runtime/spots/spot-node-runtime-manager.js +79 -86
  193. package/dist/runtime/spots/spot-outbound.js +10 -14
  194. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  195. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  196. package/dist/runtime/spots/spot-route-packet-dispatch.js +17 -15
  197. package/dist/runtime/spots/spot-route-replies.js +4 -6
  198. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  199. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +2 -3
  200. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  201. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  202. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  203. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  204. package/dist/runtime/spots/spot-subscription-dispatch.js +6 -6
  205. package/dist/runtime/spots/spot-timer.js +26 -30
  206. package/dist/runtime/streams/actor-session-binding-registry.d.ts +21 -8
  207. package/dist/runtime/streams/actor-session-binding-registry.js +168 -148
  208. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -0
  209. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  210. package/dist/runtime/streams/bound-actor-relay-sender.js +20 -17
  211. package/dist/runtime/streams/bound-session-response-target.js +8 -1
  212. package/dist/runtime/streams/bound-session-service.d.ts +1 -0
  213. package/dist/runtime/streams/bound-session-service.js +14 -12
  214. package/dist/runtime/streams/index.js +28 -20
  215. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  216. package/dist/runtime/streams/managed-stream.js +52 -31
  217. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  218. package/dist/runtime/streams/protocol.d.ts +5 -1
  219. package/dist/runtime/streams/protocol.js +68 -20
  220. package/dist/runtime/streams/session-actor-coordinator.js +37 -41
  221. package/dist/runtime/streams/session-context.d.ts +9 -2
  222. package/dist/runtime/streams/session-context.js +50 -32
  223. package/dist/runtime/streams/session-local-actors.d.ts +3 -1
  224. package/dist/runtime/streams/session-local-actors.js +17 -2
  225. package/dist/runtime/streams/session-provider.js +2 -2
  226. package/dist/runtime/streams/session-serial-executor.js +1 -2
  227. package/dist/runtime/streams/stream-frame-factory.d.ts +1 -1
  228. package/dist/runtime/streams/stream-frame-factory.js +14 -7
  229. package/dist/runtime/streams/stream-session-runtime.js +112 -78
  230. package/dist/runtime/workers/index.js +15 -4
  231. package/package.json +3 -3
  232. package/src/contracts/Channels/RouteCalls.ts +6 -1
  233. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  234. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  235. package/src/contracts/Configuration/Builders.ts +14 -14
  236. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  237. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  238. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  239. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  240. package/src/contracts/Configuration/Registration.ts +46 -17
  241. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  242. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  243. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  244. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  245. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  246. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  247. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  248. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  249. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  250. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  251. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -6
  252. package/src/contracts/Errors/index.ts +1 -4
  253. package/src/contracts/Handlers/Attributes.ts +15 -9
  254. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  255. package/src/contracts/Handlers/JsonContract.ts +53 -19
  256. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  257. package/src/contracts/Locations/Authority.ts +4 -11
  258. package/src/contracts/Locations/Keys.ts +6 -1
  259. package/src/contracts/Locations/Options.ts +3 -2
  260. package/src/contracts/Locations/RelocationStore.ts +1 -4
  261. package/src/contracts/Locations/Resolvers.ts +5 -5
  262. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  263. package/src/contracts/Locations/Stores.ts +1 -2
  264. package/src/contracts/Locations/index.ts +2 -8
  265. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  266. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  267. package/src/contracts/Spots/Contracts.ts +2 -8
  268. package/src/contracts/Spots/SpotKind.ts +16 -8
  269. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  270. package/src/contracts/Streams/IZLinkSession.ts +2 -2
  271. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  272. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  273. package/src/internal.ts +5 -4
  274. package/src/location-store-integration.ts +24 -16
  275. package/src/nest-integration.ts +40 -25
  276. package/src/runtime/abort.ts +10 -4
  277. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  278. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  279. package/src/runtime/actors/actor-client.ts +162 -133
  280. package/src/runtime/actors/actor-context.ts +142 -134
  281. package/src/runtime/actors/actor-creation.ts +47 -44
  282. package/src/runtime/actors/actor-execution-context.ts +6 -4
  283. package/src/runtime/actors/actor-handoff.ts +269 -293
  284. package/src/runtime/actors/actor-join-deferred-scope.ts +1 -32
  285. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  286. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  287. package/src/runtime/actors/actor-mailbox.ts +16 -19
  288. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  289. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  290. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  291. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  292. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  293. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  294. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  295. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  296. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  297. package/src/runtime/actors/bound-session-wire.ts +37 -17
  298. package/src/runtime/actors/deferred-join-accepted-journal.ts +353 -326
  299. package/src/runtime/actors/index.ts +43 -86
  300. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  301. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  302. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  303. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  304. package/src/runtime/admission.ts +9 -9
  305. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  306. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  307. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  308. package/src/runtime/backend/contracts/index.ts +77 -52
  309. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  310. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  311. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  312. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  313. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  314. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  315. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  316. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  317. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  318. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  319. package/src/runtime/backend/node/node-raw-mesh-backend.ts +370 -390
  320. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  321. package/src/runtime/backend/runtime-message.ts +5 -3
  322. package/src/runtime/backend/runtime-values.ts +10 -7
  323. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  324. package/src/runtime/channels/channel-clients.ts +93 -73
  325. package/src/runtime/channels/channel-dispatch-pipeline.ts +44 -44
  326. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  327. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  328. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  329. package/src/runtime/channels/channel-envelope.ts +256 -150
  330. package/src/runtime/channels/channel-multipart.ts +13 -5
  331. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  332. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  333. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  334. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  335. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  336. package/src/runtime/channels/channel-socket-options.ts +3 -10
  337. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  338. package/src/runtime/channels/channel-transports.ts +218 -206
  339. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  340. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  341. package/src/runtime/channels/dispatch-error-reporter.ts +12 -47
  342. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  343. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  344. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  345. package/src/runtime/channels/index.ts +1 -4
  346. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  347. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  348. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  349. package/src/runtime/channels/source-spot-router.ts +26 -22
  350. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  351. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  352. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  353. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  354. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  355. package/src/runtime/codecs/index.ts +3 -2
  356. package/src/runtime/diagnostics/dispatch-error-details.ts +62 -0
  357. package/src/runtime/diagnostics/flow-context.ts +18 -7
  358. package/src/runtime/diagnostics/index.ts +96 -61
  359. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  360. package/src/runtime/diagnostics/message-flow.ts +107 -79
  361. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  362. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  363. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  364. package/src/runtime/execution/index.ts +18 -26
  365. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  366. package/src/runtime/execution/state-lane.ts +2 -2
  367. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -55
  368. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  369. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  370. package/src/runtime/foundation/operation-identity.ts +1 -2
  371. package/src/runtime/foundation/operation-registry.ts +8 -2
  372. package/src/runtime/foundation/raw-service-mesh-runtime.ts +364 -396
  373. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  374. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  375. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  376. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  377. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  378. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  379. package/src/runtime/foundation/service-mailbox.ts +14 -14
  380. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  381. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  382. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  383. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  384. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  385. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  386. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  387. package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -4
  388. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  389. package/src/runtime/foundation/service-stateful-runtime.ts +1233 -1112
  390. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  391. package/src/runtime/foundation/service-topology-registry.ts +170 -159
  392. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  393. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  394. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  395. package/src/runtime/framework-errors-internal.ts +31 -30
  396. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  397. package/src/runtime/handlers/index.ts +18 -8
  398. package/src/runtime/host/actor-packet-relay.ts +290 -261
  399. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  400. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  401. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  402. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  403. package/src/runtime/host/application-job-queue.ts +32 -48
  404. package/src/runtime/host/bound-session-relay.ts +7 -9
  405. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  406. package/src/runtime/host/host-capacity-status.ts +10 -9
  407. package/src/runtime/host/index.ts +861 -789
  408. package/src/runtime/host/instance-activation-authority.ts +125 -143
  409. package/src/runtime/host/location-runtime-owner.ts +38 -26
  410. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  411. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  412. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  413. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  414. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  415. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  416. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  417. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  418. package/src/runtime/host/runtime-shutdown.ts +4 -3
  419. package/src/runtime/host/service-relocation-control.ts +14 -5
  420. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  421. package/src/runtime/host/spot-address-transport.ts +284 -237
  422. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  423. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  424. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  425. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  426. package/src/runtime/locations/actor-location-claims.ts +61 -49
  427. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  428. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  429. package/src/runtime/locations/authority-key-codec.ts +13 -10
  430. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  431. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  432. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  433. package/src/runtime/locations/canonical-codec.ts +3 -1
  434. package/src/runtime/locations/creation-operation-id.ts +4 -3
  435. package/src/runtime/locations/domain-store-contract.ts +13 -7
  436. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  437. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  438. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  439. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  440. package/src/runtime/locations/key-codec.ts +3 -4
  441. package/src/runtime/locations/lease-tracker.ts +36 -27
  442. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  443. package/src/runtime/locations/lifecycle.ts +33 -28
  444. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  445. package/src/runtime/locations/opaque-record-key.ts +4 -9
  446. package/src/runtime/locations/resolvers.ts +201 -178
  447. package/src/runtime/locations/runtime.ts +251 -159
  448. package/src/runtime/locations/spot-location-claims.ts +110 -112
  449. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  450. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  451. package/src/runtime/messaging/packet-name.ts +8 -6
  452. package/src/runtime/messaging/payload-codec.ts +70 -50
  453. package/src/runtime/messaging/submission-result.ts +6 -9
  454. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  455. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +19 -18
  456. package/src/runtime/routing-id.ts +10 -7
  457. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  458. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  459. package/src/runtime/spots/index.ts +595 -564
  460. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  461. package/src/runtime/spots/spot-activation-state.ts +43 -51
  462. package/src/runtime/spots/spot-activation.ts +179 -116
  463. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  464. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  465. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  466. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  467. package/src/runtime/spots/spot-actor-packet-dispatch.ts +196 -148
  468. package/src/runtime/spots/spot-actor-packet-drain.ts +56 -42
  469. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  470. package/src/runtime/spots/spot-closing.ts +11 -12
  471. package/src/runtime/spots/spot-context.ts +46 -26
  472. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  473. package/src/runtime/spots/spot-handle.ts +17 -15
  474. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  475. package/src/runtime/spots/spot-location-claim.ts +5 -4
  476. package/src/runtime/spots/spot-manager-public.ts +62 -82
  477. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  478. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  479. package/src/runtime/spots/spot-node-runtime-manager.ts +235 -222
  480. package/src/runtime/spots/spot-outbound.ts +47 -59
  481. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  482. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  483. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  484. package/src/runtime/spots/spot-route-packet-dispatch.ts +129 -95
  485. package/src/runtime/spots/spot-route-replies.ts +23 -24
  486. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  487. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  488. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +13 -18
  489. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  490. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  491. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  492. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  493. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  494. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  495. package/src/runtime/spots/spot-subscription-dispatch.ts +58 -47
  496. package/src/runtime/spots/spot-timer.ts +103 -91
  497. package/src/runtime/streams/actor-session-binding-registry.ts +421 -292
  498. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +8 -4
  499. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  500. package/src/runtime/streams/bound-actor-relay-sender.ts +60 -50
  501. package/src/runtime/streams/bound-session-response-target.ts +39 -9
  502. package/src/runtime/streams/bound-session-service.ts +52 -42
  503. package/src/runtime/streams/index.ts +183 -100
  504. package/src/runtime/streams/managed-stream.ts +123 -90
  505. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  506. package/src/runtime/streams/protocol.ts +115 -46
  507. package/src/runtime/streams/session-actor-coordinator.ts +109 -93
  508. package/src/runtime/streams/session-calls.ts +2 -8
  509. package/src/runtime/streams/session-context.ts +96 -51
  510. package/src/runtime/streams/session-local-actors.ts +19 -3
  511. package/src/runtime/streams/session-provider.ts +5 -7
  512. package/src/runtime/streams/session-serial-executor.ts +7 -6
  513. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  514. package/src/runtime/streams/stream-frame-factory.ts +59 -40
  515. package/src/runtime/streams/stream-session-runtime.ts +317 -214
  516. package/src/runtime/workers/index.ts +68 -29
@@ -21,9 +21,7 @@ class ZLinkInstanceActivationAuthority {
21
21
  }
22
22
  async read(target) {
23
23
  const current = await this.options.store.readAuthority(authorityKey(target.targetSpotId));
24
- return current.kind === 'snapshot'
25
- ? readyRead(current, target)
26
- : { kind: 'missing' };
24
+ return current.kind === 'snapshot' ? readyRead(current, target) : { kind: 'missing' };
27
25
  }
28
26
  async reserve(activation) {
29
27
  const target = activation.target;
@@ -42,11 +40,11 @@ class ZLinkInstanceActivationAuthority {
42
40
  const requestHash = (0, node_crypto_1.createHash)('sha256').update(requestBytes).digest();
43
41
  const stored = await (0, relocation_blob_1.putNewRelocationBlob)(relocationStore, requestBytes, CREATION_REQUEST_RETENTION_MS);
44
42
  const storedRead = await relocationStore.read(stored.reference);
45
- if (stored.reference.value.length === 0
46
- || stored.expiresAt.getTime() <= stored.storeNow.getTime()
47
- || storedRead.kind !== 'found'
48
- || (0, service_relocation_runtime_1.crc32c)(storedRead.bytes) !== (0, service_relocation_runtime_1.crc32c)(requestBytes)
49
- || !Buffer.from(storedRead.bytes).equals(requestBytes)) {
43
+ if (stored.reference.value.length === 0 ||
44
+ stored.expiresAt.getTime() <= stored.storeNow.getTime() ||
45
+ storedRead.kind !== 'found' ||
46
+ (0, service_relocation_runtime_1.crc32c)(storedRead.bytes) !== (0, service_relocation_runtime_1.crc32c)(requestBytes) ||
47
+ !Buffer.from(storedRead.bytes).equals(requestBytes)) {
50
48
  await this.deleteOrphan(stored.reference);
51
49
  throw new Error('Relocation Store returned an invalid creation request receipt.');
52
50
  }
@@ -107,11 +105,11 @@ class ZLinkInstanceActivationAuthority {
107
105
  await this.deleteOrphan(stored.reference);
108
106
  throw error;
109
107
  }
110
- if (reserved.kind === 'conflict'
111
- && reserved.current.kind === 'snapshot'
112
- && reserved.current.allocation.objectKind === 'instance_spot'
113
- && reserved.current.allocation.stableType === target.stableType
114
- && reserved.current.allocation.state === 'reserved') {
108
+ if (reserved.kind === 'conflict' &&
109
+ reserved.current.kind === 'snapshot' &&
110
+ reserved.current.allocation.objectKind === 'instance_spot' &&
111
+ reserved.current.allocation.stableType === target.stableType &&
112
+ reserved.current.allocation.state === 'reserved') {
115
113
  this.options.metrics?.recordInstanceSpotClaimConflict(this.options.meshName, target.stableType, 'activation_in_progress');
116
114
  await this.deleteOrphan(stored.reference);
117
115
  return await this.awaitConcurrentActivation(target, activation.deadlineUnixMs);
@@ -142,22 +140,22 @@ class ZLinkInstanceActivationAuthority {
142
140
  async resume(target, pending) {
143
141
  const current = await this.options.store.readAuthority(authorityKey(target.targetSpotId));
144
142
  const projection = current.kind === 'snapshot' ? current.pendingCreation : undefined;
145
- if (current.kind !== 'snapshot'
146
- || current.allocation.state !== 'reserved'
147
- || current.allocation.objectKind !== 'instance_spot'
148
- || current.allocation.stableType !== target.stableType
149
- || current.storeVersion.value !== pending.storeVersion
150
- || current.objectGeneration !== pending.objectGeneration
151
- || current.authorityOwnerGeneration !== pending.authorityOwnerGeneration
152
- || current.ownerId !== pending.ownerId
153
- || current.ownerLeaseGeneration !== pending.ownerLeaseGeneration
154
- || current.allocation.descriptor.meshName !== pending.meshName
155
- || !(0, routing_id_1.routingIdsEqual)(current.allocation.descriptor.rid, pending.nodeRid)
156
- || current.allocation.descriptorLifecycleGeneration !== pending.nodeGeneration
157
- || projection?.reservationId !== pending.reservationId
158
- || projection.requestContentReference !== pending.requestReference
159
- || projection.requestEncodedSize !== pending.requestEncodedSize
160
- || !Buffer.from(projection.requestSha256).equals(Buffer.from(pending.requestSha256))) {
143
+ if (current.kind !== 'snapshot' ||
144
+ current.allocation.state !== 'reserved' ||
145
+ current.allocation.objectKind !== 'instance_spot' ||
146
+ current.allocation.stableType !== target.stableType ||
147
+ current.storeVersion.value !== pending.storeVersion ||
148
+ current.objectGeneration !== pending.objectGeneration ||
149
+ current.authorityOwnerGeneration !== pending.authorityOwnerGeneration ||
150
+ current.ownerId !== pending.ownerId ||
151
+ current.ownerLeaseGeneration !== pending.ownerLeaseGeneration ||
152
+ current.allocation.descriptor.meshName !== pending.meshName ||
153
+ !(0, routing_id_1.routingIdsEqual)(current.allocation.descriptor.rid, pending.nodeRid) ||
154
+ current.allocation.descriptorLifecycleGeneration !== pending.nodeGeneration ||
155
+ projection?.reservationId !== pending.reservationId ||
156
+ projection.requestContentReference !== pending.requestReference ||
157
+ projection.requestEncodedSize !== pending.requestEncodedSize ||
158
+ !Buffer.from(projection.requestSha256).equals(Buffer.from(pending.requestSha256))) {
161
159
  throw new Error('Pending Instance activation recovery fence is stale.');
162
160
  }
163
161
  const reservation = {
@@ -240,16 +238,16 @@ class ZLinkInstanceActivationAuthority {
240
238
  throw new Error('Instance activation authority disappeared before inbox release.');
241
239
  }
242
240
  const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(current.payload);
243
- if (decoded?.kind !== 'instance_spot'
244
- || decoded.spotId !== target.targetSpotId
245
- || decoded.stableType !== target.stableType
246
- || current.allocation.state !== 'active'
247
- || current.objectGeneration !== route.objectGeneration
248
- || current.authorityOwnerGeneration !== route.authorityOwnerGeneration
249
- || current.ownerId !== route.ownerId
250
- || current.ownerLeaseGeneration !== route.leaseGeneration
251
- || current.allocation.descriptorLifecycleGeneration !== route.targetNodeGeneration
252
- || !(0, routing_id_1.routingIdsEqual)(current.allocation.descriptor.rid, route.targetNodeRid)) {
241
+ if (decoded?.kind !== 'instance_spot' ||
242
+ decoded.spotId !== target.targetSpotId ||
243
+ decoded.stableType !== target.stableType ||
244
+ current.allocation.state !== 'active' ||
245
+ current.objectGeneration !== route.objectGeneration ||
246
+ current.authorityOwnerGeneration !== route.authorityOwnerGeneration ||
247
+ current.ownerId !== route.ownerId ||
248
+ current.ownerLeaseGeneration !== route.leaseGeneration ||
249
+ current.allocation.descriptorLifecycleGeneration !== route.targetNodeGeneration ||
250
+ !(0, routing_id_1.routingIdsEqual)(current.allocation.descriptor.rid, route.targetNodeRid)) {
253
251
  throw new Error('Instance activation authority changed before inbox release.');
254
252
  }
255
253
  const recovery = decoded.activationRecovery;
@@ -283,9 +281,9 @@ class ZLinkInstanceActivationAuthority {
283
281
  }
284
282
  const completedPayload = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(completed.payload);
285
283
  const completedRecovery = completedPayload?.activationRecovery;
286
- if (completedPayload?.kind !== 'instance_spot'
287
- || completedRecovery === undefined
288
- || completedRecovery.replayCursor !== completedRecovery.inboxSequence) {
284
+ if (completedPayload?.kind !== 'instance_spot' ||
285
+ completedRecovery === undefined ||
286
+ completedRecovery.replayCursor !== completedRecovery.inboxSequence) {
289
287
  throw new Error('Instance activation terminal completion was not durably recorded.');
290
288
  }
291
289
  const stored = await this.options.store.compareExchangeAuthority(key, completed.storeVersion, {
@@ -353,8 +351,8 @@ class ZLinkInstanceActivationAuthority {
353
351
  while (performance.now() <= deadlineMs) {
354
352
  const current = await this.options.store.readAuthority(key);
355
353
  if (current.kind === 'snapshot') {
356
- if (current.allocation.objectKind !== 'instance_spot'
357
- || current.allocation.stableType !== target.stableType) {
354
+ if (current.allocation.objectKind !== 'instance_spot' ||
355
+ current.allocation.stableType !== target.stableType) {
358
356
  throw new Error('Concurrent Instance activation resolved to a different Spot type.');
359
357
  }
360
358
  if (current.allocation.state === 'active') {
@@ -376,10 +374,10 @@ class ZLinkInstanceActivationAuthority {
376
374
  if (current.kind !== 'snapshot')
377
375
  return;
378
376
  const decoded = (0, service_authority_payload_codec_1.decodeServiceInstanceAuthorityPayload)(current.payload);
379
- if (current.allocation.objectKind !== 'instance_spot'
380
- || current.allocation.stableType !== target.stableType
381
- || decoded?.kind !== 'instance_spot'
382
- || decoded.spotId !== target.targetSpotId) {
377
+ if (current.allocation.objectKind !== 'instance_spot' ||
378
+ current.allocation.stableType !== target.stableType ||
379
+ decoded?.kind !== 'instance_spot' ||
380
+ decoded.spotId !== target.targetSpotId) {
383
381
  throw new Error('Instance authority changed to a different Spot while closing.');
384
382
  }
385
383
  if (decoded.state !== 'closing')
@@ -390,8 +388,7 @@ class ZLinkInstanceActivationAuthority {
390
388
  }
391
389
  requirePending(reservation) {
392
390
  const pending = this.pending.get(reservation.token);
393
- if (pending === undefined
394
- || pending.creating.objectGeneration !== reservation.attempt) {
391
+ if (pending === undefined || pending.creating.objectGeneration !== reservation.attempt) {
395
392
  throw new Error('Instance activation reservation is stale.');
396
393
  }
397
394
  return pending;
@@ -401,52 +398,52 @@ exports.ZLinkInstanceActivationAuthority = ZLinkInstanceActivationAuthority;
401
398
  function readyRead(snapshot, target) {
402
399
  const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(snapshot.payload);
403
400
  const creating = (0, service_authority_payload_codec_1.decodeServiceInstanceAuthorityPayload)(snapshot.payload);
404
- if (creating?.state === 'coldActivating'
405
- && snapshot.allocation.objectKind === 'instance_spot'
406
- && snapshot.allocation.state === 'reserved'
407
- && creating.stableType === target.stableType
408
- && creating.spotId === target.targetSpotId
409
- && creating.ownerId === snapshot.ownerId
410
- && creating.ownerLeaseGeneration === snapshot.ownerLeaseGeneration
411
- && creating.ownerMeshName === snapshot.allocation.descriptor.meshName
412
- && creating.ownerNodeGeneration === snapshot.allocation.descriptorLifecycleGeneration
413
- && (0, routing_id_1.routingIdsEqual)(creating.ownerNodeRid, snapshot.allocation.descriptor.rid)
414
- && (0, routing_id_1.routingIdsEqual)(target.targetNodeRid, snapshot.allocation.descriptor.rid)
415
- && target.targetNodeGeneration === snapshot.allocation.descriptorLifecycleGeneration) {
401
+ if (creating?.state === 'coldActivating' &&
402
+ snapshot.allocation.objectKind === 'instance_spot' &&
403
+ snapshot.allocation.state === 'reserved' &&
404
+ creating.stableType === target.stableType &&
405
+ creating.spotId === target.targetSpotId &&
406
+ creating.ownerId === snapshot.ownerId &&
407
+ creating.ownerLeaseGeneration === snapshot.ownerLeaseGeneration &&
408
+ creating.ownerMeshName === snapshot.allocation.descriptor.meshName &&
409
+ creating.ownerNodeGeneration === snapshot.allocation.descriptorLifecycleGeneration &&
410
+ (0, routing_id_1.routingIdsEqual)(creating.ownerNodeRid, snapshot.allocation.descriptor.rid) &&
411
+ (0, routing_id_1.routingIdsEqual)(target.targetNodeRid, snapshot.allocation.descriptor.rid) &&
412
+ target.targetNodeGeneration === snapshot.allocation.descriptorLifecycleGeneration) {
416
413
  return {
417
414
  kind: 'creating',
418
415
  objectGeneration: snapshot.objectGeneration,
419
416
  authorityOwnerGeneration: snapshot.authorityOwnerGeneration
420
417
  };
421
418
  }
422
- if (decoded?.kind !== 'instance_spot'
423
- || decoded.stableType !== target.stableType
424
- || decoded.spotId !== target.targetSpotId
425
- || snapshot.allocation.objectKind !== 'instance_spot'
426
- || snapshot.allocation.state !== 'active'
427
- || decoded.ownerId !== snapshot.ownerId
428
- || decoded.ownerLeaseGeneration !== snapshot.ownerLeaseGeneration
429
- || decoded.ownerMeshName !== snapshot.allocation.descriptor.meshName
430
- || decoded.ownerNodeGeneration !== snapshot.allocation.descriptorLifecycleGeneration
431
- || !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, snapshot.allocation.descriptor.rid)
432
- || !(0, routing_id_1.routingIdsEqual)(target.targetNodeRid, snapshot.allocation.descriptor.rid)
433
- || target.targetNodeGeneration !== snapshot.allocation.descriptorLifecycleGeneration) {
419
+ if (decoded?.kind !== 'instance_spot' ||
420
+ decoded.stableType !== target.stableType ||
421
+ decoded.spotId !== target.targetSpotId ||
422
+ snapshot.allocation.objectKind !== 'instance_spot' ||
423
+ snapshot.allocation.state !== 'active' ||
424
+ decoded.ownerId !== snapshot.ownerId ||
425
+ decoded.ownerLeaseGeneration !== snapshot.ownerLeaseGeneration ||
426
+ decoded.ownerMeshName !== snapshot.allocation.descriptor.meshName ||
427
+ decoded.ownerNodeGeneration !== snapshot.allocation.descriptorLifecycleGeneration ||
428
+ !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, snapshot.allocation.descriptor.rid) ||
429
+ !(0, routing_id_1.routingIdsEqual)(target.targetNodeRid, snapshot.allocation.descriptor.rid) ||
430
+ target.targetNodeGeneration !== snapshot.allocation.descriptorLifecycleGeneration) {
434
431
  return { kind: 'missing' };
435
432
  }
436
433
  return { kind: 'ready', route: routeFromSnapshot(snapshot) };
437
434
  }
438
435
  function readyExisting(snapshot, target) {
439
436
  const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(snapshot.payload);
440
- if (decoded?.kind !== 'instance_spot'
441
- || decoded.stableType !== target.stableType
442
- || decoded.spotId !== target.targetSpotId
443
- || snapshot.allocation.objectKind !== 'instance_spot'
444
- || snapshot.allocation.state !== 'active'
445
- || decoded.ownerId !== snapshot.ownerId
446
- || decoded.ownerLeaseGeneration !== snapshot.ownerLeaseGeneration
447
- || decoded.ownerMeshName !== snapshot.allocation.descriptor.meshName
448
- || decoded.ownerNodeGeneration !== snapshot.allocation.descriptorLifecycleGeneration
449
- || !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, snapshot.allocation.descriptor.rid)) {
437
+ if (decoded?.kind !== 'instance_spot' ||
438
+ decoded.stableType !== target.stableType ||
439
+ decoded.spotId !== target.targetSpotId ||
440
+ snapshot.allocation.objectKind !== 'instance_spot' ||
441
+ snapshot.allocation.state !== 'active' ||
442
+ decoded.ownerId !== snapshot.ownerId ||
443
+ decoded.ownerLeaseGeneration !== snapshot.ownerLeaseGeneration ||
444
+ decoded.ownerMeshName !== snapshot.allocation.descriptor.meshName ||
445
+ decoded.ownerNodeGeneration !== snapshot.allocation.descriptorLifecycleGeneration ||
446
+ !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, snapshot.allocation.descriptor.rid)) {
450
447
  throw new Error('Existing Instance authority is not a matching Ready allocation.');
451
448
  }
452
449
  return { kind: 'ready', route: routeFromSnapshot(snapshot) };
@@ -460,18 +457,18 @@ async function waitForActivationJoin(deadlineMs) {
460
457
  });
461
458
  }
462
459
  function requireCommitIdentity(target, reservation, creating, spot, meshName) {
463
- if (creating.allocation.state !== 'reserved'
464
- || creating.allocation.objectKind !== 'instance_spot'
465
- || creating.allocation.stableType !== target.stableType
466
- || creating.objectGeneration !== reservation.attempt
467
- || !(0, routing_id_1.routingIdsEqual)(creating.allocation.descriptor.rid, target.targetNodeRid)
468
- || creating.allocation.descriptor.meshName !== meshName
469
- || creating.allocation.descriptorLifecycleGeneration !== target.targetNodeGeneration
470
- || spot.kind !== 'instance'
471
- || spot.stableType !== target.stableType
472
- || spot.ref.spotId !== target.targetSpotId
473
- || spot.ref.generation !== reservation.attempt
474
- || spot.authorityOwnerGeneration !== creating.authorityOwnerGeneration) {
460
+ if (creating.allocation.state !== 'reserved' ||
461
+ creating.allocation.objectKind !== 'instance_spot' ||
462
+ creating.allocation.stableType !== target.stableType ||
463
+ creating.objectGeneration !== reservation.attempt ||
464
+ !(0, routing_id_1.routingIdsEqual)(creating.allocation.descriptor.rid, target.targetNodeRid) ||
465
+ creating.allocation.descriptor.meshName !== meshName ||
466
+ creating.allocation.descriptorLifecycleGeneration !== target.targetNodeGeneration ||
467
+ spot.kind !== 'instance' ||
468
+ spot.stableType !== target.stableType ||
469
+ spot.ref.spotId !== target.targetSpotId ||
470
+ spot.ref.generation !== reservation.attempt ||
471
+ spot.authorityOwnerGeneration !== creating.authorityOwnerGeneration) {
475
472
  throw new Error('Instance activation Ready identity does not match its exact reservation.');
476
473
  }
477
474
  }
@@ -55,15 +55,19 @@ class ZLinkLocationRuntimeOwner {
55
55
  metrics: this.options.metrics,
56
56
  meshNames: [...this.options.registration.spotNodes.keys()],
57
57
  leaseScopes: [
58
- ...[...this.options.registration.spotNodes.keys()]
59
- .map(name => ({ kind: 'mesh', name })),
60
- ...[...this.options.registration.channels.keys()]
61
- .map(name => ({ kind: 'channel', name }))
58
+ ...[...this.options.registration.spotNodes.keys()].map((name) => ({
59
+ kind: 'mesh',
60
+ name
61
+ })),
62
+ ...[...this.options.registration.channels.keys()].map((name) => ({
63
+ kind: 'channel',
64
+ name
65
+ }))
62
66
  ],
63
67
  rewriteAuthorityPayloadForOwner: this.options.rewriteAuthorityPayloadForOwner
64
68
  });
65
69
  this.runtime = runtime;
66
- this.lifecycle = new locations_1.ZLinkLocationLifecycle(runtime, stores.actorStore, primaryMeshName ?? '', stores.authorityStore, stores.spotStore, spotId => this.spotRouteInvalidator?.(spotId));
70
+ this.lifecycle = new locations_1.ZLinkLocationLifecycle(runtime, stores.actorStore, primaryMeshName ?? '', stores.authorityStore, stores.spotStore, (spotId) => this.spotRouteInvalidator?.(spotId));
67
71
  return runtime;
68
72
  }
69
73
  createRefResolver(spotMeshNames) {
@@ -107,9 +111,7 @@ class ZLinkLocationRuntimeOwner {
107
111
  }
108
112
  ownerNodeRid(spotNodeRuntime) {
109
113
  const primaryMeshNode = spotNodeRuntime?.primaryMeshNode;
110
- const spotNodeRid = primaryMeshNode === undefined
111
- ? undefined
112
- : String(primaryMeshNode.status().routingId);
114
+ const spotNodeRid = primaryMeshNode === undefined ? undefined : String(primaryMeshNode.status().routingId);
113
115
  if (spotNodeRid !== undefined) {
114
116
  return spotNodeRid;
115
117
  }
@@ -220,10 +222,10 @@ class ZLinkLocationRuntimeOwner {
220
222
  exports.ZLinkLocationRuntimeOwner = ZLinkLocationRuntimeOwner;
221
223
  function isActorTransferStore(value) {
222
224
  const store = value;
223
- return typeof store.prepareActorTransfer === 'function'
224
- && typeof store.commitActorTransfer === 'function'
225
- && typeof store.activateActorTransfer === 'function'
226
- && typeof store.abortActorTransfer === 'function'
227
- && typeof store.takeOverActorTransfer === 'function'
228
- && typeof store.resolveActorTransfer === 'function';
225
+ return (typeof store.prepareActorTransfer === 'function' &&
226
+ typeof store.commitActorTransfer === 'function' &&
227
+ typeof store.activateActorTransfer === 'function' &&
228
+ typeof store.abortActorTransfer === 'function' &&
229
+ typeof store.takeOverActorTransfer === 'function' &&
230
+ typeof store.resolveActorTransfer === 'function');
229
231
  }
@@ -8,8 +8,8 @@ class MeshRouterResolver {
8
8
  this.registration = registration;
9
9
  }
10
10
  canUseRouterChannel(routerChannelId) {
11
- return this.registration.routeChannels.has(routerChannelId)
12
- || this.registration.spotNodes.get(routerChannelId)?.router !== undefined;
11
+ return (this.registration.routeChannels.has(routerChannelId) ||
12
+ this.registration.spotNodes.get(routerChannelId)?.router !== undefined);
13
13
  }
14
14
  classifyManualNodeTarget(meshName, targetNodeRid) {
15
15
  const router = this.registration.spotNodes.get(meshName)?.router;
@@ -39,8 +39,7 @@ class MeshRouterResolver {
39
39
  return candidates.length === 1 ? candidates[0] : undefined;
40
40
  }
41
41
  remoteBoundSessionTargetForSource(sourceNodeRid) {
42
- const routerChannelId = this.defaultSpotRouterChannelId()
43
- ?? this.defaultRouterChannelId();
42
+ const routerChannelId = this.defaultSpotRouterChannelId() ?? this.defaultRouterChannelId();
44
43
  if (routerChannelId === undefined) {
45
44
  return undefined;
46
45
  }
@@ -53,9 +52,9 @@ class MeshRouterResolver {
53
52
  }
54
53
  primaryMeshName() {
55
54
  const names = [...this.registration.spotNodes.entries()]
56
- .filter(([, node]) => node.entrySpotType !== undefined
57
- || (node.spotFactories?.length ?? 0) > 0
58
- || (node.actorFactories instanceof Map
55
+ .filter(([, node]) => node.entrySpotType !== undefined ||
56
+ (node.spotFactories?.length ?? 0) > 0 ||
57
+ (node.actorFactories instanceof Map
59
58
  ? node.actorFactories.size > 0
60
59
  : Object.keys(node.actorFactories ?? {}).length > 0))
61
60
  .map(([name]) => name);
@@ -75,18 +74,17 @@ class MeshRouterResolver {
75
74
  return matches.length === 1 ? matches[0] : undefined;
76
75
  }
77
76
  spotLocationMeshNames() {
78
- return [...new Set([
79
- ...this.registration.spotNodes.keys(),
80
- ...this.registration.routeChannels.keys()
81
- ])];
77
+ return [
78
+ ...new Set([...this.registration.spotNodes.keys(), ...this.registration.routeChannels.keys()])
79
+ ];
82
80
  }
83
81
  spotRouterChannelIdByMesh() {
84
82
  const routeChannels = [...this.registration.routeChannelOptions.values()];
85
83
  const mapped = new Map();
86
84
  for (const [spotMeshName, spotNode] of this.registration.spotNodes.entries()) {
87
85
  const conventionalRouteChannelId = `${spotMeshName}.route`;
88
- if (this.registration.routeChannels.has(conventionalRouteChannelId)
89
- || this.registration.routeChannelOptions.has(conventionalRouteChannelId)) {
86
+ if (this.registration.routeChannels.has(conventionalRouteChannelId) ||
87
+ this.registration.routeChannelOptions.has(conventionalRouteChannelId)) {
90
88
  mapped.set(spotMeshName, conventionalRouteChannelId);
91
89
  continue;
92
90
  }
@@ -88,9 +88,10 @@ class ZLinkRelocationPayloadAssembly {
88
88
  if (!Number.isSafeInteger(totalLength) || totalLength < 0) {
89
89
  throw new RangeError('Relocation payload total length is invalid.');
90
90
  }
91
- if (!Number.isInteger(chunkCount) || chunkCount < 0
92
- || chunkCount > service_stateful_wire_codec_1.RELOCATION_PAYLOAD_CHUNK_COUNT_MAX
93
- || (totalLength > 0 && chunkCount === 0)) {
91
+ if (!Number.isInteger(chunkCount) ||
92
+ chunkCount < 0 ||
93
+ chunkCount > service_stateful_wire_codec_1.RELOCATION_PAYLOAD_CHUNK_COUNT_MAX ||
94
+ (totalLength > 0 && chunkCount === 0)) {
94
95
  throw new RangeError('Relocation payload chunk count is invalid.');
95
96
  }
96
97
  this.buffer = Buffer.alloc(totalLength);
@@ -105,7 +106,9 @@ class ZLinkRelocationPayloadAssembly {
105
106
  if (this.outcome !== undefined) {
106
107
  if ('error' in this.outcome)
107
108
  throw this.outcome.error;
108
- return ordinal < this.chunkCount ? 'duplicate' : this.conflict(`Relocation chunk ordinal ${ordinal} arrived after assembly completed.`);
109
+ return ordinal < this.chunkCount
110
+ ? 'duplicate'
111
+ : this.conflict(`Relocation chunk ordinal ${ordinal} arrived after assembly completed.`);
109
112
  }
110
113
  if (ordinal < this.nextOrdinal)
111
114
  return 'duplicate';
@@ -115,8 +118,8 @@ class ZLinkRelocationPayloadAssembly {
115
118
  if (this.receivedBytes + data.byteLength > this.totalLength) {
116
119
  return this.conflict('Relocation chunks exceed the declared payload length.');
117
120
  }
118
- if (ordinal === this.chunkCount - 1
119
- && this.receivedBytes + data.byteLength !== this.totalLength) {
121
+ if (ordinal === this.chunkCount - 1 &&
122
+ this.receivedBytes + data.byteLength !== this.totalLength) {
120
123
  return this.conflict('Relocation chunks do not cover the declared payload length.');
121
124
  }
122
125
  this.buffer.set(data, this.receivedBytes);
@@ -191,9 +194,7 @@ class ZLinkRelocationInFlightBudget {
191
194
  if (!Number.isSafeInteger(bytes) || bytes < 0) {
192
195
  throw new RangeError('Relocation budget charge must be a non-negative integer.');
193
196
  }
194
- while (this.limitBytes !== 0
195
- && this.inFlight > 0
196
- && this.inFlight + bytes > this.limitBytes) {
197
+ while (this.limitBytes !== 0 && this.inFlight > 0 && this.inFlight + bytes > this.limitBytes) {
197
198
  await this.waitForRelease(signal);
198
199
  }
199
200
  this.inFlight += bytes;
@@ -39,9 +39,14 @@ class ZLinkRemoteActorJoinReceiver {
39
39
  };
40
40
  state.setNativeActorRef(actorRef);
41
41
  const refreshedTarget = (0, actor_runtime_state_1.mergeRemoteBoundSessionTarget)({
42
- routerChannelId: join.boundSessionRouterChannelId ?? join.routerChannelId ?? routeContext.channelName ?? '',
42
+ routerChannelId: join.boundSessionRouterChannelId ??
43
+ join.routerChannelId ??
44
+ routeContext.channelName ??
45
+ '',
43
46
  targetNodeRid: join.boundSessionTargetNodeRid ?? (0, routing_id_1.normalizeRoutingId)(routeContext.sourceNodeRid),
44
- spotId: join.boundSessionSpotId ?? join.sourceSpotId ?? (0, routing_id_1.normalizeRoutingId)(routeContext.sourceNodeRid)
47
+ spotId: join.boundSessionSpotId ??
48
+ join.sourceSpotId ??
49
+ (0, routing_id_1.normalizeRoutingId)(routeContext.sourceNodeRid)
45
50
  }, (0, actor_runtime_state_1.preferredRemoteBoundSessionTarget)(state.remoteBoundSessionTarget, state.boundSessionTransferTarget));
46
51
  state.setRemoteBoundSessionTarget(refreshedTarget);
47
52
  const request = runtime_message_1.ZLinkBufferMessage.from(Buffer.from(join.request, 'base64'));
@@ -112,13 +117,13 @@ class ZLinkRemoteActorJoinReceiver {
112
117
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor '${join.actorId}' has no Authority row for Join admission.`);
113
118
  }
114
119
  const fence = decodeJoinAuthorityFence(join);
115
- if (authority.allocation.state !== 'active'
116
- || authority.allocation.objectKind !== 'actor'
117
- || authority.objectGeneration !== fence.objectGeneration
118
- || !(0, routing_id_1.routingIdsEqual)(authority.allocation.descriptor.rid, join.actorNodeRid)
119
- || authority.allocation.descriptorLifecycleGeneration !== fence.nodeGeneration
120
- || authority.authorityOwnerGeneration !== fence.authorityOwnerGeneration
121
- || authority.ownerLeaseGeneration !== fence.ownerLeaseGeneration) {
120
+ if (authority.allocation.state !== 'active' ||
121
+ authority.allocation.objectKind !== 'actor' ||
122
+ authority.objectGeneration !== fence.objectGeneration ||
123
+ !(0, routing_id_1.routingIdsEqual)(authority.allocation.descriptor.rid, join.actorNodeRid) ||
124
+ authority.allocation.descriptorLifecycleGeneration !== fence.nodeGeneration ||
125
+ authority.authorityOwnerGeneration !== fence.authorityOwnerGeneration ||
126
+ authority.ownerLeaseGeneration !== fence.ownerLeaseGeneration) {
122
127
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError, `Actor '${join.actorId}' Join Authority row does not exactly match its route fence.`);
123
128
  }
124
129
  return authority.allocation.stableType;
@@ -131,10 +136,10 @@ function hasAuthorityFence(join) {
131
136
  join.expectedAuthorityOwnerGeneration,
132
137
  join.expectedOwnerLeaseGeneration
133
138
  ];
134
- if (fields.every(value => value === undefined)) {
139
+ if (fields.every((value) => value === undefined)) {
135
140
  return false;
136
141
  }
137
- if (fields.some(value => value === undefined)) {
142
+ if (fields.some((value) => value === undefined)) {
138
143
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError, `Actor '${join.actorId}' Join carries an incomplete Authority fence.`);
139
144
  }
140
145
  return true;
@@ -155,10 +160,10 @@ function decodeJoinAuthorityFence(join) {
155
160
  }
156
161
  // object/owner generations are bounded counters; the MeshNode lifecycle is
157
162
  // an opaque full-range token, for which only zero denotes absence.
158
- if (objectGeneration <= 0n
159
- || nodeGeneration === 0n
160
- || authorityOwnerGeneration <= 0n
161
- || ownerLeaseGeneration <= 0n) {
163
+ if (objectGeneration <= 0n ||
164
+ nodeGeneration === 0n ||
165
+ authorityOwnerGeneration <= 0n ||
166
+ ownerLeaseGeneration <= 0n) {
162
167
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError, `Actor '${join.actorId}' Join carries an incomplete Authority fence.`);
163
168
  }
164
169
  return {
@@ -33,10 +33,10 @@ class ZLinkRemoteActorPacketTargetStore {
33
33
  return (0, actor_packet_relay_wire_1.decodeRemoteActorPacketTarget)(value);
34
34
  }
35
35
  clear(actorId, expectedTenureKey, expectedActor) {
36
- if (expectedTenureKey !== undefined
37
- && (expectedActor === undefined
38
- || expectedActor.actorId !== actorId
39
- || this.tenureKeyForActor(expectedActor) !== expectedTenureKey))
36
+ if (expectedTenureKey !== undefined &&
37
+ (expectedActor === undefined ||
38
+ expectedActor.actorId !== actorId ||
39
+ this.tenureKeyForActor(expectedActor) !== expectedTenureKey))
40
40
  return;
41
41
  const state = this.options.actorManager()?.getState(actorId);
42
42
  if (typeof state?.setRemoteActorPacketTarget === 'function') {
@@ -58,16 +58,16 @@ class ZLinkRemoteActorPacketTargetStore {
58
58
  const routeKey = sessionActorPacketTargetTenureKey(actor);
59
59
  const actorEntry = this.sessionActorPacketTargets.get(actor);
60
60
  const actorIdEntry = this.sessionActorPacketTargetsByActorId.get(actor.actorId);
61
- return (actorEntry?.routeKey === routeKey ? actorEntry.target : undefined)
62
- ?? this.sessionActorPacketTargetsByActor.get(routeKey)
63
- ?? (actorIdEntry?.routeKey === routeKey ? actorIdEntry.target : undefined)
64
- ?? this.targetForActorRef(actor.ref);
61
+ return ((actorEntry?.routeKey === routeKey ? actorEntry.target : undefined) ??
62
+ this.sessionActorPacketTargetsByActor.get(routeKey) ??
63
+ (actorIdEntry?.routeKey === routeKey ? actorIdEntry.target : undefined) ??
64
+ this.targetForActorRef(actor.ref));
65
65
  }
66
66
  targetForState(actorId, routerChannelIdHint) {
67
67
  const state = this.options.actorManager()?.getState(actorId);
68
68
  if (state?.remoteActorPacketTarget !== undefined &&
69
- (state.spotId === undefined
70
- || (0, routing_id_2.routingIdsEqual)(state.remoteActorPacketTarget.spotId, state.spotId))) {
69
+ (state.spotId === undefined ||
70
+ (0, routing_id_2.routingIdsEqual)(state.remoteActorPacketTarget.spotId, state.spotId))) {
71
71
  return state.remoteActorPacketTarget;
72
72
  }
73
73
  const spotId = state?.spotId;
@@ -84,11 +84,10 @@ class ZLinkRemoteActorPacketTargetStore {
84
84
  return undefined;
85
85
  }
86
86
  const actorRef = state?.nativeActorRef;
87
- const targetNodeRid = actorRef?.nodeRid
88
- ?? this.options.primaryNodeRid();
89
- const routerChannelId = routerChannelIdHint
90
- ?? this.options.meshRouters.defaultSpotRouterChannelId()
91
- ?? this.options.meshRouters.defaultRouterChannelId();
87
+ const targetNodeRid = actorRef?.nodeRid ?? this.options.primaryNodeRid();
88
+ const routerChannelId = routerChannelIdHint ??
89
+ this.options.meshRouters.defaultSpotRouterChannelId() ??
90
+ this.options.meshRouters.defaultRouterChannelId();
92
91
  const localNodeRid = this.options.primaryNodeRid();
93
92
  if (spotId === undefined &&
94
93
  targetNodeRid !== undefined &&
@@ -104,9 +103,7 @@ class ZLinkRemoteActorPacketTargetStore {
104
103
  targetNodeRid: (0, routing_id_1.normalizeRoutingId)(targetNodeRid),
105
104
  spotId: validateSpotId(spotId),
106
105
  spotKind: contracts_1.ZLinkSpotKind.User,
107
- ...(state?.spotGeneration === undefined
108
- ? {}
109
- : { targetSpotGeneration: state.spotGeneration })
106
+ ...(state?.spotGeneration === undefined ? {} : { targetSpotGeneration: state.spotGeneration })
110
107
  };
111
108
  }
112
109
  targetForActorRef(actorRef) {
@@ -117,8 +114,8 @@ class ZLinkRemoteActorPacketTargetStore {
117
114
  }
118
115
  const meshName = actorRef.meshName;
119
116
  const routerChannelId = meshName.trim().length === 0
120
- ? this.options.meshRouters.defaultSpotRouterChannelId()
121
- ?? this.options.meshRouters.defaultRouterChannelId()
117
+ ? (this.options.meshRouters.defaultSpotRouterChannelId() ??
118
+ this.options.meshRouters.defaultRouterChannelId())
122
119
  : this.options.spotRouterChannelIdForMesh(meshName);
123
120
  if (routerChannelId === undefined) {
124
121
  return undefined;
@@ -137,8 +134,7 @@ class ZLinkRemoteActorPacketTargetStore {
137
134
  return sessionActorPacketTargetTenureKeyForRef(actorId, actorRef);
138
135
  }
139
136
  rememberActorTarget(actor, target, expectedTenureKey) {
140
- if (expectedTenureKey !== undefined
141
- && this.tenureKeyForActor(actor) !== expectedTenureKey)
137
+ if (expectedTenureKey !== undefined && this.tenureKeyForActor(actor) !== expectedTenureKey)
142
138
  return;
143
139
  const state = this.options.actorManager()?.getState(actor.actorId);
144
140
  if (typeof state?.setRemoteActorPacketTarget === 'function') {