@zlink-systems/framework 0.26.0 → 0.27.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 (521) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  3. package/dist/contracts/Common/CoreTypes.js +7 -0
  4. package/dist/contracts/Common/index.d.ts +1 -1
  5. package/dist/contracts/Common/index.js +0 -1
  6. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  7. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  8. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  9. package/dist/contracts/Configuration/Registration.js +58 -36
  10. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  12. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  13. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  14. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  15. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  16. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  17. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  18. package/dist/contracts/Handlers/JsonContract.js +10 -4
  19. package/dist/contracts/Locations/Authority.d.ts +1 -1
  20. package/dist/contracts/Locations/Authority.js +3 -2
  21. package/dist/contracts/Locations/Options.js +1 -1
  22. package/dist/contracts/Locations/Stores.d.ts +12 -0
  23. package/dist/contracts/Locations/Stores.js +9 -0
  24. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  25. package/dist/internal.d.ts +4 -0
  26. package/dist/internal.js +15 -1
  27. package/dist/nest-integration.d.ts +4 -2
  28. package/dist/nest-integration.js +14 -4
  29. package/dist/runtime/abort.d.ts +1 -0
  30. package/dist/runtime/abort.js +8 -5
  31. package/dist/runtime/activation-admission.d.ts +1 -2
  32. package/dist/runtime/activation-admission.js +2 -6
  33. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  34. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  35. package/dist/runtime/actors/actor-client.d.ts +2 -2
  36. package/dist/runtime/actors/actor-client.js +42 -143
  37. package/dist/runtime/actors/actor-context.d.ts +3 -5
  38. package/dist/runtime/actors/actor-context.js +13 -11
  39. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  40. package/dist/runtime/actors/actor-handoff.js +8 -8
  41. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  42. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  43. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  44. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  45. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  46. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  47. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  48. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  49. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  50. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  51. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  52. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  53. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  54. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  55. package/dist/runtime/actors/bound-session-wire.js +2 -7
  56. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  57. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  58. package/dist/runtime/actors/index.d.ts +9 -7
  59. package/dist/runtime/actors/index.js +87 -69
  60. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  61. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  62. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  63. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  64. package/dist/runtime/admission.d.ts +2 -0
  65. package/dist/runtime/admission.js +7 -1
  66. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  67. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  68. package/dist/runtime/backend/contracts/index.d.ts +6 -23
  69. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  70. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  71. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  72. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
  73. package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
  74. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  75. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  76. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  77. package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
  78. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  79. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  80. package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
  81. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  82. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  83. package/dist/runtime/backend/runtime-values.js +2 -0
  84. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  85. package/dist/runtime/channels/channel-clients.js +68 -52
  86. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  87. package/dist/runtime/channels/channel-envelope.js +47 -29
  88. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  89. package/dist/runtime/channels/channel-outbound-operations.js +9 -10
  90. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  91. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  92. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  93. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  94. package/dist/runtime/channels/channel-runtime-manager.js +5 -2
  95. package/dist/runtime/channels/channel-socket-options.js +3 -2
  96. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  97. package/dist/runtime/channels/channel-socket-registry.js +248 -174
  98. package/dist/runtime/channels/channel-transports.d.ts +11 -17
  99. package/dist/runtime/channels/channel-transports.js +68 -47
  100. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  101. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  102. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  103. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  104. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  105. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  106. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  107. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  108. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  109. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  110. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  111. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  112. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  113. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  114. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  115. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  116. package/dist/runtime/diagnostics/flow-context.js +16 -2
  117. package/dist/runtime/diagnostics/index.d.ts +4 -2
  118. package/dist/runtime/diagnostics/index.js +14 -4
  119. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  120. package/dist/runtime/diagnostics/message-flow.js +10 -19
  121. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  122. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  123. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  124. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  125. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  126. package/dist/runtime/disposal.d.ts +5 -0
  127. package/dist/runtime/disposal.js +22 -0
  128. package/dist/runtime/execution/index.d.ts +12 -9
  129. package/dist/runtime/execution/index.js +58 -14
  130. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  131. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  132. package/dist/runtime/execution/state-lane.d.ts +8 -1
  133. package/dist/runtime/execution/state-lane.js +118 -3
  134. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  135. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  136. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  137. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  138. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  139. package/dist/runtime/foundation/operation-identity.js +9 -5
  140. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  141. package/dist/runtime/foundation/operation-registry.js +34 -44
  142. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  143. package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
  144. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  145. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  146. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  147. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  148. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  149. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  150. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  151. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  152. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  153. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  154. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  155. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  156. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  157. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  158. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  159. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  160. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  161. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  162. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  163. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  164. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  165. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  166. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  167. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  168. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  169. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  170. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  171. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  172. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  173. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  174. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  175. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  176. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  177. package/dist/runtime/framework-errors-internal.js +343 -122
  178. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  179. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  180. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  181. package/dist/runtime/host/actor-packet-relay.js +48 -91
  182. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  183. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  184. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  185. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  186. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  187. package/dist/runtime/host/application-job-queue.js +16 -33
  188. package/dist/runtime/host/bound-session-relay.js +1 -1
  189. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  190. package/dist/runtime/host/index.d.ts +14 -13
  191. package/dist/runtime/host/index.js +190 -157
  192. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  193. package/dist/runtime/host/instance-activation-authority.js +17 -45
  194. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  195. package/dist/runtime/host/location-runtime-owner.js +2 -2
  196. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  197. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  198. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  199. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  200. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  201. package/dist/runtime/host/remote-bound-session-relay.js +7 -20
  202. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  203. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  204. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  205. package/dist/runtime/host/runtime-shutdown.js +18 -21
  206. package/dist/runtime/host/service-relocation-control.js +6 -1
  207. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  208. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  209. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  210. package/dist/runtime/host/spot-address-transport.js +34 -136
  211. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  212. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  213. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  214. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  215. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  216. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  217. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  218. package/dist/runtime/locations/authority-key-codec.js +4 -3
  219. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  220. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  221. package/dist/runtime/locations/creation-operation-id.js +6 -4
  222. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  223. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  224. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  225. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  226. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  227. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  228. package/dist/runtime/locations/key-codec.js +3 -2
  229. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  230. package/dist/runtime/locations/lease-tracker.js +7 -11
  231. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  232. package/dist/runtime/locations/lifecycle.js +2 -31
  233. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  234. package/dist/runtime/locations/location-store-failure.js +7 -0
  235. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  236. package/dist/runtime/locations/location-store-pages.js +13 -0
  237. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  238. package/dist/runtime/locations/location-store-repository.js +303 -332
  239. package/dist/runtime/locations/relocation-blob.js +18 -5
  240. package/dist/runtime/locations/resolvers.d.ts +5 -5
  241. package/dist/runtime/locations/resolvers.js +37 -28
  242. package/dist/runtime/locations/runtime.d.ts +5 -4
  243. package/dist/runtime/locations/runtime.js +123 -92
  244. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  245. package/dist/runtime/locations/spot-location-claims.js +42 -1
  246. package/dist/runtime/messaging/payload-codec.js +26 -20
  247. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  248. package/dist/runtime/messaging/submission-result.js +48 -0
  249. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  250. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  251. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  252. package/dist/runtime/spots/index.d.ts +14 -20
  253. package/dist/runtime/spots/index.js +302 -176
  254. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  255. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  256. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  257. package/dist/runtime/spots/spot-activation-state.js +2 -2
  258. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  259. package/dist/runtime/spots/spot-activation.js +49 -32
  260. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  261. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  262. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  263. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  264. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  265. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  266. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  267. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  268. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  269. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  270. package/dist/runtime/spots/spot-context.d.ts +2 -2
  271. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  272. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  273. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  274. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  275. package/dist/runtime/spots/spot-manager-public.js +5 -4
  276. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  277. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  278. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  279. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  280. package/dist/runtime/spots/spot-outbound.js +9 -8
  281. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  282. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  283. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  284. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  285. package/dist/runtime/spots/spot-route-replies.js +3 -1
  286. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  287. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  288. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  289. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  290. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  291. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  292. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  293. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  294. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  295. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  296. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  297. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  298. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  299. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  300. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  301. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  302. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  303. package/dist/runtime/streams/bound-session-service.js +11 -1
  304. package/dist/runtime/streams/index.d.ts +14 -15
  305. package/dist/runtime/streams/index.js +20 -21
  306. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  307. package/dist/runtime/streams/managed-stream.js +17 -8
  308. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  309. package/dist/runtime/streams/protocol.d.ts +6 -33
  310. package/dist/runtime/streams/protocol.js +38 -110
  311. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  312. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  313. package/dist/runtime/streams/session-calls.d.ts +1 -1
  314. package/dist/runtime/streams/session-calls.js +5 -4
  315. package/dist/runtime/streams/session-context.d.ts +6 -6
  316. package/dist/runtime/streams/session-context.js +22 -4
  317. package/dist/runtime/streams/session-requests.js +2 -1
  318. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  319. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  320. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  321. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  322. package/dist/runtime/workers/index.d.ts +2 -2
  323. package/dist/runtime/workers/index.js +5 -4
  324. package/package.json +3 -3
  325. package/src/contracts/Common/CoreTypes.ts +7 -0
  326. package/src/contracts/Common/index.ts +1 -1
  327. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  328. package/src/contracts/Configuration/Registration.ts +92 -48
  329. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  330. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  331. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  332. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  333. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  334. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  335. package/src/contracts/Handlers/JsonContract.ts +14 -4
  336. package/src/contracts/Locations/Authority.ts +7 -3
  337. package/src/contracts/Locations/Options.ts +1 -1
  338. package/src/contracts/Locations/Stores.ts +14 -0
  339. package/src/contracts/Spots/Contracts.ts +1 -1
  340. package/src/internal.ts +14 -0
  341. package/src/nest-integration.ts +28 -10
  342. package/src/runtime/abort.ts +6 -5
  343. package/src/runtime/activation-admission.ts +2 -8
  344. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  345. package/src/runtime/actors/actor-client.ts +77 -204
  346. package/src/runtime/actors/actor-context.ts +39 -33
  347. package/src/runtime/actors/actor-handoff.ts +24 -22
  348. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  349. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  350. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  351. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  352. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  353. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  354. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  355. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  356. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  357. package/src/runtime/actors/bound-session-wire.ts +2 -8
  358. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  359. package/src/runtime/actors/index.ts +100 -79
  360. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  361. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  362. package/src/runtime/admission.ts +8 -1
  363. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  364. package/src/runtime/backend/contracts/index.ts +13 -29
  365. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  366. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  367. package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
  368. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  369. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  370. package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
  371. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  372. package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
  373. package/src/runtime/backend/raw-binding-port.ts +1 -1
  374. package/src/runtime/backend/runtime-values.ts +4 -1
  375. package/src/runtime/channels/channel-clients.ts +132 -85
  376. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  377. package/src/runtime/channels/channel-envelope.ts +58 -29
  378. package/src/runtime/channels/channel-outbound-operations.ts +10 -23
  379. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  380. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  381. package/src/runtime/channels/channel-runtime-manager.ts +6 -2
  382. package/src/runtime/channels/channel-socket-options.ts +8 -2
  383. package/src/runtime/channels/channel-socket-registry.ts +301 -192
  384. package/src/runtime/channels/channel-transports.ts +161 -112
  385. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  386. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  387. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  388. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  389. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  390. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  391. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  392. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  393. package/src/runtime/diagnostics/flow-context.ts +16 -2
  394. package/src/runtime/diagnostics/index.ts +27 -17
  395. package/src/runtime/diagnostics/message-flow.ts +15 -25
  396. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  397. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  398. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  399. package/src/runtime/disposal.ts +19 -0
  400. package/src/runtime/execution/index.ts +60 -20
  401. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  402. package/src/runtime/execution/state-lane.ts +142 -4
  403. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  404. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  405. package/src/runtime/foundation/operation-identity.ts +11 -5
  406. package/src/runtime/foundation/operation-registry.ts +33 -50
  407. package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
  408. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  409. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  410. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  411. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  412. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  413. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  414. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  415. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  416. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  417. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  418. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  419. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  420. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  421. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  422. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  423. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  424. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  425. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  426. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  427. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  428. package/src/runtime/framework-errors-internal.ts +380 -134
  429. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  430. package/src/runtime/host/actor-packet-relay.ts +57 -147
  431. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  432. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  433. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  434. package/src/runtime/host/application-job-queue.ts +28 -34
  435. package/src/runtime/host/bound-session-relay.ts +1 -2
  436. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  437. package/src/runtime/host/index.ts +327 -296
  438. package/src/runtime/host/instance-activation-authority.ts +89 -109
  439. package/src/runtime/host/location-runtime-owner.ts +4 -2
  440. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  441. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  442. package/src/runtime/host/remote-bound-session-relay.ts +8 -41
  443. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  444. package/src/runtime/host/runtime-shutdown.ts +17 -21
  445. package/src/runtime/host/service-relocation-control.ts +14 -1
  446. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  447. package/src/runtime/host/spot-address-transport.ts +73 -195
  448. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  449. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  450. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  451. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  452. package/src/runtime/locations/authority-key-codec.ts +7 -3
  453. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  454. package/src/runtime/locations/creation-operation-id.ts +6 -3
  455. package/src/runtime/locations/domain-store-contract.ts +12 -3
  456. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  457. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  458. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  459. package/src/runtime/locations/key-codec.ts +3 -2
  460. package/src/runtime/locations/lease-tracker.ts +8 -14
  461. package/src/runtime/locations/lifecycle.ts +13 -43
  462. package/src/runtime/locations/location-store-failure.ts +4 -0
  463. package/src/runtime/locations/location-store-pages.ts +18 -0
  464. package/src/runtime/locations/location-store-repository.ts +450 -478
  465. package/src/runtime/locations/relocation-blob.ts +17 -6
  466. package/src/runtime/locations/resolvers.ts +75 -49
  467. package/src/runtime/locations/runtime.ts +220 -110
  468. package/src/runtime/locations/spot-location-claims.ts +58 -1
  469. package/src/runtime/messaging/payload-codec.ts +35 -24
  470. package/src/runtime/messaging/submission-result.ts +57 -1
  471. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  472. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  473. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  474. package/src/runtime/spots/index.ts +433 -229
  475. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  476. package/src/runtime/spots/spot-activation-state.ts +2 -2
  477. package/src/runtime/spots/spot-activation.ts +67 -37
  478. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  479. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  480. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  481. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  482. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  483. package/src/runtime/spots/spot-context.ts +3 -3
  484. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  485. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  486. package/src/runtime/spots/spot-manager-public.ts +21 -17
  487. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  488. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  489. package/src/runtime/spots/spot-outbound.ts +45 -23
  490. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  491. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  492. package/src/runtime/spots/spot-route-replies.ts +6 -4
  493. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  494. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  495. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  496. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  497. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  498. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  499. package/src/runtime/spots/spot-timer.ts +3 -2
  500. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  501. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  502. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  503. package/src/runtime/streams/bound-session-service.ts +21 -1
  504. package/src/runtime/streams/index.ts +76 -64
  505. package/src/runtime/streams/managed-stream.ts +29 -10
  506. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  507. package/src/runtime/streams/protocol.ts +34 -88
  508. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  509. package/src/runtime/streams/session-calls.ts +6 -5
  510. package/src/runtime/streams/session-context.ts +54 -10
  511. package/src/runtime/streams/session-requests.ts +2 -1
  512. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  513. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  514. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  515. package/src/runtime/workers/index.ts +13 -12
  516. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  517. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  518. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  519. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  520. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  521. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -41,7 +41,10 @@ export declare class ZLinkBackendResultError extends Error {
41
41
  readonly operation: 'request' | 'submit';
42
42
  readonly result: number;
43
43
  readonly nativeErrno?: number | undefined;
44
- constructor(operation: 'request' | 'submit', result: number, nativeErrno?: number | undefined, options?: ErrorOptions);
44
+ constructor(operation: 'request' | 'submit', result: number, nativeErrno?: number | undefined, options?: ErrorOptions & {
45
+ readonly phase?: 'submit' | 'completion';
46
+ });
47
+ readonly phase: 'submit' | 'completion';
45
48
  }
