@zlink-systems/framework 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -0
  13. package/dist/contracts/Handlers/JsonContract.js +23 -11
  14. package/dist/contracts/Spots/SpotKind.js +16 -8
  15. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -1
  16. package/dist/location-store-integration.js +16 -16
  17. package/dist/nest-integration.js +17 -11
  18. package/dist/runtime/abort.js +9 -5
  19. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  20. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  21. package/dist/runtime/actors/actor-client.js +83 -63
  22. package/dist/runtime/actors/actor-context.js +28 -22
  23. package/dist/runtime/actors/actor-creation.js +4 -3
  24. package/dist/runtime/actors/actor-handoff.js +89 -92
  25. package/dist/runtime/actors/actor-join-deferred-scope.d.ts +0 -1
  26. package/dist/runtime/actors/actor-join-deferred-scope.js +0 -18
  27. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  28. package/dist/runtime/actors/actor-mailbox.js +1 -1
  29. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  30. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  31. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  32. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  33. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  34. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  35. package/dist/runtime/actors/bound-session-wire.js +14 -9
  36. package/dist/runtime/actors/deferred-join-accepted-journal.js +160 -130
  37. package/dist/runtime/actors/index.js +2 -5
  38. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  39. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  40. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  41. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  42. package/dist/runtime/admission.js +2 -6
  43. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  44. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  45. package/dist/runtime/backend/contracts/index.d.ts +1 -0
  46. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  47. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  48. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  49. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  50. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  51. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  52. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +3 -0
  53. package/dist/runtime/backend/node/node-raw-mesh-backend.js +134 -118
  54. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  55. package/dist/runtime/backend/runtime-message.js +3 -3
  56. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  57. package/dist/runtime/backend/runtime-values.js +4 -5
  58. package/dist/runtime/channels/channel-clients.js +27 -24
  59. package/dist/runtime/channels/channel-dispatch-pipeline.js +12 -20
  60. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  61. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  62. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  63. package/dist/runtime/channels/channel-envelope.js +83 -47
  64. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  65. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  66. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  67. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  68. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  69. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  70. package/dist/runtime/channels/channel-transports.js +46 -42
  71. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  72. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  73. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -0
  74. package/dist/runtime/channels/dispatch-error-reporter.js +9 -39
  75. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  76. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  77. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  78. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  79. package/dist/runtime/channels/source-spot-router.js +6 -2
  80. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  81. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  82. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  83. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +6 -0
  84. package/dist/runtime/diagnostics/dispatch-error-details.js +55 -0
  85. package/dist/runtime/diagnostics/flow-context.d.ts +2 -1
  86. package/dist/runtime/diagnostics/flow-context.js +2 -2
  87. package/dist/runtime/diagnostics/index.js +38 -10
  88. package/dist/runtime/diagnostics/message-flow.js +58 -42
  89. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  90. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  91. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  92. package/dist/runtime/execution/index.js +7 -6
  93. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  94. package/dist/runtime/execution/state-lane.js +2 -2
  95. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -27
  96. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  97. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  98. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +4 -2
  99. package/dist/runtime/foundation/raw-service-mesh-runtime.js +169 -144
  100. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  101. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  102. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  103. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  104. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  105. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  106. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  107. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  108. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  109. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  110. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  111. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +1 -0
  112. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  113. package/dist/runtime/foundation/service-stateful-runtime.d.ts +4 -0
  114. package/dist/runtime/foundation/service-stateful-runtime.js +461 -439
  115. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  116. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -0
  117. package/dist/runtime/foundation/service-topology-registry.js +105 -96
  118. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  119. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  120. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  121. package/dist/runtime/framework-errors-internal.js +7 -10
  122. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  123. package/dist/runtime/handlers/index.js +3 -1
  124. package/dist/runtime/host/actor-packet-relay.js +74 -70
  125. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  126. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  127. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  128. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  129. package/dist/runtime/host/application-job-queue.js +18 -22
  130. package/dist/runtime/host/bound-session-relay.js +3 -1
  131. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  132. package/dist/runtime/host/host-capacity-status.js +8 -4
  133. package/dist/runtime/host/index.js +245 -228
  134. package/dist/runtime/host/instance-activation-authority.js +93 -96
  135. package/dist/runtime/host/location-runtime-owner.js +16 -14
  136. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  137. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  138. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  139. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  140. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  141. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  142. package/dist/runtime/host/runtime-shutdown.js +1 -2
  143. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  144. package/dist/runtime/host/spot-address-transport.js +69 -71
  145. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  146. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  147. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  148. package/dist/runtime/locations/actor-location-claims.js +26 -20
  149. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  150. package/dist/runtime/locations/authority-key-codec.js +7 -7
  151. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  152. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  153. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  154. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  155. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  156. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  157. package/dist/runtime/locations/key-codec.js +1 -1
  158. package/dist/runtime/locations/lease-tracker.js +23 -21
  159. package/dist/runtime/locations/lifecycle.js +4 -5
  160. package/dist/runtime/locations/location-store-repository.js +368 -324
  161. package/dist/runtime/locations/opaque-record-key.js +2 -2
  162. package/dist/runtime/locations/resolvers.js +73 -82
  163. package/dist/runtime/locations/runtime.js +68 -63
  164. package/dist/runtime/locations/spot-location-claims.js +39 -35
  165. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  166. package/dist/runtime/messaging/packet-name.js +7 -6
  167. package/dist/runtime/messaging/payload-codec.js +21 -18
  168. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  169. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  170. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +20 -18
  171. package/dist/runtime/routing-id.js +3 -5
  172. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  173. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  174. package/dist/runtime/spots/index.js +209 -220
  175. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  176. package/dist/runtime/spots/spot-activation-state.js +17 -15
  177. package/dist/runtime/spots/spot-activation.js +33 -16
  178. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  179. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  180. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +2 -1
  181. package/dist/runtime/spots/spot-actor-packet-dispatch.js +29 -21
  182. package/dist/runtime/spots/spot-actor-packet-drain.js +14 -10
  183. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  184. package/dist/runtime/spots/spot-closing.js +3 -7
  185. package/dist/runtime/spots/spot-context.js +2 -2
  186. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  187. package/dist/runtime/spots/spot-handle.js +6 -3
  188. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  189. package/dist/runtime/spots/spot-manager-public.js +5 -6
  190. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  191. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  192. package/dist/runtime/spots/spot-node-runtime-manager.js +79 -86
  193. package/dist/runtime/spots/spot-outbound.js +10 -14
  194. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  195. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  196. package/dist/runtime/spots/spot-route-packet-dispatch.js +17 -15
  197. package/dist/runtime/spots/spot-route-replies.js +4 -6
  198. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  199. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +2 -3
  200. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  201. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  202. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  203. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  204. package/dist/runtime/spots/spot-subscription-dispatch.js +6 -6
  205. package/dist/runtime/spots/spot-timer.js +26 -30
  206. package/dist/runtime/streams/actor-session-binding-registry.d.ts +21 -8
  207. package/dist/runtime/streams/actor-session-binding-registry.js +168 -148
  208. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -0
  209. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  210. package/dist/runtime/streams/bound-actor-relay-sender.js +20 -17
  211. package/dist/runtime/streams/bound-session-response-target.js +8 -1
  212. package/dist/runtime/streams/bound-session-service.d.ts +1 -0
  213. package/dist/runtime/streams/bound-session-service.js +14 -12
  214. package/dist/runtime/streams/index.js +28 -20
  215. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  216. package/dist/runtime/streams/managed-stream.js +52 -31
  217. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  218. package/dist/runtime/streams/protocol.d.ts +5 -1
  219. package/dist/runtime/streams/protocol.js +68 -20
  220. package/dist/runtime/streams/session-actor-coordinator.js +37 -41
  221. package/dist/runtime/streams/session-context.d.ts +9 -2
  222. package/dist/runtime/streams/session-context.js +50 -32
  223. package/dist/runtime/streams/session-local-actors.d.ts +3 -1
  224. package/dist/runtime/streams/session-local-actors.js +17 -2
  225. package/dist/runtime/streams/session-provider.js +2 -2
  226. package/dist/runtime/streams/session-serial-executor.js +1 -2
  227. package/dist/runtime/streams/stream-frame-factory.d.ts +1 -1
  228. package/dist/runtime/streams/stream-frame-factory.js +14 -7
  229. package/dist/runtime/streams/stream-session-runtime.js +112 -78
  230. package/dist/runtime/workers/index.js +15 -4
  231. package/package.json +3 -3
  232. package/src/contracts/Channels/RouteCalls.ts +6 -1
  233. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  234. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  235. package/src/contracts/Configuration/Builders.ts +14 -14
  236. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  237. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  238. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  239. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  240. package/src/contracts/Configuration/Registration.ts +46 -17
  241. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  242. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  243. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  244. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  245. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  246. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  247. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  248. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  249. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  250. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  251. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -6
  252. package/src/contracts/Errors/index.ts +1 -4
  253. package/src/contracts/Handlers/Attributes.ts +15 -9
  254. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  255. package/src/contracts/Handlers/JsonContract.ts +53 -19
  256. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  257. package/src/contracts/Locations/Authority.ts +4 -11
  258. package/src/contracts/Locations/Keys.ts +6 -1
  259. package/src/contracts/Locations/Options.ts +3 -2
  260. package/src/contracts/Locations/RelocationStore.ts +1 -4
  261. package/src/contracts/Locations/Resolvers.ts +5 -5
  262. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  263. package/src/contracts/Locations/Stores.ts +1 -2
  264. package/src/contracts/Locations/index.ts +2 -8
  265. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  266. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  267. package/src/contracts/Spots/Contracts.ts +2 -8
  268. package/src/contracts/Spots/SpotKind.ts +16 -8
  269. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  270. package/src/contracts/Streams/IZLinkSession.ts +2 -2
  271. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  272. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  273. package/src/internal.ts +5 -4
  274. package/src/location-store-integration.ts +24 -16
  275. package/src/nest-integration.ts +40 -25
  276. package/src/runtime/abort.ts +10 -4
  277. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  278. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  279. package/src/runtime/actors/actor-client.ts +162 -133
  280. package/src/runtime/actors/actor-context.ts +142 -134
  281. package/src/runtime/actors/actor-creation.ts +47 -44
  282. package/src/runtime/actors/actor-execution-context.ts +6 -4
  283. package/src/runtime/actors/actor-handoff.ts +269 -293
  284. package/src/runtime/actors/actor-join-deferred-scope.ts +1 -32
  285. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  286. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  287. package/src/runtime/actors/actor-mailbox.ts +16 -19
  288. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  289. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  290. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  291. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  292. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  293. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  294. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  295. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  296. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  297. package/src/runtime/actors/bound-session-wire.ts +37 -17
  298. package/src/runtime/actors/deferred-join-accepted-journal.ts +353 -326
  299. package/src/runtime/actors/index.ts +43 -86
  300. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  301. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  302. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  303. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  304. package/src/runtime/admission.ts +9 -9
  305. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  306. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  307. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  308. package/src/runtime/backend/contracts/index.ts +77 -52
  309. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  310. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  311. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  312. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  313. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  314. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  315. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  316. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  317. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  318. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  319. package/src/runtime/backend/node/node-raw-mesh-backend.ts +370 -390
  320. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  321. package/src/runtime/backend/runtime-message.ts +5 -3
  322. package/src/runtime/backend/runtime-values.ts +10 -7
  323. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  324. package/src/runtime/channels/channel-clients.ts +93 -73
  325. package/src/runtime/channels/channel-dispatch-pipeline.ts +44 -44
  326. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  327. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  328. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  329. package/src/runtime/channels/channel-envelope.ts +256 -150
  330. package/src/runtime/channels/channel-multipart.ts +13 -5
  331. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  332. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  333. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  334. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  335. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  336. package/src/runtime/channels/channel-socket-options.ts +3 -10
  337. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  338. package/src/runtime/channels/channel-transports.ts +218 -206
  339. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  340. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  341. package/src/runtime/channels/dispatch-error-reporter.ts +12 -47
  342. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  343. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  344. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  345. package/src/runtime/channels/index.ts +1 -4
  346. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  347. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  348. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  349. package/src/runtime/channels/source-spot-router.ts +26 -22
  350. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  351. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  352. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  353. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  354. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  355. package/src/runtime/codecs/index.ts +3 -2
  356. package/src/runtime/diagnostics/dispatch-error-details.ts +62 -0
  357. package/src/runtime/diagnostics/flow-context.ts +18 -7
  358. package/src/runtime/diagnostics/index.ts +96 -61
  359. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  360. package/src/runtime/diagnostics/message-flow.ts +107 -79
  361. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  362. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  363. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  364. package/src/runtime/execution/index.ts +18 -26
  365. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  366. package/src/runtime/execution/state-lane.ts +2 -2
  367. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -55
  368. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  369. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  370. package/src/runtime/foundation/operation-identity.ts +1 -2
  371. package/src/runtime/foundation/operation-registry.ts +8 -2
  372. package/src/runtime/foundation/raw-service-mesh-runtime.ts +364 -396
  373. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  374. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  375. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  376. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  377. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  378. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  379. package/src/runtime/foundation/service-mailbox.ts +14 -14
  380. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  381. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  382. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  383. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  384. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  385. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  386. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  387. package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -4
  388. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  389. package/src/runtime/foundation/service-stateful-runtime.ts +1233 -1112
  390. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  391. package/src/runtime/foundation/service-topology-registry.ts +170 -159
  392. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  393. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  394. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  395. package/src/runtime/framework-errors-internal.ts +31 -30
  396. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  397. package/src/runtime/handlers/index.ts +18 -8
  398. package/src/runtime/host/actor-packet-relay.ts +290 -261
  399. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  400. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  401. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  402. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  403. package/src/runtime/host/application-job-queue.ts +32 -48
  404. package/src/runtime/host/bound-session-relay.ts +7 -9
  405. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  406. package/src/runtime/host/host-capacity-status.ts +10 -9
  407. package/src/runtime/host/index.ts +861 -789
  408. package/src/runtime/host/instance-activation-authority.ts +125 -143
  409. package/src/runtime/host/location-runtime-owner.ts +38 -26
  410. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  411. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  412. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  413. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  414. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  415. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  416. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  417. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  418. package/src/runtime/host/runtime-shutdown.ts +4 -3
  419. package/src/runtime/host/service-relocation-control.ts +14 -5
  420. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  421. package/src/runtime/host/spot-address-transport.ts +284 -237
  422. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  423. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  424. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  425. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  426. package/src/runtime/locations/actor-location-claims.ts +61 -49
  427. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  428. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  429. package/src/runtime/locations/authority-key-codec.ts +13 -10
  430. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  431. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  432. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  433. package/src/runtime/locations/canonical-codec.ts +3 -1
  434. package/src/runtime/locations/creation-operation-id.ts +4 -3
  435. package/src/runtime/locations/domain-store-contract.ts +13 -7
  436. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  437. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  438. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  439. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  440. package/src/runtime/locations/key-codec.ts +3 -4
  441. package/src/runtime/locations/lease-tracker.ts +36 -27
  442. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  443. package/src/runtime/locations/lifecycle.ts +33 -28
  444. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  445. package/src/runtime/locations/opaque-record-key.ts +4 -9
  446. package/src/runtime/locations/resolvers.ts +201 -178
  447. package/src/runtime/locations/runtime.ts +251 -159
  448. package/src/runtime/locations/spot-location-claims.ts +110 -112
  449. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  450. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  451. package/src/runtime/messaging/packet-name.ts +8 -6
  452. package/src/runtime/messaging/payload-codec.ts +70 -50
  453. package/src/runtime/messaging/submission-result.ts +6 -9
  454. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  455. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +19 -18
  456. package/src/runtime/routing-id.ts +10 -7
  457. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  458. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  459. package/src/runtime/spots/index.ts +595 -564
  460. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  461. package/src/runtime/spots/spot-activation-state.ts +43 -51
  462. package/src/runtime/spots/spot-activation.ts +179 -116
  463. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  464. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  465. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  466. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  467. package/src/runtime/spots/spot-actor-packet-dispatch.ts +196 -148
  468. package/src/runtime/spots/spot-actor-packet-drain.ts +56 -42
  469. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  470. package/src/runtime/spots/spot-closing.ts +11 -12
  471. package/src/runtime/spots/spot-context.ts +46 -26
  472. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  473. package/src/runtime/spots/spot-handle.ts +17 -15
  474. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  475. package/src/runtime/spots/spot-location-claim.ts +5 -4
  476. package/src/runtime/spots/spot-manager-public.ts +62 -82
  477. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  478. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  479. package/src/runtime/spots/spot-node-runtime-manager.ts +235 -222
  480. package/src/runtime/spots/spot-outbound.ts +47 -59
  481. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  482. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  483. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  484. package/src/runtime/spots/spot-route-packet-dispatch.ts +129 -95
  485. package/src/runtime/spots/spot-route-replies.ts +23 -24
  486. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  487. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  488. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +13 -18
  489. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  490. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  491. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  492. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  493. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  494. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  495. package/src/runtime/spots/spot-subscription-dispatch.ts +58 -47
  496. package/src/runtime/spots/spot-timer.ts +103 -91
  497. package/src/runtime/streams/actor-session-binding-registry.ts +421 -292
  498. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +8 -4
  499. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  500. package/src/runtime/streams/bound-actor-relay-sender.ts +60 -50
  501. package/src/runtime/streams/bound-session-response-target.ts +39 -9
  502. package/src/runtime/streams/bound-session-service.ts +52 -42
  503. package/src/runtime/streams/index.ts +183 -100
  504. package/src/runtime/streams/managed-stream.ts +123 -90
  505. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  506. package/src/runtime/streams/protocol.ts +115 -46
  507. package/src/runtime/streams/session-actor-coordinator.ts +109 -93
  508. package/src/runtime/streams/session-calls.ts +2 -8
  509. package/src/runtime/streams/session-context.ts +96 -51
  510. package/src/runtime/streams/session-local-actors.ts +19 -3
  511. package/src/runtime/streams/session-provider.ts +5 -7
  512. package/src/runtime/streams/session-serial-executor.ts +7 -6
  513. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  514. package/src/runtime/streams/stream-frame-factory.ts +59 -40
  515. package/src/runtime/streams/stream-session-runtime.ts +317 -214
  516. package/src/runtime/workers/index.ts +68 -29
