@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
@@ -8,14 +8,8 @@ import type {
8
8
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
9
9
  import type { RoutingId } from '../../contracts';
10
10
  import type { ActorRef } from '../../contracts/Common/ActorRef';
11
- import type {
12
- ZLinkRemoteActorPacketTarget,
13
- ZLinkRemoteBoundSessionTarget
14
- } from '../actors';
15
- import type {
16
- ZLinkBackendReceived,
17
- ZLinkBackendSpot
18
- } from '../backend/contracts';
11
+ import type { ZLinkRemoteActorPacketTarget, ZLinkRemoteBoundSessionTarget } from '../actors';
12
+ import type { ZLinkBackendReceived, ZLinkBackendSpot } from '../backend/contracts';
19
13
  import type { ZLinkDispatchErrorReporter } from '../channels';
20
14
  import type { ZLinkChannelEnvelopeCodecRegistry } from '../channels/channel-envelope';
21
15
  import { decodeRemoteActorPacketRelay } from './spot-remote-route-codec';
@@ -79,7 +73,9 @@ interface ZLinkSpotRoutedFrameDispatchOptions {
79
73
  actorPacketTarget?: unknown,
80
74
  signal?: AbortSignal
81
75
  ) => Promise<void>;
82
- readonly actorPacketTargetProvider?: (actorId: string) => ZLinkRemoteActorPacketTarget | undefined;
76
+ readonly actorPacketTargetProvider?: (
77
+ actorId: string
78
+ ) => ZLinkRemoteActorPacketTarget | undefined;
83
79
  readonly bindRemoteSession?: (
84
80
  actor: ActorRef,
85
81
  sourceNodeRid: RoutingId,
@@ -148,7 +144,10 @@ export class ZLinkSpotRoutedFrameDispatch {
148
144
  }
149
145
  }
150
146
 
151
- async drain(received: ZLinkBackendReceived | undefined = undefined, retryDeadlineMs = performance.now()): Promise<void> {
147
+ async drain(
148
+ received: ZLinkBackendReceived | undefined = undefined,
149
+ retryDeadlineMs = performance.now()
150
+ ): Promise<void> {
152
151
  if (this.routeDraining) {
153
152
  if (received !== undefined) {
154
153
  try {
@@ -226,7 +225,10 @@ export class ZLinkSpotRoutedFrameDispatch {
226
225
  this.channelCodecs(),
227
226
  this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true
228
227
  );
229
- if (actorPacketRelay !== undefined && await this.actorPacketRelayDispatch.dispatch(received, actorPacketRelay)) {
228
+ if (
229
+ actorPacketRelay !== undefined &&
230
+ (await this.actorPacketRelayDispatch.dispatch(received, actorPacketRelay))
231
+ ) {
230
232
  return;
231
233
  }
232
234
  if (await this.routePacketDispatch.dispatch(received)) {
@@ -237,14 +239,15 @@ export class ZLinkSpotRoutedFrameDispatch {
237
239
  }
238
240
 
239
241
  function isRouteRecvRetryable(error: unknown): boolean {
240
- return typeof error === 'object' &&
242
+ return (
243
+ typeof error === 'object' &&
241
244
  error !== null &&
242
- [201, 202, 204].includes(Number((error as { result?: unknown }).result));
245
+ [201, 202, 204].includes(Number((error as { result?: unknown }).result))
246
+ );
243
247
  }
244
248
 
245
249
  function closeReceivedQuietly(received: ZLinkBackendReceived): void {
246
250
  try {
247
251
  received.close();
248
- } catch {
249
- }
252
+ } catch {}
250
253
  }
@@ -84,7 +84,7 @@ export class ZLinkRoutedSpotPacketDispatch {
84
84
  request: unknown,
85
85
  context: ZLinkRoutedSpotPacketContext
86
86
  ): Promise<TReply> {
87
- return await this.dispatch(spotId, packetName, () => request, context, true) as TReply;
87
+ return (await this.dispatch(spotId, packetName, () => request, context, true)) as TReply;
88
88
  }
89
89
 
90
90
  async requestEncoded<TReply>(
@@ -93,7 +93,7 @@ export class ZLinkRoutedSpotPacketDispatch {
93
93
  decodePayload: () => unknown,
94
94
  context: ZLinkRoutedSpotPacketContext
95
95
  ): Promise<TReply> {
96
- return await this.dispatch(spotId, packetName, decodePayload, context, true) as TReply;
96
+ return (await this.dispatch(spotId, packetName, decodePayload, context, true)) as TReply;
97
97
  }
98
98
 
99
99
  private async dispatch(
@@ -112,10 +112,13 @@ export class ZLinkRoutedSpotPacketDispatch {
112
112
  throw new ZLinkConfigurationException(`Spot '${spotId}' is not active.`);
113
113
  }
114
114
 
115
- const registrations = activation.handlers.snapshot().filter((registration) =>
116
- registration.kind === 'packet' &&
117
- (registration.packetName ?? registration.handlerType.name) === (packetName ?? '')
118
- );
115
+ const registrations = activation.handlers
116
+ .snapshot()
117
+ .filter(
118
+ (registration) =>
119
+ registration.kind === 'packet' &&
120
+ (registration.packetName ?? registration.handlerType.name) === (packetName ?? '')
121
+ );
119
122
  if (registrations.length === 0) {
120
123
  this.reportMissing(spotId, packetName, context, returnResponse);
121
124
  if (!returnResponse) {
@@ -128,16 +131,18 @@ export class ZLinkRoutedSpotPacketDispatch {
128
131
  let detached = false;
129
132
  let resolveFirstHandlerTurn: (() => void) | undefined;
130
133
  let rejectFirstHandlerTurn: ((error: unknown) => void) | undefined;
131
- const firstHandlerTurn = context.awaitFirstHandlerTurn === true
132
- ? new Promise<void>((resolve, reject) => {
133
- resolveFirstHandlerTurn = resolve;
134
- rejectFirstHandlerTurn = reject;
135
- })
136
- : undefined;
134
+ const firstHandlerTurn =
135
+ context.awaitFirstHandlerTurn === true
136
+ ? new Promise<void>((resolve, reject) => {
137
+ resolveFirstHandlerTurn = resolve;
138
+ rejectFirstHandlerTurn = reject;
139
+ })
140
+ : undefined;
137
141
  void firstHandlerTurn?.catch(() => undefined);
138
- const applicationClaim = activation.meshName === undefined
139
- ? undefined
140
- : this.options.claimApplicationWork?.(activation.meshName);
142
+ const applicationClaim =
143
+ activation.meshName === undefined
144
+ ? undefined
145
+ : this.options.claimApplicationWork?.(activation.meshName);
141
146
  const runHandler = async () => {
142
147
  try {
143
148
  // Decode only after the Spot has acquired both application admission
@@ -147,8 +152,8 @@ export class ZLinkRoutedSpotPacketDispatch {
147
152
  const handler = await resolveLifecycleHandler(
148
153
  activation.spot,
149
154
  registration.handlerType as Type<
150
- ZLinkSpotPacketHandler<ZLinkSpot, unknown> |
151
- ZLinkSpotRequestHandler<ZLinkSpot, unknown, unknown>
155
+ | ZLinkSpotPacketHandler<ZLinkSpot, unknown>
156
+ | ZLinkSpotRequestHandler<ZLinkSpot, unknown, unknown>
152
157
  >,
153
158
  this.options.providerResolver
154
159
  );
@@ -217,16 +222,18 @@ export class ZLinkRoutedSpotPacketDispatch {
217
222
  returnResponse: boolean,
218
223
  error: unknown
219
224
  ): void {
220
- const frameworkErrorKind = error instanceof ZLinkFrameworkException
221
- ? internalFrameworkErrorKind(error)
222
- : undefined;
225
+ const frameworkErrorKind =
226
+ error instanceof ZLinkFrameworkException ? internalFrameworkErrorKind(error) : undefined;
223
227
  this.options.dispatchErrors?.report({
224
228
  surface: ZLinkDispatchErrorSurface.SpotRoute,
225
- messageKind: returnResponse ? ZLinkDispatchMessageKind.Request : ZLinkDispatchMessageKind.Send,
226
- reason: frameworkErrorKind === ZLinkFrameworkInternalErrorKind.WorkerQueueFull
227
- || frameworkErrorKind === ZLinkFrameworkInternalErrorKind.DeadlineExceeded
228
- ? ZLinkDispatchErrorReason.Backpressure
229
- : ZLinkDispatchErrorReason.HandlerException,
229
+ messageKind: returnResponse
230
+ ? ZLinkDispatchMessageKind.Request
231
+ : ZLinkDispatchMessageKind.Send,
232
+ reason:
233
+ frameworkErrorKind === ZLinkFrameworkInternalErrorKind.WorkerQueueFull ||
234
+ frameworkErrorKind === ZLinkFrameworkInternalErrorKind.DeadlineExceeded
235
+ ? ZLinkDispatchErrorReason.Backpressure
236
+ : ZLinkDispatchErrorReason.HandlerException,
230
237
  action: returnResponse ? ZLinkDispatchErrorAction.FailCaller : ZLinkDispatchErrorAction.Drop,
231
238
  packetName,
232
239
  channelName: context.channelName,
@@ -243,7 +250,9 @@ export class ZLinkRoutedSpotPacketDispatch {
243
250
  ): void {
244
251
  this.options.dispatchErrors?.report({
245
252
  surface: ZLinkDispatchErrorSurface.SpotRoute,
246
- messageKind: returnResponse ? ZLinkDispatchMessageKind.Request : ZLinkDispatchMessageKind.Send,
253
+ messageKind: returnResponse
254
+ ? ZLinkDispatchMessageKind.Request
255
+ : ZLinkDispatchMessageKind.Send,
247
256
  reason: ZLinkDispatchErrorReason.HandlerMissing,
248
257
  action: returnResponse ? ZLinkDispatchErrorAction.FailCaller : ZLinkDispatchErrorAction.Drop,
249
258
  packetName,
@@ -1,8 +1,5 @@
1
1
  import type { RoutingId } from '../../contracts/Common';
2
- import type {
3
- ZLinkFrameworkRuntimeState,
4
- ZLinkSpotKind
5
- } from '../../contracts';
2
+ import type { ZLinkFrameworkRuntimeState, ZLinkSpotKind } from '../../contracts';
6
3
 
7
4
  export interface ZLinkSpotRouteResolver {
8
5
  resolve(spotId: RoutingId, signal?: AbortSignal): Promise<ZLinkSpotRouteTarget>;
@@ -106,10 +106,7 @@ export interface ZLinkSpotActorTransferRuntime {
106
106
  bindRoutedActorRef(actor: ZLinkActor, actorRef: ActorRef): void;
107
107
  commitRoutedActor(actor: ZLinkActor, spotId: RoutingId, spot: ZLinkSpot): void;
108
108
  clearRoutedActor(actor: ZLinkActor): void;
109
- rollbackNativeActorJoin(
110
- actor: ZLinkActor,
111
- snapshot: ZLinkNativeActorJoinSnapshot
112
- ): Promise<void>;
109
+ rollbackNativeActorJoin(actor: ZLinkActor, snapshot: ZLinkNativeActorJoinSnapshot): Promise<void>;
113
110
  rollbackRoutedActor(actor: ZLinkActor, signal?: AbortSignal): Promise<void>;
114
111
  notifyCoreSourceLeave(actor: ZLinkActor, callback: () => Promise<void>): Promise<void>;
115
112
  actorEntryNodeRid(actor: ZLinkActor): RoutingId | undefined;
@@ -154,7 +151,10 @@ export interface ZLinkSpotBoundSessionRuntime {
154
151
  actorPacketTarget?: unknown,
155
152
  signal?: AbortSignal
156
153
  ): Promise<void>;
157
- rememberRemoteBoundSessionTarget(actorId: string, target: ZLinkRemoteBoundSessionTarget | undefined): void;
154
+ rememberRemoteBoundSessionTarget(
155
+ actorId: string,
156
+ target: ZLinkRemoteBoundSessionTarget | undefined
157
+ ): void;
158
158
  resolveRemoteBoundSessionTarget(
159
159
  sourceNodeRid: RoutingId,
160
160
  sourceSessionRid: RoutingId
@@ -72,9 +72,8 @@ export class ZLinkSpotSerialExecutor {
72
72
  ): readonly Promise<void>[] {
73
73
  const serial = this.actorSerial(actorId);
74
74
  return this.actorExecutor(actorId).admitDurablePrefix(
75
- records.map(record => ({
76
- operation: executeChild =>
77
- record.operation(child => executeChild(() => child(serial))),
75
+ records.map((record) => ({
76
+ operation: (executeChild) => record.operation((child) => executeChild(() => child(serial))),
78
77
  preparation: record.preparation,
79
78
  workOptions: record.workOptions
80
79
  }))
@@ -110,18 +109,15 @@ export class ZLinkSpotSerialExecutor {
110
109
  close(): Promise<void> {
111
110
  if (this.closePromise !== undefined) return this.closePromise;
112
111
  this.closing = true;
113
- const childSerials = [
114
- ...this.actorSerials.values(),
115
- ...this.timerSerials.values()
116
- ];
112
+ const childSerials = [...this.actorSerials.values(), ...this.timerSerials.values()];
117
113
  const actorExecutors = [...this.actorExecutors.values()];
118
114
  this.actorSerials.clear();
119
115
  this.timerSerials.clear();
120
116
  this.actorExecutors.clear();
121
117
  this.closePromise = Promise.all([
122
118
  this.spotSerial.close(),
123
- ...childSerials.map(serial => serial.close()),
124
- ...actorExecutors.map(executor => executor.close())
119
+ ...childSerials.map((serial) => serial.close()),
120
+ ...actorExecutors.map((executor) => executor.close())
125
121
  ]).then(() => undefined);
126
122
  return this.closePromise;
127
123
  }
@@ -69,18 +69,14 @@ export class ZLinkSpotSerialTurnExecutor {
69
69
 
70
70
  /** Distinguishes a gate-owning turn from a suspended AsyncLocalStorage tail. */
71
71
  isActiveTurn(turn: ZLinkSpotSerialTurn, turnId: number): boolean {
72
- return this.depth > 0
73
- && (
74
- this.resumedOwnerTurn === turn
75
- || (turnId === this.activeTurnId && !turn.isSuspended)
76
- );
72
+ return (
73
+ this.depth > 0 &&
74
+ (this.resumedOwnerTurn === turn || (turnId === this.activeTurnId && !turn.isSuspended))
75
+ );
77
76
  }
78
77
 
79
78
  setExecutionBarrier(barrier: ZLinkExecutionBarrier): void {
80
- if (
81
- this.executionBarrier !== undefined
82
- && this.executionBarrier !== barrier
83
- ) {
79
+ if (this.executionBarrier !== undefined && this.executionBarrier !== barrier) {
84
80
  throw new Error('ZLink Spot serial executor already belongs to another execution barrier.');
85
81
  }
86
82
  if (this.turnSequence !== 0 && this.executionBarrier === undefined) {
@@ -90,10 +86,7 @@ export class ZLinkSpotSerialTurnExecutor {
90
86
  }
91
87
 
92
88
  /** Runs `operation` in serial order, one turn at a time. */
93
- execute<T>(
94
- operation: () => Promise<T> | T,
95
- workOptions?: ZLinkSerialWorkOptions
96
- ): Promise<T> {
89
+ execute<T>(operation: () => Promise<T> | T, workOptions?: ZLinkSerialWorkOptions): Promise<T> {
97
90
  if (this.isCurrentTurn) {
98
91
  throw createInternalFrameworkException(
99
92
  ZLinkFrameworkInternalErrorKind.InvalidOperation,
@@ -108,10 +101,7 @@ export class ZLinkSpotSerialTurnExecutor {
108
101
  * from within the currently active turn. Detached completion callbacks use
109
102
  * this so they never run inline inside another callback's turn.
110
103
  */
111
- post<T>(
112
- operation: () => Promise<T> | T,
113
- workOptions?: ZLinkSerialWorkOptions
114
- ): Promise<T> {
104
+ post<T>(operation: () => Promise<T> | T, workOptions?: ZLinkSerialWorkOptions): Promise<T> {
115
105
  return this.enqueueApplicationTurn(operation, workOptions);
116
106
  }
117
107
 
@@ -142,7 +132,7 @@ export class ZLinkSpotSerialTurnExecutor {
142
132
  const submitted = hasApplicationJobPermit()
143
133
  ? this.scheduler.submitPreAdmitted(boundOperation, options, barrierClaim)
144
134
  : this.scheduler.submit(boundOperation, options, barrierClaim);
145
- void submitted.catch(error => {
135
+ void submitted.catch((error) => {
146
136
  barrierClaim?.release();
147
137
  onError(error);
148
138
  });
@@ -194,9 +184,7 @@ export class ZLinkSpotSerialTurnExecutor {
194
184
  return await this.submitQueuedTurn(operation, workOptions);
195
185
  }
196
186
 
197
- private async enqueueContinuationTurn<T>(
198
- operation: () => Promise<T> | T
199
- ): Promise<T> {
187
+ private async enqueueContinuationTurn<T>(operation: () => Promise<T> | T): Promise<T> {
200
188
  this.lastActivityAtMs = performance.now();
201
189
  await Promise.resolve();
202
190
  return await this.scheduler.submitContinuation(operation);
@@ -274,7 +262,10 @@ export class ZLinkSpotSerialTurnExecutor {
274
262
  );
275
263
  owner.then(resolve, reject);
276
264
  return Promise.race([
277
- owner.then(() => undefined, () => undefined),
265
+ owner.then(
266
+ () => undefined,
267
+ () => undefined
268
+ ),
278
269
  turn.suspended
279
270
  ]);
280
271
  }
@@ -287,10 +278,12 @@ export class ZLinkSpotSerialTurnExecutor {
287
278
  const barrier = this.executionBarrier;
288
279
  const resumeClaim = barrier?.tryEnter();
289
280
  if (barrier !== undefined && resumeClaim === undefined) {
290
- reject(createInternalFrameworkException(
291
- ZLinkFrameworkInternalErrorKind.SpotMoving,
292
- 'The yielded Spot turn cannot resume after its execution unit was sealed.'
293
- ));
281
+ reject(
282
+ createInternalFrameworkException(
283
+ ZLinkFrameworkInternalErrorKind.SpotMoving,
284
+ 'The yielded Spot turn cannot resume after its execution unit was sealed.'
285
+ )
286
+ );
294
287
  return true;
295
288
  }
296
289
  turn.bindExecutionClaim(resumeClaim);
@@ -59,9 +59,11 @@ export class ZLinkSpotSubscriptionDispatch {
59
59
 
60
60
  configure(registrations: readonly ZLinkSpotHandlerRegistration[]): void {
61
61
  for (const registration of registrations) {
62
- if (registration.kind !== 'subscribe'
63
- || registration.channelName === undefined
64
- || registration.topic === undefined) {
62
+ if (
63
+ registration.kind !== 'subscribe' ||
64
+ registration.channelName === undefined ||
65
+ registration.topic === undefined
66
+ ) {
65
67
  continue;
66
68
  }
67
69
  const key = subscriptionKey(registration.channelName, registration.topic);
@@ -163,7 +165,9 @@ export class ZLinkSpotSubscriptionDispatch {
163
165
  });
164
166
  return;
165
167
  }
166
- const registrations = this.handlers.get(subscriptionKey(envelope.header.channelName, message.topic));
168
+ const registrations = this.handlers.get(
169
+ subscriptionKey(envelope.header.channelName, message.topic)
170
+ );
167
171
  if (registrations === undefined || registrations.length === 0) {
168
172
  this.options.dispatchErrors?.report({
169
173
  surface: ZLinkDispatchErrorSurface.SpotSubscription,
@@ -183,52 +187,59 @@ export class ZLinkSpotSubscriptionDispatch {
183
187
  const inboundFlow = createInboundFlow(
184
188
  envelope.header.flowId,
185
189
  envelope.header.flowOrigin,
186
- this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true
190
+ this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true,
191
+ undefined
187
192
  );
188
193
  try {
189
- await this.options.serial.execute(() => runWithFlow(inboundFlow, async () => {
190
- // Payload deserialization belongs to the Spot serial turn. Queue
191
- // admission and execution authority therefore precede this work.
192
- const event = decodeChannelPayload(envelope, this.channelCodecs());
193
- for (const registration of registrations) {
194
- const handler = await resolveLifecycleHandler(
195
- spot,
196
- registration.handlerType as Type<ZLinkSpotSubscriptionHandler<ZLinkSpot, unknown>>,
197
- this.options.providerResolver
198
- );
199
- try {
200
- await handler.handle(spot, event, {
201
- channelName: envelope.header.channelName,
202
- contentType: envelope.header.contentType,
203
- packetName: envelope.packetName!,
204
- topic: message.topic,
205
- source: subSource,
206
- metadata: zlinkMessageMetadata(envelope.header.metadata),
207
- correlationId: envelope.header.correlationId ?? undefined
208
- });
209
- } catch (error) {
210
- this.options.dispatchErrors?.report({
211
- surface: ZLinkDispatchErrorSurface.SpotSubscription,
212
- messageKind: ZLinkDispatchMessageKind.Send,
213
- reason: ZLinkDispatchErrorReason.HandlerException,
214
- action: ZLinkDispatchErrorAction.Drop,
215
- packetName: envelope.packetName,
216
- channelName: envelope.header.channelName,
217
- topic: message.topic,
218
- sourceRid: message.routingId === null ? undefined : String(message.routingId),
219
- correlationId: envelope.header.correlationId ?? undefined,
220
- error
221
- });
222
- throw error;
223
- }
224
- }
225
- }), zlinkSerialWorkOptions(
226
- envelope.payload.byteLength,
227
- zlinkMetadataByteLength(envelope.header.metadata)
228
- ));
194
+ await this.options.serial.execute(
195
+ () =>
196
+ runWithFlow(inboundFlow, async () => {
197
+ // Payload deserialization belongs to the Spot serial turn. Queue
198
+ // admission and execution authority therefore precede this work.
199
+ const event = decodeChannelPayload(envelope, this.channelCodecs());
200
+ for (const registration of registrations) {
201
+ const handler = await resolveLifecycleHandler(
202
+ spot,
203
+ registration.handlerType as Type<ZLinkSpotSubscriptionHandler<ZLinkSpot, unknown>>,
204
+ this.options.providerResolver
205
+ );
206
+ try {
207
+ await handler.handle(spot, event, {
208
+ channelName: envelope.header.channelName,
209
+ contentType: envelope.header.contentType,
210
+ packetName: envelope.packetName!,
211
+ topic: message.topic,
212
+ source: subSource,
213
+ metadata: zlinkMessageMetadata(envelope.header.metadata),
214
+ correlationId: envelope.header.correlationId ?? undefined
215
+ });
216
+ } catch (error) {
217
+ this.options.dispatchErrors?.report({
218
+ surface: ZLinkDispatchErrorSurface.SpotSubscription,
219
+ messageKind: ZLinkDispatchMessageKind.Send,
220
+ reason: ZLinkDispatchErrorReason.HandlerException,
221
+ action: ZLinkDispatchErrorAction.Drop,
222
+ packetName: envelope.packetName,
223
+ channelName: envelope.header.channelName,
224
+ topic: message.topic,
225
+ sourceRid: message.routingId === null ? undefined : String(message.routingId),
226
+ correlationId: envelope.header.correlationId ?? undefined,
227
+ error
228
+ });
229
+ throw error;
230
+ }
231
+ }
232
+ }),
233
+ zlinkSerialWorkOptions(
234
+ envelope.payload.byteLength,
235
+ zlinkMetadataByteLength(envelope.header.metadata)
236
+ )
237
+ );
229
238
  } catch (error) {
230
- if (error instanceof ZLinkFrameworkException
231
- && internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.PayloadDecodeFailed) {
239
+ if (
240
+ error instanceof ZLinkFrameworkException &&
241
+ internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.PayloadDecodeFailed
242
+ ) {
232
243
  this.options.dispatchErrors?.report({
233
244
  surface: ZLinkDispatchErrorSurface.SpotSubscription,
234
245
  messageKind: ZLinkDispatchMessageKind.Send,