@zlink-systems/framework 0.21.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
@@ -37,26 +37,25 @@ class ZLinkSpotActivationRegistry {
37
37
  : this.activations.get(key);
38
38
  }
39
39
  resolveUnique(spotId) {
40
- const matches = [...this.activations.values()]
41
- .filter((activation) => String(activation.spotId) === String(spotId)
42
- && !this.staged.has(spotActivationKey(activation.meshName, activation.spotId))
43
- && !this.closing.has(spotActivationKey(activation.meshName, activation.spotId))
44
- && !this.failedClose.has(spotActivationKey(activation.meshName, activation.spotId)));
40
+ const matches = [...this.activations.values()].filter((activation) => String(activation.spotId) === String(spotId) &&
41
+ !this.staged.has(spotActivationKey(activation.meshName, activation.spotId)) &&
42
+ !this.closing.has(spotActivationKey(activation.meshName, activation.spotId)) &&
43
+ !this.failedClose.has(spotActivationKey(activation.meshName, activation.spotId)));
45
44
  return matches.length === 1 ? matches[0] : undefined;
46
45
  }
47
46
  has(meshName, spotId) {
48
47
  const key = spotActivationKey(meshName, spotId);
49
- return !this.staged.has(key)
50
- && !this.closing.has(key)
51
- && !this.failedClose.has(key)
52
- && this.activations.has(key);
48
+ return (!this.staged.has(key) &&
49
+ !this.closing.has(key) &&
50
+ !this.failedClose.has(key) &&
51
+ this.activations.has(key));
53
52
  }
54
53
  canClose(meshName, spotId) {
55
54
  const key = spotActivationKey(meshName, spotId);
56
- return !this.staged.has(key)
57
- && !this.closing.has(key)
58
- && !this.failedClose.has(key)
59
- && this.activations.get(key)?.canClose() === true;
55
+ return (!this.staged.has(key) &&
56
+ !this.closing.has(key) &&
57
+ !this.failedClose.has(key) &&
58
+ this.activations.get(key)?.canClose() === true);
60
59
  }