46
49
  export declare function isZLinkBackendResultError(error: unknown): error is ZLinkBackendResultError;
47
50
  export declare function isBackendNotConnectedError(error: unknown): boolean;
@@ -48,7 +48,9 @@ class ZLinkBackendResultError extends Error {
48
48
  this.result = result;
49
49
  this.nativeErrno = nativeErrno;
50
50
  this.name = 'ZLinkBackendResultError';
51
+ this.phase = options?.phase ?? 'completion';
51
52
  }
53
+ phase;
52
54
  }
53
55
  exports.ZLinkBackendResultError = ZLinkBackendResultError;
54
56
  function isZLinkBackendResultError(error) {
@@ -2,15 +2,24 @@ import type { ZLinkChannelClient, ZLinkChannelRequestCall, ZLinkFanoutClient, ZL
2
2
  import type { SpotHandle } from '../spots/spot-handle';
3
3
  import { type ZLinkFrameworkRegistration } from '../configuration';
4
4
  import type { ZLinkChannelClientTransportSource, ZLinkRouteClientTransport, ZLinkSpotPublisherClientTransport } from './channel-transports';
5
+ type RouteMeshChannelMatch = {
6
+ readonly meshName: string;
7
+ readonly mesh: NonNullable<ReturnType<ZLinkFrameworkRegistration['spotNodes']['get']>>;
8
+ };
9
+ type ChannelRouteResolution = {
10
+ readonly kind: 'client-server';
11
+ readonly channel: NonNullable<ReturnType<ZLinkFrameworkRegistration['channels']['get']>>;
12
+ } | {
13
+ readonly kind: 'route-mesh';
14
+ readonly matches: readonly RouteMeshChannelMatch[];
15
+ };
16
+ export declare function resolveChannelRoute(registration: ZLinkFrameworkRegistration, channelName: string): ChannelRouteResolution | undefined;
17
+ export declare function requireUniqueRouteMeshChannel(matches: readonly RouteMeshChannelMatch[], duplicateMessage: string): RouteMeshChannelMatch;
5
18
  export declare class DefaultZLinkChannelClient implements ZLinkChannelClient {
6
- private readonly registration;
7
- private readonly transport?;
8
- constructor(registration: ZLinkFrameworkRegistration, transport?: ZLinkChannelClientTransportSource | undefined);
19
+ private readonly routeClient;
20
+ constructor(registration: ZLinkFrameworkRegistration, channelTransport?: ZLinkChannelClientTransportSource, routeTransport?: ZLinkRouteClientTransport, spotRouterChannelIdForMesh?: (meshName: string) => string);
9
21
  sendToChannel(channelName: string, message: unknown): ZLinkSendCall;
10
22
  requestToChannel(channelName: string, request: unknown): ZLinkChannelRequestCall;
11
- private defaultRequestTimeout;
12
- private requireChannel;
13
- private requireTransport;
14
23
  }
15
24
  export declare class DefaultZLinkFanoutClient implements ZLinkFanoutClient {
16
25
  private readonly registration;
@@ -25,7 +34,8 @@ export declare class DefaultZLinkRouteClient implements ZLinkRouteClient {
25
34
  private readonly registration;
26
35
  private readonly transport?;
27
36
  private readonly spotRouterChannelIdForMesh;
28
- constructor(registration: ZLinkFrameworkRegistration, transport?: ZLinkRouteClientTransport | undefined, spotRouterChannelIdForMesh?: (meshName: string) => string);
37
+ private readonly channelTransport?;
38
+ constructor(registration: ZLinkFrameworkRegistration, transport?: ZLinkRouteClientTransport | undefined, spotRouterChannelIdForMesh?: (meshName: string) => string, channelTransport?: ZLinkChannelClientTransportSource | undefined);
29
39
  sendToNode(meshName: string, targetNodeRid: string, message: unknown): ZLinkSendCall;
30
40
  requestToNode(meshName: string, targetNodeRid: string, request: unknown): ZLinkRequestCall;
31
41
  sendToChannel(channelName: string, message: unknown): ZLinkSendCall;
@@ -34,9 +44,10 @@ export declare class DefaultZLinkRouteClient implements ZLinkRouteClient {
34
44
  requestToSpot(spot: SpotHandle, request: unknown): ZLinkRequestCall;
35
45
  private defaultRequestTimeout;
36
46
  private requireMesh;
37
- private resolveMeshChannel;
47
+ private requireChannelRoute;
38
48
  private defaultRequestTimeoutForChannel;
39
49
  private requireTransport;
50
+ private requireChannelTransport;
40
51
  private requireSpotTransport;
41
52
  }
42
53
  export declare class DefaultZLinkSpotPublisherClient implements ZLinkSpotPublisherClient {
@@ -47,3 +58,4 @@ export declare class DefaultZLinkSpotPublisherClient implements ZLinkSpotPublish
47
58
  private requireMeshChannel;
48
59
  private requireTransport;
49
60
  }
61
+ export {};
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultZLinkSpotPublisherClient = exports.DefaultZLinkRouteClient = exports.DefaultZLinkFanoutClient = exports.DefaultZLinkChannelClient = void 0;
4
+ exports.resolveChannelRoute = resolveChannelRoute;
5
+ exports.requireUniqueRouteMeshChannel = requireUniqueRouteMeshChannel;
6
+ const Registration_1 = require("../../contracts/Configuration/Registration");
4
7
  const configuration_1 = require("../configuration");
5
8
  const framework_errors_internal_1 = require("../framework-errors-internal");
6
9
  const submission_result_1 = require("../messaging/submission-result");
@@ -9,39 +12,32 @@ const execution_1 = require("../execution");
9
12
  const fanout_service_wire_1 = require("./fanout-service-wire");
10
13
  const spot_outbound_1 = require("../spots/spot-outbound");
11
14
  const packet_name_1 = require("../messaging/packet-name");
15
+ function resolveChannelRoute(registration, channelName) {
16
+ const clientServerChannel = registration.channels.get(channelName);
17
+ if (clientServerChannel !== undefined) {
18
+ return { kind: 'client-server', channel: clientServerChannel };
19
+ }
20
+ const matches = [...registration.spotNodes.entries()]
21
+ .filter(([, mesh]) => Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName))
22
+ .map(([meshName, mesh]) => ({ meshName, mesh }));
23
+ return matches.length === 0 ? undefined : { kind: 'route-mesh', matches };
24
+ }
25
+ function requireUniqueRouteMeshChannel(matches, duplicateMessage) {
26
+ if (matches.length !== 1) {
27
+ throw new configuration_1.ZLinkConfigurationException(duplicateMessage);
28
+ }
29
+ return matches[0];
30
+ }
12
31
  class DefaultZLinkChannelClient {
13
- registration;
14
- transport;
15
- constructor(registration, transport) {
16
- this.registration = registration;
17
- this.transport = transport;
32
+ routeClient;
33
+ constructor(registration, channelTransport, routeTransport, spotRouterChannelIdForMesh = (meshName) => meshName) {
34
+ this.routeClient = new DefaultZLinkRouteClient(registration, routeTransport, spotRouterChannelIdForMesh, channelTransport);
18
35
  }
19
36
  sendToChannel(channelName, message) {
20
- return new DefaultZLinkSendCall(() => this.requireChannel(channelName), async (packetName, metadata, signal) => normalizeSubmitResult(await this.requireTransport().send(channelName, packetName, message, signal, metadata)));
37
+ return this.routeClient.sendToChannel(channelName, message);
21
38
  }
22
39
  requestToChannel(channelName, request) {
23
- return new DefaultZLinkRequestCall(() => this.requireChannel(channelName), (packetName, timeoutMs, metadata, signal) => this.requireTransport().request(channelName, packetName, request, timeoutMs, signal, metadata), this.defaultRequestTimeout(channelName));
24
- }
25
- defaultRequestTimeout(channelName) {
26
- return (this.registration.channels.get(channelName)?.requestTimeoutMs ??
27
- this.registration.requestTimeoutMs ??
28
- 30_000);
29
- }
30
- requireChannel(channelName) {
31
- const channel = this.registration.channels.get(channelName);
32
- if (channel === undefined) {
33
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound, `Channel client '${channelName}' is not registered.`);
34
- }
35
- if (channel.client === undefined) {
36
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidConfiguration, `Channel client role '${channelName}' is not configured.`);
37
- }
38
- }
39
- requireTransport() {
40
- const transport = typeof this.transport === 'function' ? this.transport() : this.transport;
41
- if (transport === undefined) {
42
- throw new configuration_1.ZLinkConfigurationException('Channel runtime is not started.');
43
- }
44
- return transport;
40
+ return this.routeClient.requestToChannel(channelName, request);
45
41
  }
46
42
  }
47
43
  exports.DefaultZLinkChannelClient = DefaultZLinkChannelClient;
@@ -82,10 +78,12 @@ class DefaultZLinkRouteClient {
82
78
  registration;
83
79
  transport;
84
80
  spotRouterChannelIdForMesh;
85
- constructor(registration, transport, spotRouterChannelIdForMesh = (meshName) => meshName) {
81
+ channelTransport;
82
+ constructor(registration, transport, spotRouterChannelIdForMesh = (meshName) => meshName, channelTransport) {
86
83
  this.registration = registration;
87
84
  this.transport = transport;
88
85
  this.spotRouterChannelIdForMesh = spotRouterChannelIdForMesh;
86
+ this.channelTransport = channelTransport;
89
87
  }
90
88
  sendToNode(meshName, targetNodeRid, message) {
91
89
  return new DefaultZLinkSendCall(() => this.requireMesh(meshName), async (packetName, metadata, signal) => normalizeSubmitResult(await this.requireTransport().submit(meshName, targetNodeRid, packetName, message, signal, metadata)));
@@ -94,19 +92,21 @@ class DefaultZLinkRouteClient {
94
92
  return new DefaultZLinkRequestCall(() => this.requireMesh(meshName), (packetName, timeoutMs, metadata, signal) => this.requireTransport().request(meshName, targetNodeRid, packetName, request, timeoutMs, signal, metadata), this.defaultRequestTimeout(meshName));
95
93
  }
96
94
  sendToChannel(channelName, message) {
97
- return new DefaultZLinkSendCall(() => {
98
- this.resolveMeshChannel(channelName);
99
- }, async (packetName, metadata, signal) => {
100
- const meshName = this.resolveMeshChannel(channelName);
101
- return normalizeSubmitResult(await this.requireTransport().submitToChannel(meshName, channelName, packetName, message, signal, metadata));
95
+ return new DefaultZLinkSendCall(() => this.requireChannelRoute(channelName), async (packetName, metadata, signal) => {
96
+ const route = this.requireChannelRoute(channelName);
97
+ if (route.kind === 'route-mesh') {
98
+ return normalizeSubmitResult(await this.requireTransport().submitToChannel(route.meshName, channelName, packetName, message, signal, metadata));
99
+ }
100
+ return normalizeSubmitResult(await this.requireChannelTransport().send(channelName, packetName, message, signal, metadata));
102
101
  });
103
102
  }
104
103
  requestToChannel(channelName, request) {
105
- return new DefaultZLinkRequestCall(() => {
106
- this.resolveMeshChannel(channelName);
107
- }, (packetName, timeoutMs, metadata, signal) => {
108
- const meshName = this.resolveMeshChannel(channelName);
109
- return this.requireTransport().requestToChannel(meshName, channelName, packetName, request, timeoutMs, signal, metadata);
104
+ return new DefaultZLinkRequestCall(() => this.requireChannelRoute(channelName), (packetName, timeoutMs, metadata, signal) => {
105
+ const route = this.requireChannelRoute(channelName);
106
+ if (route.kind === 'route-mesh') {
107
+ return this.requireTransport().requestToChannel(route.meshName, channelName, packetName, request, timeoutMs, signal, metadata);
108
+ }
109
+ return this.requireChannelTransport().request(channelName, packetName, request, timeoutMs, signal, metadata);
110
110
  }, this.defaultRequestTimeoutForChannel(channelName));
111
111
  }
112
112
  sendToSpot(spot, message) {
@@ -129,13 +129,13 @@ class DefaultZLinkRouteClient {
129
129
  signal,
130
130
  metadata,
131
131
  spotRouterChannelIdForMesh: this.spotRouterChannelIdForMesh
132
- }), this.registration.requestTimeoutMs ?? 30_000);
132
+ }), this.registration.requestTimeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS);
133
133
  }
134
134
  defaultRequestTimeout(meshName) {
135
135
  return (this.registration.spotNodes.get(meshName)?.requestTimeoutMs ??
136
136
  this.registration.routeChannelOptions.get(meshName)?.requestTimeoutMs ??
137
137
  this.registration.requestTimeoutMs ??
138
- 30_000);
138
+ Registration_1.DEFAULT_REQUEST_TIMEOUT_MS);
139
139
  }
140
140
  requireMesh(meshName) {
141
141
  if (!this.registration.spotNodes.has(meshName) &&
@@ -143,21 +143,30 @@ class DefaultZLinkRouteClient {
143
143
  throw new configuration_1.ZLinkConfigurationException(`RouteMesh '${meshName}' is not registered.`);
144
144
  }
145
145
  }
146
- resolveMeshChannel(channelName) {
147
- const matches = [...this.registration.spotNodes.entries()]
148
- .filter(([, mesh]) => Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName))
149
- .map(([meshName]) => meshName);
150
- if (matches.length === 0) {
151
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound, `RouteMesh channel '${channelName}' is not registered.`);
146
+ requireChannelRoute(channelName) {
147
+ const resolution = resolveChannelRoute(this.registration, channelName);
148
+ if (resolution === undefined) {
149
+ throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound, `ChannelName '${channelName}' is not registered.`);
152
150
  }
153
- if (matches.length !== 1) {
154
- throw new configuration_1.ZLinkConfigurationException(`RouteMesh channel '${channelName}' must be unique across the Framework host.`);
151
+ if (resolution.kind === 'client-server') {
152
+ if (resolution.channel.client === undefined) {
153
+ throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidConfiguration, `Channel client role '${channelName}' is not configured.`);
154
+ }
155
+ return resolution;
155
156
  }
156
- return matches[0];
157
+ return {
158
+ kind: 'route-mesh',
159
+ ...requireUniqueRouteMeshChannel(resolution.matches, `RouteMesh channel '${channelName}' must be unique across the Framework host.`)
160
+ };
157
161
  }
158
162
  defaultRequestTimeoutForChannel(channelName) {
159
- const match = [...this.registration.spotNodes.entries()].find(([, mesh]) => Object.prototype.hasOwnProperty.call(mesh.meshChannels ?? {}, channelName));
160
- return match?.[1].requestTimeoutMs ?? this.registration.requestTimeoutMs ?? 30_000;
163
+ const route = resolveChannelRoute(this.registration, channelName);
164
+ const timeoutMs = route?.kind === 'client-server'
165
+ ? route.channel.requestTimeoutMs
166
+ : route?.kind === 'route-mesh'
167
+ ? route.matches[0]?.mesh.requestTimeoutMs
168
+ : undefined;
169
+ return timeoutMs ?? this.registration.requestTimeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS;
161
170
  }
162
171
  requireTransport() {
163
172
  if (this.transport === undefined) {
@@ -165,6 +174,13 @@ class DefaultZLinkRouteClient {
165
174
  }
166
175
  return this.transport;
167
176
  }
177
+ requireChannelTransport() {
178
+ const transport = typeof this.channelTransport === 'function' ? this.channelTransport() : this.channelTransport;
179
+ if (transport === undefined) {
180
+ throw new configuration_1.ZLinkConfigurationException('Channel runtime is not started.');
181
+ }
182
+ return transport;
183
+ }
168
184
  requireSpotTransport() {
169
185
  const transport = this.requireTransport();
170
186
  if (transport.sendToSpot === undefined || transport.requestToSpot === undefined) {
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryDecodeChannelHeader = tryDecodeChannelHeader;
4
4
  exports.inspectMalformedChannelHeader = inspectMalformedChannelHeader;
5
5
  exports.malformedProtocolErrorRequestHeader = malformedProtocolErrorRequestHeader;
6
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
6
7
  const channel_envelope_1 = require("./channel-envelope");
7
8
  function tryDecodeChannelHeader(parts, flowEnabled = true) {
8
9
  if (parts.length < 2 || parts[0].data().length === 0) {
@@ -55,7 +56,7 @@ function malformedProtocolErrorRequestHeader(channelName, info) {
55
56
  kind: 1 /* ZLinkChannelMessageKind.Request */,
56
57
  channelName,
57
58
  messageName: info.messageName ?? '',
58
- contentType: 'application/json',
59
+ contentType: stream_wire_1.ZlinkStreamContentType.Json,
59
60
  correlationId: info.correlationId ?? null,
60
61
  deadline: null,
61
62
  topic: null,
@@ -14,6 +14,7 @@ exports.decodeChannelPayload = decodeChannelPayload;
14
14
  exports.closeMessages = closeMessages;
15
15
  exports.decodeChannelHeader = decodeChannelHeader;
16
16
  const node_crypto_1 = require("node:crypto");
17
+ const node_buffer_1 = require("node:buffer");
17
18
  const contracts_1 = require("../../contracts");
18
19
  const encoded_payload_storage_1 = require("../../contracts/Common/encoded-payload-storage");
19
20
  const ZLinkMessage_1 = require("../../contracts/Common/ZLinkMessage");
@@ -24,6 +25,7 @@ const payload_codec_1 = require("../messaging/payload-codec");
24
25
  const CodecContentType_1 = require("../../contracts/Configuration/CodecContentType");
25
26
  const framework_json_v1_1 = require("../messaging/framework-json-v1");
26
27
  const flow_context_1 = require("../diagnostics/flow-context");
28
+ const service_wire_constants_generated_1 = require("../foundation/service-wire-constants.generated");
27
29
  const channel_framework_packets_1 = require("./channel-framework-packets");
28
30
  const Attributes_1 = require("../../contracts/Handlers/Attributes");
29
31
  exports.ZLINK_CHANNEL_FORMAT_MARKER = 0xf2;
@@ -314,7 +316,20 @@ function writeChannelHeader(writer, kind, channelName, messageName, contentType,
314
316
  writer.append(',"source":');
315
317
  writer.nullableString(source);
316
318
  }
317
- writer.append(',"metadata":{');
319
+ writer.append(',"metadata":');
320
+ writeApplicationMetadata(writer, metadata);
321
+ if (flowId !== undefined) {
322
+ writer.append(',"flowId":');
323
+ writer.string(flowId);
324
+ }
325
+ if (flowOrigin !== undefined) {
326
+ writer.append(',"flowOrigin":');
327
+ writer.append(String(encodeFlowOrigin(flowOrigin)));
328
+ }
329
+ writer.append('}');
330
+ }
331
+ function writeApplicationMetadata(writer, metadata) {
332
+ writer.append('{');
318
333
  let first = true;
319
334
  for (const name in metadata) {
320
335
  if (!Object.prototype.hasOwnProperty.call(metadata, name))
@@ -327,15 +342,6 @@ function writeChannelHeader(writer, kind, channelName, messageName, contentType,
327
342
  writer.string(metadata[name]);
328
343
  }
329
344
  writer.append('}');
330
- if (flowId !== undefined) {
331
- writer.append(',"flowId":');
332
- writer.string(flowId);
333
- }
334
- if (flowOrigin !== undefined) {
335
- writer.append(',"flowOrigin":');
336
- writer.append(String(encodeFlowOrigin(flowOrigin)));
337
- }
338
- writer.append('}');
339
345
  }
340
346
  class ChannelHeaderWriter {
341
347
  output;
@@ -438,13 +444,16 @@ function parseWireJson(payload, schema) {
438
444
  }, schema);
439
445
  }
440
446
  function parseChannelHeaderBytes(payload) {
441
- return tryParseCanonicalChannelHeader(payload) ?? parseWireJson(payload.toString());
447
+ if (!(0, node_buffer_1.isUtf8)(payload)) {
448
+ throw new contracts_1.ZLinkFrameworkException(contracts_1.ZLinkFrameworkErrorKind.ProtocolError, 'Channel envelope header must contain valid UTF-8.');
449
+ }
450
+ return tryParseCanonicalChannelHeader(payload) ?? (0, framework_json_v1_1.parseFrameworkJsonV1)(payload.toString());
442
451
  }
443
452
  /**
444
453
  * Accept the byte layout emitted by writeChannelHeader without materializing
445
454
  * the enclosing JSON text. Any variation falls through to the established
446
455
  * framework-json-v1 parser, which remains the sole authority for JSON
447
- * failures, unknown properties, and prototype-key rejection.
456
+ * failures and unknown properties. Header metadata accepts every valid string key.
448
457
  */
449
458
  function tryParseCanonicalChannelHeader(payload) {
450
459
  const reader = new CanonicalChannelHeaderReader(payload);
@@ -700,34 +709,43 @@ function channelKindName(kind) {
700
709
  }
701
710
  const EMPTY_APPLICATION_METADATA = Object.freeze({});
702
711
  function applicationMetadataRecord(metadata) {
703
- // The common case carries no metadata; skip the record + JSON.stringify
704
- // byte-limit walk entirely.
705
712
  if (metadata.size === 0)
706
713
  return EMPTY_APPLICATION_METADATA;
707
- const record = {};
708
- for (const [key, value] of metadata) {
709
- if (key.length === 0 || key.includes('\0') || value.includes('\0')) {
710
- throw new configuration_1.ZLinkConfigurationException('Channel application metadata keys must be non-empty and keys and values must not contain NUL.');
711
- }
714
+ const record = Object.create(null);
715
+ for (const [key, value] of metadata)
712
716
  record[key] = value;
717
+ return validateApplicationMetadata(record);
718
+ }
719
+ const INVALID_METADATA_UNICODE = /[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;
720
+ function validateApplicationMetadata(metadata) {
721
+ const keys = Object.keys(metadata);
722
+ if (keys.length === 0)
723
+ return EMPTY_APPLICATION_METADATA;
724
+ for (const key of keys) {
725
+ const value = requireString(metadata[key], `metadata.${key}`);
726
+ if (key.length === 0 ||
727
+ key.includes('\0') ||
728
+ value.includes('\0') ||
729
+ INVALID_METADATA_UNICODE.test(key) ||
730
+ INVALID_METADATA_UNICODE.test(value)) {
731
+ throw new configuration_1.ZLinkConfigurationException('Channel application metadata keys must be non-empty and keys and values must be valid Unicode without NUL.');
732
+ }
713
733
  }
714
- if (Buffer.byteLength(JSON.stringify(record), 'utf8') > 1024) {
715
- throw new configuration_1.ZLinkConfigurationException('Channel application metadata exceeds the 1024-byte limit.');
734
+ const record = metadata;
735
+ const writer = new ChannelHeaderWriter();
736
+ writeApplicationMetadata(writer, record);
737
+ if (writer.byteLength > service_wire_constants_generated_1.SERVICE_WIRE_METADATA_BYTES) {
738
+ throw new configuration_1.ZLinkConfigurationException(`Channel application metadata exceeds the ${service_wire_constants_generated_1.SERVICE_WIRE_METADATA_BYTES}-byte limit.`);
716
739
  }
717
740
  return Object.freeze(record);
718
741
  }
719
742
  function requireApplicationMetadata(value) {
720
- if (value === undefined) {
721
- return Object.freeze({});
722
- }
743
+ if (value === undefined)
744
+ return EMPTY_APPLICATION_METADATA;
723
745
  if (!isRecord(value)) {
724
746
  throw new configuration_1.ZLinkConfigurationException('Channel application metadata must be a JSON object.');
725
747
  }
726
- const metadata = new Map();
727
- for (const [key, selectedValue] of Object.entries(value)) {
728
- metadata.set(key, requireString(selectedValue, `metadata.${key}`));
729
- }
730
- return applicationMetadataRecord(metadata);
748
+ return validateApplicationMetadata(value);
731
749
  }
732
750
  function optionalFlowId(value) {
733
751
  return value === undefined || value === null ? undefined : requireFlowId(value);
@@ -1,4 +1,5 @@
1
1
  import { type ZLinkSubmitResult } from '../messaging/submission-result';
2
+ import { type ZLinkRuntimeMessageFlowResult } from '../../contracts/Dispatch/ZLinkDispatchOptions';
2
3
  import { type ZLinkChannelEnvelopeCodecRegistry } from './channel-envelope';
3
4
  import { ZLinkChannelDispatchServices } from './channel-dispatch-services';
4
5
  import { ZLinkChannelSocketRegistry } from './channel-socket-registry';
@@ -31,3 +32,5 @@ export declare class ZLinkChannelOutboundOperations {
31
32
  * ref'ed handle until reply, cancellation, timeout, or failure settles it.
32
33
  */
33
34
  export declare function keepChannelRequestAlive<T>(request: Promise<T>): Promise<T>;
35
+ export declare function requestTerminalResult(error: unknown, signal: AbortSignal | undefined): ZLinkRuntimeMessageFlowResult;
36
+ export declare function isRemoteChannelErrorReply(error: unknown): boolean;
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkChannelOutboundOperations = void 0;
4
4
  exports.keepChannelRequestAlive = keepChannelRequestAlive;
5
+ exports.requestTerminalResult = requestTerminalResult;
6
+ exports.isRemoteChannelErrorReply = isRemoteChannelErrorReply;
5
7
  const framework_errors_internal_1 = require("../framework-errors-internal");
6
8
  const runtime_values_1 = require("../backend/runtime-values");
7
9
  const submission_result_1 = require("../messaging/submission-result");
@@ -39,7 +41,7 @@ class ZLinkChannelOutboundOperations {
39
41
  (0, abort_1.throwIfAborted)(signal);
40
42
  const dealer = await this.sockets.awaitClientDealerForOutbound(channelName, signal);
41
43
  if (dealer === undefined) {
42
- return { status: submission_result_1.ZLinkSubmitStatus.RouteNotConnected };
44
+ return { status: submission_result_1.ZLinkSubmitStatus.TimedOut };
43
45
  }
44
46
  const parts = (0, channel_envelope_1.encodeChannelEnvelopeParts)(3 /* ZLinkChannelMessageKind.Command */, channelName, packetName, message, undefined, undefined, this.codecs, undefined, this.dispatchServices.flowCreationEnabled(), metadata);
45
47
  try {
@@ -79,7 +81,6 @@ class ZLinkChannelOutboundOperations {
79
81
  return keepChannelRequestAlive((0, flow_context_1.runWithOutboundFlow)(this.dispatchServices.flowCreationEnabled(), () => this.requestScoped(channelName, packetName, request, timeoutMs, signal, metadata)));
80
82
  }
81
83
  async requestScoped(channelName, packetName, request, timeoutMs, signal, metadata) {
82
- const deadlineAtMs = timeoutMs === undefined ? undefined : performance.now() + timeoutMs;
83
84
  let correlationId;
84
85
  let selectedServerRid;
85
86
  let terminalRecorded = false;
@@ -100,16 +101,14 @@ class ZLinkChannelOutboundOperations {
100
101
  };
101
102
  try {
102
103
  (0, abort_1.throwIfAborted)(signal);
103
- const dealer = await this.sockets.awaitClientDealerForOutbound(channelName, signal, deadlineAtMs);
104
- // Binding timeouts are whole milliseconds; rounding down keeps the call's deadline.
105
- const remainingMs = deadlineAtMs === undefined ? undefined : Math.floor(deadlineAtMs - performance.now());
106
- if (dealer === undefined || (remainingMs !== undefined && remainingMs <= 0)) {
107
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `Channel '${channelName}' has no ready ClientServer server.`);
104
+ const dealer = await this.sockets.awaitClientDealerForOutbound(channelName, signal);
105
+ if (dealer === undefined) {
106
+ throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.DeadlineExceeded, `Channel '${channelName}' has no ready ClientServer server before its admission deadline.`);
108
107
  }
109
108
  const serverRid = this.sockets.selectedClientServerRid(channelName, dealer);
110
109
  selectedServerRid = serverRid;
111
110
  correlationId = (0, channel_envelope_1.newChannelCorrelationId)();
112
- const parts = (0, channel_envelope_1.encodeChannelEnvelopeParts)(1 /* ZLinkChannelMessageKind.Request */, channelName, packetName, request, remainingMs, undefined, this.codecs, correlationId, this.dispatchServices.flowCreationEnabled(), metadata);
111
+ const parts = (0, channel_envelope_1.encodeChannelEnvelopeParts)(1 /* ZLinkChannelMessageKind.Request */, channelName, packetName, request, timeoutMs, undefined, this.codecs, correlationId, this.dispatchServices.flowCreationEnabled(), metadata);
113
112
  this.dispatchServices.beginOutbound(ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Sent)?.trace({
114
113
  surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.Channel,
115
114
  messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Request,
@@ -123,7 +122,7 @@ class ZLinkChannelOutboundOperations {
123
122
  let replyParts = [];
124
123
  try {
125
124
  try {
126
- replyParts = await (0, abort_1.awaitWithAbort)(dealer.request(parts, remainingMs), signal);
125
+ replyParts = await (0, abort_1.awaitWithAbort)(dealer.request(parts, timeoutMs), signal);
127
126
  }
128
127
  catch (error) {
129
128
  if (signal?.aborted === true)
@@ -134,7 +133,7 @@ class ZLinkChannelOutboundOperations {
134
133
  if ((0, runtime_values_1.isZLinkBackendResultError)(error) && error.operation === 'request') {
135
134
  throw new contracts_1.ZLinkFrameworkException((0, framework_errors_internal_1.requestResultToPublicErrorKind)(error.result), `Channel '${channelName}' request failed with result ${error.result}.`, error);
136
135
  }
137
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `Channel '${channelName}' request failed before a reply was received.`, true, error);
136
+ throw error;
138
137
  }
139
138
  return (0, channel_envelope_1.decodeChannelReply)(replyParts, this.codecs);
140
139
  }
@@ -5,6 +5,8 @@ import type { ZLinkMultipartAsyncSubmitOperation } from './channel-multipart';
5
5
  import type { ZLinkChannelEnvelopeHeader } from './channel-envelope';
6
6
  import { type ZLinkReceiveTaskErrorReporter } from './channel-receive-task-tracker';
7
7
  import { ApplicationJobQueue } from '../host/application-job-queue';
8
+ import { ZLinkSerialExecutionQueue } from '../execution/serial-execution-queue';
9
+ export declare function createChannelApplicationDispatchQueue(): ZLinkSerialExecutionQueue;
8
10
  interface ZLinkMultipartOperation<TNext> {
9
11
  message(message: MessageLike): TNext;
10
12
  }
@@ -84,6 +86,7 @@ export declare class ZLinkChannelReceiveLoop {
84
86
  private readonly poller;
85
87
  private readonly applicationJobQueue;
86
88
  private readonly roundRobin?;
89
+ private readonly applicationDispatchQueue;
87
90
  private stoppedFlag;
88
91
  private isStopped;
89
92
  private running?;
@@ -93,7 +96,7 @@ export declare class ZLinkChannelReceiveLoop {
93
96
  private readonly capacityStop;
94
97
  constructor(channelName: string, router: ZLinkBackendRouterSocket & {
95
98
  reply(routingId: unknown, replyToken: unknown): ZLinkMultipartReplyOperation;
96
- }, dispatcher: ZLinkChannelRequestDispatchLoop, spotRouteBridge: ZLinkBackendSpotRouteBridge | undefined, infrastructureHandler: ZLinkChannelInfrastructureHandler | undefined, poller: ZLinkBackendReadablePoller, applicationJobQueue: ApplicationJobQueue, reportError?: ZLinkReceiveTaskErrorReporter, roundRobin?: ZLinkReceiveRoundRobinCoordinator | undefined);
99
+ }, dispatcher: ZLinkChannelRequestDispatchLoop, spotRouteBridge: ZLinkBackendSpotRouteBridge | undefined, infrastructureHandler: ZLinkChannelInfrastructureHandler | undefined, poller: ZLinkBackendReadablePoller, applicationJobQueue: ApplicationJobQueue, reportError?: ZLinkReceiveTaskErrorReporter, roundRobin?: ZLinkReceiveRoundRobinCoordinator | undefined, applicationDispatchQueue?: ZLinkSerialExecutionQueue);
97
100
  run(signal?: AbortSignal): Promise<void>;
98
101
  private runLoop;
99
102
  stop(): Promise<void>;
@@ -108,6 +111,7 @@ export declare class ZLinkSubscriberReceiveLoop {
108
111
  private readonly applicationJobQueue;
109
112
  private readonly infrastructureHandler?;
110
113
  private readonly roundRobin?;
114
+ private readonly applicationDispatchQueue;
111
115
  private stoppedFlag;
112
116
  private isStopped;
113
117
  private running?;
@@ -115,7 +119,7 @@ export declare class ZLinkSubscriberReceiveLoop {
115
119
  private readonly receiveOwner;
116
120
  private readonly rawReceiveReservations;
117
121
  private readonly capacityStop;
118
- constructor(adapter: ZLinkChannelBackendAdapter, subscriber: ZLinkBackendSubscriberSocket, dispatcher: ZLinkChannelPublishDispatchLoop, applicationJobQueue: ApplicationJobQueue, infrastructureHandler?: ((topicMessage: ReturnType<ZLinkChannelBackendAdapter["createTopicMessage"]>) => boolean | ZLinkSubscriberInfrastructureResult) | undefined, roundRobin?: ZLinkReceiveRoundRobinCoordinator | undefined, reportError?: ZLinkReceiveTaskErrorReporter);
122
+ constructor(adapter: ZLinkChannelBackendAdapter, subscriber: ZLinkBackendSubscriberSocket, dispatcher: ZLinkChannelPublishDispatchLoop, applicationJobQueue: ApplicationJobQueue, infrastructureHandler?: ((topicMessage: ReturnType<ZLinkChannelBackendAdapter["createTopicMessage"]>) => boolean | ZLinkSubscriberInfrastructureResult) | undefined, roundRobin?: ZLinkReceiveRoundRobinCoordinator | undefined, reportError?: ZLinkReceiveTaskErrorReporter, applicationDispatchQueue?: ZLinkSerialExecutionQueue);
119
123
  private readonly poller;
120
124
  run(signal?: AbortSignal): Promise<void>;
121
125
  private runLoop;
@@ -130,6 +134,7 @@ export declare class ZLinkRouteReceiveLoop {
130
134
  private readonly poller;
131
135
  private readonly applicationJobQueue;
132
136
  private readonly roundRobin?;
137
+ private readonly applicationDispatchQueue;
133
138
  private stoppedFlag;
134
139
  private isStopped;
135
140
  private running?;
@@ -139,7 +144,7 @@ export declare class ZLinkRouteReceiveLoop {
139
144
  private readonly capacityStop;
140
145
  constructor(router: ZLinkBackendRouterSocket & {
141
146
  reply(routingId: unknown, replyToken: unknown): ZLinkMultipartReplyOperation;
142
- }, dispatcher: ZLinkRoutePacketDispatchLoop, poller: ZLinkBackendReadablePoller, applicationJobQueue: ApplicationJobQueue, roundRobin?: ZLinkReceiveRoundRobinCoordinator | undefined, reportError?: ZLinkReceiveTaskErrorReporter);
147
+ }, dispatcher: ZLinkRoutePacketDispatchLoop, poller: ZLinkBackendReadablePoller, applicationJobQueue: ApplicationJobQueue, roundRobin?: ZLinkReceiveRoundRobinCoordinator | undefined, reportError?: ZLinkReceiveTaskErrorReporter, applicationDispatchQueue?: ZLinkSerialExecutionQueue);
143
148
  run(signal?: AbortSignal): Promise<void>;
144
149
  private runLoop;
145
150
  stop(): Promise<void>;