@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
@@ -1,9 +1,4 @@
1
- import type {
2
- ActorRef,
3
- RoutingId,
4
- ZLinkActor,
5
- ZLinkMessage
6
- } from '../../contracts';
1
+ import type { ActorRef, RoutingId, ZLinkActor, ZLinkMessage } from '../../contracts';
7
2
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
8
3
  import type { Type } from '../../contracts/Common/CoreTypes';
9
4
  import {
@@ -45,7 +40,8 @@ export interface ZLinkActorRuntimeOptionsFactoryOptions {
45
40
  readonly messageFlow?: () =>
46
41
  import('../diagnostics/message-flow').ZLinkMessageFlowTracer | undefined;
47
42
  readonly routeTransport: ZLinkActorRoutedJoinTransport;
48
- readonly streamBindingRuntime: ZLinkStreamActorLifecyclePort & ZLinkNativeFallbackBoundSessionPort;
43
+ readonly streamBindingRuntime: ZLinkStreamActorLifecyclePort &
44
+ ZLinkNativeFallbackBoundSessionPort;
49
45
  readonly providerResolver?: ZLinkProviderResolver;
50
46
  readonly spotManager: () => DefaultZLinkSpotManager | undefined;
51
47
  readonly actorManager: () => DefaultZLinkActorManager | undefined;
@@ -73,9 +69,7 @@ export interface ZLinkActorRuntimeOptionsFactoryOptions {
73
69
  * positive route cache must not bridge the two incarnations.
74
70
  */
75
71
  readonly invalidateActorRoute: (actorId: string) => void;
76
- readonly publishActorAuthority: NonNullable<
77
- ZLinkActorManagerOptions['publishActorAuthority']
78
- >;
72
+ readonly publishActorAuthority: NonNullable<ZLinkActorManagerOptions['publishActorAuthority']>;
79
73
  readonly reportPostCommitError: (error: unknown) => void;
80
74
  readonly reportBoundSessionSendError: (error: unknown) => void;
81
75
  readonly actorHandoff: ZLinkActorHandoffCoordinator;
@@ -133,7 +127,7 @@ export class ZLinkActorRuntimeOptionsFactory {
133
127
  postCommitErrorReporter: this.options.reportPostCommitError,
134
128
  sourceTransfer: this.options.actorTransferRuntime,
135
129
  actorJoinRelocation: this.options.actorJoinRelocation,
136
- entrySpotIdProvider: meshName => {
130
+ entrySpotIdProvider: (meshName) => {
137
131
  const resolvedMeshName = meshName ?? this.options.primaryMeshName();
138
132
  return resolvedMeshName === undefined
139
133
  ? undefined
@@ -153,62 +147,67 @@ export class ZLinkActorRuntimeOptionsFactory {
153
147
  nativeActorNodeProvider: this.options.primaryMeshNodeOrUndefined,
154
148
  nativeActorCompletionTableProvider: this.options.primaryMeshCompletions,
155
149
  locationLifecycle: this.options.locationLifecycle(),
156
- boundSessionFactory: (actorId) => new ZLinkNativeFallbackBoundSession({
157
- runtime: this.options.streamBindingRuntime,
158
- routedTransport: this.options.routeTransport,
159
- actorRefProvider: () => {
160
- const state = this.options.actorManager()?.getState(actorId);
161
- const actorRef = state?.nativeActorRef;
162
- const meshName = state?.meshName
163
- ?? (state?.actorType === undefined
150
+ boundSessionFactory: (actorId) =>
151
+ new ZLinkNativeFallbackBoundSession({
152
+ runtime: this.options.streamBindingRuntime,
153
+ routedTransport: this.options.routeTransport,
154
+ actorRefProvider: () => {
155
+ const state = this.options.actorManager()?.getState(actorId);
156
+ const actorRef = state?.nativeActorRef;
157
+ const meshName =
158
+ state?.meshName ??
159
+ (state?.actorType === undefined
160
+ ? undefined
161
+ : this.options.actorMeshName(state.actorType));
162
+ const objectGeneration =
163
+ actorRef?.generation ??
164
+ (actorRef as unknown as { readonly objectGeneration?: bigint } | undefined)
165
+ ?.objectGeneration;
166
+ return actorRef === undefined || objectGeneration === undefined
164
167
  ? undefined
165
- : this.options.actorMeshName(state.actorType));
166
- const objectGeneration = actorRef?.generation
167
- ?? (actorRef as unknown as { readonly objectGeneration?: bigint } | undefined)
168
- ?.objectGeneration;
169
- return actorRef === undefined || objectGeneration === undefined
170
- ? undefined
171
- : {
172
- actorId: actorRef.actorId,
173
- objectGeneration,
174
- meshName: meshName ?? this.options.primaryMeshName() ?? '',
175
- nodeRid: actorRef.nodeRid,
176
- ownershipGeneration: state?.locationGeneration,
177
- ownerLeaseGeneration: state?.ownerLeaseGeneration,
178
- bindingGeneration: state?.boundSessionBindingGeneration
179
- } as ActorRef;
180
- },
181
- nativeActorNodeProvider: () => {
182
- const state = this.options.actorManager()?.getState(actorId);
183
- const meshName = state?.meshName
184
- ?? (state?.actorType === undefined
185
- ? undefined
186
- : this.options.actorMeshName(state.actorType));
187
- const node = meshName === undefined
188
- ? this.options.primaryMeshNodeOrUndefined()
189
- : this.options.meshNode(meshName);
190
- const completions = meshName === undefined
191
- ? this.options.primaryMeshCompletions()
192
- : this.options.meshCompletions(meshName);
193
- return node === undefined
194
- ? undefined
195
- : meshActorSessionNodeAdapter(node, completions);
196
- },
197
- localActorProvider: () => this.options.actorManager()?.getState(actorId)?.actor !== undefined,
198
- remoteBoundSessionTargetProvider: () => {
199
- const state = this.options.actorManager()?.getState(actorId);
200
- return preferredRemoteBoundSessionTarget(
201
- state?.remoteBoundSessionTarget,
202
- state?.boundSessionTransferTarget
203
- );
204
- },
205
- remoteActorPacketTargetProvider: () => this.options.actorPacketTargetForState(actorId),
206
- requestTimeoutMs: this.options.registration.requestTimeoutMs,
207
- actorId,
208
- onSend: this.options.traceBoundSessionSend,
209
- reportError: this.options.reportBoundSessionSendError,
210
- flowCreationEnabled: this.options.flowCreationEnabled
211
- }),
168
+ : ({
169
+ actorId: actorRef.actorId,
170
+ objectGeneration,
171
+ meshName: meshName ?? this.options.primaryMeshName() ?? '',
172
+ nodeRid: actorRef.nodeRid,
173
+ ownershipGeneration: state?.locationGeneration,
174
+ ownerLeaseGeneration: state?.ownerLeaseGeneration,
175
+ bindingGeneration: state?.boundSessionBindingGeneration
176
+ } as ActorRef);
177
+ },
178
+ nativeActorNodeProvider: () => {
179
+ const state = this.options.actorManager()?.getState(actorId);
180
+ const meshName =
181
+ state?.meshName ??
182
+ (state?.actorType === undefined
183
+ ? undefined
184
+ : this.options.actorMeshName(state.actorType));
185
+ const node =
186
+ meshName === undefined
187
+ ? this.options.primaryMeshNodeOrUndefined()
188
+ : this.options.meshNode(meshName);
189
+ const completions =
190
+ meshName === undefined
191
+ ? this.options.primaryMeshCompletions()
192
+ : this.options.meshCompletions(meshName);
193
+ return node === undefined ? undefined : meshActorSessionNodeAdapter(node, completions);
194
+ },
195
+ localActorProvider: () =>
196
+ this.options.actorManager()?.getState(actorId)?.actor !== undefined,
197
+ remoteBoundSessionTargetProvider: () => {
198
+ const state = this.options.actorManager()?.getState(actorId);
199
+ return preferredRemoteBoundSessionTarget(
200
+ state?.remoteBoundSessionTarget,
201
+ state?.boundSessionTransferTarget
202
+ );
203
+ },
204
+ remoteActorPacketTargetProvider: () => this.options.actorPacketTargetForState(actorId),
205
+ requestTimeoutMs: this.options.registration.requestTimeoutMs,
206
+ actorId,
207
+ onSend: this.options.traceBoundSessionSend,
208
+ reportError: this.options.reportBoundSessionSendError,
209
+ flowCreationEnabled: this.options.flowCreationEnabled
210
+ }),
212
211
  actorCreatedNodeRidProvider: () => {
213
212
  const node = this.options.primaryMeshNodeOrUndefined();
214
213
  return node === undefined ? undefined : String(node.status().routingId);
@@ -223,7 +222,8 @@ export class ZLinkActorRuntimeOptionsFactory {
223
222
  },
224
223
  actorDestroyedCleanup: (actorId) => {
225
224
  this.options.invalidateActorRoute(actorId);
226
- const actorRef = this.options.actorManager()?.getState(actorId)?.nativeActorRef as ActorRef | undefined;
225
+ const actorRef = this.options.actorManager()?.getState(actorId)?.nativeActorRef as
226
+ ActorRef | undefined;
227
227
  if (actorRef !== undefined) {
228
228
  this.options.rememberDestroyedActorRef(actorId, actorRef);
229
229
  }
@@ -240,27 +240,28 @@ export class ZLinkActorRuntimeOptionsFactory {
240
240
  completionTableProvider: this.options.meshCompletions,
241
241
  locationResolver: () => locationResolver,
242
242
  routeTransport: this.options.routeTransport,
243
- transportDeliveryGate: () => this.options.providerResolver?.get?.(
244
- ZLINK_INTERNAL_ACTOR_TRANSPORT_DELIVERY_GATE as unknown as
245
- Type<ZLinkInternalActorTransportDeliveryGate>
246
- ),
243
+ transportDeliveryGate: () =>
244
+ this.options.providerResolver?.get?.(
245
+ ZLINK_INTERNAL_ACTOR_TRANSPORT_DELIVERY_GATE as unknown as Type<ZLinkInternalActorTransportDeliveryGate>
246
+ ),
247
247
  messageSerializers: this.options.registration.messageSerializers,
248
248
  defaultRequestTimeoutMs: this.options.registration.requestTimeoutMs,
249
- staleActorRefReporter: (_meshName, actorId) => this.options.actorHandoff.recordStaleFailure(actorId),
249
+ staleActorRefReporter: (_meshName, actorId) =>
250
+ this.options.actorHandoff.recordStaleFailure(actorId),
250
251
  staleActorRefPredicate: (meshName, actor) =>
251
- this.actorBelongsToMesh(meshName, actor.actorId)
252
- && this.options.actorHandoff.isKnownStale(actor),
252
+ this.actorBelongsToMesh(meshName, actor.actorId) &&
253
+ this.options.actorHandoff.isKnownStale(actor),
253
254
  handoffCapture: (meshName, actorId, parts, returnResponse, actor, deadlineUnixMs) =>
254
- this.actorBelongsToMesh(meshName, actorId)
255
- && !this.options.actorHandoff.isProvisional(actorId)
255
+ this.actorBelongsToMesh(meshName, actorId) &&
256
+ !this.options.actorHandoff.isProvisional(actorId)
256
257
  ? this.options.actorHandoff.capture(
257
- actorId,
258
- parts,
259
- returnResponse,
260
- undefined,
261
- actor,
262
- deadlineUnixMs
263
- )
258
+ actorId,
259
+ parts,
260
+ returnResponse,
261
+ undefined,
262
+ actor,
263
+ deadlineUnixMs
264
+ )
264
265
  : undefined,
265
266
  sendErrorReporter: this.options.reportPostCommitError
266
267
  };
@@ -272,11 +273,12 @@ export class ZLinkActorRuntimeOptionsFactory {
272
273
  return this.options.actorMeshName(actorType) === meshName;
273
274
  }
274
275
  const actorMeshes = [...this.options.registration.spotNodes.entries()]
275
- .filter(([, node]) => node.actorFactories instanceof Map
276
- ? node.actorFactories.size > 0
277
- : Object.keys(node.actorFactories ?? {}).length > 0)
276
+ .filter(([, node]) =>
277
+ node.actorFactories instanceof Map
278
+ ? node.actorFactories.size > 0
279
+ : Object.keys(node.actorFactories ?? {}).length > 0
280
+ )
278
281
  .map(([name]) => name);
279
282
  return actorMeshes.length === 1 && actorMeshes[0] === meshName;
280
283
  }
281
-
282
284
  }
@@ -4,10 +4,7 @@ import {
4
4
  type ActorTransferControlPayload
5
5
  } from '../foundation/service-runtime-contracts';
6
6
  import type { ServiceActorRef } from '../foundation/service-stateful-registry';
7
- import type {
8
- ActorRef,
9
- RoutingId
10
- } from '../../contracts';
7
+ import type { ActorRef, RoutingId } from '../../contracts';
11
8
  import type { ZLinkActorLocation } from '../../contracts/Locations/Rows';
12
9
  import type { ZLinkActorLocationStore } from '../locations/internal-store-contracts';
13
10
  import type {
@@ -16,8 +13,7 @@ import type {
16
13
  } from '../../contracts/Locations/ActorTransfer';
17
14
  import { toFrameworkActorRef } from '../actors';
18
15
 
19
- export type ZLinkActorTransferAuthorityStore =
20
- ZLinkActorTransferStore & ZLinkActorLocationStore;
16
+ export type ZLinkActorTransferAuthorityStore = ZLinkActorTransferStore & ZLinkActorLocationStore;
21
17
 
22
18
  export interface ZLinkActorTransferAuthorityRuntimeOptions {
23
19
  readonly store: () => ZLinkActorTransferAuthorityStore | undefined;
@@ -52,8 +48,9 @@ export class ZLinkActorTransferAuthorityRuntime {
52
48
  const transferId = transferIdString(control.transferId.high, control.transferId.low);
53
49
 
54
50
  if (
55
- control.role === ActorTransferRole.Target
56
- && (control.phase === ActorTransferPhase.Preparing || control.phase === ActorTransferPhase.Fenced)
51
+ control.role === ActorTransferRole.Target &&
52
+ (control.phase === ActorTransferPhase.Preparing ||
53
+ control.phase === ActorTransferPhase.Fenced)
57
54
  ) {
58
55
  await this.prepare(
59
56
  store,
@@ -97,23 +94,25 @@ export class ZLinkActorTransferAuthorityRuntime {
97
94
  }
98
95
  const target = toFrameworkActorRef(nativeTarget as never, meshName);
99
96
  validateTarget(location, target, membershipEpoch, transferId);
100
- const result = await store.prepareActorTransfer({
101
- meshName,
102
- actorId,
103
- transferId,
104
- source: location.actorRef,
105
- target,
106
- expectedActorGeneration: location.actorRef.objectGeneration,
107
- expectedMembershipEpoch: location.membershipEpoch,
108
- participants: new Set<RoutingId>([
109
- location.actorRef.nodeRid,
110
- target.nodeRid
111
- ]),
112
- recoveryOwnerId: ownerId,
113
- recoveryLeaseTtlMs: this.options.recoveryLeaseTtlMs
114
- }, signal);
97
+ const result = await store.prepareActorTransfer(
98
+ {
99
+ meshName,
100
+ actorId,
101
+ transferId,
102
+ source: location.actorRef,
103
+ target,
104
+ expectedActorGeneration: location.actorRef.objectGeneration,
105
+ expectedMembershipEpoch: location.membershipEpoch,
106
+ participants: new Set<RoutingId>([location.actorRef.nodeRid, target.nodeRid]),
107
+ recoveryOwnerId: ownerId,
108
+ recoveryLeaseTtlMs: this.options.recoveryLeaseTtlMs
109
+ },
110
+ signal
111
+ );
115
112
  if (result.status !== 'stored') {
116
- throw new Error(`Actor transfer '${transferId}' prepare was rejected with status '${result.status}'.`);
113
+ throw new Error(
114
+ `Actor transfer '${transferId}' prepare was rejected with status '${result.status}'.`
115
+ );
117
116
  }
118
117
  }
119
118
 
@@ -146,21 +145,26 @@ export class ZLinkActorTransferAuthorityRuntime {
146
145
  signal
147
146
  );
148
147
  if (takeover.status !== 'stored' || takeover.record === undefined) {
149
- throw new Error(`Actor transfer '${transferId}' recovery takeover failed with status '${takeover.status}'.`);
148
+ throw new Error(
149
+ `Actor transfer '${transferId}' recovery takeover failed with status '${takeover.status}'.`
150
+ );
150
151
  }
151
152
  record = takeover.record;
152
153
  }
153
154
 
154
155
  if (targetState === 'activated' && record.state === 'prepared') {
155
- record = requireStored(await store.commitActorTransfer(
156
- meshName, actorId, transferId, ownerId, signal
157
- ), transferId, 'commit');
156
+ record = requireStored(
157
+ await store.commitActorTransfer(meshName, actorId, transferId, ownerId, signal),
158
+ transferId,
159
+ 'commit'
160
+ );
158
161
  }
159
- const result = targetState === 'committed'
160
- ? await store.commitActorTransfer(meshName, actorId, transferId, ownerId, signal)
161
- : targetState === 'activated'
162
- ? await store.activateActorTransfer(meshName, actorId, transferId, ownerId, signal)
163
- : await store.abortActorTransfer(meshName, actorId, transferId, ownerId, signal);
162
+ const result =
163
+ targetState === 'committed'
164
+ ? await store.commitActorTransfer(meshName, actorId, transferId, ownerId, signal)
165
+ : targetState === 'activated'
166
+ ? await store.activateActorTransfer(meshName, actorId, transferId, ownerId, signal)
167
+ : await store.abortActorTransfer(meshName, actorId, transferId, ownerId, signal);
164
168
  requireStored(result, transferId, targetState);
165
169
  }
166
170
 
@@ -188,11 +192,13 @@ function validateTarget(
188
192
  transferId: string
189
193
  ): void {
190
194
  if (
191
- target.actorId !== location.actorId
192
- || target.objectGeneration !== location.actorRef.objectGeneration
193
- || membershipEpoch !== location.membershipEpoch
195
+ target.actorId !== location.actorId ||
196
+ target.objectGeneration !== location.actorRef.objectGeneration ||
197
+ membershipEpoch !== location.membershipEpoch
194
198
  ) {
195
- throw new Error(`Actor transfer '${transferId}' does not match the source Actor generation and membership epoch.`);
199
+ throw new Error(
200
+ `Actor transfer '${transferId}' does not match the source Actor generation and membership epoch.`
201
+ );
196
202
  }
197
203
  }
198
204
 
@@ -202,7 +208,9 @@ function requireStored(
202
208
  operation: string
203
209
  ): ZLinkActorTransferRecord {
204
210
  if (result.status !== 'stored' || result.record === undefined) {
205
- throw new Error(`Actor transfer '${transferId}' ${operation} failed with status '${result.status}'.`);
211
+ throw new Error(
212
+ `Actor transfer '${transferId}' ${operation} failed with status '${result.status}'.`
213
+ );
206
214
  }
207
215
  return result.record;
208
216
  }