@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
@@ -10,17 +10,9 @@ import {
10
10
  SubmitResult,
11
11
  type ZLinkBackendMessageLike as MessageLike
12
12
  } from '../backend/runtime-values';
13
- import {
14
- ZLinkFrameworkException,
15
- type RoutingId
16
- } from '../../contracts';
17
- import {
18
- ZLinkSubmitStatus,
19
- type ZLinkSubmitResult
20
- } from '../messaging/submission-result';
21
- import {
22
- ZLinkSpotKind
23
- } from '../../contracts';
13
+ import { ZLinkFrameworkException, type RoutingId } from '../../contracts';
14
+ import { ZLinkSubmitStatus, type ZLinkSubmitResult } from '../messaging/submission-result';
15
+ import { ZLinkSpotKind } from '../../contracts';
24
16
  import {
25
17
  ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
26
18
  ZLinkRuntimeDispatchErrorAction as ZLinkDispatchErrorAction,
@@ -28,9 +20,7 @@ import {
28
20
  ZLinkDispatchErrorSurface,
29
21
  ZLinkDispatchMessageKind
30
22
  } from '../../contracts/Dispatch/ZLinkDispatchOptions';
31
- import {
32
- awaitWithAbort
33
- } from '../abort';
23
+ import { awaitWithAbort } from '../abort';
34
24
  import type { ZLinkBackendMeshNode } from '../backend/contracts';
35
25
  import {
36
26
  closeMeshCompletion,
@@ -52,10 +42,7 @@ import type {
52
42
  ZLinkSpotAddressTransport,
53
43
  ZLinkSpotRoutedTransport
54
44
  } from '../spots/spot-outbound';
55
- import type {
56
- ZLinkSpotRouteResolver,
57
- ZLinkSpotRouteTarget
58
- } from '../spots/spot-routing-internal';
45
+ import type { ZLinkSpotRouteResolver, ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
59
46
 
60
47
  export interface ZLinkHostSpotAddressTransportOptions {
61
48
  readonly resolver: () => ZLinkSpotRouteResolver | undefined;
@@ -75,9 +62,7 @@ export interface ZLinkHostSpotAddressTransportOptions {
75
62
  readonly dispatchErrors?: ZLinkDispatchErrorReporter;
76
63
  }
77
64
 
78
- export function hasObjectClientCapability(
79
- role: 'none' | 'client' | 'server' | undefined
80
- ): boolean {
65
+ export function hasObjectClientCapability(role: 'none' | 'client' | 'server' | undefined): boolean {
81
66
  return role === 'client' || role === 'server';
82
67
  }
83
68
 
@@ -130,136 +115,142 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
130
115
  const timeoutMs = initialSendTimeoutMs(this.options, call);
131
116
  const deadline = createSpotAddressDeadline(timeoutMs, call.signal);
132
117
  try {
133
- const existing = await this.resolveExisting(spotId, deadline.signal);
134
- deadline.requireRemaining();
135
- if (existing !== undefined) {
136
- this.validateExisting(existing, call);
137
- deadline.setOwnerTimeout(this.sendTimeoutMsForRouteChannel(existing.routerChannelId));
138
- try {
139
- const result = await awaitWithAbort(this.options.routed.sendToSpot(existing, message, {
140
- timeoutMs: deadline.requireRemaining(),
141
- signal: deadline.signal,
142
- metadata: call.metadata
143
- }), deadline.signal);
144
- if (result.status === ZLinkSubmitStatus.Submitted) {
145
- this.traceInstanceAddress(
146
- ZLinkMessageFlowOutcome.Sent,
147
- ZLinkDispatchMessageKind.Send,
148
- spotId,
149
- message,
150
- existing.routerChannelId,
151
- existing.stableType,
152
- existing.targetNodeRid
118
+ const existing = await this.resolveExisting(spotId, deadline.signal);
119
+ deadline.requireRemaining();
120
+ if (existing !== undefined) {
121
+ this.validateExisting(existing, call);
122
+ deadline.setOwnerTimeout(this.sendTimeoutMsForRouteChannel(existing.routerChannelId));
123
+ try {
124
+ const result = await awaitWithAbort(
125
+ this.options.routed.sendToSpot(existing, message, {
126
+ timeoutMs: deadline.requireRemaining(),
127
+ signal: deadline.signal,
128
+ metadata: call.metadata
129
+ }),
130
+ deadline.signal
153
131
  );
154
- } else {
132
+ if (result.status === ZLinkSubmitStatus.Submitted) {
133
+ this.traceInstanceAddress(
134
+ ZLinkMessageFlowOutcome.Sent,
135
+ ZLinkDispatchMessageKind.Send,
136
+ spotId,
137
+ message,
138
+ existing.routerChannelId,
139
+ existing.stableType,
140
+ existing.targetNodeRid
141
+ );
142
+ } else {
143
+ this.traceInstanceAddress(
144
+ submitResultFlowOutcome(result.status),
145
+ ZLinkDispatchMessageKind.Send,
146
+ spotId,
147
+ message,
148
+ existing.routerChannelId,
149
+ existing.stableType,
150
+ existing.targetNodeRid,
151
+ submitResultReason(result.status)
152
+ );
153
+ }
154
+ if (
155
+ result.status === ZLinkSubmitStatus.TargetNotFound ||
156
+ result.status === ZLinkSubmitStatus.RouteNotConnected
157
+ ) {
158
+ this.options.resolver()?.invalidate?.(spotId);
159
+ }
160
+ return result;
161
+ } catch (error) {
162
+ if (isSpotRouteRefreshError(error)) {
163
+ this.options.resolver()?.invalidate?.(spotId);
164
+ }
165
+ const reason = addressedInstanceErrorReason(error);
155
166
  this.traceInstanceAddress(
156
- submitResultFlowOutcome(result.status),
167
+ reason === ZLinkDispatchErrorReason.Backpressure
168
+ ? ZLinkMessageFlowOutcome.Backpressured
169
+ : ZLinkMessageFlowOutcome.Dropped,
157
170
  ZLinkDispatchMessageKind.Send,
158
171
  spotId,
159
172
  message,
160
173
  existing.routerChannelId,
161
174
  existing.stableType,
162
175
  existing.targetNodeRid,
163
- submitResultReason(result.status)
176
+ reason
164
177
  );
178
+ throw error;
165
179
  }
166
- if (
167
- result.status === ZLinkSubmitStatus.TargetNotFound
168
- || result.status === ZLinkSubmitStatus.RouteNotConnected
169
- ) {
170
- this.options.resolver()?.invalidate?.(spotId);
171
- }
172
- return result;
173
- } catch (error) {
174
- if (isSpotRouteRefreshError(error)) {
175
- this.options.resolver()?.invalidate?.(spotId);
176
- }
177
- const reason = addressedInstanceErrorReason(error);
180
+ }
181
+ if (!call.instanceSpot) {
182
+ return { status: ZLinkSubmitStatus.TargetNotFound };
183
+ }
184
+ const selected = this.selectMissingTarget(spotId, call);
185
+ if (selected.kind === 'unsupported') {
186
+ this.traceInstanceAddress(
187
+ ZLinkMessageFlowOutcome.Dropped,
188
+ ZLinkDispatchMessageKind.Send,
189
+ spotId,
190
+ message,
191
+ call.initialMeshName,
192
+ call.instanceSpotType,
193
+ undefined,
194
+ ZLinkDispatchErrorReason.StaleTarget
195
+ );
196
+ return { status: ZLinkSubmitStatus.TargetNotFound };
197
+ }
198
+ if (selected.kind === 'capacity') {
199
+ const error = missingInstancePlacementCapacity(spotId, call.instanceSpotType);
178
200
  this.traceInstanceAddress(
179
- reason === ZLinkDispatchErrorReason.Backpressure
180
- ? ZLinkMessageFlowOutcome.Backpressured
181
- : ZLinkMessageFlowOutcome.Dropped,
201
+ ZLinkMessageFlowOutcome.Backpressured,
182
202
  ZLinkDispatchMessageKind.Send,
183
203
  spotId,
184
204
  message,
185
- existing.routerChannelId,
186
- existing.stableType,
187
- existing.targetNodeRid,
188
- reason
205
+ call.initialMeshName,
206
+ call.instanceSpotType,
207
+ undefined,
208
+ ZLinkDispatchErrorReason.Backpressure
189
209
  );
190
210
  throw error;
191
211
  }
192
- }
193
- if (!call.instanceSpot) {
194
- return { status: ZLinkSubmitStatus.TargetNotFound };
195
- }
196
- const selected = this.selectMissingTarget(spotId, call);
197
- if (selected.kind === 'unsupported') {
198
- this.traceInstanceAddress(
199
- ZLinkMessageFlowOutcome.Dropped,
200
- ZLinkDispatchMessageKind.Send,
201
- spotId,
202
- message,
203
- call.initialMeshName,
204
- call.instanceSpotType,
205
- undefined,
206
- ZLinkDispatchErrorReason.StaleTarget
207
- );
208
- return { status: ZLinkSubmitStatus.TargetNotFound };
209
- }
210
- if (selected.kind === 'capacity') {
211
- const error = missingInstancePlacementCapacity(spotId, call.instanceSpotType);
212
- this.traceInstanceAddress(
213
- ZLinkMessageFlowOutcome.Backpressured,
214
- ZLinkDispatchMessageKind.Send,
215
- spotId,
216
- message,
217
- call.initialMeshName,
218
- call.instanceSpotType,
219
- undefined,
220
- ZLinkDispatchErrorReason.Backpressure
212
+ if (selected.kind === 'unavailable') {
213
+ this.traceInstanceAddress(
214
+ ZLinkMessageFlowOutcome.Dropped,
215
+ ZLinkDispatchMessageKind.Send,
216
+ spotId,
217
+ message,
218
+ call.initialMeshName,
219
+ call.instanceSpotType,
220
+ undefined,
221
+ ZLinkDispatchErrorReason.StaleTarget
222
+ );
223
+ return { status: ZLinkSubmitStatus.RouteNotConnected };
224
+ }
225
+ deadline.setOwnerTimeout(this.sendTimeoutMsForMesh(selected.meshName));
226
+ const encoded = this.encode(ZLinkChannelMessageKind.Command, selected.meshName, message);
227
+ const sourceSpotId =
228
+ call.sourceSpot === undefined ? undefined : String(call.sourceSpot.routingId);
229
+ const mapped = mapSubmitResult(
230
+ await awaitWithAbort(
231
+ selected.node.sendToMissingInstanceSpot(
232
+ selected.target,
233
+ encoded,
234
+ BigInt(deadline.deadlineUnixMs),
235
+ sourceSpotId,
236
+ call.metadata
237
+ ),
238
+ deadline.signal
239
+ )
221
240
  );
222
- throw error;
223
- }
224
- if (selected.kind === 'unavailable') {
225
241
  this.traceInstanceAddress(
226
- ZLinkMessageFlowOutcome.Dropped,
242
+ submitResultFlowOutcome(mapped.status),
227
243
  ZLinkDispatchMessageKind.Send,
228
244
  spotId,
229
245
  message,
230
- call.initialMeshName,
231
- call.instanceSpotType,
232
- undefined,
233
- ZLinkDispatchErrorReason.StaleTarget
246
+ selected.meshName,
247
+ selected.target.stableType,
248
+ selected.target.targetNodeRid,
249
+ mapped.status === ZLinkSubmitStatus.Submitted
250
+ ? undefined
251
+ : submitResultReason(mapped.status)
234
252
  );
235
- return { status: ZLinkSubmitStatus.RouteNotConnected };
236
- }
237
- deadline.setOwnerTimeout(this.sendTimeoutMsForMesh(selected.meshName));
238
- const encoded = this.encode(ZLinkChannelMessageKind.Command, selected.meshName, message);
239
- const sourceSpotId = call.sourceSpot === undefined
240
- ? undefined
241
- : String(call.sourceSpot.routingId);
242
- const mapped = mapSubmitResult(await awaitWithAbort(
243
- selected.node.sendToMissingInstanceSpot(
244
- selected.target,
245
- encoded,
246
- BigInt(deadline.deadlineUnixMs),
247
- sourceSpotId,
248
- call.metadata
249
- ),
250
- deadline.signal
251
- ));
252
- this.traceInstanceAddress(
253
- submitResultFlowOutcome(mapped.status),
254
- ZLinkDispatchMessageKind.Send,
255
- spotId,
256
- message,
257
- selected.meshName,
258
- selected.target.stableType,
259
- selected.target.targetNodeRid,
260
- mapped.status === ZLinkSubmitStatus.Submitted ? undefined : submitResultReason(mapped.status)
261
- );
262
- return mapped;
253
+ return mapped;
263
254
  } catch (error) {
264
255
  if (deadline.expired()) {
265
256
  return { status: ZLinkSubmitStatus.TimedOut };
@@ -338,18 +329,16 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
338
329
  // reaches this process. Refresh authority and select again under the
339
330
  // same end-to-end deadline; the old envelope was not admitted.
340
331
  this.options.resolver()?.invalidate?.(spotId);
341
- await waitForSpotRouteRefresh(
342
- Math.min(10, deadline.requireRemaining()),
343
- deadline.signal
344
- );
332
+ await waitForSpotRouteRefresh(Math.min(10, deadline.requireRemaining()), deadline.signal);
345
333
  }
346
334
  }
347
335
  } catch (error) {
348
336
  if (
349
- deadline.expired()
350
- && !(
351
- error instanceof ZLinkFrameworkException
352
- && internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
337
+ deadline.expired() &&
338
+ !(
339
+ error instanceof ZLinkFrameworkException &&
340
+ internalFrameworkErrorKind(error) ===
341
+ ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
353
342
  )
354
343
  ) {
355
344
  throw createInternalFrameworkException(
@@ -381,11 +370,14 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
381
370
  existing.stableType,
382
371
  existing.targetNodeRid
383
372
  );
384
- const reply = await awaitWithAbort(this.options.routed.requestToSpot<TReply>(existing, request, {
385
- timeoutMs: deadline.requireRemaining(),
386
- signal: deadline.signal,
387
- metadata: call.metadata
388
- }), deadline.signal);
373
+ const reply = await awaitWithAbort(
374
+ this.options.routed.requestToSpot<TReply>(existing, request, {
375
+ timeoutMs: deadline.requireRemaining(),
376
+ signal: deadline.signal,
377
+ metadata: call.metadata
378
+ }),
379
+ deadline.signal
380
+ );
389
381
  this.traceInstanceAddress(
390
382
  ZLinkMessageFlowOutcome.ReplyReceived,
391
383
  ZLinkDispatchMessageKind.Request,
@@ -419,50 +411,100 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
419
411
  ZLinkFrameworkInternalErrorKind.RequestTargetNotFound,
420
412
  `No eligible Instance Spot target serves '${String(spotId)}'.`
421
413
  );
422
- this.reportInstanceRequestError(spotId, request, error, call.initialMeshName,
423
- undefined, call.instanceSpotType, ZLinkDispatchErrorReason.StaleTarget);
414
+ this.reportInstanceRequestError(
415
+ spotId,
416
+ request,
417
+ error,
418
+ call.initialMeshName,
419
+ undefined,
420
+ call.instanceSpotType,
421
+ ZLinkDispatchErrorReason.StaleTarget
422
+ );
424
423
  throw error;
425
424
  }
426
425
  if (selected.kind === 'unavailable') {
427
426
  const error = missingInstancePlacementUnavailable(spotId, call.instanceSpotType);
428
- this.reportInstanceRequestError(spotId, request, error, call.initialMeshName,
429
- undefined, call.instanceSpotType, ZLinkDispatchErrorReason.StaleTarget);
427
+ this.reportInstanceRequestError(
428
+ spotId,
429
+ request,
430
+ error,
431
+ call.initialMeshName,
432
+ undefined,
433
+ call.instanceSpotType,
434
+ ZLinkDispatchErrorReason.StaleTarget
435
+ );
430
436
  throw error;
431
437
  }
432
438
  const deadlineUnixMs = BigInt(deadline.deadlineUnixMs);
433
- const encoded = this.encodeAtDeadline(ZLinkChannelMessageKind.Request,
434
- selected.meshName, request, deadline.deadlineUnixMs);
439
+ const encoded = this.encodeAtDeadline(
440
+ ZLinkChannelMessageKind.Request,
441
+ selected.meshName,
442
+ request,
443
+ deadline.deadlineUnixMs
444
+ );
435
445
  deadline.requireRemaining();
436
446
  const table = this.options.completions(selected.meshName);
437
- if (table === undefined) throw new Error(`MeshNode '${selected.meshName}' completion table is not started.`);
447
+ if (table === undefined)
448
+ throw new Error(`MeshNode '${selected.meshName}' completion table is not started.`);
438
449
  let completionPromise: ReturnType<ZLinkMeshCompletionTable['submit']>;
439
450
  try {
440
451
  completionPromise = table.submit(
441
- () => selected.node.requestToMissingInstanceSpot(selected.target, encoded,
442
- deadlineUnixMs, call.sourceSpot === undefined ? undefined : String(call.sourceSpot.routingId),
443
- call.metadata),
452
+ () =>
453
+ selected.node.requestToMissingInstanceSpot(
454
+ selected.target,
455
+ encoded,
456
+ deadlineUnixMs,
457
+ call.sourceSpot === undefined ? undefined : String(call.sourceSpot.routingId),
458
+ call.metadata
459
+ ),
444
460
  deadline.signal
445
461
  );
446
462
  } catch (error) {
447
- if (error instanceof ZLinkFrameworkException
448
- && internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound) {
463
+ if (
464
+ error instanceof ZLinkFrameworkException &&
465
+ internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
466
+ ) {
449
467
  PRE_ADMISSION_MISSING_INSTANCE_ERRORS.add(error);
450
468
  }
451
469
  throw error;
452
470
  }
453
- this.traceInstanceAddress(ZLinkMessageFlowOutcome.Sent, ZLinkDispatchMessageKind.Request,
454
- spotId, request, selected.meshName, selected.target.stableType, selected.target.targetNodeRid);
471
+ this.traceInstanceAddress(
472
+ ZLinkMessageFlowOutcome.Sent,
473
+ ZLinkDispatchMessageKind.Request,
474
+ spotId,
475
+ request,
476
+ selected.meshName,
477
+ selected.target.stableType,
478
+ selected.target.targetNodeRid
479
+ );
455
480
  const completion = await awaitWithAbort(completionPromise, deadline.signal);
456
481
  try {
457
482
  if (completion.terminalResult !== 0 || completion.failureErrno !== 0) {
458
- const error = missingInstanceRequestFailure(completion.terminalResult, completion.failureErrno);
459
- this.reportInstanceRequestError(spotId, request, error, selected.meshName,
460
- selected.target.targetNodeRid, selected.target.stableType, addressedInstanceErrorReason(error));
483
+ const error = missingInstanceRequestFailure(
484
+ completion.terminalResult,
485
+ completion.failureErrno
486
+ );
487
+ this.reportInstanceRequestError(
488
+ spotId,
489
+ request,
490
+ error,
491
+ selected.meshName,
492
+ selected.target.targetNodeRid,
493
+ selected.target.stableType,
494
+ addressedInstanceErrorReason(error)
495
+ );
461
496
  throw error;
462
497
  }
463
498
  const reply = decodeChannelReply<TReply>(completion.parts, this.options.codecs);
464
- this.traceInstanceAddress(ZLinkMessageFlowOutcome.ReplyReceived, ZLinkDispatchMessageKind.Request,
465
- spotId, request, selected.meshName, selected.target.stableType, selected.target.targetNodeRid);
499
+ this.traceInstanceAddress(
500
+ ZLinkMessageFlowOutcome.ReplyReceived,
501
+ ZLinkDispatchMessageKind.Request,
502
+ spotId,
503
+ request,
504
+ selected.meshName,
505
+ selected.target.stableType,
506
+ selected.target.targetNodeRid
507
+ );
466
508
  return reply;
467
509
  } finally {
468
510
  closeMeshCompletion(completion);
@@ -529,8 +571,8 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
529
571
  return await awaitWithAbort(resolver.resolve(spotId, signal), signal);
530
572
  } catch (error) {
531
573
  if (
532
- error instanceof ZLinkFrameworkException
533
- && internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.SpotRouteNotFound
574
+ error instanceof ZLinkFrameworkException &&
575
+ internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.SpotRouteNotFound
534
576
  ) {
535
577
  return undefined;
536
578
  }
@@ -550,9 +592,9 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
550
592
  | { readonly kind: 'fail' }
551
593
  > {
552
594
  if (
553
- !call.instanceSpot
554
- || !(error instanceof ZLinkFrameworkException)
555
- || !isInstanceRouteStaleError(error)
595
+ !call.instanceSpot ||
596
+ !(error instanceof ZLinkFrameworkException) ||
597
+ !isInstanceRouteStaleError(error)
556
598
  ) {
557
599
  return { kind: 'fail' };
558
600
  }
@@ -563,10 +605,7 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
563
605
  if (!sameSpotRouteSnapshot(current, staleRoute)) {
564
606
  return { kind: 'route', route: current };
565
607
  }
566
- await waitForSpotRouteRefresh(
567
- Math.min(10, deadline.requireRemaining()),
568
- deadline.signal
569
- );
608
+ await waitForSpotRouteRefresh(Math.min(10, deadline.requireRemaining()), deadline.signal);
570
609
  }
571
610
  }
572
611
 
@@ -576,8 +615,8 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
576
615
  ): MissingTargetSelection {
577
616
  const configuredMeshes = this.options.meshNames();
578
617
  if (
579
- call.initialMeshName !== undefined
580
- && this.options.isMeshConfigured?.(call.initialMeshName) === false
618
+ call.initialMeshName !== undefined &&
619
+ this.options.isMeshConfigured?.(call.initialMeshName) === false
581
620
  ) {
582
621
  throw createInternalFrameworkException(
583
622
  ZLinkFrameworkInternalErrorKind.MeshNotFound,
@@ -602,17 +641,21 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
602
641
  'Multiple object-client RouteMeshes are configured; call inMesh(...).'
603
642
  );
604
643
  }
605
- const meshNames = call.initialMeshName === undefined
606
- ? configuredMeshes
607
- : [call.initialMeshName];
608
- const distinctTypes = [...new Set(meshNames.flatMap(meshName =>
609
- this.options.meshNode(meshName)?.instanceSpotPlacementTypes?.() ?? []
610
- ))];
611
- const canInspectPlacementTypes = meshNames.some(meshName =>
612
- typeof this.options.meshNode(meshName)?.instanceSpotPlacementTypes === 'function'
644
+ const meshNames =
645
+ call.initialMeshName === undefined ? configuredMeshes : [call.initialMeshName];
646
+ const distinctTypes = [
647
+ ...new Set(
648
+ meshNames.flatMap(
649
+ (meshName) => this.options.meshNode(meshName)?.instanceSpotPlacementTypes?.() ?? []
650
+ )
651
+ )
652
+ ];
653
+ const canInspectPlacementTypes = meshNames.some(
654
+ (meshName) =>
655
+ typeof this.options.meshNode(meshName)?.instanceSpotPlacementTypes === 'function'
613
656
  );
614
- const stableType = call.instanceSpotType
615
- ?? (distinctTypes.length === 1 ? distinctTypes[0] : undefined);
657
+ const stableType =
658
+ call.instanceSpotType ?? (distinctTypes.length === 1 ? distinctTypes[0] : undefined);
616
659
  if (stableType === undefined) {
617
660
  if (distinctTypes.length === 0) return { kind: 'unsupported' };
618
661
  throw createInternalFrameworkException(
@@ -656,15 +699,19 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
656
699
  }
657
700
 
658
701
  private sendTimeoutMsForMesh(meshName: string): number {
659
- return this.options.sendTimeoutMsForMesh?.(meshName)
660
- ?? this.options.defaultSendTimeoutMs
661
- ?? this.options.defaultRequestTimeoutMs;
702
+ return (
703
+ this.options.sendTimeoutMsForMesh?.(meshName) ??
704
+ this.options.defaultSendTimeoutMs ??
705
+ this.options.defaultRequestTimeoutMs
706
+ );
662
707
  }
663
708
 
664
709
  private sendTimeoutMsForRouteChannel(routeChannelId: string): number {
665
- return this.options.sendTimeoutMsForRouteChannel?.(routeChannelId)
666
- ?? this.options.defaultSendTimeoutMs
667
- ?? this.options.defaultRequestTimeoutMs;
710
+ return (
711
+ this.options.sendTimeoutMsForRouteChannel?.(routeChannelId) ??
712
+ this.options.defaultSendTimeoutMs ??
713
+ this.options.defaultRequestTimeoutMs
714
+ );
668
715
  }
669
716
 
670
717
  private validateExisting(
@@ -673,11 +720,8 @@ export class ZLinkHostSpotAddressTransport implements ZLinkSpotAddressTransport
673
720
  ): void {
674
721
  if (!call.instanceSpot) return;
675
722
  if (
676
- target.spotKind !== ZLinkSpotKind.Instance
677
- || (
678
- call.instanceSpotType !== undefined
679
- && target.stableType !== call.instanceSpotType
680
- )
723
+ target.spotKind !== ZLinkSpotKind.Instance ||
724
+ (call.instanceSpotType !== undefined && target.stableType !== call.instanceSpotType)
681
725
  ) {
682
726
  throw createInternalFrameworkException(
683
727
  ZLinkFrameworkInternalErrorKind.SpotTypeMismatch,
@@ -741,8 +785,9 @@ function isInstanceRouteStaleError(error: unknown): error is ZLinkFrameworkExcep
741
785
  }
742
786
 
743
787
  function isMissingInstanceRetryError(error: unknown): error is ZLinkFrameworkException {
744
- return error instanceof ZLinkFrameworkException
745
- && PRE_ADMISSION_MISSING_INSTANCE_ERRORS.has(error);
788
+ return (
789
+ error instanceof ZLinkFrameworkException && PRE_ADMISSION_MISSING_INSTANCE_ERRORS.has(error)
790
+ );
746
791
  }
747
792
 
748
793
  function missingInstanceRequestFailure(
@@ -762,12 +807,12 @@ function missingInstanceRequestFailure(
762
807
  : result === RequestResult.Terminated
763
808
  ? ZLinkFrameworkInternalErrorKind.RuntimeShutdown
764
809
  : result === RequestResult.Backpressured
765
- // Spec 32-framework-error-model:104-108 — the bounded admission
766
- // terminal is target placement capacity: Unavailable.
767
- ? ZLinkFrameworkInternalErrorKind.PlacementCapacityExhausted
810
+ ? // Spec 32-framework-error-model:104-108 — the bounded admission
811
+ // terminal is target placement capacity: Unavailable.
812
+ ZLinkFrameworkInternalErrorKind.PlacementCapacityExhausted
768
813
  : result === RequestResult.NotConnected
769
814
  ? ZLinkFrameworkInternalErrorKind.RouteNotConnected
770
- : wireKind ?? ZLinkFrameworkInternalErrorKind.RequestFailed;
815
+ : (wireKind ?? ZLinkFrameworkInternalErrorKind.RequestFailed);
771
816
  return createInternalFrameworkException(
772
817
  kind,
773
818
  `Instance Spot request failed with result ${result} and errno ${nativeErrno}.`
@@ -822,29 +867,30 @@ function missingInstancePlacementUnavailable(
822
867
  function isSpotRouteRefreshError(error: unknown): error is ZLinkFrameworkException {
823
868
  if (!(error instanceof ZLinkFrameworkException)) return false;
824
869
  const kind = internalFrameworkErrorKind(error);
825
- return kind === ZLinkFrameworkInternalErrorKind.SpotRouteNotFound
826
- || kind === ZLinkFrameworkInternalErrorKind.SpotGenerationStale
827
- || kind === ZLinkFrameworkInternalErrorKind.SpotMoving
828
- || kind === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
829
- || kind === ZLinkFrameworkInternalErrorKind.ActorLocationStale
830
- || kind === ZLinkFrameworkInternalErrorKind.RouteNotConnected;
870
+ return (
871
+ kind === ZLinkFrameworkInternalErrorKind.SpotRouteNotFound ||
872
+ kind === ZLinkFrameworkInternalErrorKind.SpotGenerationStale ||
873
+ kind === ZLinkFrameworkInternalErrorKind.SpotMoving ||
874
+ kind === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound ||
875
+ kind === ZLinkFrameworkInternalErrorKind.ActorLocationStale ||
876
+ kind === ZLinkFrameworkInternalErrorKind.RouteNotConnected
877
+ );
831
878
  }
832
879
 
833
- function sameSpotRouteSnapshot(
834
- left: ZLinkSpotRouteTarget,
835
- right: ZLinkSpotRouteTarget
836
- ): boolean {
837
- return String(left.targetNodeRid) === String(right.targetNodeRid)
838
- && String(left.spotId) === String(right.spotId)
839
- && left.routerChannelId === right.routerChannelId
840
- && left.spotKind === right.spotKind
841
- && left.stableType === right.stableType
842
- && left.targetSpotGeneration === right.targetSpotGeneration
843
- && left.targetNodeGeneration === right.targetNodeGeneration
844
- && left.authorityOwnerGeneration === right.authorityOwnerGeneration
845
- && left.targetOwnerId === right.targetOwnerId
846
- && left.ownerLeaseGeneration === right.ownerLeaseGeneration
847
- && left.authorityStoreVersion === right.authorityStoreVersion;
880
+ function sameSpotRouteSnapshot(left: ZLinkSpotRouteTarget, right: ZLinkSpotRouteTarget): boolean {
881
+ return (
882
+ String(left.targetNodeRid) === String(right.targetNodeRid) &&
883
+ String(left.spotId) === String(right.spotId) &&
884
+ left.routerChannelId === right.routerChannelId &&
885
+ left.spotKind === right.spotKind &&
886
+ left.stableType === right.stableType &&
887
+ left.targetSpotGeneration === right.targetSpotGeneration &&
888
+ left.targetNodeGeneration === right.targetNodeGeneration &&
889
+ left.authorityOwnerGeneration === right.authorityOwnerGeneration &&
890
+ left.targetOwnerId === right.targetOwnerId &&
891
+ left.ownerLeaseGeneration === right.ownerLeaseGeneration &&
892
+ left.authorityStoreVersion === right.authorityStoreVersion
893
+ );
848
894
  }
849
895
 
850
896
  function waitForSpotRouteRefresh(delayMs: number, signal: AbortSignal): Promise<void> {
@@ -864,9 +910,7 @@ function waitForSpotRouteRefresh(delayMs: number, signal: AbortSignal): Promise<
864
910
  });
865
911
  }
866
912
 
867
- function submitResultReason(
868
- status: ZLinkSubmitStatus
869
- ): ZLinkDispatchErrorReason {
913
+ function submitResultReason(status: ZLinkSubmitStatus): ZLinkDispatchErrorReason {
870
914
  switch (status) {
871
915
  case ZLinkSubmitStatus.Backpressured:
872
916
  case ZLinkSubmitStatus.TimedOut:
@@ -899,12 +943,12 @@ function addressedInstanceErrorReason(error: unknown): ZLinkDispatchErrorReason
899
943
  if (error instanceof ZLinkFrameworkException) {
900
944
  const kind = internalFrameworkErrorKind(error);
901
945
  if (
902
- kind === ZLinkFrameworkInternalErrorKind.SpotRouteNotFound
903
- || kind === ZLinkFrameworkInternalErrorKind.SpotGenerationStale
904
- || kind === ZLinkFrameworkInternalErrorKind.SpotMoving
905
- || kind === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
906
- || kind === ZLinkFrameworkInternalErrorKind.ActorLocationStale
907
- || kind === ZLinkFrameworkInternalErrorKind.RouteNotConnected
946
+ kind === ZLinkFrameworkInternalErrorKind.SpotRouteNotFound ||
947
+ kind === ZLinkFrameworkInternalErrorKind.SpotGenerationStale ||
948
+ kind === ZLinkFrameworkInternalErrorKind.SpotMoving ||
949
+ kind === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound ||
950
+ kind === ZLinkFrameworkInternalErrorKind.ActorLocationStale ||
951
+ kind === ZLinkFrameworkInternalErrorKind.RouteNotConnected
908
952
  ) {
909
953
  return ZLinkDispatchErrorReason.StaleTarget;
910
954
  }
@@ -912,10 +956,10 @@ function addressedInstanceErrorReason(error: unknown): ZLinkDispatchErrorReason
912
956
  return ZLinkDispatchErrorReason.Shutdown;
913
957
  }
914
958
  if (
915
- kind === ZLinkFrameworkInternalErrorKind.PlacementCapacityExhausted
916
- || kind === ZLinkFrameworkInternalErrorKind.WorkerQueueFull
917
- || kind === ZLinkFrameworkInternalErrorKind.WorkerTimedOut
918
- || kind === ZLinkFrameworkInternalErrorKind.DeadlineExceeded
959
+ kind === ZLinkFrameworkInternalErrorKind.PlacementCapacityExhausted ||
960
+ kind === ZLinkFrameworkInternalErrorKind.WorkerQueueFull ||
961
+ kind === ZLinkFrameworkInternalErrorKind.WorkerTimedOut ||
962
+ kind === ZLinkFrameworkInternalErrorKind.DeadlineExceeded
919
963
  ) {
920
964
  return ZLinkDispatchErrorReason.Backpressure;
921
965
  }
@@ -928,10 +972,10 @@ function initialSendTimeoutMs(
928
972
  call: ZLinkSpotAddressCallOptions
929
973
  ): number {
930
974
  return call.initialMeshName === undefined
931
- ? options.defaultSendTimeoutMs ?? options.defaultRequestTimeoutMs
932
- : options.sendTimeoutMsForMesh?.(call.initialMeshName)
933
- ?? options.defaultSendTimeoutMs
934
- ?? options.defaultRequestTimeoutMs;
975
+ ? (options.defaultSendTimeoutMs ?? options.defaultRequestTimeoutMs)
976
+ : (options.sendTimeoutMsForMesh?.(call.initialMeshName) ??
977
+ options.defaultSendTimeoutMs ??
978
+ options.defaultRequestTimeoutMs);
935
979
  }
936
980
 
937
981
  interface ZLinkSpotAddressDeadline {
@@ -943,7 +987,10 @@ interface ZLinkSpotAddressDeadline {
943
987
  close(): void;
944
988
  }
945
989
 
946
- function createSpotAddressDeadline(timeoutMs: number, parent?: AbortSignal): ZLinkSpotAddressDeadline {
990
+ function createSpotAddressDeadline(
991
+ timeoutMs: number,
992
+ parent?: AbortSignal
993
+ ): ZLinkSpotAddressDeadline {
947
994
  const startedAtMs = performance.now();
948
995
  const startedAtUnixMs = Date.now();
949
996
  let deadlineMs = startedAtMs + Math.max(0, timeoutMs);