@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
@@ -191,8 +191,7 @@ class ZLinkEntrySpotActivation {
191
191
  }
192
192
  notifyCreateActor(actor, createRequest, signal) {
193
193
  (0, abort_1.throwIfAborted)(signal);
194
- return this.serial.execute(async () => await this.entrySpot.onCreateActor?.(actor, createRequest)
195
- ?? { accepted: true });
194
+ return this.serial.execute(async () => (await this.entrySpot.onCreateActor?.(actor, createRequest)) ?? { accepted: true });
196
195
  }
197
196
  notifyJoinActor(actor, signal) {
198
197
  (0, abort_1.throwIfAborted)(signal);
@@ -231,10 +230,12 @@ class ZLinkEntrySpotActivation {
231
230
  resolveActor: (actorId) => this.options.entryActorRuntime?.resolveActor(actorId),
232
231
  getTarget: () => this.entrySpot,
233
232
  defaultAccept: true,
234
- transfer: this.options.actorTransferRuntime === undefined ? { kind: 'disabled' } : {
235
- kind: 'enabled',
236
- runtime: this.options.actorTransferRuntime
237
- },
233
+ transfer: this.options.actorTransferRuntime === undefined
234
+ ? { kind: 'disabled' }
235
+ : {
236
+ kind: 'enabled',
237
+ runtime: this.options.actorTransferRuntime
238
+ },
238
239
  commitNativeActor: (actor) => this.commitEntryActorTransaction(actor),
239
240
  commitTransferredActor: async (actor, backlog) => {
240
241
  await this.commitEntryActorTransaction(actor);
@@ -247,8 +248,8 @@ class ZLinkEntrySpotActivation {
247
248
  if ((0, routing_id_1.routingIdsEqual)(sourceNodeRid, this.options.nativeNode.routingId)) {
248
249
  return;
249
250
  }
250
- const target = declaredTarget
251
- ?? this.options.boundSessionRuntime?.resolveRemoteBoundSessionTarget(sourceNodeRid, sourceSessionRid);
251
+ const target = declaredTarget ??
252
+ this.options.boundSessionRuntime?.resolveRemoteBoundSessionTarget(sourceNodeRid, sourceSessionRid);
252
253
  if (target !== undefined) {
253
254
  this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(actor.actorId, {
254
255
  ...target,
@@ -325,9 +326,7 @@ class ZLinkEntrySpotActivation {
325
326
  exports.ZLinkEntrySpotActivation = ZLinkEntrySpotActivation;
326
327
  function notifyEntryActorJoined(entrySpot, actor) {
327
328
  const callback = entrySpot.onJoinedActor;
328
- return callback === undefined
329
- ? Promise.resolve()
330
- : callback.call(entrySpot, actor);
329
+ return callback === undefined ? Promise.resolve() : callback.call(entrySpot, actor);
331
330
  }
332
331
  function toContextGeneration(generation) {
333
332
  if (generation < 0n || generation > BigInt(Number.MAX_SAFE_INTEGER)) {
@@ -336,7 +335,7 @@ function toContextGeneration(generation) {
336
335
  return Number(generation);
337
336
  }
338
337
  function entrySpotGeneration(spot) {
339
- return spot.lifecycleGeneration
340
- ?? spot.status?.().lifecycleGeneration
341
- ?? 0n;
338
+ return (spot.lifecycleGeneration ??
339
+ spot.status?.().lifecycleGeneration ??
340
+ 0n);
342
341
  }
@@ -17,14 +17,17 @@ function createSpotHandle(spotId, initialOrRefresh, refresh) {
17
17
  }
18
18
  async function resolveSpotHandle(handle, signal) {
19
19
  const state = requireHandleState(handle);
20
- return state.current ?? await refreshSpotHandle(handle, signal);
20
+ return state.current ?? (await refreshSpotHandle(handle, signal));
21
21
  }
22
22
  async function refreshSpotHandle(handle, signal) {
23
23
  const state = requireHandleState(handle);
24
- state.refreshing ??= state.refresh(signal).then((resolved) => {
24
+ state.refreshing ??= state
25
+ .refresh(signal)
26
+ .then((resolved) => {
25
27
  state.current = resolved;
26
28
  return resolved;
27
- }).finally(() => {
29
+ })
30
+ .finally(() => {
28
31
  state.refreshing = undefined;
29
32
  });
30
33
  return await state.refreshing;
@@ -18,9 +18,7 @@ class DefaultZLinkSpotHandlerRegistry {
18
18
  if (metadata === undefined || resolvedPacketName === undefined) {
19
19
  throw new configuration_1.ZLinkConfigurationException(`Actor packet handler '${handlerType.name}' must declare a packet name.`);
20
20
  }
21
- return this.addActorPacketRegistration(metadata.kind === 'spotActorSend'
22
- ? actors_1.ZLinkActorPacketKind.Send
23
- : actors_1.ZLinkActorPacketKind.Request, handlerType, Object, resolvedPacketName);
21
+ return this.addActorPacketRegistration(metadata.kind === 'spotActorSend' ? actors_1.ZLinkActorPacketKind.Send : actors_1.ZLinkActorPacketKind.Request, handlerType, Object, resolvedPacketName);
24
22
  }
25
23
  addActorPacket(handlerType, actorType) {
26
24
  const metadata = (0, Attributes_1.readZLinkDecoratorMetadata)(handlerType).find((entry) => entry.kind === 'spotActorSend' || entry.kind === 'spotActorRequest');
@@ -30,9 +28,12 @@ class DefaultZLinkSpotHandlerRegistry {
30
28
  return this.addActorPacketRegistration(metadata.kind === 'spotActorSend' ? actors_1.ZLinkActorPacketKind.Send : actors_1.ZLinkActorPacketKind.Request, handlerType, actorType, metadata.packetName);
31
29
  }
32
30
  addPacket(handlerType, packetName) {
33
- const declared = (0, Attributes_1.readZLinkDecoratorMetadata)(handlerType)
34
- .find((entry) => entry.kind === 'packet')?.packetName;
35
- this.entries.push({ kind: 'packet', handlerType, packetName: packetName ?? declared ?? handlerType.name });
31
+ const declared = (0, Attributes_1.readZLinkDecoratorMetadata)(handlerType).find((entry) => entry.kind === 'packet')?.packetName;
32
+ this.entries.push({
33
+ kind: 'packet',
34
+ handlerType,
35
+ packetName: packetName ?? declared ?? handlerType.name
36
+ });
36
37
  return this;
37
38
  }
38
39
  packet(packetName, handlerType) {
@@ -66,10 +67,10 @@ class DefaultZLinkSpotHandlerRegistry {
66
67
  if (topic.trim().length === 0) {
67
68
  throw new configuration_1.ZLinkConfigurationException('SPOT subscribe topic must not be empty.');
68
69
  }
69
- if (this.entries.some((entry) => entry.kind === 'subscribe'
70
- && entry.handlerType === handlerType
71
- && entry.channelName === channelName
72
- && entry.topic === topic)) {
70
+ if (this.entries.some((entry) => entry.kind === 'subscribe' &&
71
+ entry.handlerType === handlerType &&
72
+ entry.channelName === channelName &&
73
+ entry.topic === topic)) {
73
74
  return this;
74
75
  }
75
76
  this.entries.push({ kind: 'subscribe', handlerType, channelName, topic });
@@ -150,6 +151,5 @@ function applySpotHandlerRegistrations(registry, spotType, registrations) {
150
151
  }
151
152
  }
152
153
  function isSpotImplementation(registeredType, implementation) {
153
- return registeredType === implementation
154
- || implementation.prototype instanceof registeredType;
154
+ return registeredType === implementation || implementation.prototype instanceof registeredType;
155
155
  }
@@ -38,8 +38,8 @@ class ZLinkPublicSpotManager {
38
38
  };
39
39
  }
40
40
  catch (error) {
41
- if (error instanceof contracts_1.ZLinkFrameworkException
42
- && (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound) {
41
+ if (error instanceof contracts_1.ZLinkFrameworkException &&
42
+ (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound) {
43
43
  return undefined;
44
44
  }
45
45
  throw error;
@@ -74,8 +74,7 @@ class ZLinkPublicSpotManager {
74
74
  },
75
75
  deadlineUnixMs: BigInt(Date.now() + timeoutMs)
76
76
  }, timeoutMs);
77
- if (result.terminalResult !== 0
78
- || result.tail?.kind !== 'userSpotClose') {
77
+ if (result.terminalResult !== 0 || result.tail?.kind !== 'userSpotClose') {
79
78
  const message = `Remote User Spot close failed. terminalResult=${result.terminalResult}, failureCode=${result.failureCode}.`;
80
79
  // Route the close terminal through the shared ownership-aware translator
81
80
  // (spec 32-framework-error-model:81-118, 99-108) instead of an ad-hoc
@@ -170,8 +169,8 @@ class ZLinkPublicSpotManager {
170
169
  throw error;
171
170
  }
172
171
  }, async (cleanupSignal) => {
173
- const meshName = state.meshName ?? [...this.options.factories]
174
- .find(([, byType]) => byType.has(stableType))?.[0];
172
+ const meshName = state.meshName ??
173
+ [...this.options.factories].find(([, byType]) => byType.has(stableType))?.[0];
175
174
  if (meshName !== undefined) {
176
175
  await this.options.local.close(meshName, spotId, cleanupSignal);
177
176
  }
@@ -29,9 +29,10 @@ class ZLinkSpotNativeActorJoinAdmission {
29
29
  ? { accepted: this.options.defaultAccept }
30
30
  : target.onActorJoin(actorId, joinPayload));
31
31
  accepted = response.accepted;
32
- reply = response.reply === undefined
33
- ? undefined
34
- : (0, payload_codec_1.encodeFrameworkPayloadMessage)(response.reply, this.options.messageSerializers);
32
+ reply =
33
+ response.reply === undefined
34
+ ? undefined
35
+ : (0, payload_codec_1.encodeFrameworkPayloadMessage)(response.reply, this.options.messageSerializers);
35
36
  if (accepted) {
36
37
  acceptedActor = actor;
37
38
  }
@@ -42,8 +42,7 @@ function spotNodeAutoConnectCapability(spotNodeName, spotNode, node) {
42
42
  nodeRid: String(status.routingId),
43
43
  endpoint,
44
44
  objectRole: spotNode.objectRole ?? 'none',
45
- hasRouteMeshServerChannel: Object.values(spotNode.meshChannels ?? {})
46
- .some((channel) => channel.server === true)
45
+ hasRouteMeshServerChannel: Object.values(spotNode.meshChannels ?? {}).some((channel) => channel.server === true)
47
46
  };
48
47
  const manualConnections = hasManualRouterConnections(spotNode);
49
48
  return {
@@ -54,11 +53,10 @@ function spotNodeAutoConnectCapability(spotNodeName, spotNode, node) {
54
53
  function meshDescriptorPeerResolver(runtime) {
55
54
  return {
56
55
  async listLivePeers(filter, signal) {
57
- if (filter.meshName === undefined
58
- || (filter.autoConnectType !== undefined
59
- && filter.autoConnectType !== Values_1.ZLinkLocationAutoConnectType.RouteMesh)
60
- || (filter.role !== undefined
61
- && filter.role !== contracts_1.ZLinkLocationRole.Router)) {
56
+ if (filter.meshName === undefined ||
57
+ (filter.autoConnectType !== undefined &&
58
+ filter.autoConnectType !== Values_1.ZLinkLocationAutoConnectType.RouteMesh) ||
59
+ (filter.role !== undefined && filter.role !== contracts_1.ZLinkLocationRole.Router)) {
62
60
  return [];
63
61
  }
64
62
  const descriptors = await runtime.listLiveMeshNodes(filter.meshName, signal);
@@ -82,14 +80,14 @@ function meshDescriptorPeerResolver(runtime) {
82
80
  securityIdentity: descriptor.securityIdentity
83
81
  }
84
82
  }))
85
- .filter(peer => (filter.nodeRid === undefined || String(peer.nodeRid) === String(filter.nodeRid))
86
- && (filter.endpoint === undefined || peer.endpoint === filter.endpoint));
83
+ .filter((peer) => (filter.nodeRid === undefined || String(peer.nodeRid) === String(filter.nodeRid)) &&
84
+ (filter.endpoint === undefined || peer.endpoint === filter.endpoint));
87
85
  }
88
86
  };
89
87
  }
90
88
  function hasManualRouterConnections(spotNode) {
91
- return (spotNode.router?.manualConnections?.length ?? 0) > 0
92
- || (spotNode.router?.manualPeerConnections?.length ?? 0) > 0;
89
+ return ((spotNode.router?.manualConnections?.length ?? 0) > 0 ||
90
+ (spotNode.router?.manualPeerConnections?.length ?? 0) > 0);
93
91
  }
94
92
  const detachedSpotNodeAutoConnectResource = new node_async_hooks_1.AsyncResource('zlink:spot-node-autoconnect');
95
93
  class ZLinkSpotNodeAutoConnectExecutor {
@@ -129,8 +127,7 @@ class ZLinkSpotNodeAutoConnectExecutor {
129
127
  if (peer.routingId === null)
130
128
  continue;
131
129
  const target = current.get(String(peer.routingId));
132
- if (target !== undefined
133
- && peer.endpoint === target.endpoint) {
130
+ if (target !== undefined && peer.endpoint === target.endpoint) {
134
131
  continue;
135
132
  }
136
133
  this.node.disconnectPeer(peer.routingId, peer.lifecycleGeneration);
@@ -142,7 +139,9 @@ class ZLinkSpotNodeAutoConnectExecutor {
142
139
  // it can treat the automatic route as disconnected.
143
140
  if (this.connectionIntents.has(connectionKey(target)))
144
141
  return false;
145
- return !this.node.peers().some((peer) => peer.routingId !== null &&
142
+ return !this.node
143
+ .peers()
144
+ .some((peer) => peer.routingId !== null &&
146
145
  peer.endpoint === target.endpoint &&
147
146
  (target.nodeRid === undefined || String(peer.routingId) === String(target.nodeRid)) &&
148
147
  peer.lifecycleGeneration === target.lifecycleGeneration &&
@@ -151,7 +150,7 @@ class ZLinkSpotNodeAutoConnectExecutor {
151
150
  replaceNotRequired(targets) {
152
151
  this.node.replaceDiscoveredNotRequiredPeers?.(targets
153
152
  .filter((target) => target.nodeRid !== undefined)
154
- .map(target => ({
153
+ .map((target) => ({
155
154
  nodeRoutingId: String(target.nodeRid),
156
155
  lifecycleGeneration: target.lifecycleGeneration,
157
156
  descriptorRevision: target.descriptorRevision ?? 1n,
@@ -181,9 +180,7 @@ class ZLinkSpotNodeAutoConnectExecutor {
181
180
  try {
182
181
  const connectionIntentId = await this.node.connectPeer({
183
182
  endpoint: target.endpoint,
184
- expectedRid: target.nodeRid === undefined
185
- ? undefined
186
- : (0, routing_id_1.toBackendRoutingId)(target.nodeRid),
183
+ expectedRid: target.nodeRid === undefined ? undefined : (0, routing_id_1.toBackendRoutingId)(target.nodeRid),
187
184
  expectedSecurityIdentity: toAdmissionSecurityIdentity(target.metadata?.securityIdentity),
188
185
  expectedLifecycleGeneration: target.lifecycleGeneration
189
186
  });
@@ -51,8 +51,9 @@ class ZLinkSpotNodeRuntimeManager {
51
51
  applicationJobQueue;
52
52
  constructor(options) {
53
53
  this.options = options;
54
- this.applicationJobQueue = options.applicationJobQueue
55
- ?? new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
54
+ this.applicationJobQueue =
55
+ options.applicationJobQueue ??
56
+ new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
56
57
  }
57
58
  createReceived() {
58
59
  return this.options.backendAdapterFactory.createReceived();
@@ -126,10 +127,10 @@ class ZLinkSpotNodeRuntimeManager {
126
127
  }
127
128
  const meshAdapter = this.options.backendAdapterFactory.createMeshAdapter();
128
129
  for (const [spotNodeName, spotNode] of this.options.registration.spotNodes.entries()) {
129
- const routingId = spotNode.routingId
130
- ?? spotNode.router?.routingId
131
- ?? spotNode.pubSub?.routingId
132
- ?? `${spotNode.routingIdPrefix ?? spotNodeName}-${(0, node_crypto_1.randomUUID)()}`;
130
+ const routingId = spotNode.routingId ??
131
+ spotNode.router?.routingId ??
132
+ spotNode.pubSub?.routingId ??
133
+ `${spotNode.routingIdPrefix ?? spotNodeName}-${(0, node_crypto_1.randomUUID)()}`;
133
134
  const bind = spotNode.router?.bind;
134
135
  if (bind === undefined) {
135
136
  throw new configuration_1.ZLinkConfigurationException(`MeshNode '${spotNodeName}' requires a routing id and ROUTER bind endpoint.`);
@@ -142,6 +143,9 @@ class ZLinkSpotNodeRuntimeManager {
142
143
  applicationJobReceiveFlowFailureSink: this.options.applicationJobReceiveFlowFailureSink,
143
144
  peerAdmissionSealed: () => this.options.peerAdmissionSealed?.(spotNodeName) ?? false
144
145
  });
146
+ if (this.options.dispatchErrors !== undefined) {
147
+ node.setDispatchErrorReporter?.(this.options.dispatchErrors, spotNodeName);
148
+ }
145
149
  node.setMailboxRecordDroppedHandler?.((record) => this.options.dispatchErrors?.report({
146
150
  surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.RouteMeshChannel,
147
151
  messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send,
@@ -161,8 +165,8 @@ class ZLinkSpotNodeRuntimeManager {
161
165
  : ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.Drop,
162
166
  channelName: spotNodeName,
163
167
  sourceRid: record.sourceNodeRid,
164
- error: new Error(`MeshNode '${spotNodeName}' rejected an invalid service wire record from '${record.sourceNodeRid}'`
165
- + (record.command === undefined ? '.' : ` (command ${record.command}).`))
168
+ error: new Error(`MeshNode '${spotNodeName}' rejected an invalid service wire record from '${record.sourceNodeRid}'` +
169
+ (record.command === undefined ? '.' : ` (command ${record.command}).`))
166
170
  }));
167
171
  let pump;
168
172
  const completions = new mesh_completion_table_1.ZLinkMeshCompletionTable();
@@ -177,20 +181,19 @@ class ZLinkSpotNodeRuntimeManager {
177
181
  ...Object.keys(spotNode.actorFactoryRegistrations ?? {})
178
182
  ];
179
183
  const instanceSpotTypes = Object.keys(spotNode.instanceSpotFactoryRegistrations ?? {});
180
- const hasLegacyObjectFactories = (spotNode.spotFactories?.length ?? 0) > 0
181
- || Object.keys(spotNode.instanceSpotFactories ?? {}).length > 0
182
- || (spotNode.actorFactories instanceof Map
184
+ const hasLegacyObjectFactories = (spotNode.spotFactories?.length ?? 0) > 0 ||
185
+ Object.keys(spotNode.instanceSpotFactories ?? {}).length > 0 ||
186
+ (spotNode.actorFactories instanceof Map
183
187
  ? spotNode.actorFactories.size
184
188
  : Object.keys(spotNode.actorFactories ?? {}).length) > 0;
185
189
  node.configureObjectPlacement({
186
- role: spotNode.objectRole
187
- ?? (hasLegacyObjectFactories ? 'server' : 'none'),
190
+ role: spotNode.objectRole ?? (hasLegacyObjectFactories ? 'server' : 'none'),
188
191
  placementWeight: spotNode.placementWeight ?? 100,
189
192
  activeCapacityLimit: aggregatePlacementCapacity(spotNode.actorLimit ?? 0, spotNode.spotLimit ?? 0),
190
193
  pendingCapacityLimit: spotNode.activationConcurrencyLimit ?? 128,
191
194
  objectCapabilities: [
192
- ...stableTypes.map(type => `object-type:${type}`),
193
- ...instanceSpotTypes.map(type => `instance-spot-type:${type}`)
195
+ ...stableTypes.map((type) => `object-type:${type}`),
196
+ ...instanceSpotTypes.map((type) => `instance-spot-type:${type}`)
194
197
  ],
195
198
  ...(this.options.registration.maintenanceWave === undefined
196
199
  ? {}
@@ -251,7 +254,9 @@ class ZLinkSpotNodeRuntimeManager {
251
254
  async publishMeshNodeState(state, signal, selectedMeshName) {
252
255
  const previous = this.statePublication;
253
256
  let release;
254
- this.statePublication = new Promise((resolve) => { release = resolve; });
257
+ this.statePublication = new Promise((resolve) => {
258
+ release = resolve;
259
+ });
255
260
  await previous;
256
261
  try {
257
262
  await this.publishMeshNodeStateCore(state, signal, selectedMeshName);
@@ -265,8 +270,7 @@ class ZLinkSpotNodeRuntimeManager {
265
270
  const owner = location?.runtime.currentOwnerToken;
266
271
  if (location === undefined || owner === undefined)
267
272
  return;
268
- const ownerChanged = this.publishedOwnerToken !== undefined
269
- && !sameOwnerToken(this.publishedOwnerToken, owner);
273
+ const ownerChanged = this.publishedOwnerToken !== undefined && !sameOwnerToken(this.publishedOwnerToken, owner);
270
274
  if (ownerChanged) {
271
275
  // A new owner token can refer to an empty or replaced Store. The cached
272
276
  // descriptor was written under the previous lease and must not force a
@@ -289,9 +293,7 @@ class ZLinkSpotNodeRuntimeManager {
289
293
  ...actors.map(([stableType, factory]) => objectCapability('actor', stableType, factory))
290
294
  ].sort((left, right) => {
291
295
  const kindOrder = left.objectKind.localeCompare(right.objectKind);
292
- return kindOrder !== 0
293
- ? kindOrder
294
- : left.stableType.localeCompare(right.stableType);
296
+ return kindOrder !== 0 ? kindOrder : left.stableType.localeCompare(right.stableType);
295
297
  });
296
298
  const current = this.publishedMeshNodeDescriptors.get(meshName);
297
299
  const previousRevision = this.descriptorRevisionByMesh.get(meshName) ?? 0n;
@@ -318,10 +320,10 @@ class ZLinkSpotNodeRuntimeManager {
318
320
  limit: registration.spotLimit ?? 0
319
321
  },
320
322
  spotTypes: capabilities
321
- .filter(capability => capability.objectKind !== 'actor')
322
- .map(capability => {
323
- const previous = current?.populationCapacity.spotTypes.find(candidate => candidate.objectKind === capability.objectKind
324
- && candidate.stableType === capability.stableType);
323
+ .filter((capability) => capability.objectKind !== 'actor')
324
+ .map((capability) => {
325
+ const previous = current?.populationCapacity.spotTypes.find((candidate) => candidate.objectKind === capability.objectKind &&
326
+ candidate.stableType === capability.stableType);
325
327
  return {
326
328
  objectKind: capability.objectKind,
327
329
  stableType: capability.stableType,
@@ -332,15 +334,14 @@ class ZLinkSpotNodeRuntimeManager {
332
334
  })
333
335
  },
334
336
  activationConcurrency: {
335
- active: this.options.instanceActivationConcurrencyProvider?.(meshName).active
336
- ?? current?.activationConcurrency.active
337
- ?? 0,
338
- limit: this.options.instanceActivationConcurrencyProvider?.(meshName).limit
339
- ?? registration.activationConcurrencyLimit
340
- ?? 128
337
+ active: this.options.instanceActivationConcurrencyProvider?.(meshName).active ??
338
+ current?.activationConcurrency.active ??
339
+ 0,
340
+ limit: this.options.instanceActivationConcurrencyProvider?.(meshName).limit ??
341
+ registration.activationConcurrencyLimit ??
342
+ 128
341
343
  },
342
- channelWeights: Object.fromEntries(this.serverChannels(meshName)
343
- .map(([channelName, channel]) => [
344
+ channelWeights: Object.fromEntries(this.serverChannels(meshName).map(([channelName, channel]) => [
344
345
  channelName,
345
346
  state === contracts_1.ZLinkFrameworkRuntimeState.Draining
346
347
  ? 0
@@ -351,14 +352,11 @@ class ZLinkSpotNodeRuntimeManager {
351
352
  spotTypes: [
352
353
  ...userSpots.map(([stableType]) => stableType),
353
354
  ...instanceSpots.map(([stableType]) => stableType),
354
- ...(registration.entrySpotType === undefined
355
- ? []
356
- : [registration.entrySpotType.name])
357
- ]
358
- .sort(),
355
+ ...(registration.entrySpotType === undefined ? [] : [registration.entrySpotType.name])
356
+ ].sort(),
359
357
  objectCapabilities: capabilities,
360
358
  state,
361
- securityIdentity: 'default',
359
+ securityIdentity: 'default'
362
360
  };
363
361
  const result = await location.runtime.writeMeshNode(descriptor, ownerChanged
364
362
  ? Locations_1.ZLinkLocationWriteIntent.Renew
@@ -387,11 +385,10 @@ class ZLinkSpotNodeRuntimeManager {
387
385
  const owner = location.runtime.currentOwnerToken;
388
386
  if (owner === undefined)
389
387
  return;
390
- const current = (await location.runtime.listLiveMeshNodes(meshName, signal))
391
- .find((descriptor) => String(descriptor.rid) === String(status.routingId)
392
- && descriptor.lifecycleGeneration === status.lifecycleGeneration
393
- && descriptor.ownerId === owner.ownerId
394
- && descriptor.leaseGeneration === owner.leaseGeneration);
388
+ const current = (await location.runtime.listLiveMeshNodes(meshName, signal)).find((descriptor) => String(descriptor.rid) === String(status.routingId) &&
389
+ descriptor.lifecycleGeneration === status.lifecycleGeneration &&
390
+ descriptor.ownerId === owner.ownerId &&
391
+ descriptor.leaseGeneration === owner.leaseGeneration);
395
392
  if (current !== undefined) {
396
393
  this.publishedMeshNodeDescriptors.set(meshName, current);
397
394
  this.descriptorRevisionByMesh.set(meshName, maxBigInt(this.descriptorRevisionByMesh.get(meshName) ?? 0n, current.descriptorRevision));
@@ -429,9 +426,7 @@ class ZLinkSpotNodeRuntimeManager {
429
426
  }
430
427
  entrySpotIdForMesh(meshName) {
431
428
  const registration = this.options.registration.spotNodes.get(meshName);
432
- return registration === undefined
433
- ? undefined
434
- : this.entrySpotId(meshName, registration);
429
+ return registration === undefined ? undefined : this.entrySpotId(meshName, registration);
435
430
  }
436
431
  meshNodeDescriptor(meshName) {
437
432
  return this.publishedMeshNodeDescriptors.get(meshName);
@@ -441,9 +436,7 @@ class ZLinkSpotNodeRuntimeManager {
441
436
  if (registration === undefined) {
442
437
  throw new configuration_1.ZLinkConfigurationException(`Mesh '${meshName}' is not registered.`);
443
438
  }
444
- return this.runtimePlacementWeights.get(meshName)
445
- ?? registration.placementWeight
446
- ?? 100;
439
+ return this.runtimePlacementWeights.get(meshName) ?? registration.placementWeight ?? 100;
447
440
  }
448
441
  channelWeight(channelName) {
449
442
  const match = this.resolveChannel(channelName);
@@ -496,12 +489,9 @@ class ZLinkSpotNodeRuntimeManager {
496
489
  return this.runtimeChannelWeights.get(meshName)?.get(channelName) ?? configuredWeight;
497
490
  }
498
491
  resolveChannel(channelName) {
499
- const matches = [...this.options.registration.spotNodes]
500
- .flatMap(([meshName, registration]) => {
492
+ const matches = [...this.options.registration.spotNodes].flatMap(([meshName, registration]) => {
501
493
  const channel = registration.meshChannels?.[channelName];
502
- return channel === undefined
503
- ? []
504
- : [{ meshName, configuredWeight: channel.weight ?? 100 }];
494
+ return channel === undefined ? [] : [{ meshName, configuredWeight: channel.weight ?? 100 }];
505
495
  });
506
496
  if (matches.length === 0) {
507
497
  throw new configuration_1.ZLinkConfigurationException(`RouteMesh channel '${channelName}' is not registered.`);
@@ -512,10 +502,12 @@ class ZLinkSpotNodeRuntimeManager {
512
502
  return matches[0];
513
503
  }
514
504
  scheduleRuntimeWeightPublication(meshName, applyWeight) {
515
- const publish = this.runtimeWeightPublication.catch(() => undefined).then(async () => {
505
+ const publish = this.runtimeWeightPublication
506
+ .catch(() => undefined)
507
+ .then(async () => {
516
508
  await applyWeight();
517
- const state = this.publishedMeshNodeDescriptors.get(meshName)?.state
518
- ?? contracts_1.ZLinkFrameworkRuntimeState.Serving;
509
+ const state = this.publishedMeshNodeDescriptors.get(meshName)?.state ??
510
+ contracts_1.ZLinkFrameworkRuntimeState.Serving;
519
511
  await this.publishMeshNodeState(state, undefined, meshName);
520
512
  });
521
513
  this.runtimeWeightPublication = publish;
@@ -551,7 +543,7 @@ class ZLinkSpotNodeRuntimeManager {
551
543
  }
552
544
  notifyPrimaryEntrySpotActorLeft(actor, signal, actorRef, membershipEpoch) {
553
545
  const activation = this.primaryEntryActivation();
554
- return activation?.notifyLeaveActor(actor, signal, actorRef, membershipEpoch) ?? Promise.resolve();
546
+ return (activation?.notifyLeaveActor(actor, signal, actorRef, membershipEpoch) ?? Promise.resolve());
555
547
  }
556
548
  notifyPrimaryEntrySpotActorDisconnected(actor, signal) {
557
549
  const activation = this.primaryEntryActivation();
@@ -562,8 +554,7 @@ class ZLinkSpotNodeRuntimeManager {
562
554
  await this.entryActivations.get(meshName)?.notifyDisconnectActor(actor, signal);
563
555
  }
564
556
  serverChannels(meshName) {
565
- return Object.entries(this.options.registration.spotNodes.get(meshName)?.meshChannels ?? {})
566
- .filter(([, channel]) => channel.server === true);
557
+ return Object.entries(this.options.registration.spotNodes.get(meshName)?.meshChannels ?? {}).filter(([, channel]) => channel.server === true);
567
558
  }
568
559
  async dispose(signal, deadline) {
569
560
  this.disposed = true;
@@ -614,13 +605,15 @@ class ZLinkSpotNodeRuntimeManager {
614
605
  return;
615
606
  }
616
607
  const node = this.meshNodes.get(meshName);
617
- const targetsEntrySpot = owner.spotId === null
618
- || (node !== undefined && (0, routing_id_1.routingIdsEqual)(owner.spotId, String(node.status().routingId)));
619
- if (targetsEntrySpot && (record.kind === service_runtime_contracts_1.ReceiveKind.ActorSend
620
- || record.kind === service_runtime_contracts_1.ReceiveKind.ActorRequest
621
- || record.kind === service_runtime_contracts_1.ReceiveKind.SpotSend
622
- || record.kind === service_runtime_contracts_1.ReceiveKind.SpotRequest
623
- || record.kind === service_runtime_contracts_1.ReceiveKind.SpotMulticast)) {
608
+ const targetsEntrySpot = owner.spotId === null ||
609
+ (node !== undefined &&
610
+ (0, routing_id_1.routingIdsEqual)(owner.spotId, String(node.status().routingId)));
611
+ if (targetsEntrySpot &&
612
+ (record.kind === service_runtime_contracts_1.ReceiveKind.ActorSend ||
613
+ record.kind === service_runtime_contracts_1.ReceiveKind.ActorRequest ||
614
+ record.kind === service_runtime_contracts_1.ReceiveKind.SpotSend ||
615
+ record.kind === service_runtime_contracts_1.ReceiveKind.SpotRequest ||
616
+ record.kind === service_runtime_contracts_1.ReceiveKind.SpotMulticast)) {
624
617
  await this.ensureEntryActivation(meshName);
625
618
  }
626
619
  const dispatcher = this.options.meshRecordDispatcher;
@@ -630,16 +623,14 @@ class ZLinkSpotNodeRuntimeManager {
630
623
  await dispatcher(meshName, owner, record);
631
624
  }
632
625
  async dispatchEntrySpotRecord(meshName, owner, record) {
633
- if (record.kind !== service_runtime_contracts_1.ReceiveKind.SpotSend
634
- && record.kind !== service_runtime_contracts_1.ReceiveKind.SpotRequest
635
- && record.kind !== service_runtime_contracts_1.ReceiveKind.SpotMulticast) {
626
+ if (record.kind !== service_runtime_contracts_1.ReceiveKind.SpotSend &&
627
+ record.kind !== service_runtime_contracts_1.ReceiveKind.SpotRequest &&
628
+ record.kind !== service_runtime_contracts_1.ReceiveKind.SpotMulticast) {
636
629
  return false;
637
630
  }
638
631
  await this.ensureEntryActivation(meshName);
639
632
  const activation = this.entryActivations.get(meshName);
640
- if (activation === undefined
641
- || owner.spotId === null
642
- || activation.spotId !== owner.spotId) {
633
+ if (activation === undefined || owner.spotId === null || activation.spotId !== owner.spotId) {
643
634
  return false;
644
635
  }
645
636
  if (record.kind === service_runtime_contracts_1.ReceiveKind.SpotMulticast) {
@@ -752,7 +743,12 @@ class ZLinkSpotNodeRuntimeManager {
752
743
  if (activation === undefined) {
753
744
  const candidates = this.options.primaryMeshName === undefined
754
745
  ? this.options.registration.spotNodes
755
- : new Map([[this.options.primaryMeshName, this.options.registration.spotNodes.get(this.options.primaryMeshName)]]);
746
+ : new Map([
747
+ [
748
+ this.options.primaryMeshName,
749
+ this.options.registration.spotNodes.get(this.options.primaryMeshName)
750
+ ]
751
+ ]);
756
752
  for (const [spotNodeName, spotNode] of candidates) {
757
753
  if (spotNode === undefined) {
758
754
  continue;
@@ -820,7 +816,8 @@ class ZLinkSpotNodeRuntimeManager {
820
816
  }
821
817
  const parts = (0, flow_context_1.runWithOutboundFlow)(this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true, () => (0, channel_envelope_1.encodeChannelPublishEnvelopeParts)(channelName, topic, packetName, event, undefined, this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true, metadata));
822
818
  try {
823
- publisher.publish(channelName, topic, parts, { flags });
819
+ const processing = publisher.publish(channelName, topic, parts, { flags });
820
+ void Promise.resolve(processing).catch(() => undefined);
824
821
  return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
825
822
  }
826
823
  catch (error) {
@@ -880,8 +877,7 @@ function requirePublicRuntimeWeight(value, label) {
880
877
  }
881
878
  function effectiveUserSpotRegistrations(registration) {
882
879
  const registrations = new Map(Object.entries(registration.spotFactoryRegistrations ?? {}));
883
- const explicitImplementations = new Set(Object.values(registration.spotFactoryRegistrations ?? {})
884
- .map(({ implementation }) => implementation));
880
+ const explicitImplementations = new Set(Object.values(registration.spotFactoryRegistrations ?? {}).map(({ implementation }) => implementation));
885
881
  for (const implementation of registration.spotFactories ?? []) {
886
882
  // `spotFactories` is also retained as the runtime implementation set.
887
883
  // When the caller supplied an explicit stable type, the implementation
@@ -918,9 +914,9 @@ function effectiveObjectRole(registration) {
918
914
  return contracts_1.ZLinkObjectRole.Server;
919
915
  if (registration.objectRole === 'client')
920
916
  return contracts_1.ZLinkObjectRole.Client;
921
- return effectiveUserSpotRegistrations(registration).length > 0
922
- || effectiveInstanceSpotRegistrations(registration).length > 0
923
- || effectiveActorRegistrations(registration).length > 0
917
+ return effectiveUserSpotRegistrations(registration).length > 0 ||
918
+ effectiveInstanceSpotRegistrations(registration).length > 0 ||
919
+ effectiveActorRegistrations(registration).length > 0
924
920
  ? contracts_1.ZLinkObjectRole.Server
925
921
  : contracts_1.ZLinkObjectRole.None;
926
922
  }
@@ -931,9 +927,7 @@ function objectCapability(objectKind, stableType, factory) {
931
927
  stableType,
932
928
  policy,
933
929
  hasSnapshotAdapter: policy === 'snapshot',
934
- limit: objectKind === 'actor'
935
- ? 0
936
- : factory.options?.stableTypeLimit ?? 0
930
+ limit: objectKind === 'actor' ? 0 : (factory.options?.stableTypeLimit ?? 0)
937
931
  };
938
932
  }
939
933
  function aggregatePlacementCapacity(actorLimit, spotLimit) {
@@ -946,6 +940,5 @@ function maxBigInt(left, right) {
946
940
  return left > right ? left : right;
947
941
  }
948
942
  function sameOwnerToken(left, right) {
949
- return left.ownerId === right.ownerId
950
- && left.leaseGeneration === right.leaseGeneration;
943
+ return left.ownerId === right.ownerId && left.leaseGeneration === right.leaseGeneration;
951
944
  }