@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
@@ -29,7 +29,7 @@ class ZLinkActorSerialExecutor {
29
29
  admitDurablePrefix(records) {
30
30
  // No await occurs in this map: the whole durable prefix is appended in
31
31
  // one event-loop turn before later ingress can observe the released hold.
32
- return records.map(record => this.scheduler.admitDurablePrefix(() => record.operation(child => (0, actor_execution_context_1.runZLinkActorExecution)(this.actorId, this.sourceSpotId, child)), record.workOptions, undefined, record.preparation));
32
+ return records.map((record) => this.scheduler.admitDurablePrefix(() => record.operation((child) => (0, actor_execution_context_1.runZLinkActorExecution)(this.actorId, this.sourceSpotId, child)), record.workOptions, undefined, record.preparation));
33
33
  }
34
34
  close() {
35
35
  return this.scheduler.close();
@@ -58,8 +58,9 @@ function decodeActorMessageFollowContext(value) {
58
58
  const checksum = input.payloadChecksumSha256;
59
59
  if (typeof request !== 'boolean')
60
60
  throw invalidContext('request must be boolean');
61
- if (!Number.isSafeInteger(hopCount) || hopCount < 0
62
- || hopCount > exports.ZLINK_MESSAGE_FOLLOW_MAX_HOPS) {
61
+ if (!Number.isSafeInteger(hopCount) ||
62
+ hopCount < 0 ||
63
+ hopCount > exports.ZLINK_MESSAGE_FOLLOW_MAX_HOPS) {
63
64
  throw invalidContext('hopCount is outside 0..8');
64
65
  }
65
66
  if (typeof checksum !== 'string' || !/^[0-9a-f]{64}$/.test(checksum)) {
@@ -74,16 +75,16 @@ function decodeActorMessageFollowContext(value) {
74
75
  if (!request && replyRouteId !== undefined) {
75
76
  throw invalidContext('one-way context must not contain replyRouteId');
76
77
  }
77
- if (!Array.isArray(input.visitedOwners)
78
- || input.visitedOwners.some(item => typeof item !== 'string' || item.length === 0)
79
- || input.visitedOwners.length !== hopCount + 1) {
78
+ if (!Array.isArray(input.visitedOwners) ||
79
+ input.visitedOwners.some((item) => typeof item !== 'string' || item.length === 0) ||
80
+ input.visitedOwners.length !== hopCount + 1) {
80
81
  throw invalidContext('visitedOwners does not match hopCount');
81
82
  }
82
83
  const visitedOwners = [...input.visitedOwners];
83
84
  const targetOwnerKeys = messageFollowOwnerFenceCompatibleKeys(targetOwner);
84
- if (new Set(visitedOwners).size !== visitedOwners.length
85
- || !targetOwnerKeys.includes(visitedOwners[visitedOwners.length - 1])
86
- || visitedOwners.slice(0, -1).some(key => targetOwnerKeys.includes(key))) {
85
+ if (new Set(visitedOwners).size !== visitedOwners.length ||
86
+ !targetOwnerKeys.includes(visitedOwners[visitedOwners.length - 1]) ||
87
+ visitedOwners.slice(0, -1).some((key) => targetOwnerKeys.includes(key))) {
87
88
  throw invalidContext('visited owner fence chain is invalid');
88
89
  }
89
90
  return freezeContext({
@@ -108,8 +109,7 @@ function advanceActorMessageFollowContext(context, sourceOwner, targetOwner) {
108
109
  throw invalidContext('Message Follow reached the 8-hop limit');
109
110
  }
110
111
  const targetKey = messageFollowOwnerFenceKey(targetOwner);
111
- if (messageFollowOwnerFenceCompatibleKeys(targetOwner)
112
- .some(key => context.visitedOwners.includes(key))) {
112
+ if (messageFollowOwnerFenceCompatibleKeys(targetOwner).some((key) => context.visitedOwners.includes(key))) {
113
113
  throw invalidContext('Message Follow owner loop was detected');
114
114
  }
115
115
  return freezeContext({
@@ -127,8 +127,7 @@ function attachActorMessageFollowContext(actorRef, context) {
127
127
  });
128
128
  }
129
129
  function actorMessageFollowContext(actorRef) {
130
- return actorRef
131
- ?.__zlinkMessageFollowContext;
130
+ return actorRef?.__zlinkMessageFollowContext;
132
131
  }
133
132
  function actorMessageFollowPayloadChecksum(parts) {
134
133
  const hash = (0, node_crypto_1.createHash)('sha256');
@@ -198,8 +197,7 @@ function freezeContext(context) {
198
197
  });
199
198
  }
200
199
  function requireId(value, name) {
201
- if (typeof value !== 'string' || !/^[0-9a-f]{32}$/.test(value)
202
- || /^0+$/.test(value)) {
200
+ if (typeof value !== 'string' || !/^[0-9a-f]{32}$/.test(value) || /^0+$/.test(value)) {
203
201
  throw invalidContext(`${name} must be a nonzero 128-bit lowercase hex value`);
204
202
  }
205
203
  return value;
@@ -222,8 +220,10 @@ function requirePositiveBigInt(value, name) {
222
220
  function optionalNodeRidHex(value, name) {
223
221
  if (value === undefined)
224
222
  return undefined;
225
- if (typeof value !== 'string' || value.length === 0 || value.length % 2 !== 0
226
- || !/^[0-9a-f]+$/.test(value)) {
223
+ if (typeof value !== 'string' ||
224
+ value.length === 0 ||
225
+ value.length % 2 !== 0 ||
226
+ !/^[0-9a-f]+$/.test(value)) {
227
227
  throw invalidContext(`${name} must be non-empty lowercase hexadecimal bytes`);
228
228
  }
229
229
  return value;
@@ -231,18 +231,21 @@ function optionalNodeRidHex(value, name) {
231
231
  function messageFollowOwnerFenceCompatibleKeys(fence) {
232
232
  const canonical = messageFollowOwnerFenceKey(fence);
233
233
  const textHex = (0, routing_id_1.encodeRoutingIdStorageHex)(fence.nodeRid);
234
- if (fence.nodeRid.includes('\u0000')
235
- || fence.ownerId.includes('\u0000')
236
- || (fence.nodeRidHex !== undefined && fence.nodeRidHex !== textHex)) {
234
+ if (fence.nodeRid.includes('\u0000') ||
235
+ fence.ownerId.includes('\u0000') ||
236
+ (fence.nodeRidHex !== undefined && fence.nodeRidHex !== textHex)) {
237
237
  return [canonical];
238
238
  }
239
- return [canonical, [
239
+ return [
240
+ canonical,
241
+ [
240
242
  fence.nodeRid,
241
243
  fence.nodeGeneration,
242
244
  fence.ownerId,
243
245
  fence.ownerLeaseGeneration,
244
246
  fence.authorityOwnerGeneration
245
- ].join('\u0000')];
247
+ ].join('\u0000')
248
+ ];
246
249
  }
247
250
  function optionalPositiveSafeInteger(value, name) {
248
251
  if (value === undefined)
@@ -40,9 +40,7 @@ function encodeRemoteActorPacketRelayPayload(input) {
40
40
  boundSessionTargetNodeRid: input.boundSessionTargetNodeRid,
41
41
  boundSessionSpotId: input.boundSessionSpotId,
42
42
  actorNodeRid: input.actorRef === undefined ? undefined : String(input.actorRef.nodeRid),
43
- actorNodeRidHex: input.actorRef === undefined
44
- ? undefined
45
- : (0, routing_id_1.routingIdWireHex)(input.actorRef.nodeRid),
43
+ actorNodeRidHex: input.actorRef === undefined ? undefined : (0, routing_id_1.routingIdWireHex)(input.actorRef.nodeRid),
46
44
  actorGeneration: input.actorRef?.objectGeneration.toString(),
47
45
  bindingActorNodeRid: input.bindingActorRef === undefined ? undefined : String(input.bindingActorRef.nodeRid),
48
46
  bindingActorNodeRidHex: input.bindingActorRef === undefined
@@ -47,7 +47,9 @@ class ZLinkActorNativeJoinCoordinator {
47
47
  async joinSpot(actor, state, spotId, request, timeoutMs, signal, completionOperationId) {
48
48
  (0, abort_1.throwIfAborted)(signal);
49
49
  const node = this.node();
50
- const actorRef = state.nativeActorRef ?? (0, actor_native_lookup_1.lookupNativeActorRef)(node, actor.context.actorId) ?? node.createActor(actor.context.actorId);
50
+ const actorRef = state.nativeActorRef ??
51
+ (0, actor_native_lookup_1.lookupNativeActorRef)(node, actor.context.actorId) ??
52
+ node.createActor(actor.context.actorId);
51
53
  state.setNativeActorRef(actorRef);
52
54
  let target;
53
55
  target = await this.options.spotRouteResolver?.resolve(spotId, signal);
@@ -58,21 +60,24 @@ class ZLinkActorNativeJoinCoordinator {
58
60
  async joinEntrySpot(actor, state, nodeRid, request, timeoutMs, signal, completionOperationId) {
59
61
  (0, abort_1.throwIfAborted)(signal);
60
62
  const node = this.node();
61
- const actorRef = state.nativeActorRef ?? (0, actor_native_lookup_1.lookupNativeActorRef)(node, actor.context.actorId) ?? node.createActor(actor.context.actorId);
63
+ const actorRef = state.nativeActorRef ??
64
+ (0, actor_native_lookup_1.lookupNativeActorRef)(node, actor.context.actorId) ??
65
+ node.createActor(actor.context.actorId);
62
66
  state.setNativeActorRef(actorRef);
63
67
  const meshName = state.meshName ?? actor.context.meshName;
64
68
  const entrySpotId = this.options.entrySpotIdProvider?.(meshName);
65
69
  let resolvedTarget;
66
- resolvedTarget = entrySpotId === undefined
67
- ? undefined
68
- : await this.options.spotRouteResolver?.resolve(entrySpotId, signal);
70
+ resolvedTarget =
71
+ entrySpotId === undefined
72
+ ? undefined
73
+ : await this.options.spotRouteResolver?.resolve(entrySpotId, signal);
69
74
  // The caller may carry the Entry node from the previous membership.
70
75
  // Entry placement can change while the Actor is in a User Spot, so the
71
76
  // current authority route is the source of truth whenever it is available.
72
- const selectedNodeRid = resolvedTarget?.targetNodeRid
73
- ?? nodeRid
74
- ?? state.entryNodeRid
75
- ?? (0, actor_runtime_state_1.toFrameworkRoutingId)(node.status().routingId);
77
+ const selectedNodeRid = resolvedTarget?.targetNodeRid ??
78
+ nodeRid ??
79
+ state.entryNodeRid ??
80
+ (0, actor_runtime_state_1.toFrameworkRoutingId)(node.status().routingId);
76
81
  const target = resolvedTarget;
77
82
  const result = await this.localJoin.joinEntrySpot(node, actor, state, actorRef, selectedNodeRid, target, request, timeoutMs ?? this.options.actorTransferTimeoutMs, signal, completionOperationId);
78
83
  return this.withDeferredJoinFinalizer(actor, state, target, result, completionOperationId);
@@ -94,18 +99,16 @@ class ZLinkActorNativeJoinCoordinator {
94
99
  };
95
100
  }
96
101
  node() {
97
- return typeof this.options.node === 'function'
98
- ? this.options.node()
99
- : this.options.node;
102
+ return typeof this.options.node === 'function' ? this.options.node() : this.options.node;
100
103
  }
101
104
  }
102
105
  exports.ZLinkActorNativeJoinCoordinator = ZLinkActorNativeJoinCoordinator;
103
106
  function installResolvedSpotRoute(node, target) {
104
- if (target?.targetSpotGeneration === undefined
105
- || target.targetNodeGeneration === undefined
106
- || target.authorityOwnerGeneration === undefined
107
- || target.ownerLeaseGeneration === undefined
108
- || target.authorityStoreVersion === undefined) {
107
+ if (target?.targetSpotGeneration === undefined ||
108
+ target.targetNodeGeneration === undefined ||
109
+ target.authorityOwnerGeneration === undefined ||
110
+ target.ownerLeaseGeneration === undefined ||
111
+ target.authorityStoreVersion === undefined) {
109
112
  return;
110
113
  }
111
114
  node.rememberSpotRoute?.({
@@ -19,13 +19,12 @@ function decodeRemoteActorSourceLeaveTerminal(payload) {
19
19
  catch {
20
20
  return undefined;
21
21
  }
22
- if (typeof decoded !== 'object'
23
- || decoded === null
24
- || decoded.packetName
25
- !== exports.ZLINK_REMOTE_ACTOR_SOURCE_LEAVE_TERMINAL
26
- || typeof decoded.transferId !== 'string'
27
- || typeof decoded.actorId !== 'string'
28
- || typeof decoded.succeeded !== 'boolean') {
22
+ if (typeof decoded !== 'object' ||
23
+ decoded === null ||
24
+ decoded.packetName !== exports.ZLINK_REMOTE_ACTOR_SOURCE_LEAVE_TERMINAL ||
25
+ typeof decoded.transferId !== 'string' ||
26
+ typeof decoded.actorId !== 'string' ||
27
+ typeof decoded.succeeded !== 'boolean') {
29
28
  return undefined;
30
29
  }
31
30
  return decoded;
@@ -15,12 +15,12 @@ const actor_native_lookup_1 = require("./actor-native-lookup");
15
15
  * service-wire relocation identity until command 44 releases the owner seal.
16
16
  */
17
17
  function mergeRemoteBoundSessionTarget(target, fallback) {
18
- if (fallback === undefined
19
- || fallback.routerChannelId !== target.routerChannelId
20
- || !(0, routing_id_1.routingIdsEqual)(fallback.targetNodeRid, target.targetNodeRid)
21
- || (!(0, routing_id_1.routingIdsEqual)(fallback.spotId, target.spotId)
22
- && !samePhysicalRemoteSession(fallback, target))
23
- || isSuccessorSessionBinding(fallback, target)) {
18
+ if (fallback === undefined ||
19
+ fallback.routerChannelId !== target.routerChannelId ||
20
+ !(0, routing_id_1.routingIdsEqual)(fallback.targetNodeRid, target.targetNodeRid) ||
21
+ (!(0, routing_id_1.routingIdsEqual)(fallback.spotId, target.spotId) &&
22
+ !samePhysicalRemoteSession(fallback, target)) ||
23
+ isSuccessorSessionBinding(fallback, target)) {
24
24
  return target;
25
25
  }
26
26
  const merged = {
@@ -58,51 +58,55 @@ function mergeRemoteBoundSessionTarget(target, fallback) {
58
58
  * session report for the STOP writeup.
59
59
  */
60
60
  function isSuccessorSessionBinding(fallback, target) {
61
- return (fallback.sessionNodeRid !== undefined
62
- && target.sessionNodeRid !== undefined
63
- && !(0, routing_id_1.routingIdsEqual)(fallback.sessionNodeRid, target.sessionNodeRid)) || (fallback.sessionRid !== undefined
64
- && target.sessionRid !== undefined
65
- && !(0, routing_id_1.routingIdsEqual)(fallback.sessionRid, target.sessionRid)) || (fallback.sessionOwnerNodeGeneration !== undefined
66
- && target.sessionOwnerNodeGeneration !== undefined
67
- && fallback.sessionOwnerNodeGeneration !== target.sessionOwnerNodeGeneration) || (fallback.sessionOwnerId !== undefined
68
- && target.sessionOwnerId !== undefined
69
- && fallback.sessionOwnerId !== target.sessionOwnerId) || (fallback.sessionOwnerLeaseGeneration !== undefined
70
- && target.sessionOwnerLeaseGeneration !== undefined
71
- && fallback.sessionOwnerLeaseGeneration !== target.sessionOwnerLeaseGeneration);
61
+ return ((fallback.sessionNodeRid !== undefined &&
62
+ target.sessionNodeRid !== undefined &&
63
+ !(0, routing_id_1.routingIdsEqual)(fallback.sessionNodeRid, target.sessionNodeRid)) ||
64
+ (fallback.sessionRid !== undefined &&
65
+ target.sessionRid !== undefined &&
66
+ !(0, routing_id_1.routingIdsEqual)(fallback.sessionRid, target.sessionRid)) ||
67
+ (fallback.sessionOwnerNodeGeneration !== undefined &&
68
+ target.sessionOwnerNodeGeneration !== undefined &&
69
+ fallback.sessionOwnerNodeGeneration !== target.sessionOwnerNodeGeneration) ||
70
+ (fallback.sessionOwnerId !== undefined &&
71
+ target.sessionOwnerId !== undefined &&
72
+ fallback.sessionOwnerId !== target.sessionOwnerId) ||
73
+ (fallback.sessionOwnerLeaseGeneration !== undefined &&
74
+ target.sessionOwnerLeaseGeneration !== undefined &&
75
+ fallback.sessionOwnerLeaseGeneration !== target.sessionOwnerLeaseGeneration));
72
76
  }
73
77
  function samePhysicalRemoteSession(left, right) {
74
- return left.sessionNodeRid !== undefined
75
- && right.sessionNodeRid !== undefined
76
- && left.sessionRid !== undefined
77
- && right.sessionRid !== undefined
78
- && (0, routing_id_1.routingIdsEqual)(left.sessionNodeRid, right.sessionNodeRid)
79
- && (0, routing_id_1.routingIdsEqual)(left.sessionRid, right.sessionRid);
78
+ return (left.sessionNodeRid !== undefined &&
79
+ right.sessionNodeRid !== undefined &&
80
+ left.sessionRid !== undefined &&
81
+ right.sessionRid !== undefined &&
82
+ (0, routing_id_1.routingIdsEqual)(left.sessionNodeRid, right.sessionNodeRid) &&
83
+ (0, routing_id_1.routingIdsEqual)(left.sessionRid, right.sessionRid));
80
84
  }
81
85
  function sameRemoteSessionOwnerLifecycle(left, right) {
82
- return left.sessionNodeRid !== undefined
83
- && right.sessionNodeRid !== undefined
84
- && left.sessionOwnerNodeGeneration !== undefined
85
- && right.sessionOwnerNodeGeneration !== undefined
86
- && left.sessionOwnerId !== undefined
87
- && right.sessionOwnerId !== undefined
88
- && left.sessionOwnerLeaseGeneration !== undefined
89
- && right.sessionOwnerLeaseGeneration !== undefined
90
- && (0, routing_id_1.routingIdsEqual)(left.sessionNodeRid, right.sessionNodeRid)
91
- && left.sessionOwnerNodeGeneration === right.sessionOwnerNodeGeneration
92
- && left.sessionOwnerId === right.sessionOwnerId
93
- && left.sessionOwnerLeaseGeneration === right.sessionOwnerLeaseGeneration;
86
+ return (left.sessionNodeRid !== undefined &&
87
+ right.sessionNodeRid !== undefined &&
88
+ left.sessionOwnerNodeGeneration !== undefined &&
89
+ right.sessionOwnerNodeGeneration !== undefined &&
90
+ left.sessionOwnerId !== undefined &&
91
+ right.sessionOwnerId !== undefined &&
92
+ left.sessionOwnerLeaseGeneration !== undefined &&
93
+ right.sessionOwnerLeaseGeneration !== undefined &&
94
+ (0, routing_id_1.routingIdsEqual)(left.sessionNodeRid, right.sessionNodeRid) &&
95
+ left.sessionOwnerNodeGeneration === right.sessionOwnerNodeGeneration &&
96
+ left.sessionOwnerId === right.sessionOwnerId &&
97
+ left.sessionOwnerLeaseGeneration === right.sessionOwnerLeaseGeneration);
94
98
  }
95
99
  function sameRemoteSessionOwner(left, right) {
96
- return left.sessionRid !== undefined
97
- && right.sessionRid !== undefined
98
- && (0, routing_id_1.routingIdsEqual)(left.sessionRid, right.sessionRid)
99
- && sameRemoteSessionOwnerLifecycle(left, right);
100
+ return (left.sessionRid !== undefined &&
101
+ right.sessionRid !== undefined &&
102
+ (0, routing_id_1.routingIdsEqual)(left.sessionRid, right.sessionRid) &&
103
+ sameRemoteSessionOwnerLifecycle(left, right));
100
104
  }
101
105
  function sameRemoteSessionBinding(left, right) {
102
- return sameRemoteSessionOwner(left, right)
103
- && left.bindingGeneration !== undefined
104
- && right.bindingGeneration !== undefined
105
- && left.bindingGeneration === right.bindingGeneration;
106
+ return (sameRemoteSessionOwner(left, right) &&
107
+ left.bindingGeneration !== undefined &&
108
+ right.bindingGeneration !== undefined &&
109
+ left.bindingGeneration === right.bindingGeneration);
106
110
  }
107
111
  /**
108
112
  * Selects the route that still carries the relocation fence when a Core
@@ -116,8 +120,7 @@ function preferredRemoteBoundSessionTarget(remote, transfer) {
116
120
  return transfer;
117
121
  }
118
122
  function hasRelocationFence(target) {
119
- return target.relocationSealId !== undefined
120
- || target.serviceWireRelocation !== undefined;
123
+ return target.relocationSealId !== undefined || target.serviceWireRelocation !== undefined;
121
124
  }
122
125
  class ZLinkActorRuntimeState {
123
126
  actorId;
@@ -251,7 +254,8 @@ class ZLinkActorRuntimeState {
251
254
  return this.destroyTask;
252
255
  }
253
256
  const actorRef = this.nativeActorRefValue;
254
- if (actorRef !== undefined && !(0, routing_id_1.routingIdsEqual)(toFrameworkRoutingId(actorRef.nodeRid), entryNodeRid)) {
257
+ if (actorRef !== undefined &&
258
+ !(0, routing_id_1.routingIdsEqual)(toFrameworkRoutingId(actorRef.nodeRid), entryNodeRid)) {
255
259
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor '${this.actorId}' is not owned by this Entry Spot.`);
256
260
  }
257
261
  const task = Promise.resolve().then(() => destroy(actorRef));
@@ -325,7 +329,8 @@ class ZLinkActorRuntimeState {
325
329
  ensureNativeActorRef(node, request) {
326
330
  if (this.nativeActorRefValue === undefined) {
327
331
  const existing = (0, actor_native_lookup_1.lookupNativeActorRef)(node, this.actorId);
328
- const native = existing ?? node.createActor(this.actorId, request === undefined ? undefined : Buffer.from(request.data()));
332
+ const native = existing ??
333
+ node.createActor(this.actorId, request === undefined ? undefined : Buffer.from(request.data()));
329
334
  this.nativeActorRefValue = {
330
335
  nodeRid: native.nodeRid,
331
336
  actorId: native.actorId,
@@ -358,12 +363,12 @@ class ZLinkActorRuntimeState {
358
363
  }
359
364
  /** @internal Installs one authority-confirmed binding inside its Actor owner turn. */
360
365
  installBoundSessionBinding(target) {
361
- if (target.sessionNodeRid === undefined
362
- || target.sessionRid === undefined
363
- || target.sessionOwnerNodeGeneration === undefined
364
- || target.sessionOwnerId === undefined
365
- || target.sessionOwnerLeaseGeneration === undefined
366
- || target.bindingGeneration === undefined) {
366
+ if (target.sessionNodeRid === undefined ||
367
+ target.sessionRid === undefined ||
368
+ target.sessionOwnerNodeGeneration === undefined ||
369
+ target.sessionOwnerId === undefined ||
370
+ target.sessionOwnerLeaseGeneration === undefined ||
371
+ target.bindingGeneration === undefined) {
367
372
  throw new TypeError('An installed bound Session target requires its complete binding identity.');
368
373
  }
369
374
  const current = preferredRemoteBoundSessionTarget(this.remoteBoundSessionTargetValue, this.boundSessionTransferTargetValue);
@@ -373,8 +378,8 @@ class ZLinkActorRuntimeState {
373
378
  // lifecycle's generation; a late equal/lower generation is stale.
374
379
  if (sameRemoteSessionOwner(current, target))
375
380
  return true;
376
- if (current.bindingGeneration !== undefined
377
- && current.bindingGeneration >= target.bindingGeneration)
381
+ if (current.bindingGeneration !== undefined &&
382
+ current.bindingGeneration >= target.bindingGeneration)
378
383
  return false;
379
384
  }
380
385
  const installed = mergeRemoteBoundSessionTarget(target, current);
@@ -390,27 +395,28 @@ class ZLinkActorRuntimeState {
390
395
  }
391
396
  /** @internal Removes only the exact authority-confirmed Session incarnation. */
392
397
  retireBoundSessionBinding(target) {
393
- if (target.sessionNodeRid === undefined
394
- || target.sessionRid === undefined
395
- || target.sessionOwnerNodeGeneration === undefined
396
- || target.sessionOwnerId === undefined
397
- || target.sessionOwnerLeaseGeneration === undefined
398
- || target.bindingGeneration === undefined) {
398
+ if (target.sessionNodeRid === undefined ||
399
+ target.sessionRid === undefined ||
400
+ target.sessionOwnerNodeGeneration === undefined ||
401
+ target.sessionOwnerId === undefined ||
402
+ target.sessionOwnerLeaseGeneration === undefined ||
403
+ target.bindingGeneration === undefined) {
399
404
  throw new TypeError('A retired bound Session target requires its complete binding identity.');
400
405
  }
401
406
  let retired = false;
402
- if (this.remoteBoundSessionTargetValue !== undefined
403
- && sameRemoteSessionBinding(this.remoteBoundSessionTargetValue, target)) {
407
+ if (this.remoteBoundSessionTargetValue !== undefined &&
408
+ sameRemoteSessionBinding(this.remoteBoundSessionTargetValue, target)) {
404
409
  this.remoteBoundSessionTargetValue = undefined;
405
410
  retired = true;
406
411
  }
407
- if (this.boundSessionTransferTargetValue !== undefined
408
- && sameRemoteSessionBinding(this.boundSessionTransferTargetValue, target)) {
412
+ if (this.boundSessionTransferTargetValue !== undefined &&
413
+ sameRemoteSessionBinding(this.boundSessionTransferTargetValue, target)) {
409
414
  this.boundSessionTransferTargetValue = undefined;
410
415
  retired = true;
411
416
  }
412
417
  if (retired) {
413
- this.boundSessionBindingGenerationValue = preferredRemoteBoundSessionTarget(this.remoteBoundSessionTargetValue, this.boundSessionTransferTargetValue)?.bindingGeneration ?? 0n;
418
+ this.boundSessionBindingGenerationValue =
419
+ preferredRemoteBoundSessionTarget(this.remoteBoundSessionTargetValue, this.boundSessionTransferTargetValue)?.bindingGeneration ?? 0n;
414
420
  }
415
421
  return retired;
416
422
  }
@@ -419,26 +425,26 @@ class ZLinkActorRuntimeState {
419
425
  }
420
426
  setRemoteBoundSessionTarget(target) {
421
427
  const current = preferredRemoteBoundSessionTarget(this.remoteBoundSessionTargetValue, this.boundSessionTransferTargetValue);
422
- const merged = target === undefined
423
- ? undefined
424
- : mergeRemoteBoundSessionTarget(target, current);
428
+ const merged = target === undefined ? undefined : mergeRemoteBoundSessionTarget(target, current);
425
429
  const bindingGeneration = maxBindingGeneration(merged?.bindingGeneration, this.remoteBoundSessionTargetValue?.bindingGeneration, this.boundSessionBindingGenerationValue);
426
- this.remoteBoundSessionTargetValue = merged === undefined
427
- ? undefined
428
- : bindingGeneration === undefined
429
- ? merged
430
- : { ...merged, bindingGeneration };
430
+ this.remoteBoundSessionTargetValue =
431
+ merged === undefined
432
+ ? undefined
433
+ : bindingGeneration === undefined
434
+ ? merged
435
+ : { ...merged, bindingGeneration };
431
436
  }
432
437
  setBoundSessionTransferTarget(target) {
433
438
  const merged = target === undefined
434
439
  ? undefined
435
440
  : mergeRemoteBoundSessionTarget(target, this.boundSessionTransferTargetValue);
436
441
  const bindingGeneration = maxBindingGeneration(merged?.bindingGeneration, this.boundSessionTransferTargetValue?.bindingGeneration, this.boundSessionBindingGenerationValue);
437
- this.boundSessionTransferTargetValue = merged === undefined
438
- ? undefined
439
- : bindingGeneration === undefined
440
- ? merged
441
- : { ...merged, bindingGeneration };
442
+ this.boundSessionTransferTargetValue =
443
+ merged === undefined
444
+ ? undefined
445
+ : bindingGeneration === undefined
446
+ ? merged
447
+ : { ...merged, bindingGeneration };
442
448
  }
443
449
  setRemoteActorPacketTarget(target) {
444
450
  this.remoteActorPacketTargetValue = target;
@@ -487,8 +493,8 @@ class ZLinkActorRuntimeState {
487
493
  prepareForRemoteReentry() {
488
494
  if (this.remoteActorPacketTargetValue === undefined)
489
495
  return;
490
- const relocationTransferTarget = this.boundSessionTransferTargetValue !== undefined
491
- && hasRelocationFence(this.boundSessionTransferTargetValue)
496
+ const relocationTransferTarget = this.boundSessionTransferTargetValue !== undefined &&
497
+ hasRelocationFence(this.boundSessionTransferTargetValue)
492
498
  ? this.boundSessionTransferTargetValue
493
499
  : undefined;
494
500
  this.creationTask = undefined;
@@ -25,13 +25,11 @@ class ZLinkActorTransferRegistry {
25
25
  }
26
26
  async transferOut(actor, actorType, signal) {
27
27
  (0, abort_1.throwIfAborted)(signal);
28
- const adapterType = actorType === undefined
29
- ? undefined
30
- : this.byKey.get(actorType);
28
+ const adapterType = actorType === undefined ? undefined : this.byKey.get(actorType);
31
29
  if (adapterType === undefined) {
32
30
  return { state: emptyTransferState(this.messageSerializers) };
33
31
  }
34
- const adapter = await this.createAdapter(adapterType);
32
+ const adapter = (await this.createAdapter(adapterType));
35
33
  const state = await adapter.capture(actor, signal ?? new AbortController().signal);
36
34
  if (!(state instanceof Uint8Array)) {
37
35
  throw new Error(`Actor relocation adapter '${adapterType.name}' returned invalid state bytes.`);
@@ -50,7 +48,7 @@ class ZLinkActorTransferRegistry {
50
48
  if (adapterType === undefined) {
51
49
  throw new Error(`Actor relocation adapter for stable type '${adapterKey}' is not registered on the target node.`);
52
50
  }
53
- const adapter = await this.createAdapter(adapterType);
51
+ const adapter = (await this.createAdapter(adapterType));
54
52
  await adapter.restore(actor, state.toEncodedPayload().toBytes(), signal ?? new AbortController().signal);
55
53
  }
56
54
  async createAdapter(adapterType) {
@@ -32,10 +32,10 @@ function isRemoteBoundSessionFenceError(error) {
32
32
  if (error.code === exports.ZLINK_REMOTE_BOUND_SESSION_FENCE_NACK_CODE)
33
33
  return true;
34
34
  // Fallback for transports that only surface the session owner's message.
35
- return error.message.includes('did not match its command 42 Session seal')
36
- || error.message.includes('released Session seal cannot publish a different route')
37
- || error.message.includes('was fenced by its binding identity')
38
- || error.message.includes('session route seal abort was fenced');
35
+ return (error.message.includes('did not match its command 42 Session seal') ||
36
+ error.message.includes('released Session seal cannot publish a different route') ||
37
+ error.message.includes('was fenced by its binding identity') ||
38
+ error.message.includes('session route seal abort was fenced'));
39
39
  }
40
40
  /** Encodes a request/reply nack for the command 42/44/45 packet family. */
41
41
  function encodeRemoteBoundSessionNack(error) {
@@ -117,11 +117,16 @@ function optionalFlowOrigin(payload) {
117
117
  // internal wire deployed atomically with this repository, so the decoder
118
118
  // accepts only the spec spelling.
119
119
  switch (payload.flowOrigin) {
120
- case 'inbound': return 'Inbound';
121
- case 'timer': return 'Timer';
122
- case 'application': return 'Application';
123
- case 'lifecycle': return 'Lifecycle';
124
- default: return undefined;
120
+ case 'inbound':
121
+ return 'Inbound';
122
+ case 'timer':
123
+ return 'Timer';
124
+ case 'application':
125
+ return 'Application';
126
+ case 'lifecycle':
127
+ return 'Lifecycle';
128
+ default:
129
+ return undefined;
125
130
  }
126
131
  }
127
132
  function decodeRemoteBoundSessionResponsePayload(payload) {