@@ -110,9 +110,7 @@ class ZLinkRuntimeAdmissionGate {
110
110
  else if (this.accepts(meshName)) {
111
111
  return;
112
112
  }
113
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(meshName === undefined
114
- ? this.firstSealedReason()
115
- : this.requireState(meshName).sealedReason, `${operation} was rejected because framework admission is closed.`);
113
+ throw (0, framework_errors_internal_1.createInternalFrameworkException)(meshName === undefined ? this.firstSealedReason() : this.requireState(meshName).sealedReason, `${operation} was rejected because framework admission is closed.`);
116
114
  }
117
115
  requireActorCreate(actorId, meshName) {
118
116
  if (meshName === undefined) {
@@ -122,9 +120,7 @@ class ZLinkRuntimeAdmissionGate {
122
120
  else if (this.accepts(meshName)) {
123
121
  return;
124
122
  }
125
- const reason = meshName === undefined
126
- ? this.firstSealedReason()
127
- : this.requireState(meshName).sealedReason;
123
+ const reason = meshName === undefined ? this.firstSealedReason() : this.requireState(meshName).sealedReason;
128
124
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(reason === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RuntimeShutdown
129
125
  ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RuntimeShutdown
130
126
  : framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorCreateRejected, `Actor '${actorId}' create request was rejected because framework admission is closed.`);
@@ -34,9 +34,7 @@ class ApplicationIngressRecordOwner {
34
34
  const initial = this.shared.takeInitialPermit(domain);
35
35
  if (initial !== undefined)
36
36
  return initial;
37
- const waitSignal = signal === undefined
38
- ? this.stop.signal
39
- : AbortSignal.any([this.stop.signal, signal]);
37
+ const waitSignal = signal === undefined ? this.stop.signal : AbortSignal.any([this.stop.signal, signal]);
40
38
  const permit = await this.shared.acquirePermit(waitSignal);
41
39
  if (this.closed) {
42
40
  permit.releaseAfterInternalProcessing();
@@ -102,9 +100,7 @@ class ApplicationJobRecordLease {
102
100
  release();
103
101
  }
104
102
  releaseJobIfTerminal() {
105
- if (this.jobReleased
106
- || !this.ingressClosed
107
- || !this.processingTerminal)
103
+ if (this.jobReleased || !this.ingressClosed || !this.processingTerminal)
108
104
  return;
109
105
  this.jobReleased = true;
110
106
  this.shared.releaseJob();
@@ -24,7 +24,9 @@ class ApplicationJobReceiveFlowController {
24
24
  this.queue = queue;
25
25
  this.toNativeState = toNativeState;
26
26
  this.failureSink = failureSink;
27
- this.unregisterPressureListener = queue?.onPressureStateChange?.((state, sequence) => this.apply(state, sequence)) ?? (() => undefined);
27
+ this.unregisterPressureListener =
28
+ queue?.onPressureStateChange?.((state, sequence) => this.apply(state, sequence)) ??
29
+ (() => undefined);
28
30
  }
29
31
  register(target) {
30
32
  if (this.disposed)
@@ -85,9 +87,8 @@ class ApplicationJobReceiveFlowController {
85
87
  currentTransition() {
86
88
  const snapshot = this.queue?.pressureTransition?.();
87
89
  const fallbackState = snapshot === undefined ? this.queue?.pressureState?.() : undefined;
88
- const current = snapshot ?? (fallbackState === undefined
89
- ? undefined
90
- : { state: fallbackState, sequence: 0n });
90
+ const current = snapshot ??
91
+ (fallbackState === undefined ? undefined : { state: fallbackState, sequence: 0n });
91
92
  if (this.latestTransition === undefined)
92
93
  return current;
93
94
  if (current === undefined || this.latestTransition.sequence > current.sequence) {
@@ -96,16 +97,15 @@ class ApplicationJobReceiveFlowController {
96
97
  return current;
97
98
  }
98
99
  rememberLatest(transition) {
99
- if (this.latestTransition === undefined
100
- || transition.sequence > this.latestTransition.sequence) {
100
+ if (this.latestTransition === undefined ||
101
+ transition.sequence > this.latestTransition.sequence) {
101
102
  this.latestTransition = transition;
102
103
  }
103
104
  }
104
105
  enqueue(target, targetState, transition, throwOnFailure) {
105
- if (this.targets.get(target) !== targetState
106
- || transition.sequence <= targetState.appliedSequence
107
- || (targetState.pending !== undefined
108
- && transition.sequence <= targetState.pending.sequence))
106
+ if (this.targets.get(target) !== targetState ||
107
+ transition.sequence <= targetState.appliedSequence ||
108
+ (targetState.pending !== undefined && transition.sequence <= targetState.pending.sequence))
109
109
  return;
110
110
  targetState.pending = transition;
111
111
  if (targetState.applying)
@@ -113,8 +113,7 @@ class ApplicationJobReceiveFlowController {
113
113
  targetState.applying = true;
114
114
  let firstFailure;
115
115
  try {
116
- while (this.targets.get(target) === targetState
117
- && targetState.pending !== undefined) {
116
+ while (this.targets.get(target) === targetState && targetState.pending !== undefined) {
118
117
  const next = targetState.pending;
119
118
  targetState.pending = undefined;
120
119
  if (next.sequence <= targetState.appliedSequence)
@@ -32,6 +32,7 @@ export type ZLinkBackendObjectPlacement = {
32
32
  readonly kind: 'unavailable';
33
33
  };
34
34
  export interface ZLinkBackendMeshNode {
35
+ setDispatchErrorReporter?(reporter: import('../../channels/dispatch-error-reporter').ZLinkDispatchErrorReporter, meshName: string): void;
35
36
  setRoutingId(routingId: unknown): void;
36
37
  setBind(endpoint: string): void;
37
38
  setAdvertiseHost(host: string): void;
@@ -47,9 +47,7 @@ class ZLinkMeshCompletionTable {
47
47
  this.pending.set(key, {
48
48
  resolve,
49
49
  reject,
50
- removeAbort: signal === undefined
51
- ? undefined
52
- : () => signal.removeEventListener('abort', abort)
50
+ removeAbort: signal === undefined ? undefined : () => signal.removeEventListener('abort', abort)
53
51
  });
54
52
  });
55
53
  }
@@ -74,10 +74,8 @@ class ZLinkMeshDispatchPump {
74
74
  return;
75
75
  const previous = this.pendingDomains;
76
76
  this.pendingDomains |= domains;
77
- const startInfrastructure = (domains & service_runtime_contracts_1.ReadyDomain.Infrastructure) !== 0
78
- && (previous & service_runtime_contracts_1.ReadyDomain.Infrastructure) === 0;
79
- const startApplication = (domains & service_runtime_contracts_1.ReadyDomain.Application) !== 0
80
- && (previous & service_runtime_contracts_1.ReadyDomain.Application) === 0;
77
+ const startInfrastructure = (domains & service_runtime_contracts_1.ReadyDomain.Infrastructure) !== 0 && (previous & service_runtime_contracts_1.ReadyDomain.Infrastructure) === 0;
78
+ const startApplication = (domains & service_runtime_contracts_1.ReadyDomain.Application) !== 0 && (previous & service_runtime_contracts_1.ReadyDomain.Application) === 0;
81
79
  if (startInfrastructure && startApplication) {
82
80
  const startTurn = this.yieldIfNeeded() ?? Promise.resolve();
83
81
  this.scheduleInfrastructure(startTurn);
@@ -111,8 +109,7 @@ class ZLinkMeshDispatchPump {
111
109
  startApplicationWorker() {
112
110
  this.applicationWorkerCount += 1;
113
111
  let worker;
114
- worker = detachedMeshDispatchScope(() => (0, execution_1.runZLinkExecutionArea)('application', () => this.runApplicationWorker()))
115
- .finally(() => {
112
+ worker = detachedMeshDispatchScope(() => (0, execution_1.runZLinkExecutionArea)('application', () => this.runApplicationWorker())).finally(() => {
116
113
  this.applicationWorkerCount -= 1;
117
114
  this.activeDrains.delete(worker);
118
115
  });
@@ -148,7 +145,7 @@ class ZLinkMeshDispatchPump {
148
145
  this.pendingDomains &= ~service_runtime_contracts_1.ReadyDomain.Application;
149
146
  return Promise.resolve();
150
147
  }
151
- return new Promise(resolve => this.idleApplicationWorkers.add(resolve));
148
+ return new Promise((resolve) => this.idleApplicationWorkers.add(resolve));
152
149
  }
153
150
  reportDispatchError(error) {
154
151
  if (error instanceof ZLinkMeshDispatchFailure) {
@@ -239,12 +236,11 @@ class ZLinkMeshDispatchPump {
239
236
  // Raw ingress already attached one host permit to each record.
240
237
  // A claim that reserves admission here may receive only that permit's record.
241
238
  try {
242
- const capacity = owner.ordinaryIngressPreAdmitted === true
243
- ? MESH_DISPATCH_RECEIVE_CAPACITY : 1;
239
+ const capacity = owner.ordinaryIngressPreAdmitted === true ? MESH_DISPATCH_RECEIVE_CAPACITY : 1;
244
240
  for (;;) {
245
- let claimPermit = owner.terminalCompletion === true
246
- || owner.ordinaryIngressPreAdmitted === true
247
- || domain === service_runtime_contracts_1.ReadyDomain.Infrastructure
241
+ let claimPermit = owner.terminalCompletion === true ||
242
+ owner.ordinaryIngressPreAdmitted === true ||
243
+ domain === service_runtime_contracts_1.ReadyDomain.Infrastructure
248
244
  ? undefined
249
245
  : await this.acquirePermit();
250
246
  try {
@@ -285,8 +281,8 @@ class ZLinkMeshDispatchPump {
285
281
  await dispatch();
286
282
  }
287
283
  else {
288
- if (domain === service_runtime_contracts_1.ReadyDomain.Application
289
- && record.applicationJobPermit === undefined)
284
+ if (domain === service_runtime_contracts_1.ReadyDomain.Application &&
285
+ record.applicationJobPermit === undefined)
290
286
  permit.markApplicationQueued();
291
287
  // The scope now owns this reservation, including failure
292
288
  // and detached handler handoff. Only unused permits remain
@@ -340,8 +336,8 @@ class ZLinkMeshDispatchPump {
340
336
  }
341
337
  yieldIfNeeded() {
342
338
  const nowMs = this.nowMs();
343
- if (this.recordsSinceYield < MESH_DISPATCH_YIELD_RECORDS
344
- && nowMs - this.yieldStartedAtMs < MESH_DISPATCH_YIELD_INTERVAL_MS)
339
+ if (this.recordsSinceYield < MESH_DISPATCH_YIELD_RECORDS &&
340
+ nowMs - this.yieldStartedAtMs < MESH_DISPATCH_YIELD_INTERVAL_MS)
345
341
  return undefined;
346
342
  this.recordsSinceYield = 0;
347
343
  return yieldToTimers().then(() => {
@@ -151,9 +151,7 @@ function createNodeReadablePoller(socket) {
151
151
  const promise = new Promise((resolve) => {
152
152
  resolvePending = resolve;
153
153
  });
154
- const onAbort = signal === undefined
155
- ? undefined
156
- : () => settlePending(false);
154
+ const onAbort = signal === undefined ? undefined : () => settlePending(false);
157
155
  pending = { promise, resolve: resolvePending, signal, onAbort };
158
156
  if (signal !== undefined && onAbort !== undefined) {
159
157
  signal.addEventListener('abort', onAbort, { once: true });
@@ -26,10 +26,11 @@ function isNonBlockingRecvEmpty(error) {
26
26
  return error instanceof exports.zlink.RecvError && error.result === exports.zlink.RecvResult.NoData;
27
27
  }
28
28
  function isRouteRecvRetryable(error) {
29
- return isNonBlockingRecvEmpty(error) ||
29
+ return (isNonBlockingRecvEmpty(error) ||
30
30
  (error instanceof exports.zlink.RecvError &&
31
- (error.result === exports.zlink.RecvResult.InternalError || error.result === exports.zlink.RecvResult.InvalidHandle) &&
32
- isNativeBadAddress(error));
31
+ (error.result === exports.zlink.RecvResult.InternalError ||
32
+ error.result === exports.zlink.RecvResult.InvalidHandle) &&
33
+ isNativeBadAddress(error)));
33
34
  }
34
35
  function isPollerInterruptedError(error) {
35
36
  return error instanceof exports.zlink.RecvError && error.nativeErrno === 4;
@@ -49,10 +50,10 @@ function submitBindingPublish(operation, payload) {
49
50
  }
50
51
  catch (error) {
51
52
  const translated = translateBindingResultError(error);
52
- if (translated instanceof runtime_values_1.ZLinkBackendResultError
53
- && translated.operation === 'submit'
54
- && (translated.result === runtime_values_1.SubmitResult.Backpressured
55
- || translated.result === runtime_values_1.SubmitResult.NotAdmitted)) {
53
+ if (translated instanceof runtime_values_1.ZLinkBackendResultError &&
54
+ translated.operation === 'submit' &&
55
+ (translated.result === runtime_values_1.SubmitResult.Backpressured ||
56
+ translated.result === runtime_values_1.SubmitResult.NotAdmitted)) {
56
57
  (0, submission_result_1.requireOneWayCompletion)({ status: submission_result_1.ZLinkSubmitStatus.Backpressured }, 'Classic fanout publish');
57
58
  }
58
59
  throw translated;
@@ -108,7 +109,8 @@ async function submitBindingRequest(operation, payload, timeoutMs) {
108
109
  if (Array.isArray(payload)) {
109
110
  for (const part of payload) {
110
111
  const nativePart = toNativeMessageLike(part);
111
- current = current === undefined ? operation.message(nativePart) : current.message(nativePart);
112
+ current =
113
+ current === undefined ? operation.message(nativePart) : current.message(nativePart);
112
114
  }
113
115
  }
114
116
  else {
@@ -139,16 +141,21 @@ async function closeWithBusyRetry(target) {
139
141
  throw error;
140
142
  }
141
143
  lastError = error;
142
- await new Promise(resolve => setImmediate(resolve));
144
+ await new Promise((resolve) => setImmediate(resolve));
143
145
  }
144
146
  }
145
147
  throw lastError;
146
148
  }
147
149
  function isBusyCloseError(error) {
148
- return error instanceof Error && 'code' in error && [401, 404].includes(error.code);
150
+ return (error instanceof Error &&
151
+ 'code' in error &&
152
+ [401, 404].includes(error.code));
149
153
  }
150
154
  function isSuccessfulOrAlreadyShutdownCloseError(error) {
151
- return isContextTerminatedError(error) || (error instanceof Error && 'code' in error && [0, 402, 403].includes(error.code));
155
+ return (isContextTerminatedError(error) ||
156
+ (error instanceof Error &&
157
+ 'code' in error &&
158
+ [0, 402, 403].includes(error.code)));
152
159
  }
153
160
  function isContextTerminatedError(error) {
154
161
  return error instanceof Error && /context was terminated/i.test(error.message);
@@ -174,13 +181,13 @@ function toNativeRoutingId(routingId) {
174
181
  if (typeof routingId === 'string')
175
182
  return exports.zlink.RoutingId.from(routingId);
176
183
  const toHex = routingId?.toHex;
177
- return typeof toHex === 'function'
178
- ? exports.zlink.RoutingId.fromHex(toHex.call(routingId))
179
- : routingId;
184
+ return typeof toHex === 'function' ? exports.zlink.RoutingId.fromHex(toHex.call(routingId)) : routingId;
180
185
  }
181
186
  function toNativeMessageLike(message) {
182
- if (message instanceof exports.zlink.Message || Buffer.isBuffer(message)
183
- || message instanceof Uint8Array || typeof message === 'string') {
187
+ if (message instanceof exports.zlink.Message ||
188
+ Buffer.isBuffer(message) ||
189
+ message instanceof Uint8Array ||
190
+ typeof message === 'string') {
184
191
  return message;
185
192
  }
186
193
  const data = message?.data;
@@ -196,7 +203,9 @@ function translateBindingResultError(error) {
196
203
  return new runtime_values_1.ZLinkBackendResultError('submit', error.result, error.nativeErrno, { cause: error });
197
204
  }
198
205
  if (error instanceof exports.zlink.RequestError) {
199
- return new runtime_values_1.ZLinkBackendResultError('request', error.result, error.nativeErrno, { cause: error });
206
+ return new runtime_values_1.ZLinkBackendResultError('request', error.result, error.nativeErrno, {
207
+ cause: error
208
+ });
200
209
  }
201
210
  return error;
202
211
  }
@@ -17,7 +17,8 @@ class ZLinkNodeMeshBackendAdapter {
17
17
  }
18
18
  exports.ZLinkNodeMeshBackendAdapter = ZLinkNodeMeshBackendAdapter;
19
19
  function isBindingContext(value) {
20
- return typeof value === 'object' && value !== null
21
- && typeof value.shutdown === 'function'
22
- && typeof value.close === 'function';
20
+ return (typeof value === 'object' &&
21
+ value !== null &&
22
+ typeof value.shutdown === 'function' &&
23
+ typeof value.close === 'function');
23
24
  }
@@ -227,9 +227,8 @@ class NodeRawRouterPort extends NodeRawSocketPort {
227
227
  this.requireOpen();
228
228
  return receiveRecord(this.socket, dontWait, () => {
229
229
  const current = this.nextIncomingRequestSequence;
230
- this.nextIncomingRequestSequence = current === BigInt(Number.MAX_SAFE_INTEGER)
231
- ? 1n
232
- : current + 1n;
230
+ this.nextIncomingRequestSequence =
231
+ current === BigInt(Number.MAX_SAFE_INTEGER) ? 1n : current + 1n;
233
232
  return current;
234
233
  }, (targetRid, replyToken, parts) => {
235
234
  appendReplyParts(this.socket.reply(bindingRoutingId(targetRid), replyToken), parts).submit();
@@ -253,7 +252,9 @@ class NodeRawDealerPort extends NodeRawSocketPort {
253
252
  }
254
253
  async request(parts, timeoutMs) {
255
254
  this.requireOpen();
256
- const replies = await appendRequestParts(this.socket.request(), parts).timeout(timeoutMs).submit().reply;
255
+ const replies = await appendRequestParts(this.socket.request(), parts)
256
+ .timeout(timeoutMs)
257
+ .submit().reply;
257
258
  return copyAndClose(replies);
258
259
  }
259
260
  receive(dontWait = false) {
@@ -355,7 +356,7 @@ function receiveRecord(socket, dontWait, nextRequestSequence, reply) {
355
356
  appendReplyParts(receivedReply, parts).submit();
356
357
  }
357
358
  }),
358
- parts: received.parts.map(part => part.toBytes()),
359
+ parts: received.parts.map((part) => part.toBytes()),
359
360
  close: () => {
360
361
  if (closed)
361
362
  return;
@@ -371,7 +372,7 @@ function receiveRecord(socket, dontWait, nextRequestSequence, reply) {
371
372
  }
372
373
  function copyAndClose(messages) {
373
374
  try {
374
- return messages.map(message => message.toBytes());
375
+ return messages.map((message) => message.toBytes());
375
376
  }
376
377
  finally {
377
378
  for (const message of messages)
@@ -1,5 +1,6 @@
1
1
  import { SubmitResult, type RequestResult as RequestResultValue, type SubmitResult as SubmitResultValue } from '@zlink-systems/zlink';
2
2
  import { type ZLinkBackendMessageLike as MessageLike } from '../runtime-values';
3
+ import type { ZLinkDispatchErrorReporter } from '../../channels/dispatch-error-reporter';
3
4
  import type { MeshOperationId, MeshPeerEntry, MeshPublisher, ReadyBatch, ReadyRecord, ReceiveBatch, ServiceSpot, StreamSessionService } from '../../foundation/service-runtime-contracts';
4
5
  import { type RawServiceRequestResult } from '../../foundation/raw-service-mesh-runtime';
5
6
  import { type ServiceApplicationPayload } from '../../foundation/service-wire-m6a-codec';
@@ -52,6 +53,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
52
53
  private mailboxRecordDropped?;
53
54
  private protocolError?;
54
55
  private messageFollowHandler?;
56
+ private dispatchErrors?;
55
57
  private readonly peerDisconnectedHandlers;
56
58
  constructor(meshName: string, routingId: string | undefined, bindingPort: ZLinkRawBindingPort, applicationJobQueue?: ApplicationJobQueuePort | undefined, applicationJobReceiveFlowFailureSink?: ((error: unknown) => void) | undefined, peerAdmissionSealed?: (() => boolean) | undefined);
57
59
  configureObjectPlacement(options: {
@@ -66,6 +68,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
66
68
  readonly kind: 'spot_multicast' | 'actor_control' | 'actor_binding';
67
69
  readonly owner: string;
68
70
  }) => void): void;
71
+ setDispatchErrorReporter(reporter: ZLinkDispatchErrorReporter): void;
69
72
  setProtocolErrorHandler(handler: (record: {
70
73
  readonly sourceNodeRid: string;
71
74
  readonly request: boolean;