@zlink-systems/framework 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. package/src/runtime/workers/index.ts +68 -29
@@ -12,9 +12,7 @@ import type {
12
12
  } from '../../contracts';
13
13
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
14
14
  import type { ZLinkSubmitResult } from '../messaging/submission-result';
15
- import {
16
- ZLinkMessage
17
- } from '../../contracts';
15
+ import { ZLinkMessage } from '../../contracts';
18
16
  import type { Message } from '../../contracts/Common/Message';
19
17
  import {
20
18
  buildAdvertisedEndpoint,
@@ -32,8 +30,7 @@ import type {
32
30
  } from '../backend/contracts';
33
31
  import type { ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
34
32
  import type { StreamSessionService } from '../foundation/service-runtime-contracts';
35
- import { registerServiceSessionBindingIngressPort } from
36
- '../foundation/service-session-binding-ingress-port';
33
+ import { registerServiceSessionBindingIngressPort } from '../foundation/service-session-binding-ingress-port';
37
34
  import {
38
35
  messageToBytes,
39
36
  ZLinkStreamCodec,
@@ -69,19 +66,10 @@ import {
69
66
  DefaultZLinkBoundSessionResponseTarget,
70
67
  type ZLinkBoundSessionResponseTarget
71
68
  } from './bound-session-response-target';
72
- import {
73
- ZLinkBoundSessionService,
74
- type ZLinkBoundSessionTransport
75
- } from './bound-session-service';
76
- import {
77
- ZLinkSessionActorCoordinator
78
- } from './session-actor-coordinator';
79
- import {
80
- ZLinkBoundActorRelaySender
81
- } from './bound-actor-relay-sender';
82
- import {
83
- ZLinkManagedStream
84
- } from './managed-stream';
69
+ import { ZLinkBoundSessionService, type ZLinkBoundSessionTransport } from './bound-session-service';
70
+ import { ZLinkSessionActorCoordinator } from './session-actor-coordinator';
71
+ import { ZLinkBoundActorRelaySender } from './bound-actor-relay-sender';
72
+ import { ZLinkManagedStream } from './managed-stream';
85
73
  import { createStreamSessionInstance } from './session-provider';
86
74
  import { DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE } from '../../contracts/Configuration/InternalDefaults';
87
75
  import {
@@ -123,19 +111,28 @@ export interface ZLinkStreamBindingRuntimeOptions {
123
111
  actorId: string,
124
112
  signal?: AbortSignal
125
113
  ) => Promise<ZLinkActorSessionAuthorityFence | undefined>;
126
- readonly nativeActorNodeProvider?: () => {
127
- status(): { readonly routingId: unknown };
128
- } | undefined;
114
+ readonly nativeActorNodeProvider?: () =>
115
+ | {
116
+ status(): { readonly routingId: unknown };
117
+ }
118
+ | undefined;
129
119
  readonly confirmRemoteActorSessionBinding?: (
130
120
  actor: ActorRef,
131
121
  sessionRid: ActorRef['nodeRid'],
132
122
  signal?: AbortSignal,
133
123
  options?: { readonly waitForAcknowledgement?: boolean }
134
124
  ) => Promise<void>;
135
- readonly errorSink?: () => {
136
- reportRuntimeTaskException(taskName: string, error: unknown): void;
137
- } | undefined;
138
- readonly relay?: (actor: ZLinkSessionActor, header: ZLinkStreamFrameHeader, payload: Message, signal?: AbortSignal) => Promise<boolean>;
125
+ readonly errorSink?: () =>
126
+ | {
127
+ reportRuntimeTaskException(taskName: string, error: unknown): void;
128
+ }
129
+ | undefined;
130
+ readonly relay?: (
131
+ actor: ZLinkSessionActor,
132
+ header: ZLinkStreamFrameHeader,
133
+ payload: Message,
134
+ signal?: AbortSignal
135
+ ) => Promise<boolean>;
139
136
  readonly notifyDisconnected?: (actor: ZLinkSessionActor, signal?: AbortSignal) => Promise<void>;
140
137
  readonly flowCreationEnabled?: () => boolean;
141
138
  readonly metrics?: import('../diagnostics').ZLinkRuntimeMetrics;
@@ -155,11 +152,17 @@ export interface ZLinkStreamMessageFactory {
155
152
  createBinaryMessage?(payload: Uint8Array): Message;
156
153
  }
157
154
 
158
- export interface ZLinkStreamSessionRuntimeOptions extends Omit<ZLinkStreamSessionRuntimeCoreOptions, 'bindingRuntime'> {
155
+ export interface ZLinkStreamSessionRuntimeOptions extends Omit<
156
+ ZLinkStreamSessionRuntimeCoreOptions,
157
+ 'bindingRuntime'
158
+ > {
159
159
  readonly bindingRuntime?: ZLinkStreamBindingRuntime;
160
160
  }
161
161
 
162
- export interface ZLinkStreamSessionNodeRuntimeOptions extends Omit<ZLinkStreamSessionNodeRuntimeCoreOptions, 'bindingRuntime'> {
162
+ export interface ZLinkStreamSessionNodeRuntimeOptions extends Omit<
163
+ ZLinkStreamSessionNodeRuntimeCoreOptions,
164
+ 'bindingRuntime'
165
+ > {
163
166
  readonly bindingRuntime?: ZLinkStreamBindingRuntime;
164
167
  }
165
168
 
@@ -195,8 +198,9 @@ export class ZLinkStreamRuntimeManager {
195
198
  private readonly applicationJobQueue: ApplicationJobQueue;
196
199
 
197
200
  constructor(private readonly options: ZLinkStreamRuntimeManagerOptions) {
198
- this.applicationJobQueue = options.applicationJobQueue
199
- ?? new ApplicationJobQueue(resolveApplicationJobQueueConfiguration());
201
+ this.applicationJobQueue =
202
+ options.applicationJobQueue ??
203
+ new ApplicationJobQueue(resolveApplicationJobQueueConfiguration());
200
204
  }
201
205
 
202
206
  start(): void {
@@ -237,22 +241,24 @@ export class ZLinkStreamRuntimeManager {
237
241
  );
238
242
  }
239
243
  const readablePoller = streamAdapter.createReadablePoller(socket);
240
- const nativeSessionRoutes = new Map<string, {
241
- readonly service: StreamSessionService;
242
- readonly completions: ZLinkMeshCompletionTable;
243
- }>();
244
+ const nativeSessionRoutes = new Map<
245
+ string,
246
+ {
247
+ readonly service: StreamSessionService;
248
+ readonly completions: ZLinkMeshCompletionTable;
249
+ }
250
+ >();
244
251
  if (actorDispatchEnabled) {
245
252
  for (const [meshName, mesh] of this.options.registration.spotNodes) {
246
253
  const isPrimaryMesh = meshName === applicationMeshName;
247
- if (
248
- !isPrimaryMesh
249
- && mesh.objectRole !== 'client'
250
- && mesh.objectRole !== 'server'
251
- ) continue;
252
- const meshNode = this.options.nativeMeshNodeForName?.(meshName)
253
- ?? (isPrimaryMesh ? nativeMeshNode : undefined);
254
- const completions = this.options.meshCompletionsForName?.(meshName)
255
- ?? (isPrimaryMesh ? meshCompletions : undefined);
254
+ if (!isPrimaryMesh && mesh.objectRole !== 'client' && mesh.objectRole !== 'server')
255
+ continue;
256
+ const meshNode =
257
+ this.options.nativeMeshNodeForName?.(meshName) ??
258
+ (isPrimaryMesh ? nativeMeshNode : undefined);
259
+ const completions =
260
+ this.options.meshCompletionsForName?.(meshName) ??
261
+ (isPrimaryMesh ? meshCompletions : undefined);
256
262
  const createService = meshNode?.createStreamSessionService;
257
263
  if (typeof createService !== 'function' || completions === undefined) continue;
258
264
  const service = createService.call(meshNode, socket.nativeInstance as never);
@@ -260,8 +266,7 @@ export class ZLinkStreamRuntimeManager {
260
266
  registerServiceSessionBindingIngressPort(service, {
261
267
  retainOutbound: (claim, delivery) =>
262
268
  bindingOwner.admitRelocationOutbound(claim, delivery),
263
- clearOutbound: (actorId, error) =>
264
- bindingOwner.clearRelocation(actorId, error)
269
+ clearOutbound: (actorId, error) => bindingOwner.clearRelocation(actorId, error)
265
270
  });
266
271
  nativeSessionRoutes.set(meshName, {
267
272
  service,
@@ -269,14 +274,16 @@ export class ZLinkStreamRuntimeManager {
269
274
  });
270
275
  }
271
276
  }
272
- const nativeSessionService = applicationMeshName === undefined
273
- ? undefined
274
- : nativeSessionRoutes.get(applicationMeshName)?.service;
277
+ const nativeSessionService =
278
+ applicationMeshName === undefined
279
+ ? undefined
280
+ : nativeSessionRoutes.get(applicationMeshName)?.service;
275
281
  const monitor = monitoringAdapter.openSocketMonitor(socket);
276
282
  const sessionType = streamNode.session!;
277
- const sessionHandlerTypes = (
278
- streamNode as unknown as Record<symbol, readonly Type[] | undefined>
279
- )[Symbol.for('@zlink-systems/framework:session-handler-types')] ?? [];
283
+ const sessionHandlerTypes =
284
+ (streamNode as unknown as Record<symbol, readonly Type[] | undefined>)[
285
+ Symbol.for('@zlink-systems/framework:session-handler-types')
286
+ ] ?? [];
280
287
  const runtime = new ZLinkStreamSessionNodeRuntimeCore({
281
288
  nodeName,
282
289
  socket,
@@ -285,7 +292,7 @@ export class ZLinkStreamRuntimeManager {
285
292
  applicationJobQueue: this.applicationJobQueue,
286
293
  nativeSessionService,
287
294
  meshCompletions,
288
- nativeSessionRouteForMesh: meshName => nativeSessionRoutes.get(meshName),
295
+ nativeSessionRouteForMesh: (meshName) => nativeSessionRoutes.get(meshName),
289
296
  monitor,
290
297
  bindingRuntime: this.options.bindingRuntime,
291
298
  acceptNewSession: () => this.options.acceptNewSession?.(applicationMeshName) !== false,
@@ -294,13 +301,14 @@ export class ZLinkStreamRuntimeManager {
294
301
  providerResolver: this.options.providerResolver,
295
302
  messageSerializers: this.options.registration.messageSerializers,
296
303
  replacementCallbackTimeoutMs: this.options.registration.sessionReplacementCallbackTimeoutMs,
297
- sessionFactory: (context) => createStreamSessionInstance(
298
- sessionType as Type<ZLinkSession> | Type<ZLinkSessionFactory>,
299
- this.options.providerResolver,
300
- context,
301
- sessionHandlerTypes
302
- )
303
- });
304
+ sessionFactory: (context) =>
305
+ createStreamSessionInstance(
306
+ sessionType as Type<ZLinkSession> | Type<ZLinkSessionFactory>,
307
+ this.options.providerResolver,
308
+ context,
309
+ sessionHandlerTypes
310
+ )
311
+ });
304
312
  runtime.start();
305
313
  this.nodes.set(nodeName, {
306
314
  meshName: applicationMeshName,
@@ -309,7 +317,7 @@ export class ZLinkStreamRuntimeManager {
309
317
  socket,
310
318
  monitor,
311
319
  nativeSessionService,
312
- nativeSessionServices: [...nativeSessionRoutes.values()].map(route => route.service)
320
+ nativeSessionServices: [...nativeSessionRoutes.values()].map((route) => route.service)
313
321
  });
314
322
  }
315
323
  }
@@ -319,8 +327,9 @@ export class ZLinkStreamRuntimeManager {
319
327
  this.nodes.clear();
320
328
  for (const node of nodes.reverse()) {
321
329
  await node.runtime.dispose();
322
- const nativeServices = node.nativeSessionServices
323
- ?? (node.nativeSessionService === undefined ? [] : [node.nativeSessionService]);
330
+ const nativeServices =
331
+ node.nativeSessionServices ??
332
+ (node.nativeSessionService === undefined ? [] : [node.nativeSessionService]);
324
333
  for (const service of nativeServices) {
325
334
  service.shutdown(1000);
326
335
  service.close();
@@ -331,17 +340,20 @@ export class ZLinkStreamRuntimeManager {
331
340
  }
332
341
 
333
342
  async notifyServerDrain(meshName: string): Promise<void> {
334
- await Promise.all([...this.nodes.values()]
335
- .filter((node) => node.meshName === meshName)
336
- .map((node) => node.runtime.drainCloseSessions()));
343
+ await Promise.all(
344
+ [...this.nodes.values()]
345
+ .filter((node) => node.meshName === meshName)
346
+ .map((node) => node.runtime.drainCloseSessions())
347
+ );
337
348
  }
338
349
 
339
350
  async notifyUnscopedServerDrain(): Promise<void> {
340
- await Promise.all([...this.nodes.values()]
341
- .filter((node) => node.meshName === undefined)
342
- .map((node) => node.runtime.drainCloseSessions()));
351
+ await Promise.all(
352
+ [...this.nodes.values()]
353
+ .filter((node) => node.meshName === undefined)
354
+ .map((node) => node.runtime.drainCloseSessions())
355
+ );
343
356
  }
344
-
345
357
  }
346
358
 
347
359
  export class ZLinkStreamSessionRuntime extends ZLinkStreamSessionRuntimeCore {
@@ -353,9 +365,11 @@ export class ZLinkStreamSessionRuntime extends ZLinkStreamSessionRuntimeCore {
353
365
  // Spec 27 §4: a default-constructed binding runtime must still honor the
354
366
  // process diagnostics level, so wire its Off gate to the runtime's
355
367
  // dispatch-error flow tracer.
356
- const bindingRuntime = options.bindingRuntime ?? new ZLinkStreamBindingRuntime({
357
- flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
358
- });
368
+ const bindingRuntime =
369
+ options.bindingRuntime ??
370
+ new ZLinkStreamBindingRuntime({
371
+ flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
372
+ });
359
373
  super(
360
374
  {
361
375
  ...options,
@@ -364,7 +378,8 @@ export class ZLinkStreamSessionRuntime extends ZLinkStreamSessionRuntimeCore {
364
378
  routingId,
365
379
  removeSession === undefined
366
380
  ? undefined
367
- : (sessionId, session) => removeSession(sessionId, session as unknown as ZLinkStreamSessionRuntime)
381
+ : (sessionId, session) =>
382
+ removeSession(sessionId, session as unknown as ZLinkStreamSessionRuntime)
368
383
  );
369
384
  }
370
385
  }
@@ -373,9 +388,11 @@ export class ZLinkStreamSessionNodeRuntime extends ZLinkStreamSessionNodeRuntime
373
388
  constructor(options: ZLinkStreamSessionNodeRuntimeOptions) {
374
389
  // Spec 27 §4: keep the default binding runtime's flow creation behind the
375
390
  // process diagnostics Off gate (see ZLinkStreamSessionRuntime above).
376
- const bindingRuntime = options.bindingRuntime ?? new ZLinkStreamBindingRuntime({
377
- flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
378
- });
391
+ const bindingRuntime =
392
+ options.bindingRuntime ??
393
+ new ZLinkStreamBindingRuntime({
394
+ flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
395
+ });
379
396
  super({
380
397
  ...options,
381
398
  bindingRuntime
@@ -384,7 +401,10 @@ export class ZLinkStreamSessionNodeRuntime extends ZLinkStreamSessionNodeRuntime
384
401
  }
385
402
 
386
403
  export class ZLinkStreamBindingRuntime {
387
- private readonly routes: ZLinkActorSessionBindingRegistry<DefaultZLinkSessionContext, DefaultZLinkSessionActor>;
404
+ private readonly routes: ZLinkActorSessionBindingRegistry<
405
+ DefaultZLinkSessionContext,
406
+ DefaultZLinkSessionActor
407
+ >;
388
408
  private readonly frameMessages: ZLinkStreamFrameMessageFactory;
389
409
  private readonly compressionCodec: ZLinkStreamCompressionCodec | undefined;
390
410
  private readonly boundSessions: ZLinkBoundSessionService;
@@ -396,14 +416,17 @@ export class ZLinkStreamBindingRuntime {
396
416
  ...options,
397
417
  actorBindTimeoutMs: options.actorBindTimeoutMs ?? DEFAULT_ACTOR_BIND_TIMEOUT_MS
398
418
  };
399
- this.routes = new ZLinkActorSessionBindingRegistry<DefaultZLinkSessionContext, DefaultZLinkSessionActor>(
400
- 4096,
401
- 4096,
402
- runtimeOptions.sessionRelocationSealTimeoutMs ?? 3_000
403
- );
419
+ this.routes = new ZLinkActorSessionBindingRegistry<
420
+ DefaultZLinkSessionContext,
421
+ DefaultZLinkSessionActor
422
+ >(4096, 4096, runtimeOptions.sessionRelocationSealTimeoutMs ?? 3_000);
404
423
  this.compressionCodec = resolveStreamCompressionCodec(runtimeOptions.streamCompression);
405
424
  this.frameMessages = new ZLinkStreamFrameMessageFactory(runtimeOptions);
406
- this.boundSessions = new ZLinkBoundSessionService(this.routes, this.frameMessages, runtimeOptions);
425
+ this.boundSessions = new ZLinkBoundSessionService(
426
+ this.routes,
427
+ this.frameMessages,
428
+ runtimeOptions
429
+ );
407
430
  const actorSessionLifecycle = new ZLinkActorSessionLifecycleCoordinator();
408
431
  this.sessionActors = new ZLinkSessionActorCoordinator(
409
432
  this.routes,
@@ -420,8 +443,7 @@ export class ZLinkStreamBindingRuntime {
420
443
  registerActorSessionBindingRuntimeOwner(this, {
421
444
  sealRelocation: (claim, expected, signal) =>
422
445
  this.routes.sealRelocation(claim, expected, signal),
423
- relocationSnapshot: (actorId, sealId) =>
424
- this.routes.relocationSnapshot(actorId, sealId),
446
+ relocationSnapshot: (actorId, sealId) => this.routes.relocationSnapshot(actorId, sealId),
425
447
  retainRelocationOutbound: (actorId, operation, sealId) =>
426
448
  this.routes.retainRelocationOutbound(actorId, operation, sealId),
427
449
  admitRelocationOutbound: (claim, operation) =>
@@ -431,7 +453,7 @@ export class ZLinkStreamBindingRuntime {
431
453
  applyRelocation: (...args) => this.routes.applyRelocation(...args),
432
454
  observeRelocationTerminal: (...args) => this.routes.observeRelocationTerminal(...args),
433
455
  clearRelocation: (actorId, error) => this.routes.clearRelocation(actorId, error),
434
- committedRoute: async actorId => {
456
+ committedRoute: async (actorId) => {
435
457
  const route = await this.routes.route(actorId);
436
458
  return route === undefined
437
459
  ? undefined
@@ -527,10 +549,13 @@ export class ZLinkStreamBindingRuntime {
527
549
  );
528
550
  }
529
551
 
530
- async authorityFence(actorId: string): Promise<{
531
- readonly authorityOwnerGeneration: bigint;
532
- readonly ownerLeaseGeneration: bigint;
533
- } | undefined> {
552
+ async authorityFence(actorId: string): Promise<
553
+ | {
554
+ readonly authorityOwnerGeneration: bigint;
555
+ readonly ownerLeaseGeneration: bigint;
556
+ }
557
+ | undefined
558
+ > {
534
559
  return await this.sessionActors.authorityFence(actorId);
535
560
  }
536
561
 
@@ -546,7 +571,11 @@ export class ZLinkStreamBindingRuntime {
546
571
  return await this.routes.validateSeal(actorId, sealId);
547
572
  }
548
573
 
549
- async unbind(actorId: string, context: DefaultZLinkSessionContext, bindingToken: string): Promise<void> {
574
+ async unbind(
575
+ actorId: string,
576
+ context: DefaultZLinkSessionContext,
577
+ bindingToken: string
578
+ ): Promise<void> {
550
579
  await this.routes.unbind(actorId, context, bindingToken);
551
580
  }
552
581
 
@@ -565,7 +594,13 @@ export class ZLinkStreamBindingRuntime {
565
594
  metadata: ReadonlyMap<string, string>,
566
595
  signal?: AbortSignal
567
596
  ): Promise<ZLinkSubmitResult> {
568
- return await this.boundSessions.sendBoundSession(actorId, message, packetName, metadata, signal);
597
+ return await this.boundSessions.sendBoundSession(
598
+ actorId,
599
+ message,
600
+ packetName,
601
+ metadata,
602
+ signal
603
+ );
569
604
  }
570
605
 
571
606
  async submitLocalBoundSession(
@@ -575,7 +610,13 @@ export class ZLinkStreamBindingRuntime {
575
610
  metadata: ReadonlyMap<string, string>,
576
611
  signal?: AbortSignal
577
612
  ): Promise<ZLinkSubmitResult> {
578
- return await this.boundSessions.submitLocalBoundSession(actorId, message, packetName, metadata, signal);
613
+ return await this.boundSessions.submitLocalBoundSession(
614
+ actorId,
615
+ message,
616
+ packetName,
617
+ metadata,
618
+ signal
619
+ );
579
620
  }
580
621
 
581
622
  async sendLocalBoundSession(
@@ -612,10 +653,15 @@ export class ZLinkStreamBindingRuntime {
612
653
  error: unknown,
613
654
  metadata: ReadonlyMap<string, string>
614
655
  ): Promise<boolean> {
615
- return await this.boundSessions.sendLocalBoundSessionError(actorId, packetName, requestSeq, error, metadata);
656
+ return await this.boundSessions.sendLocalBoundSessionError(
657
+ actorId,
658
+ packetName,
659
+ requestSeq,
660
+ error,
661
+ metadata
662
+ );
616
663
  }
617
664
 
618
-
619
665
  async sendNativeBoundSession(
620
666
  node: ZLinkBackendActorSessionNode,
621
667
  actorRef: ActorRef,
@@ -624,7 +670,14 @@ export class ZLinkStreamBindingRuntime {
624
670
  metadata: ReadonlyMap<string, string>,
625
671
  signal?: AbortSignal
626
672
  ): Promise<ZLinkSubmitResult> {
627
- return await this.boundSessions.sendNativeBoundSession(node, actorRef, message, packetName, metadata, signal);
673
+ return await this.boundSessions.sendNativeBoundSession(
674
+ node,
675
+ actorRef,
676
+ message,
677
+ packetName,
678
+ metadata,
679
+ signal
680
+ );
628
681
  }
629
682
 
630
683
  async sendNativeBoundSessionResponse(
@@ -658,7 +711,15 @@ export class ZLinkStreamBindingRuntime {
658
711
  metadata: ReadonlyMap<string, string>,
659
712
  signal?: AbortSignal
660
713
  ): Promise<void> {
661
- await this.boundSessions.sendNativeBoundSessionError(node, actorRef, packetName, requestSeq, error, metadata, signal);
714
+ await this.boundSessions.sendNativeBoundSessionError(
715
+ node,
716
+ actorRef,
717
+ packetName,
718
+ requestSeq,
719
+ error,
720
+ metadata,
721
+ signal
722
+ );
662
723
  }
663
724
 
664
725
  async disconnectNativeBoundSession(
@@ -695,7 +756,9 @@ export class ZLinkStreamBindingRuntime {
695
756
  }
696
757
 
697
758
  decompressPayload(payload: Message): Message {
698
- return simpleMessage(decompressStreamPayload(messageToBytes(payload), this.compressionCodec)) as Message;
759
+ return simpleMessage(
760
+ decompressStreamPayload(messageToBytes(payload), this.compressionCodec)
761
+ ) as Message;
699
762
  }
700
763
 
701
764
  createJsonFrameMessage(
@@ -707,7 +770,15 @@ export class ZLinkStreamBindingRuntime {
707
770
  payload: unknown,
708
771
  correlationId?: string
709
772
  ): Message {
710
- return this.frameMessages.createJsonFrameMessage(kind, packetName, metadata, compressed, requestSeq, payload, correlationId);
773
+ return this.frameMessages.createJsonFrameMessage(
774
+ kind,
775
+ packetName,
776
+ metadata,
777
+ compressed,
778
+ requestSeq,
779
+ payload,
780
+ correlationId
781
+ );
711
782
  }
712
783
 
713
784
  createJsonReplyFrameMessage(
@@ -717,7 +788,12 @@ export class ZLinkStreamBindingRuntime {
717
788
  compressed: boolean,
718
789
  payload: unknown
719
790
  ): Message {
720
- return this.frameMessages.createJsonReplyFrameMessage(requestHeader, kind, metadata, compressed, payload);
791
+ return this.frameMessages.createJsonReplyFrameMessage(
792
+ requestHeader,
793
+ kind,
794
+ metadata,
795
+ compressed,
796
+ payload
797
+ );
721
798
  }
722
-
723
799
  }