@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
@@ -11,20 +11,14 @@ import type {
11
11
  ZLinkActorCreateCall,
12
12
  ZLinkActorCreateResult,
13
13
  ZLinkActorGetOrCreateCall,
14
- ZLinkActorManager,
15
- } from '../../contracts';
16
- import {
17
- ZLinkEncodedPayload,
18
- ZLinkFrameworkException
14
+ ZLinkActorManager
19
15
  } from '../../contracts';
16
+ import { ZLinkEncodedPayload, ZLinkFrameworkException } from '../../contracts';
20
17
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
21
18
  import { ZLinkMessage } from '../../contracts';
22
19
  import { ZLinkConfigurationException } from '../configuration';
23
20
  import { throwIfAborted } from '../abort';
24
- import type {
25
- ZLinkBackendActorRef,
26
- ZLinkBackendSpotNode
27
- } from '../backend/contracts';
21
+ import type { ZLinkBackendActorRef, ZLinkBackendSpotNode } from '../backend/contracts';
28
22
  import { closeMeshCompletion } from '../backend/mesh-completion-table';
29
23
  import {
30
24
  captureZLinkSpotSerialTurn,
@@ -39,20 +33,10 @@ export {
39
33
  type ZLinkActorClientOptions
40
34
  } from './actor-client';
41
35
 
42
- import {
43
- encodeFrameworkPayloadMessage
44
- } from '../messaging/payload-codec';
45
- export {
46
- DefaultZLinkActorContext,
47
- ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME
48
- } from './actor-context';
49
- import {
50
- ZLinkActorCreationCoordinator,
51
- type ZLinkActorCreateRequest
52
- } from './actor-creation';
53
- export {
54
- ZLinkActorSerialExecutor
55
- } from './actor-mailbox';
36
+ import { encodeFrameworkPayloadMessage } from '../messaging/payload-codec';
37
+ export { DefaultZLinkActorContext, ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME } from './actor-context';
38
+ import { ZLinkActorCreationCoordinator, type ZLinkActorCreateRequest } from './actor-creation';
39
+ export { ZLinkActorSerialExecutor } from './actor-mailbox';
56
40
  export {
57
41
  DEFAULT_MESSAGE_FOLLOW_DURATION_MS,
58
42
  ZLinkActorHandoffCoordinator,
@@ -164,12 +148,15 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
164
148
 
165
149
  constructor(private readonly options: ZLinkActorManagerOptions) {
166
150
  this.creation = new ZLinkActorCreationCoordinator(options);
167
- this.transferredActorRollback = new ZLinkTransferredActorRollbackCoordinator(this.states, options);
151
+ this.transferredActorRollback = new ZLinkTransferredActorRollbackCoordinator(
152
+ this.states,
153
+ options
154
+ );
168
155
  }
169
156
 
170
157
  create(actorId: string, actorType: string): ZLinkActorCreateCall {
171
- return new ZLinkActorCreateCallRuntime(
172
- (options, signal) => this.submitCreate(actorId, actorType, true, options, signal)
158
+ return new ZLinkActorCreateCallRuntime((options, signal) =>
159
+ this.submitCreate(actorId, actorType, true, options, signal)
173
160
  );
174
161
  }
175
162
 
@@ -184,8 +171,8 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
184
171
  }
185
172
 
186
173
  getOrCreate(actorId: string, actorType: string): ZLinkActorGetOrCreateCall {
187
- return new ZLinkActorGetOrCreateCallRuntime(
188
- (options, signal) => this.submitCreate(actorId, actorType, false, options, signal)
174
+ return new ZLinkActorGetOrCreateCallRuntime((options, signal) =>
175
+ this.submitCreate(actorId, actorType, false, options, signal)
189
176
  );
190
177
  }
191
178
 
@@ -227,10 +214,7 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
227
214
  if (node === undefined || completions === undefined) return false;
228
215
  const destroyTask = state.getOrStartDestroy(entryNodeRid, async (nativeRef) => {
229
216
  if (nativeRef !== undefined) {
230
- const completion = await completions.submit(
231
- () => node.destroyActor(nativeRef, 0),
232
- signal
233
- );
217
+ const completion = await completions.submit(() => node.destroyActor(nativeRef, 0), signal);
234
218
  try {
235
219
  if (completion.terminalResult !== 0 || completion.failureErrno !== 0) {
236
220
  // Classify the (terminal, fine) pair via the shared translator
@@ -284,10 +268,8 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
284
268
  await disposeLifecycleHandlers(state.actor);
285
269
  }
286
270
  state.prepareForRemoteReentry();
287
- const operation = state.getOrStartCreation(
288
- actorType,
289
- false,
290
- () => this.creation.materializeTransferredActor(
271
+ const operation = state.getOrStartCreation(actorType, false, () =>
272
+ this.creation.materializeTransferredActor(
291
273
  actorId,
292
274
  actorType,
293
275
  state,
@@ -339,13 +321,7 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
339
321
  requireActorMeshName(meshName);
340
322
  this.ensureActorTypeBelongsToMesh(meshName, actorType);
341
323
  if (this.options.placementCreate !== undefined) {
342
- return await this.options.placementCreate(
343
- actorId,
344
- actorType,
345
- failIfExists,
346
- options,
347
- signal
348
- );
324
+ return await this.options.placementCreate(actorId, actorType, failIfExists, options, signal);
349
325
  }
350
326
  const localState = this.states.get(actorId);
351
327
  if (localState?.actorType !== undefined && localState.actorType !== actorType) {
@@ -467,15 +443,8 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
467
443
  this.rememberActorMeshFromType(actorId, actorType);
468
444
  const state = this.getOrCreateState(actorId);
469
445
  state.setNativeActorRef(nativeRef);
470
- const operation = state.getOrStartCreation(
471
- actorType,
472
- false,
473
- () => this.creation.materializeTransferredActor(
474
- actorId,
475
- actorType,
476
- state,
477
- undefined
478
- )
446
+ const operation = state.getOrStartCreation(actorType, false, () =>
447
+ this.creation.materializeTransferredActor(actorId, actorType, state, undefined)
479
448
  );
480
449
  const result = await operation.task;
481
450
  if (result.status !== 'created') {
@@ -487,12 +456,7 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
487
456
  if (registry === undefined) {
488
457
  throw new ZLinkConfigurationException('Actor transfer registry is not configured.');
489
458
  }
490
- await registry.restore(
491
- transfer.adapterKey,
492
- actor,
493
- transfer.state,
494
- signal
495
- );
459
+ await registry.restore(transfer.adapterKey, actor, transfer.state, signal);
496
460
  }
497
461
  state.setLocationGeneration(authorityOwnerGeneration);
498
462
  state.setJoinedSpot(spotId, undefined, membershipEpoch);
@@ -559,7 +523,11 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
559
523
  this.relocationStaged.delete(actorId);
560
524
  }
561
525
 
562
- async getOrCreateActor(actorId: string, actorType: string, signal?: AbortSignal): Promise<ZLinkActor> {
526
+ async getOrCreateActor(
527
+ actorId: string,
528
+ actorType: string,
529
+ signal?: AbortSignal
530
+ ): Promise<ZLinkActor> {
563
531
  this.rememberActorMeshFromType(actorId, actorType);
564
532
  const result = await this.createOrGet(actorId, actorType, false, undefined, signal);
565
533
  return requireCreatedActor(result, actorId);
@@ -632,8 +600,8 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
632
600
  }
633
601
 
634
602
  activeActorCount(meshName: string): number {
635
- return [...this.states.values()].filter((state) =>
636
- state.meshName === meshName && state.actor !== undefined
603
+ return [...this.states.values()].filter(
604
+ (state) => state.meshName === meshName && state.actor !== undefined
637
605
  ).length;
638
606
  }
639
607
 
@@ -656,9 +624,8 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
656
624
  );
657
625
  }
658
626
  const destroyTask = state.getOrStartDestroy(entryNodeRid, async (actorRef) => {
659
- const destroyedActorRef = actorRef === undefined
660
- ? undefined
661
- : toFrameworkActorRef(actorRef, state.meshName ?? '');
627
+ const destroyedActorRef =
628
+ actorRef === undefined ? undefined : toFrameworkActorRef(actorRef, state.meshName ?? '');
662
629
  if (actorRef !== undefined) {
663
630
  await node.destroyActor(actorRef, 0, destroySignal);
664
631
  state.markNativeActorDestroyed(actorRef);
@@ -720,17 +687,8 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
720
687
  if (request !== undefined && createRequest.nativeRequest !== undefined) {
721
688
  state.setCreateRequestPayload(createRequest.nativeRequest.data());
722
689
  }
723
- const operation = state.getOrStartCreation(
724
- actorType,
725
- failIfExists,
726
- () => this.creation.createActor(
727
- actorId,
728
- actorType,
729
- state,
730
- createRequest,
731
- claimLocation,
732
- signal
733
- )
690
+ const operation = state.getOrStartCreation(actorType, failIfExists, () =>
691
+ this.creation.createActor(actorId, actorType, state, createRequest, claimLocation, signal)
734
692
  );
735
693
  if (operation.created) {
736
694
  void operation.task.then(
@@ -839,11 +797,9 @@ export class DefaultZLinkActorManager implements ZLinkActorManager {
839
797
  actorId: state.actorId,
840
798
  objectGeneration: 1n,
841
799
  meshName: state.meshName ?? '',
842
- nodeRid: this.options.actorCreatedNodeRidProvider?.()
843
- ?? 'local'
800
+ nodeRid: this.options.actorCreatedNodeRidProvider?.() ?? 'local'
844
801
  };
845
802
  }
846
-
847
803
  }
848
804
 
849
805
  interface ZLinkActorCreateCallOptions {
@@ -911,11 +867,14 @@ class ZLinkActorCreateCallRuntime implements ZLinkActorCreateCall {
911
867
  private executeOnce(signal?: AbortSignal): Promise<ZLinkActorCreateResult> {
912
868
  this.requireMutable();
913
869
  this.submitted = true;
914
- return this.execute({
915
- ...(this.meshNameValue === undefined ? {} : { meshName: this.meshNameValue }),
916
- ...(this.requestConfigured ? { request: this.requestValue } : {}),
917
- timeoutMs: this.timeoutMsValue
918
- }, signal);
870
+ return this.execute(
871
+ {
872
+ ...(this.meshNameValue === undefined ? {} : { meshName: this.meshNameValue }),
873
+ ...(this.requestConfigured ? { request: this.requestValue } : {}),
874
+ timeoutMs: this.timeoutMsValue
875
+ },
876
+ signal
877
+ );
919
878
  }
920
879
 
921
880
  private requireMutable(): void {
@@ -993,8 +952,6 @@ async function waitForCreationRetry(signal?: AbortSignal): Promise<void> {
993
952
 
994
953
  function requireActorMeshName(meshName: string): void {
995
954
  if (meshName.length === 0 || meshName !== meshName.trim()) {
996
- throw new ZLinkConfigurationException(
997
- 'Actor RouteMesh name must not be empty or padded.'
998
- );
955
+ throw new ZLinkConfigurationException('Actor RouteMesh name must not be empty or padded.');
999
956
  }
1000
957
  }
@@ -24,12 +24,14 @@ export class ZLinkPostCommitActorBinder {
24
24
  const existing = this.tasks.get(actorRef.actorId);
25
25
  if (existing !== undefined) return existing;
26
26
  let task!: Promise<void>;
27
- task = this.run(actorRef.actorId)
28
- .finally(async () => await this.lane.run(() => {
29
- if (this.tasks.get(actorRef.actorId) === task) {
30
- this.tasks.delete(actorRef.actorId);
31
- }
32
- }));
27
+ task = this.run(actorRef.actorId).finally(
28
+ async () =>
29
+ await this.lane.run(() => {
30
+ if (this.tasks.get(actorRef.actorId) === task) {
31
+ this.tasks.delete(actorRef.actorId);
32
+ }
33
+ })
34
+ );
33
35
  this.tasks.set(actorRef.actorId, task);
34
36
  return task;
35
37
  }
@@ -51,15 +53,13 @@ export class ZLinkPostCommitActorBinder {
51
53
  retryDelay.reset();
52
54
  } catch (error) {
53
55
  this.options.reportError?.(error);
54
- if (!await retryDelay.wait(signal)) return;
56
+ if (!(await retryDelay.wait(signal))) return;
55
57
  }
56
58
  }
57
59
  }
58
60
 
59
61
  private signal(): AbortSignal | undefined {
60
- return typeof this.options.signal === 'function'
61
- ? this.options.signal()
62
- : this.options.signal;
62
+ return typeof this.options.signal === 'function' ? this.options.signal() : this.options.signal;
63
63
  }
64
64
 
65
65
  private completeBindCore(actorId: string, actorRef: ActorRef): boolean {
@@ -31,15 +31,17 @@ export class ZLinkPostCommitActorLocation {
31
31
  membershipEpoch: bigint,
32
32
  ownerNodeGeneration: bigint
33
33
  ): void {
34
- this.enqueue(actorId, () => this.options.lifecycle.notifyActorJoinedSpot(
35
- actorType,
36
- actorId,
37
- meshName,
38
- spotId,
39
- spotGeneration,
40
- membershipEpoch,
41
- ownerNodeGeneration
42
- ));
34
+ this.enqueue(actorId, () =>
35
+ this.options.lifecycle.notifyActorJoinedSpot(
36
+ actorType,
37
+ actorId,
38
+ meshName,
39
+ spotId,
40
+ spotGeneration,
41
+ membershipEpoch,
42
+ ownerNodeGeneration
43
+ )
44
+ );
43
45
  }
44
46
 
45
47
  leftEventually(
@@ -50,14 +52,16 @@ export class ZLinkPostCommitActorLocation {
50
52
  membershipEpoch: bigint,
51
53
  ownerNodeGeneration: bigint
52
54
  ): void {
53
- this.enqueue(actorId, () => this.options.lifecycle.notifyActorLeftSpot(
54
- actorType,
55
- actorId,
56
- entrySpotId,
57
- entrySpotGeneration,
58
- membershipEpoch,
59
- ownerNodeGeneration
60
- ));
55
+ this.enqueue(actorId, () =>
56
+ this.options.lifecycle.notifyActorLeftSpot(
57
+ actorType,
58
+ actorId,
59
+ entrySpotId,
60
+ entrySpotGeneration,
61
+ membershipEpoch,
62
+ ownerNodeGeneration
63
+ )
64
+ );
61
65
  }
62
66
 
63
67
  private enqueue(actorId: string, operation: () => Promise<void>): void {
@@ -69,11 +73,14 @@ export class ZLinkPostCommitActorLocation {
69
73
  return;
70
74
  }
71
75
  let task!: Promise<void>;
72
- task = this.run(actorId).finally(async () => await this.lane.run(() => {
73
- if (this.tasks.get(actorId) === task) {
74
- this.tasks.delete(actorId);
75
- }
76
- }));
76
+ task = this.run(actorId).finally(
77
+ async () =>
78
+ await this.lane.run(() => {
79
+ if (this.tasks.get(actorId) === task) {
80
+ this.tasks.delete(actorId);
81
+ }
82
+ })
83
+ );
77
84
  this.tasks.set(actorId, task);
78
85
  }
79
86
 
@@ -92,7 +99,7 @@ export class ZLinkPostCommitActorLocation {
92
99
  retryDelay.reset();
93
100
  } catch (error) {
94
101
  this.options.reportError?.(error);
95
- if (!await retryDelay.wait(this.options.signal)) {
102
+ if (!(await retryDelay.wait(this.options.signal))) {
96
103
  return;
97
104
  }
98
105
  }
@@ -1,4 +1,7 @@
1
- import { ZLinkFrameworkInternalErrorKind, createInternalFrameworkException } from '../framework-errors-internal';
1
+ import {
2
+ ZLinkFrameworkInternalErrorKind,
3
+ createInternalFrameworkException
4
+ } from '../framework-errors-internal';
2
5
  import type {
3
6
  Type,
4
7
  ZLinkActor,
@@ -10,10 +13,7 @@ import type {
10
13
  ZLinkSpotActorSendHandler
11
14
  } from '../../contracts';
12
15
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
13
- import {
14
- ZLinkFrameworkException,
15
- ZLinkMessageMetadataEmpty
16
- } from '../../contracts';
16
+ import { ZLinkFrameworkException, ZLinkMessageMetadataEmpty } from '../../contracts';
17
17
  import type { Message } from '../../contracts/Common/Message';
18
18
  import { ZLinkConfigurationException } from '../configuration';
19
19
  import { readZLinkDecoratorMetadata } from '../../contracts/Handlers/Attributes';
@@ -40,8 +40,9 @@ export class ZLinkSpotActorHandlerRegistryRuntime implements ZLinkActorHandlerRe
40
40
  private readonly packets = new Map<string, ZLinkActorPacketDescriptor>();
41
41
 
42
42
  addHandler<THandler>(handlerType: Type<THandler>, packetName?: string): this {
43
- const metadata = readZLinkDecoratorMetadata(handlerType).find((entry) =>
44
- entry.kind === 'spotActorSend' || entry.kind === 'spotActorRequest');
43
+ const metadata = readZLinkDecoratorMetadata(handlerType).find(
44
+ (entry) => entry.kind === 'spotActorSend' || entry.kind === 'spotActorRequest'
45
+ );
45
46
  const resolvedPacketName = packetName ?? metadata?.packetName;
46
47
  if (metadata === undefined || resolvedPacketName === undefined) {
47
48
  throw new ZLinkConfigurationException(
@@ -49,9 +50,10 @@ export class ZLinkSpotActorHandlerRegistryRuntime implements ZLinkActorHandlerRe
49
50
  );
50
51
  }
51
52
  return this.addPacket({
52
- kind: metadata.kind === 'spotActorSend'
53
- ? ZLinkActorPacketKind.Send
54
- : ZLinkActorPacketKind.Request,
53
+ kind:
54
+ metadata.kind === 'spotActorSend'
55
+ ? ZLinkActorPacketKind.Send
56
+ : ZLinkActorPacketKind.Request,
55
57
  packetName: resolvedPacketName,
56
58
  actorType: Object as unknown as Type<ZLinkActor>,
57
59
  handlerType
@@ -79,23 +81,24 @@ export class ZLinkSpotActorHandlerRegistryRuntime implements ZLinkActorHandlerRe
79
81
  if (exact !== undefined) {
80
82
  return exact;
81
83
  }
82
- const wildcard = this.packets.get(packetKey(kind, Object as unknown as Type<ZLinkActor>, packetName));
84
+ const wildcard = this.packets.get(
85
+ packetKey(kind, Object as unknown as Type<ZLinkActor>, packetName)
86
+ );
83
87
  if (wildcard !== undefined) {
84
88
  return wildcard;
85
89
  }
86
90
 
87
91
  for (const descriptor of this.packets.values()) {
88
92
  if (
89
- descriptor.kind === kind
90
- && descriptor.packetName === packetName
91
- && actor instanceof descriptor.actorType
93
+ descriptor.kind === kind &&
94
+ descriptor.packetName === packetName &&
95
+ actor instanceof descriptor.actorType
92
96
  ) {
93
97
  return descriptor;
94
98
  }
95
99
  }
96
100
  return undefined;
97
101
  }
98
-
99
102
  }
100
103
 
101
104
  export interface ZLinkSpotActorDispatcherOptions {
@@ -138,17 +141,19 @@ export class ZLinkSpotActorDispatcher {
138
141
  const descriptor = this.requirePacket(ZLinkActorPacketKind.Send, actor, packetName);
139
142
  const message = decode();
140
143
  this.options.onHandlerStart?.();
141
- await this.invokeHandler<
142
- ZLinkSpotActorSendHandler<ZLinkSpot, ZLinkActor, TMessage>,
143
- void
144
- >(actor, descriptor, (handler) =>
145
- runActorHandlerWithDeferredJoins(() =>
146
- handler.handle(
147
- this.options.spot,
148
- actor,
149
- this.createContext(packetName, context),
150
- message
151
- )));
144
+ await this.invokeHandler<ZLinkSpotActorSendHandler<ZLinkSpot, ZLinkActor, TMessage>, void>(
145
+ actor,
146
+ descriptor,
147
+ (handler) =>
148
+ runActorHandlerWithDeferredJoins(() =>
149
+ handler.handle(
150
+ this.options.spot,
151
+ actor,
152
+ this.createContext(packetName, context),
153
+ message
154
+ )
155
+ )
156
+ );
152
157
  });
153
158
  }
154
159
 
@@ -187,8 +192,14 @@ export class ZLinkSpotActorDispatcher {
187
192
  packetName: string,
188
193
  request: TRequest,
189
194
  context: Partial<ZLinkMessageContext> = {},
190
- afterReply: (reply: TReply, options: ZLinkSpotActorReplyOptionsSnapshot) => Promise<TResult> | TResult,
191
- beforeReply?: (reply: TReply, options: ZLinkSpotActorReplyOptionsSnapshot) => Promise<void> | void
195
+ afterReply: (
196
+ reply: TReply,
197
+ options: ZLinkSpotActorReplyOptionsSnapshot
198
+ ) => Promise<TResult> | TResult,
199
+ beforeReply?: (
200
+ reply: TReply,
201
+ options: ZLinkSpotActorReplyOptionsSnapshot
202
+ ) => Promise<void> | void
192
203
  ): Promise<TResult> {
193
204
  return this.dispatchRequestThenDecoded(
194
205
  actor,
@@ -205,8 +216,14 @@ export class ZLinkSpotActorDispatcher {
205
216
  packetName: string,
206
217
  decode: () => TRequest,
207
218
  context: Partial<ZLinkMessageContext> = {},
208
- afterReply: (reply: TReply, options: ZLinkSpotActorReplyOptionsSnapshot) => Promise<TResult> | TResult,
209
- beforeReply?: (reply: TReply, options: ZLinkSpotActorReplyOptionsSnapshot) => Promise<void> | void
219
+ afterReply: (
220
+ reply: TReply,
221
+ options: ZLinkSpotActorReplyOptionsSnapshot
222
+ ) => Promise<TResult> | TResult,
223
+ beforeReply?: (
224
+ reply: TReply,
225
+ options: ZLinkSpotActorReplyOptionsSnapshot
226
+ ) => Promise<void> | void
210
227
  ): Promise<TResult> {
211
228
  return this.execute(async () => {
212
229
  const descriptor = this.requirePacket(ZLinkActorPacketKind.Request, actor, packetName);
@@ -217,23 +234,27 @@ export class ZLinkSpotActorDispatcher {
217
234
  TResult
218
235
  >(actor, descriptor, (handler) =>
219
236
  runActorHandlerWithDeferredJoins(
220
- () => handler.handle(
221
- this.options.spot,
222
- actor,
223
- this.createContext(packetName, context),
224
- request
225
- ),
226
- (reply) => afterReply(reply, {
227
- metadata: new Map<string, string>(),
228
- compressPayload: false
229
- }),
237
+ () =>
238
+ handler.handle(
239
+ this.options.spot,
240
+ actor,
241
+ this.createContext(packetName, context),
242
+ request
243
+ ),
244
+ (reply) =>
245
+ afterReply(reply, {
246
+ metadata: new Map<string, string>(),
247
+ compressPayload: false
248
+ }),
230
249
  beforeReply === undefined
231
250
  ? undefined
232
- : (reply) => beforeReply(reply, {
233
- metadata: new Map<string, string>(),
234
- compressPayload: false
235
- })
236
- ));
251
+ : (reply) =>
252
+ beforeReply(reply, {
253
+ metadata: new Map<string, string>(),
254
+ compressPayload: false
255
+ })
256
+ )
257
+ );
237
258
  });
238
259
  }
239
260
 
@@ -268,10 +289,7 @@ export class ZLinkSpotActorDispatcher {
268
289
  });
269
290
  }
270
291
 
271
- commitActorJoin(
272
- actor: ZLinkActor,
273
- commit: () => Promise<void> | void
274
- ): Promise<void> {
292
+ commitActorJoin(actor: ZLinkActor, commit: () => Promise<void> | void): Promise<void> {
275
293
  return this.execute(async () => {
276
294
  await commit();
277
295
  await this.options.spot.onJoinedActor(actor);
@@ -297,7 +315,9 @@ export class ZLinkSpotActorDispatcher {
297
315
  ): ZLinkActorPacketDescriptor {
298
316
  const descriptor = this.options.registry.resolvePacket(kind, actor, packetName);
299
317
  if (descriptor === undefined) {
300
- throw actorDispatchHandlerNotFound(`No Spot actor ${kind} handler is registered for '${packetName}'.`);
318
+ throw actorDispatchHandlerNotFound(
319
+ `No Spot actor ${kind} handler is registered for '${packetName}'.`
320
+ );
301
321
  }
302
322
  this.ensureActorType(descriptor, actor);
303
323
  return descriptor;
@@ -329,8 +349,9 @@ export class ZLinkSpotActorDispatcher {
329
349
  }
330
350
 
331
351
  private execute<T>(operation: () => Promise<T> | T): Promise<T> {
332
- const pending = this.options.serial?.execute(operation, this.options.serialWorkOptions)
333
- ?? Promise.resolve().then(operation);
352
+ const pending =
353
+ this.options.serial?.execute(operation, this.options.serialWorkOptions) ??
354
+ Promise.resolve().then(operation);
334
355
  this.options.onAdmitted?.();
335
356
  return pending;
336
357
  }
@@ -350,7 +371,11 @@ export class ZLinkSpotActorDispatcher {
350
371
  }
351
372
  }
352
373
 
353
- function packetKey(kind: ZLinkActorPacketKind, actorType: Type<ZLinkActor>, packetName: string): string {
374
+ function packetKey(
375
+ kind: ZLinkActorPacketKind,
376
+ actorType: Type<ZLinkActor>,
377
+ packetName: string
378
+ ): string {
354
379
  return `${kind}:${actorType.name}:${packetName}`;
355
380
  }
356
381
 
@@ -1,8 +1,5 @@
1
1
  import type { ZLinkActor } from '../../contracts';
2
- import type {
3
- ZLinkBackendActorRef,
4
- ZLinkBackendMeshNode
5
- } from '../backend/contracts';
2
+ import type { ZLinkBackendActorRef, ZLinkBackendMeshNode } from '../backend/contracts';
6
3
  import { closeMeshCompletion } from '../backend';
7
4
  import { RequestResult } from '../backend/runtime-values';
8
5
  import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
@@ -60,8 +57,9 @@ export class ZLinkTransferredActorRollbackCoordinator {
60
57
  if (this.tasks.has(actor.context.actorId)) {
61
58
  return;
62
59
  }
63
- const task = this.retry(actor, state, node, actorRef)
64
- .finally(() => this.tasks.delete(actor.context.actorId));
60
+ const task = this.retry(actor, state, node, actorRef).finally(() =>
61
+ this.tasks.delete(actor.context.actorId)
62
+ );
65
63
  this.tasks.set(actor.context.actorId, task);
66
64
  }
67
65
 
@@ -72,8 +70,11 @@ export class ZLinkTransferredActorRollbackCoordinator {
72
70
  actorRef: ZLinkBackendActorRef | undefined
73
71
  ): Promise<void> {
74
72
  const retryDelay = new ZLinkActorRetryDelay();
75
- while (this.states.get(actor.context.actorId) === state && this.options.shutdownSignal?.aborted !== true) {
76
- if (!await retryDelay.wait(this.options.shutdownSignal)) return;
73
+ while (
74
+ this.states.get(actor.context.actorId) === state &&
75
+ this.options.shutdownSignal?.aborted !== true
76
+ ) {
77
+ if (!(await retryDelay.wait(this.options.shutdownSignal))) return;
77
78
  try {
78
79
  if (node !== undefined && actorRef !== undefined) {
79
80
  await this.destroyNativeActor(node, actorRef);
@@ -95,11 +96,15 @@ export class ZLinkTransferredActorRollbackCoordinator {
95
96
  if (completions === undefined) {
96
97
  throw new Error('Actor rollback requires a running MeshNode completion table.');
97
98
  }
98
- const completion = await completions.submit(() => node.destroyActor({
99
- nodeRid: actorRef.nodeRid,
100
- actorId: actorRef.actorId,
101
- generation: actorRef.generation
102
- }), signal);
99
+ const completion = await completions.submit(
100
+ () =>
101
+ node.destroyActor({
102
+ nodeRid: actorRef.nodeRid,
103
+ actorId: actorRef.actorId,
104
+ generation: actorRef.generation
105
+ }),
106
+ signal
107
+ );
103
108
  try {
104
109
  if (completion.terminalResult !== RequestResult.Ok) {
105
110
  throw new Error(