@zlink-systems/framework 0.20.0 → 0.22.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 (487) 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/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. 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);