@zlink-systems/framework 0.21.0 → 0.22.0

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