@zlink-systems/framework 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -0
  13. package/dist/contracts/Handlers/JsonContract.js +23 -11
  14. package/dist/contracts/Spots/SpotKind.js +16 -8
  15. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -1
  16. package/dist/location-store-integration.js +16 -16
  17. package/dist/nest-integration.js +17 -11
  18. package/dist/runtime/abort.js +9 -5
  19. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  20. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  21. package/dist/runtime/actors/actor-client.js +83 -63
  22. package/dist/runtime/actors/actor-context.js +28 -22
  23. package/dist/runtime/actors/actor-creation.js +4 -3
  24. package/dist/runtime/actors/actor-handoff.js +89 -92
  25. package/dist/runtime/actors/actor-join-deferred-scope.d.ts +0 -1
  26. package/dist/runtime/actors/actor-join-deferred-scope.js +0 -18
  27. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  28. package/dist/runtime/actors/actor-mailbox.js +1 -1
  29. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  30. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  31. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  32. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  33. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  34. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  35. package/dist/runtime/actors/bound-session-wire.js +14 -9
  36. package/dist/runtime/actors/deferred-join-accepted-journal.js +160 -130
  37. package/dist/runtime/actors/index.js +2 -5
  38. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  39. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  40. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  41. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  42. package/dist/runtime/admission.js +2 -6
  43. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  44. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  45. package/dist/runtime/backend/contracts/index.d.ts +1 -0
  46. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  47. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  48. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  49. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  50. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  51. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  52. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +3 -0
  53. package/dist/runtime/backend/node/node-raw-mesh-backend.js +134 -118
  54. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  55. package/dist/runtime/backend/runtime-message.js +3 -3
  56. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  57. package/dist/runtime/backend/runtime-values.js +4 -5
  58. package/dist/runtime/channels/channel-clients.js +27 -24
  59. package/dist/runtime/channels/channel-dispatch-pipeline.js +12 -20
  60. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  61. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  62. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  63. package/dist/runtime/channels/channel-envelope.js +83 -47
  64. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  65. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  66. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  67. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  68. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  69. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  70. package/dist/runtime/channels/channel-transports.js +46 -42
  71. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  72. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  73. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -0
  74. package/dist/runtime/channels/dispatch-error-reporter.js +9 -39
  75. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  76. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  77. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  78. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  79. package/dist/runtime/channels/source-spot-router.js +6 -2
  80. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  81. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  82. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  83. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +6 -0
  84. package/dist/runtime/diagnostics/dispatch-error-details.js +55 -0
  85. package/dist/runtime/diagnostics/flow-context.d.ts +2 -1
  86. package/dist/runtime/diagnostics/flow-context.js +2 -2
  87. package/dist/runtime/diagnostics/index.js +38 -10
  88. package/dist/runtime/diagnostics/message-flow.js +58 -42
  89. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  90. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  91. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  92. package/dist/runtime/execution/index.js +7 -6
  93. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  94. package/dist/runtime/execution/state-lane.js +2 -2
  95. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -27
  96. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  97. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  98. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +4 -2
  99. package/dist/runtime/foundation/raw-service-mesh-runtime.js +169 -144
  100. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  101. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  102. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  103. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  104. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  105. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  106. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  107. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  108. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  109. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  110. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  111. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +1 -0
  112. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  113. package/dist/runtime/foundation/service-stateful-runtime.d.ts +4 -0
  114. package/dist/runtime/foundation/service-stateful-runtime.js +461 -439
  115. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  116. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -0
  117. package/dist/runtime/foundation/service-topology-registry.js +105 -96
  118. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  119. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  120. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  121. package/dist/runtime/framework-errors-internal.js +7 -10
  122. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  123. package/dist/runtime/handlers/index.js +3 -1
  124. package/dist/runtime/host/actor-packet-relay.js +74 -70
  125. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  126. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  127. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  128. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  129. package/dist/runtime/host/application-job-queue.js +18 -22
  130. package/dist/runtime/host/bound-session-relay.js +3 -1
  131. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  132. package/dist/runtime/host/host-capacity-status.js +8 -4
  133. package/dist/runtime/host/index.js +245 -228
  134. package/dist/runtime/host/instance-activation-authority.js +93 -96
  135. package/dist/runtime/host/location-runtime-owner.js +16 -14
  136. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  137. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  138. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  139. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  140. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  141. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  142. package/dist/runtime/host/runtime-shutdown.js +1 -2
  143. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  144. package/dist/runtime/host/spot-address-transport.js +69 -71
  145. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  146. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  147. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  148. package/dist/runtime/locations/actor-location-claims.js +26 -20
  149. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  150. package/dist/runtime/locations/authority-key-codec.js +7 -7
  151. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  152. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  153. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  154. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  155. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  156. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  157. package/dist/runtime/locations/key-codec.js +1 -1
  158. package/dist/runtime/locations/lease-tracker.js +23 -21
  159. package/dist/runtime/locations/lifecycle.js +4 -5
  160. package/dist/runtime/locations/location-store-repository.js +368 -324
  161. package/dist/runtime/locations/opaque-record-key.js +2 -2
  162. package/dist/runtime/locations/resolvers.js +73 -82
  163. package/dist/runtime/locations/runtime.js +68 -63
  164. package/dist/runtime/locations/spot-location-claims.js +39 -35
  165. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  166. package/dist/runtime/messaging/packet-name.js +7 -6
  167. package/dist/runtime/messaging/payload-codec.js +21 -18
  168. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  169. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  170. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +20 -18
  171. package/dist/runtime/routing-id.js +3 -5
  172. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  173. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  174. package/dist/runtime/spots/index.js +209 -220
  175. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  176. package/dist/runtime/spots/spot-activation-state.js +17 -15
  177. package/dist/runtime/spots/spot-activation.js +33 -16
  178. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  179. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  180. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +2 -1
  181. package/dist/runtime/spots/spot-actor-packet-dispatch.js +29 -21
  182. package/dist/runtime/spots/spot-actor-packet-drain.js +14 -10
  183. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  184. package/dist/runtime/spots/spot-closing.js +3 -7
  185. package/dist/runtime/spots/spot-context.js +2 -2
  186. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  187. package/dist/runtime/spots/spot-handle.js +6 -3
  188. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  189. package/dist/runtime/spots/spot-manager-public.js +5 -6
  190. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  191. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  192. package/dist/runtime/spots/spot-node-runtime-manager.js +79 -86
  193. package/dist/runtime/spots/spot-outbound.js +10 -14
  194. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  195. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  196. package/dist/runtime/spots/spot-route-packet-dispatch.js +17 -15
  197. package/dist/runtime/spots/spot-route-replies.js +4 -6
  198. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  199. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +2 -3
  200. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  201. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  202. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  203. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  204. package/dist/runtime/spots/spot-subscription-dispatch.js +6 -6
  205. package/dist/runtime/spots/spot-timer.js +26 -30
  206. package/dist/runtime/streams/actor-session-binding-registry.d.ts +21 -8
  207. package/dist/runtime/streams/actor-session-binding-registry.js +168 -148
  208. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -0
  209. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  210. package/dist/runtime/streams/bound-actor-relay-sender.js +20 -17
  211. package/dist/runtime/streams/bound-session-response-target.js +8 -1
  212. package/dist/runtime/streams/bound-session-service.d.ts +1 -0
  213. package/dist/runtime/streams/bound-session-service.js +14 -12
  214. package/dist/runtime/streams/index.js +28 -20
  215. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  216. package/dist/runtime/streams/managed-stream.js +52 -31
  217. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  218. package/dist/runtime/streams/protocol.d.ts +5 -1
  219. package/dist/runtime/streams/protocol.js +68 -20
  220. package/dist/runtime/streams/session-actor-coordinator.js +37 -41
  221. package/dist/runtime/streams/session-context.d.ts +9 -2
  222. package/dist/runtime/streams/session-context.js +50 -32
  223. package/dist/runtime/streams/session-local-actors.d.ts +3 -1
  224. package/dist/runtime/streams/session-local-actors.js +17 -2
  225. package/dist/runtime/streams/session-provider.js +2 -2
  226. package/dist/runtime/streams/session-serial-executor.js +1 -2
  227. package/dist/runtime/streams/stream-frame-factory.d.ts +1 -1
  228. package/dist/runtime/streams/stream-frame-factory.js +14 -7
  229. package/dist/runtime/streams/stream-session-runtime.js +112 -78
  230. package/dist/runtime/workers/index.js +15 -4
  231. package/package.json +3 -3
  232. package/src/contracts/Channels/RouteCalls.ts +6 -1
  233. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  234. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  235. package/src/contracts/Configuration/Builders.ts +14 -14
  236. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  237. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  238. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  239. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  240. package/src/contracts/Configuration/Registration.ts +46 -17
  241. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  242. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  243. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  244. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  245. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  246. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  247. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  248. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  249. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  250. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  251. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -6
  252. package/src/contracts/Errors/index.ts +1 -4
  253. package/src/contracts/Handlers/Attributes.ts +15 -9
  254. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  255. package/src/contracts/Handlers/JsonContract.ts +53 -19
  256. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  257. package/src/contracts/Locations/Authority.ts +4 -11
  258. package/src/contracts/Locations/Keys.ts +6 -1
  259. package/src/contracts/Locations/Options.ts +3 -2
  260. package/src/contracts/Locations/RelocationStore.ts +1 -4
  261. package/src/contracts/Locations/Resolvers.ts +5 -5
  262. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  263. package/src/contracts/Locations/Stores.ts +1 -2
  264. package/src/contracts/Locations/index.ts +2 -8
  265. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  266. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  267. package/src/contracts/Spots/Contracts.ts +2 -8
  268. package/src/contracts/Spots/SpotKind.ts +16 -8
  269. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  270. package/src/contracts/Streams/IZLinkSession.ts +2 -2
  271. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  272. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  273. package/src/internal.ts +5 -4
  274. package/src/location-store-integration.ts +24 -16
  275. package/src/nest-integration.ts +40 -25
  276. package/src/runtime/abort.ts +10 -4
  277. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  278. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  279. package/src/runtime/actors/actor-client.ts +162 -133
  280. package/src/runtime/actors/actor-context.ts +142 -134
  281. package/src/runtime/actors/actor-creation.ts +47 -44
  282. package/src/runtime/actors/actor-execution-context.ts +6 -4
  283. package/src/runtime/actors/actor-handoff.ts +269 -293
  284. package/src/runtime/actors/actor-join-deferred-scope.ts +1 -32
  285. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  286. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  287. package/src/runtime/actors/actor-mailbox.ts +16 -19
  288. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  289. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  290. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  291. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  292. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  293. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  294. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  295. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  296. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  297. package/src/runtime/actors/bound-session-wire.ts +37 -17
  298. package/src/runtime/actors/deferred-join-accepted-journal.ts +353 -326
  299. package/src/runtime/actors/index.ts +43 -86
  300. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  301. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  302. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  303. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  304. package/src/runtime/admission.ts +9 -9
  305. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  306. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  307. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  308. package/src/runtime/backend/contracts/index.ts +77 -52
  309. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  310. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  311. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  312. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  313. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  314. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  315. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  316. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  317. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  318. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  319. package/src/runtime/backend/node/node-raw-mesh-backend.ts +370 -390
  320. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  321. package/src/runtime/backend/runtime-message.ts +5 -3
  322. package/src/runtime/backend/runtime-values.ts +10 -7
  323. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  324. package/src/runtime/channels/channel-clients.ts +93 -73
  325. package/src/runtime/channels/channel-dispatch-pipeline.ts +44 -44
  326. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  327. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  328. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  329. package/src/runtime/channels/channel-envelope.ts +256 -150
  330. package/src/runtime/channels/channel-multipart.ts +13 -5
  331. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  332. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  333. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  334. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  335. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  336. package/src/runtime/channels/channel-socket-options.ts +3 -10
  337. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  338. package/src/runtime/channels/channel-transports.ts +218 -206
  339. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  340. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  341. package/src/runtime/channels/dispatch-error-reporter.ts +12 -47
  342. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  343. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  344. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  345. package/src/runtime/channels/index.ts +1 -4
  346. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  347. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  348. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  349. package/src/runtime/channels/source-spot-router.ts +26 -22
  350. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  351. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  352. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  353. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  354. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  355. package/src/runtime/codecs/index.ts +3 -2
  356. package/src/runtime/diagnostics/dispatch-error-details.ts +62 -0
  357. package/src/runtime/diagnostics/flow-context.ts +18 -7
  358. package/src/runtime/diagnostics/index.ts +96 -61
  359. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  360. package/src/runtime/diagnostics/message-flow.ts +107 -79
  361. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  362. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  363. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  364. package/src/runtime/execution/index.ts +18 -26
  365. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  366. package/src/runtime/execution/state-lane.ts +2 -2
  367. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -55
  368. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  369. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  370. package/src/runtime/foundation/operation-identity.ts +1 -2
  371. package/src/runtime/foundation/operation-registry.ts +8 -2
  372. package/src/runtime/foundation/raw-service-mesh-runtime.ts +364 -396
  373. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  374. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  375. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  376. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  377. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  378. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  379. package/src/runtime/foundation/service-mailbox.ts +14 -14
  380. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  381. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  382. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  383. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  384. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  385. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  386. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  387. package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -4
  388. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  389. package/src/runtime/foundation/service-stateful-runtime.ts +1233 -1112
  390. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  391. package/src/runtime/foundation/service-topology-registry.ts +170 -159
  392. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  393. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  394. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  395. package/src/runtime/framework-errors-internal.ts +31 -30
  396. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  397. package/src/runtime/handlers/index.ts +18 -8
  398. package/src/runtime/host/actor-packet-relay.ts +290 -261
  399. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  400. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  401. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  402. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  403. package/src/runtime/host/application-job-queue.ts +32 -48
  404. package/src/runtime/host/bound-session-relay.ts +7 -9
  405. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  406. package/src/runtime/host/host-capacity-status.ts +10 -9
  407. package/src/runtime/host/index.ts +861 -789
  408. package/src/runtime/host/instance-activation-authority.ts +125 -143
  409. package/src/runtime/host/location-runtime-owner.ts +38 -26
  410. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  411. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  412. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  413. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  414. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  415. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  416. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  417. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  418. package/src/runtime/host/runtime-shutdown.ts +4 -3
  419. package/src/runtime/host/service-relocation-control.ts +14 -5
  420. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  421. package/src/runtime/host/spot-address-transport.ts +284 -237
  422. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  423. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  424. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  425. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  426. package/src/runtime/locations/actor-location-claims.ts +61 -49
  427. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  428. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  429. package/src/runtime/locations/authority-key-codec.ts +13 -10
  430. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  431. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  432. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  433. package/src/runtime/locations/canonical-codec.ts +3 -1
  434. package/src/runtime/locations/creation-operation-id.ts +4 -3
  435. package/src/runtime/locations/domain-store-contract.ts +13 -7
  436. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  437. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  438. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  439. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  440. package/src/runtime/locations/key-codec.ts +3 -4
  441. package/src/runtime/locations/lease-tracker.ts +36 -27
  442. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  443. package/src/runtime/locations/lifecycle.ts +33 -28
  444. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  445. package/src/runtime/locations/opaque-record-key.ts +4 -9
  446. package/src/runtime/locations/resolvers.ts +201 -178
  447. package/src/runtime/locations/runtime.ts +251 -159
  448. package/src/runtime/locations/spot-location-claims.ts +110 -112
  449. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  450. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  451. package/src/runtime/messaging/packet-name.ts +8 -6
  452. package/src/runtime/messaging/payload-codec.ts +70 -50
  453. package/src/runtime/messaging/submission-result.ts +6 -9
  454. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  455. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +19 -18
  456. package/src/runtime/routing-id.ts +10 -7
  457. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  458. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  459. package/src/runtime/spots/index.ts +595 -564
  460. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  461. package/src/runtime/spots/spot-activation-state.ts +43 -51
  462. package/src/runtime/spots/spot-activation.ts +179 -116
  463. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  464. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  465. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  466. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  467. package/src/runtime/spots/spot-actor-packet-dispatch.ts +196 -148
  468. package/src/runtime/spots/spot-actor-packet-drain.ts +56 -42
  469. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  470. package/src/runtime/spots/spot-closing.ts +11 -12
  471. package/src/runtime/spots/spot-context.ts +46 -26
  472. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  473. package/src/runtime/spots/spot-handle.ts +17 -15
  474. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  475. package/src/runtime/spots/spot-location-claim.ts +5 -4
  476. package/src/runtime/spots/spot-manager-public.ts +62 -82
  477. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  478. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  479. package/src/runtime/spots/spot-node-runtime-manager.ts +235 -222
  480. package/src/runtime/spots/spot-outbound.ts +47 -59
  481. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  482. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  483. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  484. package/src/runtime/spots/spot-route-packet-dispatch.ts +129 -95
  485. package/src/runtime/spots/spot-route-replies.ts +23 -24
  486. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  487. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  488. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +13 -18
  489. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  490. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  491. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  492. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  493. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  494. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  495. package/src/runtime/spots/spot-subscription-dispatch.ts +58 -47
  496. package/src/runtime/spots/spot-timer.ts +103 -91
  497. package/src/runtime/streams/actor-session-binding-registry.ts +421 -292
  498. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +8 -4
  499. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  500. package/src/runtime/streams/bound-actor-relay-sender.ts +60 -50
  501. package/src/runtime/streams/bound-session-response-target.ts +39 -9
  502. package/src/runtime/streams/bound-session-service.ts +52 -42
  503. package/src/runtime/streams/index.ts +183 -100
  504. package/src/runtime/streams/managed-stream.ts +123 -90
  505. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  506. package/src/runtime/streams/protocol.ts +115 -46
  507. package/src/runtime/streams/session-actor-coordinator.ts +109 -93
  508. package/src/runtime/streams/session-calls.ts +2 -8
  509. package/src/runtime/streams/session-context.ts +96 -51
  510. package/src/runtime/streams/session-local-actors.ts +19 -3
  511. package/src/runtime/streams/session-provider.ts +5 -7
  512. package/src/runtime/streams/session-serial-executor.ts +7 -6
  513. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  514. package/src/runtime/streams/stream-frame-factory.ts +59 -40
  515. package/src/runtime/streams/stream-session-runtime.ts +317 -214
  516. package/src/runtime/workers/index.ts +68 -29
