@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
@@ -56,10 +56,7 @@ export function planRelocationChunks(
56
56
  throw new RangeError('relocationPayloadChunkLimitBytes must be a positive integer.');
57
57
  }
58
58
  const totalLength = payload.byteLength;
59
- let chunkBytes = Math.min(
60
- configuredChunkLimitBytes,
61
- RELOCATION_CONSERVATIVE_CHUNK_LIMIT_BYTES
62
- );
59
+ let chunkBytes = Math.min(configuredChunkLimitBytes, RELOCATION_CONSERVATIVE_CHUNK_LIMIT_BYTES);
63
60
  if (Math.ceil(totalLength / chunkBytes) > RELOCATION_PAYLOAD_CHUNK_COUNT_MAX) {
64
61
  chunkBytes = Math.ceil(totalLength / RELOCATION_PAYLOAD_CHUNK_COUNT_MAX);
65
62
  }
@@ -117,9 +114,12 @@ export class ZLinkRelocationPayloadAssembly {
117
114
  if (!Number.isSafeInteger(totalLength) || totalLength < 0) {
118
115
  throw new RangeError('Relocation payload total length is invalid.');
119
116
  }
120
- if (!Number.isInteger(chunkCount) || chunkCount < 0
121
- || chunkCount > RELOCATION_PAYLOAD_CHUNK_COUNT_MAX
122
- || (totalLength > 0 && chunkCount === 0)) {
117
+ if (
118
+ !Number.isInteger(chunkCount) ||
119
+ chunkCount < 0 ||
120
+ chunkCount > RELOCATION_PAYLOAD_CHUNK_COUNT_MAX ||
121
+ (totalLength > 0 && chunkCount === 0)
122
+ ) {
123
123
  throw new RangeError('Relocation payload chunk count is invalid.');
124
124
  }
125
125
  this.buffer = Buffer.alloc(totalLength);
@@ -134,9 +134,9 @@ export class ZLinkRelocationPayloadAssembly {
134
134
  accept(ordinal: number, data: Uint8Array): ZLinkRelocationChunkAcceptance {
135
135
  if (this.outcome !== undefined) {
136
136
  if ('error' in this.outcome) throw this.outcome.error;
137
- return ordinal < this.chunkCount ? 'duplicate' : this.conflict(
138
- `Relocation chunk ordinal ${ordinal} arrived after assembly completed.`
139
- );
137
+ return ordinal < this.chunkCount
138
+ ? 'duplicate'
139
+ : this.conflict(`Relocation chunk ordinal ${ordinal} arrived after assembly completed.`);
140
140
  }
141
141
  if (ordinal < this.nextOrdinal) return 'duplicate';
142
142
  if (ordinal !== this.nextOrdinal || ordinal >= this.chunkCount) {
@@ -147,8 +147,10 @@ export class ZLinkRelocationPayloadAssembly {
147
147
  if (this.receivedBytes + data.byteLength > this.totalLength) {
148
148
  return this.conflict('Relocation chunks exceed the declared payload length.');
149
149
  }
150
- if (ordinal === this.chunkCount - 1
151
- && this.receivedBytes + data.byteLength !== this.totalLength) {
150
+ if (
151
+ ordinal === this.chunkCount - 1 &&
152
+ this.receivedBytes + data.byteLength !== this.totalLength
153
+ ) {
152
154
  return this.conflict('Relocation chunks do not cover the declared payload length.');
153
155
  }
154
156
  this.buffer.set(data, this.receivedBytes);
@@ -226,9 +228,7 @@ export class ZLinkRelocationInFlightBudget {
226
228
  if (!Number.isSafeInteger(bytes) || bytes < 0) {
227
229
  throw new RangeError('Relocation budget charge must be a non-negative integer.');
228
230
  }
229
- while (this.limitBytes !== 0
230
- && this.inFlight > 0
231
- && this.inFlight + bytes > this.limitBytes) {
231
+ while (this.limitBytes !== 0 && this.inFlight > 0 && this.inFlight + bytes > this.limitBytes) {
232
232
  await this.waitForRelease(signal);
233
233
  }
234
234
  this.inFlight += bytes;
@@ -1,6 +1,7 @@
1
1
  /** Internal E2E-only fault seam for direct relocation transfer integrity cases. */
2
- export const ZLINK_INTERNAL_RELOCATION_INTEGRITY_FAULT_GATE =
3
- Symbol.for('zlink.internal.relocation-integrity-fault-gate');
2
+ export const ZLINK_INTERNAL_RELOCATION_INTEGRITY_FAULT_GATE = Symbol.for(
3
+ 'zlink.internal.relocation-integrity-fault-gate'
4
+ );
4
5
 
5
6
  export interface ZLinkInternalRelocationIntegrityFaultGate {
6
7
  consumeChecksumMismatch(): boolean;
@@ -15,11 +15,7 @@ import {
15
15
  ZLinkFrameworkInternalErrorKind,
16
16
  createInternalFrameworkException
17
17
  } from '../framework-errors-internal';
18
- import {
19
- normalizeRoutingId,
20
- routingIdWireHex,
21
- routingIdsEqual
22
- } from '../routing-id';
18
+ import { normalizeRoutingId, routingIdWireHex, routingIdsEqual } from '../routing-id';
23
19
 
24
20
  export interface ZLinkCanonicalActorJoinAuthorityFence {
25
21
  readonly actorId: string;
@@ -81,14 +77,25 @@ export class ZLinkRemoteActorJoinReceiver {
81
77
  generation: BigInt(join.actorGeneration)
82
78
  };
83
79
  state.setNativeActorRef(actorRef as unknown as ZLinkBackendActorRef);
84
- const refreshedTarget = mergeRemoteBoundSessionTarget({
85
- routerChannelId: join.boundSessionRouterChannelId ?? join.routerChannelId ?? routeContext.channelName ?? '',
86
- targetNodeRid: join.boundSessionTargetNodeRid ?? normalizeRoutingId(routeContext.sourceNodeRid),
87
- spotId: join.boundSessionSpotId ?? join.sourceSpotId ?? normalizeRoutingId(routeContext.sourceNodeRid)
88
- }, preferredRemoteBoundSessionTarget(
89
- state.remoteBoundSessionTarget,
90
- state.boundSessionTransferTarget
91
- ));
80
+ const refreshedTarget = mergeRemoteBoundSessionTarget(
81
+ {
82
+ routerChannelId:
83
+ join.boundSessionRouterChannelId ??
84
+ join.routerChannelId ??
85
+ routeContext.channelName ??
86
+ '',
87
+ targetNodeRid:
88
+ join.boundSessionTargetNodeRid ?? normalizeRoutingId(routeContext.sourceNodeRid),
89
+ spotId:
90
+ join.boundSessionSpotId ??
91
+ join.sourceSpotId ??
92
+ normalizeRoutingId(routeContext.sourceNodeRid)
93
+ },
94
+ preferredRemoteBoundSessionTarget(
95
+ state.remoteBoundSessionTarget,
96
+ state.boundSessionTransferTarget
97
+ )
98
+ );
92
99
  state.setRemoteBoundSessionTarget(refreshedTarget);
93
100
  const request = RuntimeMessage.from(Buffer.from(join.request, 'base64'));
94
101
  try {
@@ -182,13 +189,13 @@ export class ZLinkRemoteActorJoinReceiver {
182
189
 
183
190
  const fence = decodeJoinAuthorityFence(join);
184
191
  if (
185
- authority.allocation.state !== 'active'
186
- || authority.allocation.objectKind !== 'actor'
187
- || authority.objectGeneration !== fence.objectGeneration
188
- || !routingIdsEqual(authority.allocation.descriptor.rid, join.actorNodeRid)
189
- || authority.allocation.descriptorLifecycleGeneration !== fence.nodeGeneration
190
- || authority.authorityOwnerGeneration !== fence.authorityOwnerGeneration
191
- || authority.ownerLeaseGeneration !== fence.ownerLeaseGeneration
192
+ authority.allocation.state !== 'active' ||
193
+ authority.allocation.objectKind !== 'actor' ||
194
+ authority.objectGeneration !== fence.objectGeneration ||
195
+ !routingIdsEqual(authority.allocation.descriptor.rid, join.actorNodeRid) ||
196
+ authority.allocation.descriptorLifecycleGeneration !== fence.nodeGeneration ||
197
+ authority.authorityOwnerGeneration !== fence.authorityOwnerGeneration ||
198
+ authority.ownerLeaseGeneration !== fence.ownerLeaseGeneration
192
199
  ) {
193
200
  throw createInternalFrameworkException(
194
201
  ZLinkFrameworkInternalErrorKind.RequestProtocolError,
@@ -199,14 +206,16 @@ export class ZLinkRemoteActorJoinReceiver {
199
206
  }
200
207
  }
201
208
 
202
- type JoinAuthorityFence = ZLinkCanonicalActorJoinAuthorityFence | {
203
- readonly actorId: string;
204
- readonly actorNodeRid: RoutingId;
205
- readonly actorGeneration: string;
206
- readonly actorNodeGeneration: string;
207
- readonly expectedAuthorityOwnerGeneration: string;
208
- readonly expectedOwnerLeaseGeneration: string;
209
- };
209
+ type JoinAuthorityFence =
210
+ | ZLinkCanonicalActorJoinAuthorityFence
211
+ | {
212
+ readonly actorId: string;
213
+ readonly actorNodeRid: RoutingId;
214
+ readonly actorGeneration: string;
215
+ readonly actorNodeGeneration: string;
216
+ readonly expectedAuthorityOwnerGeneration: string;
217
+ readonly expectedOwnerLeaseGeneration: string;
218
+ };
210
219
 
211
220
  function hasAuthorityFence(
212
221
  join: ReturnType<typeof decodeRemoteActorJoinPayload>
@@ -220,10 +229,10 @@ function hasAuthorityFence(
220
229
  join.expectedAuthorityOwnerGeneration,
221
230
  join.expectedOwnerLeaseGeneration
222
231
  ];
223
- if (fields.every(value => value === undefined)) {
232
+ if (fields.every((value) => value === undefined)) {
224
233
  return false;
225
234
  }
226
- if (fields.some(value => value === undefined)) {
235
+ if (fields.some((value) => value === undefined)) {
227
236
  throw createInternalFrameworkException(
228
237
  ZLinkFrameworkInternalErrorKind.RequestProtocolError,
229
238
  `Actor '${join.actorId}' Join carries an incomplete Authority fence.`
@@ -257,10 +266,10 @@ function decodeJoinAuthorityFence(join: JoinAuthorityFence): {
257
266
  // object/owner generations are bounded counters; the MeshNode lifecycle is
258
267
  // an opaque full-range token, for which only zero denotes absence.
259
268
  if (
260
- objectGeneration <= 0n
261
- || nodeGeneration === 0n
262
- || authorityOwnerGeneration <= 0n
263
- || ownerLeaseGeneration <= 0n
269
+ objectGeneration <= 0n ||
270
+ nodeGeneration === 0n ||
271
+ authorityOwnerGeneration <= 0n ||
272
+ ownerLeaseGeneration <= 0n
264
273
  ) {
265
274
  throw createInternalFrameworkException(
266
275
  ZLinkFrameworkInternalErrorKind.RequestProtocolError,
@@ -1,14 +1,6 @@
1
- import type {
2
- ActorRef,
3
- RoutingId,
4
- SpotId,
5
- ZLinkSessionActor
6
- } from '../../contracts';
1
+ import type { ActorRef, RoutingId, SpotId, ZLinkSessionActor } from '../../contracts';
7
2
  import { ZLinkSpotKind } from '../../contracts';
8
- import type {
9
- DefaultZLinkActorManager,
10
- ZLinkRemoteActorPacketTarget
11
- } from '../actors';
3
+ import type { DefaultZLinkActorManager, ZLinkRemoteActorPacketTarget } from '../actors';
12
4
  import type { ZLinkStreamActorLookupPort } from '../streams/stream-binding-runtime-ports';
13
5
  import { decodeRemoteActorPacketTarget } from '../actors/actor-packet-relay-wire';
14
6
  import { normalizeRoutingId as normalizeRuntimeRoutingId } from '../routing-id';
@@ -29,15 +21,25 @@ interface ZLinkSessionActorPacketTargetCacheEntry {
29
21
  }
30
22
 
31
23
  export class ZLinkRemoteActorPacketTargetStore {
32
- private readonly sessionActorPacketTargets =
33
- new WeakMap<ZLinkSessionActor, ZLinkSessionActorPacketTargetCacheEntry>();
34
- private readonly sessionActorPacketTargetsByActor = new Map<string, ZLinkRemoteActorPacketTarget>();
35
- private readonly sessionActorPacketTargetsByActorId =
36
- new Map<string, ZLinkSessionActorPacketTargetCacheEntry>();
37
- private readonly sessionActorPacketTargetOwners = new Map<string, {
38
- readonly actors: Set<ZLinkSessionActor>;
39
- readonly keys: Set<string>;
40
- }>();
24
+ private readonly sessionActorPacketTargets = new WeakMap<
25
+ ZLinkSessionActor,
26
+ ZLinkSessionActorPacketTargetCacheEntry
27
+ >();
28
+ private readonly sessionActorPacketTargetsByActor = new Map<
29
+ string,
30
+ ZLinkRemoteActorPacketTarget
31
+ >();
32
+ private readonly sessionActorPacketTargetsByActorId = new Map<
33
+ string,
34
+ ZLinkSessionActorPacketTargetCacheEntry
35
+ >();
36
+ private readonly sessionActorPacketTargetOwners = new Map<
37
+ string,
38
+ {
39
+ readonly actors: Set<ZLinkSessionActor>;
40
+ readonly keys: Set<string>;
41
+ }
42
+ >();
41
43
 
42
44
  constructor(private readonly options: ZLinkRemoteActorPacketTargetStoreOptions) {}
43
45
 
@@ -61,17 +63,14 @@ export class ZLinkRemoteActorPacketTargetStore {
61
63
  return decodeRemoteActorPacketTarget(value);
62
64
  }
63
65
 
64
- clear(
65
- actorId: string,
66
- expectedTenureKey?: string,
67
- expectedActor?: ZLinkSessionActor
68
- ): void {
66
+ clear(actorId: string, expectedTenureKey?: string, expectedActor?: ZLinkSessionActor): void {
69
67
  if (
70
- expectedTenureKey !== undefined
71
- && (expectedActor === undefined
72
- || expectedActor.actorId !== actorId
73
- || this.tenureKeyForActor(expectedActor) !== expectedTenureKey)
74
- ) return;
68
+ expectedTenureKey !== undefined &&
69
+ (expectedActor === undefined ||
70
+ expectedActor.actorId !== actorId ||
71
+ this.tenureKeyForActor(expectedActor) !== expectedTenureKey)
72
+ )
73
+ return;
75
74
  const state = this.options.actorManager()?.getState(actorId);
76
75
  if (typeof state?.setRemoteActorPacketTarget === 'function') {
77
76
  state.setRemoteActorPacketTarget(undefined);
@@ -93,18 +92,23 @@ export class ZLinkRemoteActorPacketTargetStore {
93
92
  const routeKey = sessionActorPacketTargetTenureKey(actor);
94
93
  const actorEntry = this.sessionActorPacketTargets.get(actor);
95
94
  const actorIdEntry = this.sessionActorPacketTargetsByActorId.get(actor.actorId);
96
- return (actorEntry?.routeKey === routeKey ? actorEntry.target : undefined)
97
- ?? this.sessionActorPacketTargetsByActor.get(routeKey)
98
- ?? (actorIdEntry?.routeKey === routeKey ? actorIdEntry.target : undefined)
99
- ?? this.targetForActorRef(actor.ref);
95
+ return (
96
+ (actorEntry?.routeKey === routeKey ? actorEntry.target : undefined) ??
97
+ this.sessionActorPacketTargetsByActor.get(routeKey) ??
98
+ (actorIdEntry?.routeKey === routeKey ? actorIdEntry.target : undefined) ??
99
+ this.targetForActorRef(actor.ref)
100
+ );
100
101
  }
101
102
 
102
- targetForState(actorId: string, routerChannelIdHint?: string): ZLinkRemoteActorPacketTarget | undefined {
103
+ targetForState(
104
+ actorId: string,
105
+ routerChannelIdHint?: string
106
+ ): ZLinkRemoteActorPacketTarget | undefined {
103
107
  const state = this.options.actorManager()?.getState(actorId);
104
108
  if (
105
109
  state?.remoteActorPacketTarget !== undefined &&
106
- (state.spotId === undefined
107
- || routingIdsEqual(state.remoteActorPacketTarget.spotId, state.spotId))
110
+ (state.spotId === undefined ||
111
+ routingIdsEqual(state.remoteActorPacketTarget.spotId, state.spotId))
108
112
  ) {
109
113
  return state.remoteActorPacketTarget;
110
114
  }
@@ -122,11 +126,12 @@ export class ZLinkRemoteActorPacketTargetStore {
122
126
  return undefined;
123
127
  }
124
128
  const actorRef = state?.nativeActorRef as ActorRef | undefined;
125
- const targetNodeRid = actorRef?.nodeRid as RoutingId | undefined
126
- ?? this.options.primaryNodeRid();
127
- const routerChannelId = routerChannelIdHint
128
- ?? this.options.meshRouters.defaultSpotRouterChannelId()
129
- ?? this.options.meshRouters.defaultRouterChannelId();
129
+ const targetNodeRid =
130
+ (actorRef?.nodeRid as RoutingId | undefined) ?? this.options.primaryNodeRid();
131
+ const routerChannelId =
132
+ routerChannelIdHint ??
133
+ this.options.meshRouters.defaultSpotRouterChannelId() ??
134
+ this.options.meshRouters.defaultRouterChannelId();
130
135
  const localNodeRid = this.options.primaryNodeRid();
131
136
  if (
132
137
  spotId === undefined &&
@@ -144,9 +149,7 @@ export class ZLinkRemoteActorPacketTargetStore {
144
149
  targetNodeRid: normalizeRuntimeRoutingId(targetNodeRid),
145
150
  spotId: validateSpotId(spotId),
146
151
  spotKind: ZLinkSpotKind.User,
147
- ...(state?.spotGeneration === undefined
148
- ? {}
149
- : { targetSpotGeneration: state.spotGeneration })
152
+ ...(state?.spotGeneration === undefined ? {} : { targetSpotGeneration: state.spotGeneration })
150
153
  };
151
154
  }
152
155
 
@@ -157,10 +160,11 @@ export class ZLinkRemoteActorPacketTargetStore {
157
160
  return undefined;
158
161
  }
159
162
  const meshName = actorRef.meshName;
160
- const routerChannelId = meshName.trim().length === 0
161
- ? this.options.meshRouters.defaultSpotRouterChannelId()
162
- ?? this.options.meshRouters.defaultRouterChannelId()
163
- : this.options.spotRouterChannelIdForMesh(meshName);
163
+ const routerChannelId =
164
+ meshName.trim().length === 0
165
+ ? (this.options.meshRouters.defaultSpotRouterChannelId() ??
166
+ this.options.meshRouters.defaultRouterChannelId())
167
+ : this.options.spotRouterChannelIdForMesh(meshName);
164
168
  if (routerChannelId === undefined) {
165
169
  return undefined;
166
170
  }
@@ -185,10 +189,8 @@ export class ZLinkRemoteActorPacketTargetStore {
185
189
  target: ZLinkRemoteActorPacketTarget,
186
190
  expectedTenureKey?: string
187
191
  ): void {
188
- if (
189
- expectedTenureKey !== undefined
190
- && this.tenureKeyForActor(actor) !== expectedTenureKey
191
- ) return;
192
+ if (expectedTenureKey !== undefined && this.tenureKeyForActor(actor) !== expectedTenureKey)
193
+ return;
192
194
  const state = this.options.actorManager()?.getState(actor.actorId);
193
195
  if (typeof state?.setRemoteActorPacketTarget === 'function') {
194
196
  state.setRemoteActorPacketTarget(target);