61
60
  list(meshName) {
62
61
  return [...this.activations.values()]
@@ -169,7 +168,9 @@ class ZLinkSpotActivationRegistry {
169
168
  let occupiedAfterQuiescence = false;
170
169
  const ready = Promise.resolve()
171
170
  .then(() => close(activation))
172
- .then(() => { completed = true; })
171
+ .then(() => {
172
+ completed = true;
173
+ })
173
174
  .catch((error) => {
174
175
  // The seal's post-quiescence recheck (spot-activation.ts
175
176
  // closeAfterSeal) found a new join and released the seal instead of
@@ -52,7 +52,9 @@ class ZLinkSpotActivation {
52
52
  this.spotType = options.spotType;
53
53
  this.spot = options.spot;
54
54
  this.serial = options.serial;
55
- this.serialExecutor = options.serialExecutor ?? new spot_serial_executor_1.ZLinkSpotSerialExecutor(this.serial, this.executionMode, options.spotId);
55
+ this.serialExecutor =
56
+ options.serialExecutor ??
57
+ new spot_serial_executor_1.ZLinkSpotSerialExecutor(this.serial, this.executionMode, options.spotId);
56
58
  this.executionBarrier = options.executionBarrier ?? new execution_1.ZLinkExecutionBarrier();
57
59
  this.serialExecutor.setExecutionBarrier(this.executionBarrier);
58
60
  if (typeof options.timers.setExecutionBarrier === 'function') {
@@ -66,9 +68,7 @@ class ZLinkSpotActivation {
66
68
  this.actorDispatch = options.actorDispatch;
67
69
  }
68
70
  get objectGeneration() {
69
- return this.domain.kind === 'instance'
70
- ? this.domain.objectGeneration
71
- : undefined;
71
+ return this.domain.kind === 'instance' ? this.domain.objectGeneration : undefined;
72
72
  }
73
73
  get executionMode() {
74
74
  return this.domain.kind === 'user'
@@ -83,15 +83,15 @@ class ZLinkSpotActivation {
83
83
  relocationReadyCall() {
84
84
  return {
85
85
  defer: () => {
86
- if (this.relocationCoordinationMode !== contracts_1.ZLinkSpotRelocationCoordinationMode.ApplicationSignaled) {
86
+ if (this.relocationCoordinationMode !==
87
+ contracts_1.ZLinkSpotRelocationCoordinationMode.ApplicationSignaled) {
87
88
  throw new configuration_1.ZLinkConfigurationException('relocationReady().defer() requires ApplicationSignaled relocation readiness.');
88
89
  }
89
90
  if (!this.serial.isCurrentTurn) {
90
91
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidOperation, 'relocationReady().defer() requires the current Spot handler turn.');
91
92
  }
92
93
  const turnId = this.serial.activeTurnId;
93
- if (this.relocationReadyDeferredTurnId === turnId
94
- || this.relocationBoundaryConsumed) {
94
+ if (this.relocationReadyDeferredTurnId === turnId || this.relocationBoundaryConsumed) {
95
95
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidOperation, 'relocationReady().defer() was already called for this boundary.');
96
96
  }
97
97
  this.relocationReadyDeferredTurnId = turnId;
@@ -106,7 +106,8 @@ class ZLinkSpotActivation {
106
106
  return;
107
107
  }
108
108
  const seal = this.executionBarrier.seal();
109
- void this.serial.postBarrierTurn(async () => {
109
+ void this.serial
110
+ .postBarrierTurn(async () => {
110
111
  try {
111
112
  await this.notifyRelocationReadyCompleted(contracts_1.ZLinkSpotRelocationReadyOutcome.Continued);
112
113
  }
@@ -114,7 +115,8 @@ class ZLinkSpotActivation {
114
115
  this.relocationReadyDeferredTurnId = undefined;
115
116
  this.executionBarrier.abort(seal);
116
117
  }
117
- }).catch(() => undefined);
118
+ })
119
+ .catch(() => undefined);
118
120
  }
119
121
  };
120
122
  }
@@ -274,12 +276,12 @@ class ZLinkSpotActivation {
274
276
  return this.idleEvictionRequested;
275
277
  }
276
278
  isIdleFor(nowMs, timeoutMs) {
277
- return !this.idleEvictionRequested
278
- && !this.closeRequested
279
- && !this.serial.isExecuting
280
- && !this.serial.hasPendingWork
281
- && !this.timers.hasActiveTimers
282
- && nowMs - this.serial.lastActivityAt >= timeoutMs;
279
+ return (!this.idleEvictionRequested &&
280
+ !this.closeRequested &&
281
+ !this.serial.isExecuting &&
282
+ !this.serial.hasPendingWork &&
283
+ !this.timers.hasActiveTimers &&
284
+ nowMs - this.serial.lastActivityAt >= timeoutMs);
283
285
  }
284
286
  async notifyRelocationReadyCompleted(outcome) {
285
287
  await this.spot.onRelocationReadyCompleted?.({ outcome });
@@ -27,7 +27,7 @@ class ZLinkSpotActivationLifecycle {
27
27
  }
28
28
  async materializeRelocation(meshName, objectKind, stableType, implementation, spotId, objectGeneration, authorityOwnerGeneration, signal) {
29
29
  const executionMode = objectKind === 'user_spot'
30
- ? this.options.userSpotExecutionMode?.(meshName, implementation) ?? contracts_1.ZLinkUserSpotExecutionMode.SpotWide
30
+ ? (this.options.userSpotExecutionMode?.(meshName, implementation) ?? contracts_1.ZLinkUserSpotExecutionMode.SpotWide)
31
31
  : contracts_1.ZLinkUserSpotExecutionMode.SpotWide;
32
32
  const serial = new spot_serial_turn_executor_1.ZLinkSpotSerialTurnExecutor(executionMode === contracts_1.ZLinkUserSpotExecutionMode.SpotWide, spotId);
33
33
  const serialExecutor = new spot_serial_executor_1.ZLinkSpotSerialExecutor(serial, executionMode, spotId);
@@ -190,7 +190,7 @@ class ZLinkSpotActivationLifecycle {
190
190
  timers,
191
191
  actorHandlers,
192
192
  handlers,
193
- externalActorCount: () => this.options.actorCountProvider?.(spotId) ?? 0,
193
+ externalActorCount: () => this.options.actorCountProvider?.(spotId) ?? 0
194
194
  });
195
195
  try {
196
196
  await instance.configure?.();
@@ -243,14 +243,14 @@ class ZLinkSpotActivationLifecycle {
243
243
  }
244
244
  resourcesReleased(activation) {
245
245
  const state = this.cleanupStates.get(activation);
246
- return state?.timersDisposed === true &&
246
+ return (state?.timersDisposed === true &&
247
247
  state.handlersDisposed === true &&
248
248
  state.nativeDisposed === true &&
249
- state.locationReleased === true;
249
+ state.locationReleased === true);
250
250
  }
251
251
  async create(meshName, spotType, spotId, request, signal, authority) {
252
- const executionMode = this.options.userSpotExecutionMode?.(meshName, spotType)
253
- ?? contracts_1.ZLinkUserSpotExecutionMode.SpotWide;
252
+ const executionMode = this.options.userSpotExecutionMode?.(meshName, spotType) ??
253
+ contracts_1.ZLinkUserSpotExecutionMode.SpotWide;
254
254
  const serial = new spot_serial_turn_executor_1.ZLinkSpotSerialTurnExecutor(executionMode === contracts_1.ZLinkUserSpotExecutionMode.SpotWide, spotId);
255
255
  const serialExecutor = new spot_serial_executor_1.ZLinkSpotSerialExecutor(serial, executionMode, spotId);
256
256
  const actorHandlers = new actors_1.ZLinkSpotActorHandlerRegistryRuntime();
@@ -332,7 +332,8 @@ class ZLinkSpotActivationLifecycle {
332
332
  domain: {
333
333
  kind: 'user',
334
334
  executionMode,
335
- relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(meshName, spotType) ?? contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged
335
+ relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(meshName, spotType) ??
336
+ contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged
336
337
  },
337
338
  spotType,
338
339
  spot,
@@ -410,14 +411,19 @@ class ZLinkSpotActivationLifecycle {
410
411
  close: this.contextClose(meshName, spotId, () => activation)
411
412
  });
412
413
  spot = await (0, spot_provider_1.createFreshProviderInstance)(spotType, this.options.providerResolver, context);
413
- Object.defineProperty(spot, 'context', { configurable: true, enumerable: false, value: context });
414
+ Object.defineProperty(spot, 'context', {
415
+ configurable: true,
416
+ enumerable: false,
417
+ value: context
418
+ });
414
419
  activation = new spot_activation_state_1.ZLinkSpotActivation({
415
420
  meshName,
416
421
  spotId,
417
422
  domain: {
418
423
  kind: 'user',
419
424
  executionMode,
420
- relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(meshName, spotType) ?? contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged
425
+ relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(meshName, spotType) ??
426
+ contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged
421
427
  },
422
428
  spotType,
423
429
  spot,
@@ -440,7 +446,9 @@ class ZLinkSpotActivationLifecycle {
440
446
  if (activation?.serial.isExecuting === true && !activation.serial.isCurrentTurn) {
441
447
  activation.requestClose();
442
448
  const retry = activation.serial.post(() => this.options.closeSpot(meshName, spotId, signal));
443
- this.options.detachedTaskRunner?.runDetached(`spot close ${String(spotId)}`, async () => { await retry; });
449
+ this.options.detachedTaskRunner?.runDetached(`spot close ${String(spotId)}`, async () => {
450
+ await retry;
451
+ });
444
452
  if (this.options.detachedTaskRunner === undefined) {
445
453
  void retry.catch(() => undefined);
446
454
  }
@@ -540,8 +548,9 @@ class ZLinkSpotActivationLifecycle {
540
548
  this.cleanupStates.set(activation, state);
541
549
  if (state.inFlight !== undefined)
542
550
  return await state.inFlight;
543
- state.inFlight = this.runCleanup(activation, locationMeshName, notifyClosing, reason, state, deadline)
544
- .finally(() => { state.inFlight = undefined; });
551
+ state.inFlight = this.runCleanup(activation, locationMeshName, notifyClosing, reason, state, deadline).finally(() => {
552
+ state.inFlight = undefined;
553
+ });
545
554
  return await state.inFlight;
546
555
  }
547
556
  async runCleanup(activation, locationMeshName, notifyClosing, reason, state, deadline) {
@@ -560,18 +569,26 @@ class ZLinkSpotActivationLifecycle {
560
569
  await cleanup(() => (0, spot_closing_1.invokeSpotClosing)(activation.spot.onClosing?.bind(activation.spot), reason, deadline), () => undefined);
561
570
  }
562
571
  if (!state.timersDisposed) {
563
- await cleanup(() => activation.timers.dispose(), () => { state.timersDisposed = true; });
572
+ await cleanup(() => activation.timers.dispose(), () => {
573
+ state.timersDisposed = true;
574
+ });
564
575
  }
565
576
  await cleanup(() => activation.serialExecutor.close(), () => undefined);
566
577
  if (!state.handlersDisposed) {
567
- await cleanup(() => (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot), () => { state.handlersDisposed = true; });
578
+ await cleanup(() => (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot), () => {
579
+ state.handlersDisposed = true;
580
+ });
568
581
  }
569
582
  if (!state.nativeDisposed) {
570
583
  await cleanup(() => activation.actorDispatch?.dispose(), () => undefined);
571
- await cleanup(() => activation.nativeSpot?.dispose(), () => { state.nativeDisposed = true; });
584
+ await cleanup(() => activation.nativeSpot?.dispose(), () => {
585
+ state.nativeDisposed = true;
586
+ });
572
587
  }
573
588
  if (!state.locationReleased) {
574
- await cleanup(() => this.options.releaseLocation(activation, locationMeshName, activation.spotId), () => { state.locationReleased = true; });
589
+ await cleanup(() => this.options.releaseLocation(activation, locationMeshName, activation.spotId), () => {
590
+ state.locationReleased = true;
591
+ });
575
592
  }
576
593
  if (errors.length === 1)
577
594
  throw errors[0];
@@ -27,13 +27,15 @@ class ZLinkSpotActorAdmissionCoordinator {
27
27
  actors: {
28
28
  resolveActor: (actorId) => activation.hasDepartedActor(actorId)
29
29
  ? undefined
30
- : activation.resolveJoinedActor(actorId) ?? this.options.actorResolver?.(actorId),
30
+ : (activation.resolveJoinedActor(actorId) ?? this.options.actorResolver?.(actorId)),
31
31
  getTarget: () => activation.spot,
32
32
  defaultAccept: false,
33
- transfer: this.options.actorTransferRuntime === undefined ? { kind: 'disabled' } : {
34
- kind: 'enabled',
35
- runtime: this.options.actorTransferRuntime
36
- },
33
+ transfer: this.options.actorTransferRuntime === undefined
34
+ ? { kind: 'disabled' }
35
+ : {
36
+ kind: 'enabled',
37
+ runtime: this.options.actorTransferRuntime
38
+ },
37
39
  commitNativeActor: (actor) => this.commitNativeActorTransaction(activation, actor),
38
40
  commitActorDeparture: (actorId) => activation.commitActorDeparture(actorId),
39
41
  commitTransferredActor: (actor, backlog) => this.commitTransferredActorTransaction(activation, actor, backlog)
@@ -50,7 +52,9 @@ class ZLinkSpotActorAdmissionCoordinator {
50
52
  }
51
53
  node.bindRemoteActorSession(actor, sourceNodeRid, sourceSessionRid);
52
54
  },
53
- replyNoBind: (info, parts, result) => this.options.nativeSpotNodeProvider?.(activation.meshName)?.replyActorNoBind(info, parts, result)
55
+ replyNoBind: (info, parts, result) => this.options
56
+ .nativeSpotNodeProvider?.(activation.meshName)
57
+ ?.replyActorNoBind(info, parts, result)
54
58
  },
55
59
  boundSessionRuntime: this.options.boundSessionRuntime,
56
60
  messageSerializers: this.options.messageSerializers,
@@ -66,7 +70,7 @@ class ZLinkSpotActorAdmissionCoordinator {
66
70
  }
67
71
  /** @internal Dispatches a coordinator-owned replay without recapturing it. */
68
72
  dispatchActorPacketDirect(activation, actorId, parts, returnResponse = false, remoteBoundSessionTarget, fallbackActorRef, requestTerminal) {
69
- return activation.executeActor(actorId, actorSerial => this.dispatchActorPacketInActorTurn(activation, actorSerial, actorId, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef, requestTerminal));
73
+ return activation.executeActor(actorId, (actorSerial) => this.dispatchActorPacketInActorTurn(activation, actorSerial, actorId, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef, requestTerminal));
70
74
  }
71
75
  /**
72
76
  * Atomically restores one durable packet prefix at the Actor FIFO tail.
@@ -76,13 +80,13 @@ class ZLinkSpotActorAdmissionCoordinator {
76
80
  * @internal
77
81
  */
78
82
  admitActorPacketPrefix(activation, actorId, records) {
79
- const terminals = activation.admitActorDurablePrefix(actorId, records.map(record => ({
80
- operation: executeChild => record.drain((parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef) => executeChild(actorSerial => this.dispatchActorPacketInActorTurn(activation, actorSerial, actorId, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef))),
83
+ const terminals = activation.admitActorDurablePrefix(actorId, records.map((record) => ({
84
+ operation: (executeChild) => record.drain((parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef) => executeChild((actorSerial) => this.dispatchActorPacketInActorTurn(activation, actorSerial, actorId, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef))),
81
85
  preparation: record.preparation,
82
86
  workOptions: { payloadBytes: record.payloadBytes }
83
87
  })));
84
- const terminal = Promise.allSettled(terminals).then(outcomes => {
85
- const errors = outcomes.flatMap(outcome => outcome.status === 'rejected' ? [outcome.reason] : []);
88
+ const terminal = Promise.allSettled(terminals).then((outcomes) => {
89
+ const errors = outcomes.flatMap((outcome) => outcome.status === 'rejected' ? [outcome.reason] : []);
86
90
  if (errors.length === 1)
87
91
  throw errors[0];
88
92
  if (errors.length > 1) {
@@ -99,7 +103,8 @@ class ZLinkSpotActorAdmissionCoordinator {
99
103
  serial: actorSerial,
100
104
  resolveActor: (targetActorId) => activation.hasDepartedActor(targetActorId)
101
105
  ? undefined
102
- : activation.resolveJoinedActor(targetActorId) ?? this.options.actorResolver?.(targetActorId),
106
+ : (activation.resolveJoinedActor(targetActorId) ??
107
+ this.options.actorResolver?.(targetActorId)),
103
108
  actorLeft: (targetActorId) => activation.hasDepartedActor(targetActorId),
104
109
  onRemoteBoundSessionTarget: (targetActorId, target) => this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(targetActorId, target),
105
110
  onDisconnectActor: (actor) => activation.serial.execute(() => activation.spot.onDisconnectActor?.(actor)),
@@ -149,9 +154,7 @@ class ZLinkSpotActorAdmissionCoordinator {
149
154
  activation.commitActorJoin(actor);
150
155
  activation.beginActorTransfer(actor.context.actorId);
151
156
  await activation.serial.execute(() => activation.spot.onJoinedActor(actor));
152
- const results = backlog.length === 0
153
- ? []
154
- : await this.replayActorBacklog(activation, actor, backlog);
157
+ const results = backlog.length === 0 ? [] : await this.replayActorBacklog(activation, actor, backlog);
155
158
  await transfer?.claimRoutedActorLocation(actor, activation.spotId, activation.meshName);
156
159
  routeSwitchStarted = true;
157
160
  await transfer?.publishRoutedActorOwnership(actor);
@@ -58,9 +58,7 @@ class ZLinkSpotActorMembership {
58
58
  this.options.entryNodeRidProvider?.() ??
59
59
  this.options.entryNodeRid ??
60
60
  this.options.nodeRid;
61
- const entrySpotId = meshName === undefined
62
- ? undefined
63
- : this.options.entrySpotIdProvider?.(meshName);
61
+ const entrySpotId = meshName === undefined ? undefined : this.options.entrySpotIdProvider?.(meshName);
64
62
  const resolvedEntry = entrySpotId === undefined
65
63
  ? undefined
66
64
  : await this.options.spotRouteResolver?.resolve(entrySpotId, signal);
@@ -39,9 +39,10 @@ class ZLinkSpotActorPacketDispatch {
39
39
  let requestDeadlineUnixMs;
40
40
  try {
41
41
  header = (0, protocol_1.decodeStreamHeader)((0, protocol_1.messageToBytes)(parts[0]), flowEnabled);
42
- requestDeadlineUnixMs = header.kind === protocol_1.ZLinkStreamMessageKind.Request
43
- ? (0, protocol_1.decodeActorRequestDeadlineUnixMs)((0, protocol_1.messageToBytes)(parts[0]))
44
- : undefined;
42
+ requestDeadlineUnixMs =
43
+ header.kind === protocol_1.ZLinkStreamMessageKind.Request
44
+ ? (0, protocol_1.decodeActorRequestDeadlineUnixMs)((0, protocol_1.messageToBytes)(parts[0]))
45
+ : undefined;
45
46
  }
46
47
  catch (error) {
47
48
  this.reportInvalidFrame(actorId, ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.ActorSend, error);
@@ -59,8 +60,8 @@ class ZLinkSpotActorPacketDispatch {
59
60
  header.name === actors_1.ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET) {
60
61
  return undefined;
61
62
  }
62
- if (remoteBoundSessionTarget !== undefined
63
- && (0, actors_1.actorMessageFollowContext)(fallbackActorRef) === undefined) {
63
+ if (remoteBoundSessionTarget !== undefined &&
64
+ (0, actors_1.actorMessageFollowContext)(fallbackActorRef) === undefined) {
64
65
  // A replayed handoff/Message Follow packet keeps its captured Session
65
66
  // route solely for that packet's response. It cannot republish the
66
67
  // predecessor route over a binding already confirmed by a later Actor
@@ -85,14 +86,14 @@ class ZLinkSpotActorPacketDispatch {
85
86
  });
86
87
  }
87
88
  async handleMissingActor(actorId, parts, header, messageKind, action, returnResponse, fallbackBoundSessionTarget, fallbackActorRef, requestTerminal) {
88
- if (this.options.routeToActorJoinPrewarm !== undefined
89
- && fallbackActorRef !== undefined
90
- && parts.length >= 2
89
+ if (this.options.routeToActorJoinPrewarm !== undefined &&
90
+ fallbackActorRef !== undefined &&
91
+ parts.length >= 2 &&
91
92
  // A Request without a terminal has no way to complete once
92
93
  // migrated later — parking it would leave the caller hanging
93
94
  // forever with no reply route. Fall through to the existing
94
95
  // missing-actor handling for that shape instead.
95
- && (messageKind !== ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.ActorRequest || requestTerminal !== undefined)) {
96
+ (messageKind !== ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.ActorRequest || requestTerminal !== undefined)) {
96
97
  const parked = this.parkForActorJoinPrewarm(actorId, parts, messageKind, returnResponse, fallbackBoundSessionTarget, fallbackActorRef, requestTerminal);
97
98
  if (parked !== undefined)
98
99
  return parked;
@@ -111,7 +112,9 @@ class ZLinkSpotActorPacketDispatch {
111
112
  return undefined;
112
113
  }
113
114
  const missingActorError = (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorDispatchHandlerNotFound, `SPOT actor is not registered locally: ${actorId}`);
114
- if (header.requestSeq !== undefined && !returnResponse && this.options.actorErrorSender !== undefined) {
115
+ if (header.requestSeq !== undefined &&
116
+ !returnResponse &&
117
+ this.options.actorErrorSender !== undefined) {
115
118
  await this.options.actorErrorSender(actorId, header.name, header.requestSeq, missingActorError, header.metadata, fallbackBoundSessionTarget, fallbackActorRef);
116
119
  return undefined;
117
120
  }
@@ -177,9 +180,7 @@ class ZLinkSpotActorPacketDispatch {
177
180
  return () => (0, payload_codec_1.decodeFrameworkTypedPayloadMessage)(message, this.options.messageSerializers, undefined, (0, protocol_1.streamCodecContentType)(header.codec), header.name);
178
181
  }
179
182
  async dispatchActorPacket(actor, actorId, decodePayload, header, messageKind, action, returnResponse, fallbackBoundSessionTarget, fallbackActorRef, requestTerminal, requestDeadlineUnixMs, workOptions) {
180
- const spot = typeof this.options.spot === 'function'
181
- ? this.options.spot()
182
- : this.options.spot;
183
+ const spot = typeof this.options.spot === 'function' ? this.options.spot() : this.options.spot;
183
184
  const dispatcher = new actors_1.ZLinkSpotActorDispatcher({
184
185
  registry: this.options.registry,
185
186
  spot,
@@ -192,9 +193,9 @@ class ZLinkSpotActorPacketDispatch {
192
193
  // A transferred backlog is returned to the Actor queue as one FIFO
193
194
  // prefix. Check the request deadline when its owner turn actually
194
195
  // starts, not when that prefix is admitted.
195
- if (messageKind === ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.ActorRequest
196
- && requestDeadlineUnixMs !== undefined
197
- && Date.now() >= requestDeadlineUnixMs) {
196
+ if (messageKind === ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.ActorRequest &&
197
+ requestDeadlineUnixMs !== undefined &&
198
+ Date.now() >= requestDeadlineUnixMs) {
198
199
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.DeadlineExceeded, `Actor request '${actorId}' expired before handler admission.`);
199
200
  }
200
201
  (0, application_job_queue_scope_1.releaseApplicationJobPermitBeforeHandler)();
@@ -265,11 +266,13 @@ class ZLinkSpotActorPacketDispatch {
265
266
  this.options.dispatchErrors?.report({
266
267
  surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.SpotActor,
267
268
  messageKind,
268
- reason: error instanceof contracts_1.ZLinkFrameworkException
269
- && (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorDispatchHandlerNotFound
269
+ reason: error instanceof contracts_1.ZLinkFrameworkException &&
270
+ (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) ===
271
+ framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorDispatchHandlerNotFound
270
272
  ? ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerMissing
271
- : error instanceof contracts_1.ZLinkFrameworkException
272
- && (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PayloadDecodeFailed
273
+ : error instanceof contracts_1.ZLinkFrameworkException &&
274
+ (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) ===
275
+ framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PayloadDecodeFailed
273
276
  ? ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.PayloadDecodeFailed
274
277
  : ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerException,
275
278
  action,
@@ -102,15 +102,15 @@ class ZLinkSpotActorPacketDrain {
102
102
  this.continuations.clear();
103
103
  }
104
104
  createNoBindReplyInfo(actor, sourceNodeRid, sourceSessionRid, requestId, flags, parts) {
105
- if (actor === undefined
106
- || sourceNodeRid === undefined
107
- || sourceSessionRid === undefined
108
- || requestId === undefined
109
- || requestId === 0n
110
- || flags === undefined
111
- || (flags & ZLINK_SPOT_ACTOR_RECV_INFO_NO_BIND) === 0
112
- || this.options.replyActorNoBind === undefined
113
- || !this.isActorRequest(parts)) {
105
+ if (actor === undefined ||
106
+ sourceNodeRid === undefined ||
107
+ sourceSessionRid === undefined ||
108
+ requestId === undefined ||
109
+ requestId === 0n ||
110
+ flags === undefined ||
111
+ (flags & ZLINK_SPOT_ACTOR_RECV_INFO_NO_BIND) === 0 ||
112
+ this.options.replyActorNoBind === undefined ||
113
+ !this.isActorRequest(parts)) {
114
114
  return undefined;
115
115
  }
116
116
  return { actor, sourceNodeRid, sourceSessionRid, requestId, flags };
@@ -138,7 +138,9 @@ class ZLinkSpotActorPacketDrain {
138
138
  this.options.replyActorNoBind?.(info, [this.encodeActorReplyFrame(parts[0], protocol_1.ZLinkStreamMessageKind.Response, response)], runtime_values_1.RequestResult.Ok);
139
139
  }
140
140
  catch (error) {
141
- this.options.replyActorNoBind?.(info, [this.encodeActorReplyFrame(parts[0], protocol_1.ZLinkStreamMessageKind.Error, frameworkErrorPayload(error))], runtime_values_1.RequestResult.Ok);
141
+ this.options.replyActorNoBind?.(info, [
142
+ this.encodeActorReplyFrame(parts[0], protocol_1.ZLinkStreamMessageKind.Error, frameworkErrorPayload(error))
143
+ ], runtime_values_1.RequestResult.Ok);
142
144
  }
143
145
  }
144
146
  encodeActorReplyFrame(requestHeaderPart, kind, payload) {
@@ -59,8 +59,8 @@ class ZLinkSpotActorPacketRelayDispatch {
59
59
  }
60
60
  return true;
61
61
  }
62
- if (actorPacketRelay.messageFollowContext?.deadlineUnixMs !== undefined
63
- && Date.now() >= actorPacketRelay.messageFollowContext.deadlineUnixMs) {
62
+ if (actorPacketRelay.messageFollowContext?.deadlineUnixMs !== undefined &&
63
+ Date.now() >= actorPacketRelay.messageFollowContext.deadlineUnixMs) {
64
64
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.DeadlineExceeded, `Actor request '${actorPacketRelay.actorId}' expired before target handler admission.`);
65
65
  }
66
66
  // Spec 28 §5.2/§10 — a Message Follow relay is a one-way send that
@@ -71,9 +71,9 @@ class ZLinkSpotActorPacketRelayDispatch {
71
71
  // actorErrorSender instead of returning it locally, where it would
72
72
  // be discarded. Non-follow relays keep the synchronous-return path.
73
73
  const outerReplyable = (0, spot_route_replies_1.hasReplyToken)(received.replyToken);
74
- const followedBoundSessionReply = !outerReplyable
75
- && actorPacketRelay.messageFollowContext !== undefined
76
- && remoteBoundSessionTarget !== undefined;
74
+ const followedBoundSessionReply = !outerReplyable &&
75
+ actorPacketRelay.messageFollowContext !== undefined &&
76
+ remoteBoundSessionTarget !== undefined;
77
77
  const response = await this.options.actorPacketHandler({
78
78
  actorId: actorPacketRelay.actorId,
79
79
  parts: [header, payload],
@@ -83,7 +83,11 @@ class ZLinkSpotActorPacketRelayDispatch {
83
83
  });
84
84
  const actorPacketTarget = this.actorPacketTarget(actorPacketRelay.actorId);
85
85
  if ((0, spot_route_replies_1.hasReplyToken)(received.replyToken)) {
86
- (0, spot_route_replies_1.submitSpotRouteBridgeReply)(received, actorPacketRelay.envelope, { ok: true, response, actorPacketTarget });
86
+ (0, spot_route_replies_1.submitSpotRouteBridgeReply)(received, actorPacketRelay.envelope, {
87
+ ok: true,
88
+ response,
89
+ actorPacketTarget
90
+ });
87
91
  }
88
92
  return true;
89
93
  }
@@ -5,15 +5,11 @@ const DEFAULT_CLEANUP_TIMEOUT_MS = 30_000;
5
5
  async function invokeSpotClosing(callback, reason, cleanupDeadline = DEFAULT_CLEANUP_TIMEOUT_MS) {
6
6
  if (callback === undefined)
7
7
  return;
8
- const deadline = new Date(cleanupDeadline instanceof Date
9
- ? cleanupDeadline.getTime()
10
- : Date.now() + cleanupDeadline);
11
- const timeoutMs = Math.max(0, cleanupDeadline instanceof Date
12
- ? cleanupDeadline.getTime() - Date.now()
13
- : cleanupDeadline);
8
+ const deadline = new Date(cleanupDeadline instanceof Date ? cleanupDeadline.getTime() : Date.now() + cleanupDeadline);
9
+ const timeoutMs = Math.max(0, cleanupDeadline instanceof Date ? cleanupDeadline.getTime() - Date.now() : cleanupDeadline);
14
10
  const controller = new AbortController();
15
11
  let timer;
16
- const expired = new Promise(resolve => {
12
+ const expired = new Promise((resolve) => {
17
13
  timer = setTimeout(() => {
18
14
  controller.abort();
19
15
  resolve();
@@ -44,11 +44,11 @@ function createSpotContext(options) {
44
44
  },
45
45
  relocationReady: () => {
46
46
  options.ensureOperationAllowed?.();
47
- return options.relocationReady?.() ?? {
47
+ return (options.relocationReady?.() ?? {
48
48
  defer() {
49
49
  throw new configuration_1.ZLinkConfigurationException('Spot relocation readiness is not configured for application signaling.');
50
50
  }
51
- };
51
+ });
52
52
  },
53
53
  leaveActor: (actor, signal) => {
54
54
  options.ensureOperationAllowed?.();
@@ -191,8 +191,7 @@ class ZLinkEntrySpotActivation {
191
191
  }
192
192
  notifyCreateActor(actor, createRequest, signal) {
193
193
  (0, abort_1.throwIfAborted)(signal);
194
- return this.serial.execute(async () => await this.entrySpot.onCreateActor?.(actor, createRequest)
195
- ?? { accepted: true });
194
+ return this.serial.execute(async () => (await this.entrySpot.onCreateActor?.(actor, createRequest)) ?? { accepted: true });
196
195
  }
197
196
  notifyJoinActor(actor, signal) {
198
197
  (0, abort_1.throwIfAborted)(signal);
@@ -231,10 +230,12 @@ class ZLinkEntrySpotActivation {
231
230
  resolveActor: (actorId) => this.options.entryActorRuntime?.resolveActor(actorId),
232
231
  getTarget: () => this.entrySpot,
233
232
  defaultAccept: true,
234
- transfer: this.options.actorTransferRuntime === undefined ? { kind: 'disabled' } : {
235
- kind: 'enabled',
236
- runtime: this.options.actorTransferRuntime
237
- },
233
+ transfer: this.options.actorTransferRuntime === undefined
234
+ ? { kind: 'disabled' }
235
+ : {
236
+ kind: 'enabled',
237
+ runtime: this.options.actorTransferRuntime
238
+ },
238
239
  commitNativeActor: (actor) => this.commitEntryActorTransaction(actor),
239
240
  commitTransferredActor: async (actor, backlog) => {
240
241
  await this.commitEntryActorTransaction(actor);
@@ -247,8 +248,8 @@ class ZLinkEntrySpotActivation {
247
248
  if ((0, routing_id_1.routingIdsEqual)(sourceNodeRid, this.options.nativeNode.routingId)) {
248
249
  return;
249
250
  }
250
- const target = declaredTarget
251
- ?? this.options.boundSessionRuntime?.resolveRemoteBoundSessionTarget(sourceNodeRid, sourceSessionRid);
251
+ const target = declaredTarget ??
252
+ this.options.boundSessionRuntime?.resolveRemoteBoundSessionTarget(sourceNodeRid, sourceSessionRid);
252
253
  if (target !== undefined) {
253
254
  this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(actor.actorId, {
254
255
  ...target,
@@ -325,9 +326,7 @@ class ZLinkEntrySpotActivation {
325
326
  exports.ZLinkEntrySpotActivation = ZLinkEntrySpotActivation;
326
327
  function notifyEntryActorJoined(entrySpot, actor) {
327
328
  const callback = entrySpot.onJoinedActor;
328
- return callback === undefined
329
- ? Promise.resolve()
330
- : callback.call(entrySpot, actor);
329
+ return callback === undefined ? Promise.resolve() : callback.call(entrySpot, actor);
331
330
  }
332
331
  function toContextGeneration(generation) {
333
332
  if (generation < 0n || generation > BigInt(Number.MAX_SAFE_INTEGER)) {
@@ -336,7 +335,7 @@ function toContextGeneration(generation) {
336
335
  return Number(generation);
337
336
  }
338
337
  function entrySpotGeneration(spot) {
339
- return spot.lifecycleGeneration
340
- ?? spot.status?.().lifecycleGeneration
341
- ?? 0n;
338
+ return (spot.lifecycleGeneration ??
339
+ spot.status?.().lifecycleGeneration ??
340
+ 0n);
342
341
  }
@@ -17,14 +17,17 @@ function createSpotHandle(spotId, initialOrRefresh, refresh) {
17
17
  }
18
18
  async function resolveSpotHandle(handle, signal) {
19
19
  const state = requireHandleState(handle);
20
- return state.current ?? await refreshSpotHandle(handle, signal);
20
+ return state.current ?? (await refreshSpotHandle(handle, signal));
21
21
  }
22
22
  async function refreshSpotHandle(handle, signal) {
23
23
  const state = requireHandleState(handle);
24
- state.refreshing ??= state.refresh(signal).then((resolved) => {
24
+ state.refreshing ??= state
25
+ .refresh(signal)
26
+ .then((resolved) => {
25
27
  state.current = resolved;
26
28
  return resolved;
27
- }).finally(() => {
29
+ })
30
+ .finally(() => {
28
31
  state.refreshing = undefined;
29
32
  });
30
33
  return await state.refreshing;