@@ -54,8 +54,8 @@ class ZLinkHostSpotAddressTransport {
54
54
  else {
55
55
  this.traceInstanceAddress(submitResultFlowOutcome(result.status), ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send, spotId, message, existing.routerChannelId, existing.stableType, existing.targetNodeRid, submitResultReason(result.status));
56
56
  }
57
- if (result.status === submission_result_1.ZLinkSubmitStatus.TargetNotFound
58
- || result.status === submission_result_1.ZLinkSubmitStatus.RouteNotConnected) {
57
+ if (result.status === submission_result_1.ZLinkSubmitStatus.TargetNotFound ||
58
+ result.status === submission_result_1.ZLinkSubmitStatus.RouteNotConnected) {
59
59
  this.options.resolver()?.invalidate?.(spotId);
60
60
  }
61
61
  return result;
@@ -90,11 +90,11 @@ class ZLinkHostSpotAddressTransport {
90
90
  }
91
91
  deadline.setOwnerTimeout(this.sendTimeoutMsForMesh(selected.meshName));
92
92
  const encoded = this.encode(3 /* ZLinkChannelMessageKind.Command */, selected.meshName, message);
93
- const sourceSpotId = call.sourceSpot === undefined
94
- ? undefined
95
- : String(call.sourceSpot.routingId);
93
+ const sourceSpotId = call.sourceSpot === undefined ? undefined : String(call.sourceSpot.routingId);
96
94
  const mapped = mapSubmitResult(await (0, abort_1.awaitWithAbort)(selected.node.sendToMissingInstanceSpot(selected.target, encoded, BigInt(deadline.deadlineUnixMs), sourceSpotId, call.metadata), deadline.signal));
97
- this.traceInstanceAddress(submitResultFlowOutcome(mapped.status), ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send, spotId, message, selected.meshName, selected.target.stableType, selected.target.targetNodeRid, mapped.status === submission_result_1.ZLinkSubmitStatus.Submitted ? undefined : submitResultReason(mapped.status));
95
+ this.traceInstanceAddress(submitResultFlowOutcome(mapped.status), ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send, spotId, message, selected.meshName, selected.target.stableType, selected.target.targetNodeRid, mapped.status === submission_result_1.ZLinkSubmitStatus.Submitted
96
+ ? undefined
97
+ : submitResultReason(mapped.status));
98
98
  return mapped;
99
99
  }
100
100
  catch (error) {
@@ -155,9 +155,10 @@ class ZLinkHostSpotAddressTransport {
155
155
  }
156
156
  }
157
157
  catch (error) {
158
- if (deadline.expired()
159
- && !(error instanceof contracts_1.ZLinkFrameworkException
160
- && (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound)) {
158
+ if (deadline.expired() &&
159
+ !(error instanceof contracts_1.ZLinkFrameworkException &&
160
+ (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) ===
161
+ framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound)) {
161
162
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.DeadlineExceeded, `Spot request for '${String(spotId)}' exceeded its end-to-end deadline.`, true, error);
162
163
  }
163
164
  throw error;
@@ -205,8 +206,8 @@ class ZLinkHostSpotAddressTransport {
205
206
  completionPromise = table.submit(() => selected.node.requestToMissingInstanceSpot(selected.target, encoded, deadlineUnixMs, call.sourceSpot === undefined ? undefined : String(call.sourceSpot.routingId), call.metadata), deadline.signal);
206
207
  }
207
208
  catch (error) {
208
- if (error instanceof contracts_1.ZLinkFrameworkException
209
- && (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound) {
209
+ if (error instanceof contracts_1.ZLinkFrameworkException &&
210
+ (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound) {
210
211
  PRE_ADMISSION_MISSING_INSTANCE_ERRORS.add(error);
211
212
  }
212
213
  throw error;
@@ -266,17 +267,17 @@ class ZLinkHostSpotAddressTransport {
266
267
  return await (0, abort_1.awaitWithAbort)(resolver.resolve(spotId, signal), signal);
267
268
  }
268
269
  catch (error) {
269
- if (error instanceof contracts_1.ZLinkFrameworkException
270
- && (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound) {
270
+ if (error instanceof contracts_1.ZLinkFrameworkException &&
271
+ (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound) {
271
272
  return undefined;
272
273
  }
273
274
  throw error;
274
275
  }
275
276
  }
276
277
  async recoverStaleInstanceRoute(spotId, call, deadline, error, staleRoute) {
277
- if (!call.instanceSpot
278
- || !(error instanceof contracts_1.ZLinkFrameworkException)
279
- || !isInstanceRouteStaleError(error)) {
278
+ if (!call.instanceSpot ||
279
+ !(error instanceof contracts_1.ZLinkFrameworkException) ||
280
+ !isInstanceRouteStaleError(error)) {
280
281
  return { kind: 'fail' };
281
282
  }
282
283
  for (;;) {
@@ -292,8 +293,8 @@ class ZLinkHostSpotAddressTransport {
292
293
  }
293
294
  selectMissingTarget(spotId, call) {
294
295
  const configuredMeshes = this.options.meshNames();
295
- if (call.initialMeshName !== undefined
296
- && this.options.isMeshConfigured?.(call.initialMeshName) === false) {
296
+ if (call.initialMeshName !== undefined &&
297
+ this.options.isMeshConfigured?.(call.initialMeshName) === false) {
297
298
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.MeshNotFound, `RouteMesh '${call.initialMeshName}' is not configured.`);
298
299
  }
299
300
  if (call.initialMeshName !== undefined && !configuredMeshes.includes(call.initialMeshName)) {
@@ -305,13 +306,12 @@ class ZLinkHostSpotAddressTransport {
305
306
  if (call.initialMeshName === undefined && configuredMeshes.length > 1) {
306
307
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.MeshSelectionRequired, 'Multiple object-client RouteMeshes are configured; call inMesh(...).');
307
308
  }
308
- const meshNames = call.initialMeshName === undefined
309
- ? configuredMeshes
310
- : [call.initialMeshName];
311
- const distinctTypes = [...new Set(meshNames.flatMap(meshName => this.options.meshNode(meshName)?.instanceSpotPlacementTypes?.() ?? []))];
312
- const canInspectPlacementTypes = meshNames.some(meshName => typeof this.options.meshNode(meshName)?.instanceSpotPlacementTypes === 'function');
313
- const stableType = call.instanceSpotType
314
- ?? (distinctTypes.length === 1 ? distinctTypes[0] : undefined);
309
+ const meshNames = call.initialMeshName === undefined ? configuredMeshes : [call.initialMeshName];
310
+ const distinctTypes = [
311
+ ...new Set(meshNames.flatMap((meshName) => this.options.meshNode(meshName)?.instanceSpotPlacementTypes?.() ?? []))
312
+ ];
313
+ const canInspectPlacementTypes = meshNames.some((meshName) => typeof this.options.meshNode(meshName)?.instanceSpotPlacementTypes === 'function');
314
+ const stableType = call.instanceSpotType ?? (distinctTypes.length === 1 ? distinctTypes[0] : undefined);
315
315
  if (stableType === undefined) {
316
316
  if (distinctTypes.length === 0)
317
317
  return { kind: 'unsupported' };
@@ -358,21 +358,20 @@ class ZLinkHostSpotAddressTransport {
358
358
  return { kind: 'unavailable' };
359
359
  }
360
360
  sendTimeoutMsForMesh(meshName) {
361
- return this.options.sendTimeoutMsForMesh?.(meshName)
362
- ?? this.options.defaultSendTimeoutMs
363
- ?? this.options.defaultRequestTimeoutMs;
361
+ return (this.options.sendTimeoutMsForMesh?.(meshName) ??
362
+ this.options.defaultSendTimeoutMs ??
363
+ this.options.defaultRequestTimeoutMs);
364
364
  }
365
365
  sendTimeoutMsForRouteChannel(routeChannelId) {
366
- return this.options.sendTimeoutMsForRouteChannel?.(routeChannelId)
367
- ?? this.options.defaultSendTimeoutMs
368
- ?? this.options.defaultRequestTimeoutMs;
366
+ return (this.options.sendTimeoutMsForRouteChannel?.(routeChannelId) ??
367
+ this.options.defaultSendTimeoutMs ??
368
+ this.options.defaultRequestTimeoutMs);
369
369
  }
370
370
  validateExisting(target, call) {
371
371
  if (!call.instanceSpot)
372
372
  return;
373
- if (target.spotKind !== contracts_2.ZLinkSpotKind.Instance
374
- || (call.instanceSpotType !== undefined
375
- && target.stableType !== call.instanceSpotType)) {
373
+ if (target.spotKind !== contracts_2.ZLinkSpotKind.Instance ||
374
+ (call.instanceSpotType !== undefined && target.stableType !== call.instanceSpotType)) {
376
375
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotTypeMismatch, `Spot '${String(target.spotId)}' is not the requested Instance Spot type.`);
377
376
  }
378
377
  }
@@ -399,8 +398,7 @@ function isInstanceRouteStaleError(error) {
399
398
  return false;
400
399
  }
401
400
  function isMissingInstanceRetryError(error) {
402
- return error instanceof contracts_1.ZLinkFrameworkException
403
- && PRE_ADMISSION_MISSING_INSTANCE_ERRORS.has(error);
401
+ return (error instanceof contracts_1.ZLinkFrameworkException && PRE_ADMISSION_MISSING_INSTANCE_ERRORS.has(error));
404
402
  }
405
403
  function missingInstanceRequestFailure(result, nativeErrno) {
406
404
  const canonical = (0, framework_errors_internal_1.isCanonicalWireReplyTerminal)(result, nativeErrno);
@@ -416,12 +414,12 @@ function missingInstanceRequestFailure(result, nativeErrno) {
416
414
  : result === runtime_values_1.RequestResult.Terminated
417
415
  ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RuntimeShutdown
418
416
  : result === runtime_values_1.RequestResult.Backpressured
419
- // Spec 32-framework-error-model:104-108 — the bounded admission
420
- // terminal is target placement capacity: Unavailable.
421
- ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PlacementCapacityExhausted
417
+ ? // Spec 32-framework-error-model:104-108 — the bounded admission
418
+ // terminal is target placement capacity: Unavailable.
419
+ framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PlacementCapacityExhausted
422
420
  : result === runtime_values_1.RequestResult.NotConnected
423
421
  ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected
424
- : wireKind ?? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
422
+ : (wireKind ?? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed);
425
423
  return (0, framework_errors_internal_1.createInternalFrameworkException)(kind, `Instance Spot request failed with result ${result} and errno ${nativeErrno}.`);
426
424
  }
427
425
  function mapSubmitResult(result) {
@@ -453,25 +451,25 @@ function isSpotRouteRefreshError(error) {
453
451
  if (!(error instanceof contracts_1.ZLinkFrameworkException))
454
452
  return false;
455
453
  const kind = (0, framework_errors_internal_1.internalFrameworkErrorKind)(error);
456
- return kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound
457
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotGenerationStale
458
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotMoving
459
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
460
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale
461
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected;
454
+ return (kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound ||
455
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotGenerationStale ||
456
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotMoving ||
457
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound ||
458
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale ||
459
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected);
462
460
  }
463
461
  function sameSpotRouteSnapshot(left, right) {
464
- return String(left.targetNodeRid) === String(right.targetNodeRid)
465
- && String(left.spotId) === String(right.spotId)
466
- && left.routerChannelId === right.routerChannelId
467
- && left.spotKind === right.spotKind
468
- && left.stableType === right.stableType
469
- && left.targetSpotGeneration === right.targetSpotGeneration
470
- && left.targetNodeGeneration === right.targetNodeGeneration
471
- && left.authorityOwnerGeneration === right.authorityOwnerGeneration
472
- && left.targetOwnerId === right.targetOwnerId
473
- && left.ownerLeaseGeneration === right.ownerLeaseGeneration
474
- && left.authorityStoreVersion === right.authorityStoreVersion;
462
+ return (String(left.targetNodeRid) === String(right.targetNodeRid) &&
463
+ String(left.spotId) === String(right.spotId) &&
464
+ left.routerChannelId === right.routerChannelId &&
465
+ left.spotKind === right.spotKind &&
466
+ left.stableType === right.stableType &&
467
+ left.targetSpotGeneration === right.targetSpotGeneration &&
468
+ left.targetNodeGeneration === right.targetNodeGeneration &&
469
+ left.authorityOwnerGeneration === right.authorityOwnerGeneration &&
470
+ left.targetOwnerId === right.targetOwnerId &&
471
+ left.ownerLeaseGeneration === right.ownerLeaseGeneration &&
472
+ left.authorityStoreVersion === right.authorityStoreVersion);
475
473
  }
476
474
  function waitForSpotRouteRefresh(delayMs, signal) {
477
475
  return new Promise((resolve, reject) => {
@@ -520,21 +518,21 @@ function submitResultFlowOutcome(status) {
520
518
  function addressedInstanceErrorReason(error) {
521
519
  if (error instanceof contracts_1.ZLinkFrameworkException) {
522
520
  const kind = (0, framework_errors_internal_1.internalFrameworkErrorKind)(error);
523
- if (kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound
524
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotGenerationStale
525
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotMoving
526
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
527
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale
528
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected) {
521
+ if (kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound ||
522
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotGenerationStale ||
523
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotMoving ||
524
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound ||
525
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale ||
526
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected) {
529
527
  return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.StaleTarget;
530
528
  }
531
529
  if (kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RuntimeShutdown) {
532
530
  return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.Shutdown;
533
531
  }
534
- if (kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PlacementCapacityExhausted
535
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.WorkerQueueFull
536
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.WorkerTimedOut
537
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.DeadlineExceeded) {
532
+ if (kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PlacementCapacityExhausted ||
533
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.WorkerQueueFull ||
534
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.WorkerTimedOut ||
535
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.DeadlineExceeded) {
538
536
  return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.Backpressure;
539
537
  }
540
538
  }
@@ -542,10 +540,10 @@ function addressedInstanceErrorReason(error) {
542
540
  }
543
541
  function initialSendTimeoutMs(options, call) {
544
542
  return call.initialMeshName === undefined
545
- ? options.defaultSendTimeoutMs ?? options.defaultRequestTimeoutMs
546
- : options.sendTimeoutMsForMesh?.(call.initialMeshName)
547
- ?? options.defaultSendTimeoutMs
548
- ?? options.defaultRequestTimeoutMs;
543
+ ? (options.defaultSendTimeoutMs ?? options.defaultRequestTimeoutMs)
544
+ : (options.sendTimeoutMsForMesh?.(call.initialMeshName) ??
545
+ options.defaultSendTimeoutMs ??
546
+ options.defaultRequestTimeoutMs);
549
547
  }
550
548
  function createSpotAddressDeadline(timeoutMs, parent) {
551
549
  const startedAtMs = performance.now();
@@ -17,9 +17,12 @@ class ZLinkSpotRuntimeOptionsFactory {
17
17
  nodeGenerationProvider: (meshName) => this.options.spotNodeRuntime()?.meshNode(meshName)?.status().lifecycleGeneration,
18
18
  entryNodeRid: undefined,
19
19
  entryNodeRidProvider: () => this.primaryNodeRoutingId(),
20
- entrySpotIdProvider: meshName => this.options.spotNodeRuntime()?.entrySpotIdForMesh(meshName),
20
+ entrySpotIdProvider: (meshName) => this.options.spotNodeRuntime()?.entrySpotIdForMesh(meshName),
21
21
  entrySpotCallbacks: {
22
- onLeaveActor: (actor, signal, actorRef, membershipEpoch) => this.options.spotNodeRuntime()?.notifyPrimaryEntrySpotActorLeft(actor, signal, actorRef, membershipEpoch) ?? Promise.resolve()
22
+ onLeaveActor: (actor, signal, actorRef, membershipEpoch) => this.options
23
+ .spotNodeRuntime()
24
+ ?.notifyPrimaryEntrySpotActorLeft(actor, signal, actorRef, membershipEpoch) ??
25
+ Promise.resolve()
23
26
  },
24
27
  dispatchEntryActorPacket: (actorId, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef, requestTerminal, messageFollowOrigin) => {
25
28
  const runtime = this.options.spotNodeRuntime();
@@ -54,13 +57,14 @@ class ZLinkSpotRuntimeOptionsFactory {
54
57
  releaseInstanceAuthority: (meshName, spotId, objectGeneration) => this.options.releaseInstanceAuthority(meshName, String(spotId), objectGeneration),
55
58
  beginInstanceIdleClosingAuthority: (meshName, spotId) => this.options.beginInstanceIdleClosingAuthority(meshName, String(spotId)),
56
59
  beginInstanceClosingAuthority: (meshName, spotId) => this.options.beginInstanceClosingAuthority(meshName, String(spotId)),
57
- instanceSpotApplicationTargetProvider: (meshName, spotId) => this.options.spotNodeRuntime()
60
+ instanceSpotApplicationTargetProvider: (meshName, spotId) => this.options
61
+ .spotNodeRuntime()
58
62
  ?.meshNode(meshName)
59
63
  ?.instanceSpotApplicationTarget?.(String(spotId)),
60
- instanceSpotApplicationQuiescenceProvider: (meshName, spotId, signal) => this.options.spotNodeRuntime()
64
+ instanceSpotApplicationQuiescenceProvider: (meshName, spotId, signal) => this.options
65
+ .spotNodeRuntime()
61
66
  ?.meshNode(meshName)
62
- ?.waitForInstanceApplicationQuiescence?.(String(spotId), signal)
63
- ?? Promise.resolve(),
67
+ ?.waitForInstanceApplicationQuiescence?.(String(spotId), signal) ?? Promise.resolve(),
64
68
  createNativeSpot: (meshName, spotId, authority) => {
65
69
  const node = this.options.spotNodeRuntime()?.meshNode(meshName);
66
70
  if (node === undefined) {
@@ -68,10 +72,9 @@ class ZLinkSpotRuntimeOptionsFactory {
68
72
  }
69
73
  const restored = authority === undefined
70
74
  ? undefined
71
- : node.restoreSpotAuthority?.(String(spotId), authority.objectKind ?? 'user_spot', authority.stableType, authority.objectGeneration, authority.authorityOwnerGeneration) ?? node.restoreUserSpotAuthority?.(String(spotId), authority.stableType, authority.objectGeneration, authority.authorityOwnerGeneration);
72
- const result = restored === undefined
73
- ? node.getOrCreateSpot(spotId)
74
- : { spot: restored, created: true };
75
+ : (node.restoreSpotAuthority?.(String(spotId), authority.objectKind ?? 'user_spot', authority.stableType, authority.objectGeneration, authority.authorityOwnerGeneration) ??
76
+ node.restoreUserSpotAuthority?.(String(spotId), authority.stableType, authority.objectGeneration, authority.authorityOwnerGeneration));
77
+ const result = restored === undefined ? node.getOrCreateSpot(spotId) : { spot: restored, created: true };
75
78
  return {
76
79
  routingId: spotId,
77
80
  lifecycleGeneration: result.spot.status().lifecycleGeneration,
@@ -115,12 +118,12 @@ class ZLinkSpotRuntimeOptionsFactory {
115
118
  ? undefined
116
119
  : (0, actors_1.toFrameworkActorRef)(state.nativeActorRef, state.meshName ?? '');
117
120
  const localNodeRid = this.primaryNodeRoutingId();
118
- if (state?.actor === undefined
119
- || state.spot === undefined
120
- || state.remoteActorPacketTarget !== undefined
121
- || actorRef === undefined
122
- || localNodeRid === undefined
123
- || String(actorRef.nodeRid) !== localNodeRid) {
121
+ if (state?.actor === undefined ||
122
+ state.spot === undefined ||
123
+ state.remoteActorPacketTarget !== undefined ||
124
+ actorRef === undefined ||
125
+ localNodeRid === undefined ||
126
+ String(actorRef.nodeRid) !== localNodeRid) {
124
127
  return {};
125
128
  }
126
129
  return {
@@ -129,22 +132,20 @@ class ZLinkSpotRuntimeOptionsFactory {
129
132
  };
130
133
  },
131
134
  userSpotExecutionMode: (meshName, spotType) => {
132
- const registrations = this.options.registration.spotNodes.get(meshName)
133
- ?.spotFactoryRegistrations ?? {};
134
- const registration = Object.values(registrations)
135
- .find(candidate => candidate.implementation === spotType);
136
- return registration?.options?.executionMode
137
- ?? contracts_1.ZLinkUserSpotExecutionMode.SpotWide;
135
+ const registrations = this.options.registration.spotNodes.get(meshName)?.spotFactoryRegistrations ?? {};
136
+ const registration = Object.values(registrations).find((candidate) => candidate.implementation === spotType);
137
+ return registration?.options?.executionMode ?? contracts_1.ZLinkUserSpotExecutionMode.SpotWide;
138
138
  },
139
139
  userSpotRelocationCoordinationMode: (meshName, spotType) => {
140
- const registrations = this.options.registration.spotNodes.get(meshName)
141
- ?.spotFactoryRegistrations ?? {};
142
- const registration = Object.values(registrations)
143
- .find(candidate => candidate.implementation === spotType);
144
- return registration?.options?.relocationCoordinationMode
145
- ?? contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged;
140
+ const registrations = this.options.registration.spotNodes.get(meshName)?.spotFactoryRegistrations ?? {};
141
+ const registration = Object.values(registrations).find((candidate) => candidate.implementation === spotType);
142
+ return (registration?.options?.relocationCoordinationMode ??
143
+ contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged);
146
144
  },
147
- actorBindingGenerationObserver: (actorId, generation) => this.options.actorManager()?.getState(actorId)?.setBoundSessionBindingGeneration(generation),
145
+ actorBindingGenerationObserver: (actorId, generation) => this.options
146
+ .actorManager()
147
+ ?.getState(actorId)
148
+ ?.setBoundSessionBindingGeneration(generation),
148
149
  actorTransferRuntime,
149
150
  boundSessionRuntime: this.options.boundSessionRelay.boundSessions,
150
151
  actorHandoffRuntime: this.options.actorHandoff,
@@ -65,9 +65,9 @@ class ZLinkStatefulAuthorityRouteRuntime {
65
65
  const previous = this.appliedByMesh.get(meshName) ?? new Map();
66
66
  const status = sink.status();
67
67
  for (const pending of snapshot.pending) {
68
- if (pending.targetMeshName === meshName
69
- && (0, routing_id_1.routingIdsEqual)(status.routingId, pending.targetNodeRid)
70
- && status.lifecycleGeneration === pending.targetNodeGeneration) {
68
+ if (pending.targetMeshName === meshName &&
69
+ (0, routing_id_1.routingIdsEqual)(status.routingId, pending.targetNodeRid) &&
70
+ status.lifecycleGeneration === pending.targetNodeGeneration) {
71
71
  await this.recoverPendingInstanceActivation(sink, pending, signal);
72
72
  }
73
73
  }
@@ -76,17 +76,14 @@ class ZLinkStatefulAuthorityRouteRuntime {
76
76
  continue;
77
77
  const previousRoute = previous.get(key);
78
78
  const expectedSpotRoute = previousRoute?.spotRoute ?? null;
79
- const expectedInstanceRoute = previousRoute?.kind === 'instance_spot'
80
- ? previousRoute.instanceRoute
81
- : null;
79
+ const expectedInstanceRoute = previousRoute?.kind === 'instance_spot' ? previousRoute.instanceRoute : null;
82
80
  sink.rememberSpotRoute(route.spotRoute, expectedSpotRoute);
83
81
  if (route.kind === 'instance_spot') {
84
82
  const status = sink.status();
85
- if ((0, routing_id_1.routingIdsEqual)(status.routingId, route.instanceRoute.targetNodeRid)
86
- && status.lifecycleGeneration === route.instanceRoute.targetNodeGeneration) {
83
+ if ((0, routing_id_1.routingIdsEqual)(status.routingId, route.instanceRoute.targetNodeRid) &&
84
+ status.lifecycleGeneration === route.instanceRoute.targetNodeGeneration) {
87
85
  if (route.activationRecovery !== undefined) {
88
- if (route.activationRecovery.replayCursor
89
- === route.activationRecovery.inboxSequence) {
86
+ if (route.activationRecovery.replayCursor === route.activationRecovery.inboxSequence) {
90
87
  const released = await sink.completeRecoveredInstanceActivation({
91
88
  targetSpotId: route.instanceRoute.targetSpotId,
92
89
  stableType: route.stableType,
@@ -164,16 +161,16 @@ class ZLinkStatefulAuthorityRouteRuntime {
164
161
  async recoverInstanceActivation(sink, route, recovery, expectedCurrentRoute, signal) {
165
162
  const envelope = await this.readRecoveryEnvelope(recovery, signal);
166
163
  const status = sink.status();
167
- if (envelope.targetMeshName !== route.meshName
168
- || envelope.target.stableType !== route.stableType
169
- || envelope.target.targetSpotId !== route.instanceRoute.targetSpotId
170
- || envelope.target.targetNodeRid !== route.instanceRoute.targetNodeRid
171
- || envelope.target.targetNodeGeneration !== route.instanceRoute.targetNodeGeneration
172
- || envelope.target.descriptorVersion !== status.descriptorRevision.toString()) {
164
+ if (envelope.targetMeshName !== route.meshName ||
165
+ envelope.target.stableType !== route.stableType ||
166
+ envelope.target.targetSpotId !== route.instanceRoute.targetSpotId ||
167
+ envelope.target.targetNodeRid !== route.instanceRoute.targetNodeRid ||
168
+ envelope.target.targetNodeGeneration !== route.instanceRoute.targetNodeGeneration ||
169
+ envelope.target.descriptorVersion !== status.descriptorRevision.toString()) {
173
170
  this.options.reportError(new Error('Instance activation recovery envelope does not match Ready authority.'));
174
171
  return false;
175
172
  }
176
- return (await sink.recoverInstanceActivation(envelope, route.instanceRoute, expectedCurrentRoute)) !== false;
173
+ return ((await sink.recoverInstanceActivation(envelope, route.instanceRoute, expectedCurrentRoute)) !== false);
177
174
  }
178
175
  async recoverPendingInstanceActivation(sink, recovery, signal) {
179
176
  const envelope = await this.readRecoveryEnvelope({
@@ -184,12 +181,12 @@ class ZLinkStatefulAuthorityRouteRuntime {
184
181
  replayCursor: 0n
185
182
  }, signal);
186
183
  const status = sink.status();
187
- if (envelope.targetMeshName !== recovery.targetMeshName
188
- || envelope.target.stableType !== recovery.stableType
189
- || envelope.target.targetSpotId !== recovery.spotId
190
- || envelope.target.targetNodeRid !== recovery.targetNodeRid
191
- || envelope.target.targetNodeGeneration !== recovery.targetNodeGeneration
192
- || envelope.target.descriptorVersion !== status.descriptorRevision.toString()) {
184
+ if (envelope.targetMeshName !== recovery.targetMeshName ||
185
+ envelope.target.stableType !== recovery.stableType ||
186
+ envelope.target.targetSpotId !== recovery.spotId ||
187
+ envelope.target.targetNodeRid !== recovery.targetNodeRid ||
188
+ envelope.target.targetNodeGeneration !== recovery.targetNodeGeneration ||
189
+ envelope.target.descriptorVersion !== status.descriptorRevision.toString()) {
193
190
  const creationStore = this.options.creationStore;
194
191
  if (creationStore === undefined) {
195
192
  this.options.reportError(new Error('Pending Instance activation mismatch requires an object creation store.'));
@@ -234,8 +231,8 @@ class ZLinkStatefulAuthorityRouteRuntime {
234
231
  }
235
232
  const payload = Buffer.from(result.bytes);
236
233
  const sha256 = (0, node_crypto_1.createHash)('sha256').update(payload).digest();
237
- if (payload.byteLength !== recovery.encodedSize
238
- || !sha256.equals(Buffer.from(recovery.sha256))) {
234
+ if (payload.byteLength !== recovery.encodedSize ||
235
+ !sha256.equals(Buffer.from(recovery.sha256))) {
239
236
  throw new Error(`Instance activation recovery payload '${recovery.reference}' failed integrity validation.`);
240
237
  }
241
238
  return (0, service_instance_activation_recovery_codec_1.decodeInstanceActivationRecoveryEnvelope)(payload);
@@ -283,9 +280,9 @@ class ZLinkStatefulAuthorityRouteRuntime {
283
280
  const route = authorityRoute(current);
284
281
  if (route !== undefined)
285
282
  result.set(authorityRouteKey(route), route);
286
- if (current.allocation.state === 'active'
287
- && current.allocation.objectKind === 'actor'
288
- && (0, actors_1.decodeActorAuthorityIdentity)((0, service_relocation_runtime_1.serviceRelocationAuthorityApplicationPayload)(current.payload), current.objectGeneration) !== undefined) {
283
+ if (current.allocation.state === 'active' &&
284
+ current.allocation.objectKind === 'actor' &&
285
+ (0, actors_1.decodeActorAuthorityIdentity)((0, service_relocation_runtime_1.serviceRelocationAuthorityApplicationPayload)(current.payload), current.objectGeneration) !== undefined) {
289
286
  actors.push(current);
290
287
  }
291
288
  const pendingRecovery = pendingInstanceActivation(current);
@@ -301,27 +298,28 @@ function authorityNeedsExactRead(snapshot, relocationCodec) {
301
298
  return true;
302
299
  if (relocationCodec.read(snapshot.payload) !== undefined)
303
300
  return true;
304
- if ((0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)((0, service_relocation_runtime_1.serviceRelocationAuthorityApplicationPayload)(snapshot.payload))?.activationRecovery !== undefined) {
301
+ if ((0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)((0, service_relocation_runtime_1.serviceRelocationAuthorityApplicationPayload)(snapshot.payload))
302
+ ?.activationRecovery !== undefined) {
305
303
  return true;
306
304
  }
307
- return snapshot.allocation.state === 'active'
308
- && snapshot.allocation.objectKind === 'actor'
309
- && (0, actors_1.decodeActorAuthorityIdentity)(snapshot.payload, snapshot.objectGeneration) !== undefined;
305
+ return (snapshot.allocation.state === 'active' &&
306
+ snapshot.allocation.objectKind === 'actor' &&
307
+ (0, actors_1.decodeActorAuthorityIdentity)(snapshot.payload, snapshot.objectGeneration) !== undefined);
310
308
  }
311
309
  function pendingInstanceActivation(snapshot) {
312
310
  const allocation = snapshot.allocation;
313
311
  const projection = snapshot.pendingCreation;
314
312
  const decoded = (0, service_authority_payload_codec_1.decodeServiceInstanceAuthorityPayload)(snapshot.payload);
315
- if (allocation.state !== 'reserved'
316
- || allocation.objectKind !== 'instance_spot'
317
- || projection === undefined
318
- || decoded?.state !== 'coldActivating'
319
- || decoded.stableType !== allocation.stableType
320
- || decoded.ownerId !== snapshot.ownerId
321
- || decoded.ownerLeaseGeneration !== snapshot.ownerLeaseGeneration
322
- || decoded.ownerMeshName !== allocation.descriptor.meshName
323
- || decoded.ownerNodeGeneration !== allocation.descriptorLifecycleGeneration
324
- || !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, allocation.descriptor.rid)) {
313
+ if (allocation.state !== 'reserved' ||
314
+ allocation.objectKind !== 'instance_spot' ||
315
+ projection === undefined ||
316
+ decoded?.state !== 'coldActivating' ||
317
+ decoded.stableType !== allocation.stableType ||
318
+ decoded.ownerId !== snapshot.ownerId ||
319
+ decoded.ownerLeaseGeneration !== snapshot.ownerLeaseGeneration ||
320
+ decoded.ownerMeshName !== allocation.descriptor.meshName ||
321
+ decoded.ownerNodeGeneration !== allocation.descriptorLifecycleGeneration ||
322
+ !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, allocation.descriptor.rid)) {
325
323
  return undefined;
326
324
  }
327
325
  return {
@@ -349,17 +347,17 @@ function pendingInstanceActivation(snapshot) {
349
347
  function authorityRoute(snapshot) {
350
348
  const allocation = snapshot.allocation;
351
349
  const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)((0, service_relocation_runtime_1.serviceRelocationAuthorityApplicationPayload)(snapshot.payload));
352
- if (allocation.state !== 'active'
353
- || allocation.objectKind === 'actor'
354
- || allocation.descriptor.meshName.length === 0
355
- || decoded === undefined
356
- || decoded.kind !== allocation.objectKind
357
- || decoded.stableType !== allocation.stableType
358
- || decoded.ownerId !== snapshot.ownerId
359
- || decoded.ownerLeaseGeneration !== snapshot.ownerLeaseGeneration
360
- || decoded.ownerMeshName !== allocation.descriptor.meshName
361
- || decoded.ownerNodeGeneration !== allocation.descriptorLifecycleGeneration
362
- || !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, allocation.descriptor.rid)) {
350
+ if (allocation.state !== 'active' ||
351
+ allocation.objectKind === 'actor' ||
352
+ allocation.descriptor.meshName.length === 0 ||
353
+ decoded === undefined ||
354
+ decoded.kind !== allocation.objectKind ||
355
+ decoded.stableType !== allocation.stableType ||
356
+ decoded.ownerId !== snapshot.ownerId ||
357
+ decoded.ownerLeaseGeneration !== snapshot.ownerLeaseGeneration ||
358
+ decoded.ownerMeshName !== allocation.descriptor.meshName ||
359
+ decoded.ownerNodeGeneration !== allocation.descriptorLifecycleGeneration ||
360
+ !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, allocation.descriptor.rid)) {
363
361
  return undefined;
364
362
  }
365
363
  const spotId = decoded.spotId;
@@ -393,28 +391,27 @@ function authorityRoute(snapshot) {
393
391
  };
394
392
  }
395
393
  function authorityRouteKey(route) {
396
- return `${route.meshName}\0${route.spotRoute.spot.spotId}\0`
397
- + `${route.spotRoute.spot.generation}`;
394
+ return (`${route.meshName}\0${route.spotRoute.spot.spotId}\0` + `${route.spotRoute.spot.generation}`);
398
395
  }
399
396
  function sameAppliedRoute(left, right) {
400
397
  if (right === undefined)
401
398
  return false;
402
- return left.kind === right.kind
403
- && left.stableType === right.stableType
404
- && left.meshName === right.meshName
405
- && left.instanceRoute.targetNodeRid === right.instanceRoute.targetNodeRid
406
- && left.instanceRoute.targetNodeGeneration === right.instanceRoute.targetNodeGeneration
407
- && left.instanceRoute.authorityOwnerGeneration === right.instanceRoute.authorityOwnerGeneration
408
- && left.instanceRoute.storeVersion === right.instanceRoute.storeVersion;
399
+ return (left.kind === right.kind &&
400
+ left.stableType === right.stableType &&
401
+ left.meshName === right.meshName &&
402
+ left.instanceRoute.targetNodeRid === right.instanceRoute.targetNodeRid &&
403
+ left.instanceRoute.targetNodeGeneration === right.instanceRoute.targetNodeGeneration &&
404
+ left.instanceRoute.authorityOwnerGeneration === right.instanceRoute.authorityOwnerGeneration &&
405
+ left.instanceRoute.storeVersion === right.instanceRoute.storeVersion);
409
406
  }
410
407
  function asStatefulAuthorityRouteSink(node) {
411
408
  const candidate = node;
412
- return typeof candidate.rememberSpotRoute === 'function'
413
- && typeof candidate.forgetSpotRoute === 'function'
414
- && typeof candidate.registerInstanceIntent === 'function'
415
- && typeof candidate.forgetInstanceIntent === 'function'
416
- && typeof candidate.recoverInstanceActivation === 'function'
417
- && typeof candidate.completeRecoveredInstanceActivation === 'function'
409
+ return typeof candidate.rememberSpotRoute === 'function' &&
410
+ typeof candidate.forgetSpotRoute === 'function' &&
411
+ typeof candidate.registerInstanceIntent === 'function' &&
412
+ typeof candidate.forgetInstanceIntent === 'function' &&
413
+ typeof candidate.recoverInstanceActivation === 'function' &&
414
+ typeof candidate.completeRecoveredInstanceActivation === 'function'
418
415
  ? candidate
419
416
  : undefined;
420
417
  }