@zlink-systems/framework 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. package/src/runtime/workers/index.ts +68 -29
@@ -12,22 +12,12 @@ import {
12
12
  isZLinkBackendResultError,
13
13
  type ZLinkBackendMessageLike as MessageLike
14
14
  } from '../backend/runtime-values';
15
- import type {
16
- ZLinkBackendMeshNode,
17
- ZLinkBackendSpot
18
- } from '../backend/contracts';
19
- import type {
20
- ZLinkFrameworkInternalErrorKind as ZLinkFrameworkInternalErrorKindType
21
- } from '../framework-errors-internal';
22
- import {
23
- ZLinkFrameworkException
24
- } from '../../contracts';
15
+ import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
16
+ import type { ZLinkFrameworkInternalErrorKind as ZLinkFrameworkInternalErrorKindType } from '../framework-errors-internal';
17
+ import { ZLinkFrameworkException } from '../../contracts';
25
18
  import type { ZLinkFanoutListenerStatus } from '../../contracts';
26
19
  import type { Message } from '../../contracts/Common/Message';
27
- import {
28
- ZLinkSubmitStatus,
29
- type ZLinkSubmitResult
30
- } from '../messaging/submission-result';
20
+ import { ZLinkSubmitStatus, type ZLinkSubmitResult } from '../messaging/submission-result';
31
21
  import { ZLinkConfigurationException } from '../configuration';
32
22
  import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
33
23
  import { ZLinkSpotKind } from '../../contracts/Spots';
@@ -87,8 +77,7 @@ export interface ZLinkChannelClientTransport {
87
77
  }
88
78
 
89
79
  export type ZLinkChannelClientTransportSource =
90
- | ZLinkChannelClientTransport
91
- | (() => ZLinkChannelClientTransport | undefined);
80
+ ZLinkChannelClientTransport | (() => ZLinkChannelClientTransport | undefined);
92
81
 
93
82
  export interface ZLinkSpotPublisherClientTransport {
94
83
  tryPublish(
@@ -269,13 +258,23 @@ interface ZLinkChannelTransportRuntime {
269
258
  export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
270
259
  constructor(
271
260
  private readonly manager: () => ZLinkChannelTransportRuntime | undefined,
272
- private readonly routeChannelPredicate: ((routerChannelId: string) => boolean) | undefined = undefined,
273
- private readonly meshRuntime: (() => {
274
- readonly meshNode: (meshName: string) => ZLinkBackendMeshNode | undefined;
275
- readonly meshCompletionTable: (meshName: string) => ZLinkMeshCompletionTable | undefined;
276
- } | undefined) | undefined = undefined,
261
+ private readonly routeChannelPredicate:
262
+ ((routerChannelId: string) => boolean) | undefined = undefined,
263
+ private readonly meshRuntime:
264
+ | (() =>
265
+ | {
266
+ readonly meshNode: (meshName: string) => ZLinkBackendMeshNode | undefined;
267
+ readonly meshCompletionTable: (
268
+ meshName: string
269
+ ) => ZLinkMeshCompletionTable | undefined;
270
+ }
271
+ | undefined)
272
+ | undefined = undefined,
277
273
  private readonly codecs?: ZLinkChannelEnvelopeCodecRegistry,
278
- private readonly manualNodeTarget?: (meshName: string, targetNodeRid: string) => boolean | undefined,
274
+ private readonly manualNodeTarget?: (
275
+ meshName: string,
276
+ targetNodeRid: string
277
+ ) => boolean | undefined,
279
278
  private readonly localNodeSubmit?: (
280
279
  meshName: string,
281
280
  sourceNodeRid: string,
@@ -294,9 +293,11 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
294
293
  }
295
294
 
296
295
  canRoutePacketChannel(routerChannelId: string): boolean {
297
- return this.manager()?.canRoutePacketChannel(routerChannelId)
298
- ?? this.routeChannelPredicate?.(routerChannelId)
299
- ?? false;
296
+ return (
297
+ this.manager()?.canRoutePacketChannel(routerChannelId) ??
298
+ this.routeChannelPredicate?.(routerChannelId) ??
299
+ false
300
+ );
300
301
  }
301
302
 
302
303
  async submit(
@@ -309,15 +310,9 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
309
310
  ): Promise<ZLinkSubmitResult> {
310
311
  // Call-scoped flow (spec 27 §4): the envelope flow pair lives only for
311
312
  // the duration of this outbound call, never in the caller's context.
312
- return runWithOutboundFlow(this.flowCreationEnabled(), () => this.submitNode(
313
- meshName,
314
- targetNodeRid,
315
- packetName,
316
- message,
317
- signal,
318
- metadata,
319
- false
320
- ));
313
+ return runWithOutboundFlow(this.flowCreationEnabled(), () =>
314
+ this.submitNode(meshName, targetNodeRid, packetName, message, signal, metadata, false)
315
+ );
321
316
  }
322
317
 
323
318
  async submitInfrastructure(
@@ -328,15 +323,9 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
328
323
  signal?: AbortSignal,
329
324
  metadata?: ReadonlyMap<string, string>
330
325
  ): Promise<ZLinkSubmitResult> {
331
- return runWithOutboundFlow(this.flowCreationEnabled(), () => this.submitNode(
332
- meshName,
333
- targetNodeRid,
334
- packetName,
335
- message,
336
- signal,
337
- metadata,
338
- true
339
- ));
326
+ return runWithOutboundFlow(this.flowCreationEnabled(), () =>
327
+ this.submitNode(meshName, targetNodeRid, packetName, message, signal, metadata, true)
328
+ );
340
329
  }
341
330
 
342
331
  private async submitNode(
@@ -360,8 +349,10 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
360
349
  );
361
350
  }
362
351
  throwIfAborted(signal);
363
- if (!allowObjectClientTarget
364
- && node.isObjectClientNodeDirectTarget?.(toBackendRoutingId(targetNodeRid)) === true) {
352
+ if (
353
+ !allowObjectClientTarget &&
354
+ node.isObjectClientNodeDirectTarget?.(toBackendRoutingId(targetNodeRid)) === true
355
+ ) {
365
356
  return { status: ZLinkSubmitStatus.TargetNotFound };
366
357
  }
367
358
  const parts = this.encodeMessage(
@@ -376,16 +367,16 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
376
367
  if (this.isSelfNode(node, targetNodeRid)) {
377
368
  return this.submitLocalNode(meshName, String(node.status().routingId), parts);
378
369
  }
379
- if (!this.isKnownBackendPeer(node, targetNodeRid)
380
- && this.manualNodeTarget?.(meshName, targetNodeRid) === false) {
370
+ if (
371
+ !this.isKnownBackendPeer(node, targetNodeRid) &&
372
+ this.manualNodeTarget?.(meshName, targetNodeRid) === false
373
+ ) {
381
374
  return { status: ZLinkSubmitStatus.TargetNotFound };
382
375
  }
383
376
  try {
384
- return mapMeshSubmitResult(await node.sendToNode(
385
- toBackendRoutingId(targetNodeRid),
386
- parts,
387
- { flags: 1 }
388
- ));
377
+ return mapMeshSubmitResult(
378
+ await node.sendToNode(toBackendRoutingId(targetNodeRid), parts, { flags: 1 })
379
+ );
389
380
  } catch (error) {
390
381
  throw mapMeshSubmissionError(error, operation);
391
382
  }
@@ -400,15 +391,17 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
400
391
  signal?: AbortSignal,
401
392
  metadata?: ReadonlyMap<string, string>
402
393
  ): Promise<TReply> {
403
- return runWithOutboundFlow(this.flowCreationEnabled(), () => this.requestScoped<TReply>(
404
- meshName,
405
- targetNodeRid,
406
- packetName,
407
- request,
408
- timeoutMs,
409
- signal,
410
- metadata
411
- ));
394
+ return runWithOutboundFlow(this.flowCreationEnabled(), () =>
395
+ this.requestScoped<TReply>(
396
+ meshName,
397
+ targetNodeRid,
398
+ packetName,
399
+ request,
400
+ timeoutMs,
401
+ signal,
402
+ metadata
403
+ )
404
+ );
412
405
  }
413
406
 
414
407
  private async requestScoped<TReply>(
@@ -452,11 +445,11 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
452
445
  timeoutMs,
453
446
  signal,
454
447
  `MeshNode '${meshName}' request to node '${targetNodeRid}'`,
455
- (remainingTimeoutMs) => node.requestToNode(
456
- toBackendRoutingId(targetNodeRid),
457
- parts,
458
- { flags: 1, timeoutMs: remainingTimeoutMs }
459
- )
448
+ (remainingTimeoutMs) =>
449
+ node.requestToNode(toBackendRoutingId(targetNodeRid), parts, {
450
+ flags: 1,
451
+ timeoutMs: remainingTimeoutMs
452
+ })
460
453
  );
461
454
  return this.decodeMeshReply(meshName, completion);
462
455
  }
@@ -469,14 +462,9 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
469
462
  signal?: AbortSignal,
470
463
  metadata?: ReadonlyMap<string, string>
471
464
  ): Promise<ZLinkSubmitResult> {
472
- return runWithOutboundFlow(this.flowCreationEnabled(), () => this.submitToChannelScoped(
473
- meshName,
474
- channelName,
475
- packetName,
476
- message,
477
- signal,
478
- metadata
479
- ));
465
+ return runWithOutboundFlow(this.flowCreationEnabled(), () =>
466
+ this.submitToChannelScoped(meshName, channelName, packetName, message, signal, metadata)
467
+ );
480
468
  }
481
469
 
482
470
  private async submitToChannelScoped(
@@ -499,11 +487,9 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
499
487
  );
500
488
  const operation = `MeshNode '${meshName}' send to channel '${channelName}'`;
501
489
  try {
502
- const result = mapMeshSubmitResult(await node.sendToChannel(
503
- channelName,
504
- parts,
505
- { flags: 1 }
506
- ));
490
+ const result = mapMeshSubmitResult(
491
+ await node.sendToChannel(channelName, parts, { flags: 1 })
492
+ );
507
493
  if (result.status === ZLinkSubmitStatus.TargetNotFound) {
508
494
  this.metrics?.recordChannelSelectionFailure(meshName, channelName, 'no_ready_target');
509
495
  }
@@ -522,15 +508,17 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
522
508
  signal?: AbortSignal,
523
509
  metadata?: ReadonlyMap<string, string>
524
510
  ): Promise<TReply> {
525
- return runWithOutboundFlow(this.flowCreationEnabled(), () => this.requestToChannelScoped<TReply>(
526
- meshName,
527
- channelName,
528
- packetName,
529
- request,
530
- timeoutMs,
531
- signal,
532
- metadata
533
- ));
511
+ return runWithOutboundFlow(this.flowCreationEnabled(), () =>
512
+ this.requestToChannelScoped<TReply>(
513
+ meshName,
514
+ channelName,
515
+ packetName,
516
+ request,
517
+ timeoutMs,
518
+ signal,
519
+ metadata
520
+ )
521
+ );
534
522
  }
535
523
 
536
524
  private async requestToChannelScoped<TReply>(
@@ -559,11 +547,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
559
547
  timeoutMs,
560
548
  signal,
561
549
  `MeshNode '${meshName}' request to channel '${channelName}'`,
562
- (remainingTimeoutMs) => node.requestToChannel(
563
- channelName,
564
- parts,
565
- { flags: 1, timeoutMs: remainingTimeoutMs }
566
- )
550
+ (remainingTimeoutMs) =>
551
+ node.requestToChannel(channelName, parts, { flags: 1, timeoutMs: remainingTimeoutMs })
567
552
  );
568
553
  const reply = this.decodeMeshReply<TReply>(meshName, completion);
569
554
  metric?.complete('completed');
@@ -615,9 +600,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
615
600
  readonly metadata?: ReadonlyMap<string, string>;
616
601
  }
617
602
  ): Promise<ZLinkSubmitResult> {
618
- return runWithOutboundFlow(
619
- this.flowCreationEnabled(),
620
- () => this.sendToSpotScoped(spotRouteTarget, message, options)
603
+ return runWithOutboundFlow(this.flowCreationEnabled(), () =>
604
+ this.sendToSpotScoped(spotRouteTarget, message, options)
621
605
  );
622
606
  }
623
607
 
@@ -660,24 +644,30 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
660
644
  options.metadata
661
645
  );
662
646
  if (spotRouteTarget.spotKind === ZLinkSpotKind.Instance) {
663
- return mapMeshSubmitResult(await node.sendToInstanceSpot(
664
- instanceSpotRouteFence(spotRouteTarget),
665
- encoded,
666
- undefined,
667
- options.metadata
668
- ));
647
+ return mapMeshSubmitResult(
648
+ await node.sendToInstanceSpot(
649
+ instanceSpotRouteFence(spotRouteTarget),
650
+ encoded,
651
+ undefined,
652
+ options.metadata
653
+ )
654
+ );
669
655
  }
670
- return mapMeshSubmitResult(await node.entrySpot().sendToSpot(
671
- toBackendRoutingId(spotRouteTarget.targetNodeRid),
672
- toBackendRoutingId(spotRouteTarget.spotId),
673
- spotRouteTarget.targetSpotGeneration ?? 0n,
674
- encoded,
675
- {
676
- flags: 1,
677
- routeFence: directSpotRouteFence(spotRouteTarget),
678
- entrySpot: spotRouteTarget.spotKind === ZLinkSpotKind.Entry
679
- }
680
- ));
656
+ return mapMeshSubmitResult(
657
+ await node
658
+ .entrySpot()
659
+ .sendToSpot(
660
+ toBackendRoutingId(spotRouteTarget.targetNodeRid),
661
+ toBackendRoutingId(spotRouteTarget.spotId),
662
+ spotRouteTarget.targetSpotGeneration ?? 0n,
663
+ encoded,
664
+ {
665
+ flags: 1,
666
+ routeFence: directSpotRouteFence(spotRouteTarget),
667
+ entrySpot: spotRouteTarget.spotKind === ZLinkSpotKind.Entry
668
+ }
669
+ )
670
+ );
681
671
  } catch (error) {
682
672
  throw mapMeshSubmissionError(error, operation);
683
673
  }
@@ -716,9 +706,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
716
706
  readonly metadata?: ReadonlyMap<string, string>;
717
707
  }
718
708
  ): Promise<TReply> {
719
- return runWithOutboundFlow(
720
- this.flowCreationEnabled(),
721
- () => this.requestToSpotScoped<TReply>(spotRouteTarget, request, options)
709
+ return runWithOutboundFlow(this.flowCreationEnabled(), () =>
710
+ this.requestToSpotScoped<TReply>(spotRouteTarget, request, options)
722
711
  );
723
712
  }
724
713
 
@@ -760,27 +749,32 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
760
749
  options.timeoutMs,
761
750
  options.metadata
762
751
  );
763
- completionPromise = this.completionTable(meshName).submit(() =>
764
- spotRouteTarget.spotKind === ZLinkSpotKind.Instance
765
- ? node.requestInstanceSpot(
766
- instanceSpotRouteFence(spotRouteTarget),
767
- encoded,
768
- options.timeoutMs,
769
- undefined,
770
- options.metadata
771
- )
772
- : node.entrySpot().requestToSpot(
773
- toBackendRoutingId(spotRouteTarget.targetNodeRid),
774
- toBackendRoutingId(spotRouteTarget.spotId),
775
- spotRouteTarget.targetSpotGeneration ?? 0n,
776
- encoded,
777
- {
778
- flags: 1,
779
- timeoutMs: options.timeoutMs,
780
- routeFence: directSpotRouteFence(spotRouteTarget),
781
- entrySpot: spotRouteTarget.spotKind === ZLinkSpotKind.Entry
782
- }
783
- ), options.signal);
752
+ completionPromise = this.completionTable(meshName).submit(
753
+ () =>
754
+ spotRouteTarget.spotKind === ZLinkSpotKind.Instance
755
+ ? node.requestInstanceSpot(
756
+ instanceSpotRouteFence(spotRouteTarget),
757
+ encoded,
758
+ options.timeoutMs,
759
+ undefined,
760
+ options.metadata
761
+ )
762
+ : node
763
+ .entrySpot()
764
+ .requestToSpot(
765
+ toBackendRoutingId(spotRouteTarget.targetNodeRid),
766
+ toBackendRoutingId(spotRouteTarget.spotId),
767
+ spotRouteTarget.targetSpotGeneration ?? 0n,
768
+ encoded,
769
+ {
770
+ flags: 1,
771
+ timeoutMs: options.timeoutMs,
772
+ routeFence: directSpotRouteFence(spotRouteTarget),
773
+ entrySpot: spotRouteTarget.spotKind === ZLinkSpotKind.Entry
774
+ }
775
+ ),
776
+ options.signal
777
+ );
784
778
  } catch (error) {
785
779
  throw mapMeshSubmissionError(
786
780
  error,
@@ -794,7 +788,11 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
794
788
  sourceSpot: ZLinkBackendSpot,
795
789
  spotRouteTarget: ZLinkSpotRouteTarget,
796
790
  request: unknown,
797
- options: { readonly packetName?: string; readonly timeoutMs?: number; readonly signal?: AbortSignal }
791
+ options: {
792
+ readonly packetName?: string;
793
+ readonly timeoutMs?: number;
794
+ readonly signal?: AbortSignal;
795
+ }
798
796
  ): Promise<TReply> {
799
797
  return this.requireManager().routeRequestFromSpotToSpot<TReply>(
800
798
  sourceSpot,
@@ -826,9 +824,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
826
824
  request: Message,
827
825
  options: { readonly timeoutMs?: number; readonly signal?: AbortSignal }
828
826
  ): Promise<readonly Message[]> {
829
- return runWithOutboundFlow(
830
- this.flowCreationEnabled(),
831
- () => this.requestRawToSpotScoped(spotRouteTarget, request, options)
827
+ return runWithOutboundFlow(this.flowCreationEnabled(), () =>
828
+ this.requestRawToSpotScoped(spotRouteTarget, request, options)
832
829
  );
833
830
  }
834
831
 
@@ -842,9 +839,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
842
839
  if (node !== undefined) {
843
840
  throwIfAborted(options.signal);
844
841
  const payload = JSON.parse(request.getString('utf8')) as Record<string, unknown>;
845
- const packetName = typeof payload.packetName === 'string'
846
- ? payload.packetName
847
- : undefined;
842
+ const packetName = typeof payload.packetName === 'string' ? payload.packetName : undefined;
848
843
  const parts = this.encodeMessage(
849
844
  ZLinkChannelMessageKind.Request,
850
845
  meshName,
@@ -855,18 +850,21 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
855
850
  let completionPromise: Promise<ZLinkMeshCompletion>;
856
851
  try {
857
852
  completionPromise = this.completionTable(meshName).submit(
858
- () => node.entrySpot().requestToSpot(
859
- toBackendRoutingId(spotRouteTarget.targetNodeRid),
860
- toBackendRoutingId(spotRouteTarget.spotId),
861
- spotRouteTarget.targetSpotGeneration ?? 0n,
862
- parts,
863
- {
864
- flags: 1,
865
- timeoutMs: options.timeoutMs,
866
- routeFence: directSpotRouteFence(spotRouteTarget),
867
- entrySpot: spotRouteTarget.spotKind === ZLinkSpotKind.Entry
868
- }
869
- ),
853
+ () =>
854
+ node
855
+ .entrySpot()
856
+ .requestToSpot(
857
+ toBackendRoutingId(spotRouteTarget.targetNodeRid),
858
+ toBackendRoutingId(spotRouteTarget.spotId),
859
+ spotRouteTarget.targetSpotGeneration ?? 0n,
860
+ parts,
861
+ {
862
+ flags: 1,
863
+ timeoutMs: options.timeoutMs,
864
+ routeFence: directSpotRouteFence(spotRouteTarget),
865
+ entrySpot: spotRouteTarget.spotKind === ZLinkSpotKind.Entry
866
+ }
867
+ ),
870
868
  options.signal
871
869
  );
872
870
  } catch (error) {
@@ -909,9 +907,11 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
909
907
  private meshNode(meshName: string): ZLinkBackendMeshNode | undefined {
910
908
  const runtime = this.meshRuntime?.();
911
909
  return (
912
- runtime as unknown as {
913
- meshNode?: (meshName: string) => ZLinkBackendMeshNode | undefined;
914
- } | undefined
910
+ runtime as unknown as
911
+ | {
912
+ meshNode?: (meshName: string) => ZLinkBackendMeshNode | undefined;
913
+ }
914
+ | undefined
915
915
  )?.meshNode?.(meshName);
916
916
  }
917
917
 
@@ -923,10 +923,16 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
923
923
  }
924
924
 
925
925
  private isKnownBackendPeer(node: ZLinkBackendMeshNode, targetNodeRid: string): boolean {
926
- return node.peers().some((peer) => peer.routingId !== null && routingIdsEqual(
927
- peer.routingId as unknown as import('../../contracts').RoutingId,
928
- targetNodeRid
929
- ));
926
+ return node
927
+ .peers()
928
+ .some(
929
+ (peer) =>
930
+ peer.routingId !== null &&
931
+ routingIdsEqual(
932
+ peer.routingId as unknown as import('../../contracts').RoutingId,
933
+ targetNodeRid
934
+ )
935
+ );
930
936
  }
931
937
 
932
938
  private submitLocalNode(
@@ -951,7 +957,9 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
951
957
  private completionTable(meshName: string): ZLinkMeshCompletionTable {
952
958
  const table = this.meshRuntime?.()?.meshCompletionTable(meshName);
953
959
  if (table === undefined) {
954
- throw new ZLinkConfigurationException(`MeshNode '${meshName}' completion runtime is not started.`);
960
+ throw new ZLinkConfigurationException(
961
+ `MeshNode '${meshName}' completion runtime is not started.`
962
+ );
955
963
  }
956
964
  return table;
957
965
  }
@@ -998,7 +1006,9 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
998
1006
  }
999
1007
  }
1000
1008
 
1001
- function directSpotRouteFence(target: ZLinkSpotRouteTarget): ServiceDirectSpotRouteFence | undefined {
1009
+ function directSpotRouteFence(
1010
+ target: ZLinkSpotRouteTarget
1011
+ ): ServiceDirectSpotRouteFence | undefined {
1002
1012
  // Entry Spots are addressed by their owning MeshNode. They have no
1003
1013
  // Location Store authority row, so only User and Instance Spots carry the
1004
1014
  // exact Ready authority fence required by direct Spot submission.
@@ -1006,12 +1016,12 @@ function directSpotRouteFence(target: ZLinkSpotRouteTarget): ServiceDirectSpotRo
1006
1016
  return undefined;
1007
1017
  }
1008
1018
  if (
1009
- target.targetSpotGeneration === undefined
1010
- || target.targetNodeGeneration === undefined
1011
- || target.authorityOwnerGeneration === undefined
1012
- || target.targetOwnerId === undefined
1013
- || target.ownerLeaseGeneration === undefined
1014
- || target.authorityStoreVersion === undefined
1019
+ target.targetSpotGeneration === undefined ||
1020
+ target.targetNodeGeneration === undefined ||
1021
+ target.authorityOwnerGeneration === undefined ||
1022
+ target.targetOwnerId === undefined ||
1023
+ target.ownerLeaseGeneration === undefined ||
1024
+ target.authorityStoreVersion === undefined
1015
1025
  ) {
1016
1026
  throw createInternalFrameworkException(
1017
1027
  ZLinkFrameworkInternalErrorKind.SpotRouteNotFound,
@@ -1033,12 +1043,12 @@ function directSpotRouteFence(target: ZLinkSpotRouteTarget): ServiceDirectSpotRo
1033
1043
 
1034
1044
  function instanceSpotRouteFence(target: ZLinkSpotRouteTarget): ServiceInstanceRouteFence {
1035
1045
  if (
1036
- target.targetSpotGeneration === undefined
1037
- || target.targetNodeGeneration === undefined
1038
- || target.authorityOwnerGeneration === undefined
1039
- || target.targetOwnerId === undefined
1040
- || target.ownerLeaseGeneration === undefined
1041
- || target.authorityStoreVersion === undefined
1046
+ target.targetSpotGeneration === undefined ||
1047
+ target.targetNodeGeneration === undefined ||
1048
+ target.authorityOwnerGeneration === undefined ||
1049
+ target.targetOwnerId === undefined ||
1050
+ target.ownerLeaseGeneration === undefined ||
1051
+ target.authorityStoreVersion === undefined
1042
1052
  ) {
1043
1053
  throw createInternalFrameworkException(
1044
1054
  ZLinkFrameworkInternalErrorKind.SpotRouteNotFound,
@@ -1097,10 +1107,11 @@ function mapMeshSubmissionError(error: unknown, operation: string): Error {
1097
1107
  }
1098
1108
  if (isZLinkBackendResultError(error)) {
1099
1109
  const notFound = error.result === SubmitResult.NotFound || error.result === 102;
1100
- const retriable = error.result === SubmitResult.Backpressured
1101
- || error.result === SubmitResult.NotConnected
1102
- || error.result === 109
1103
- || error.result === 113;
1110
+ const retriable =
1111
+ error.result === SubmitResult.Backpressured ||
1112
+ error.result === SubmitResult.NotConnected ||
1113
+ error.result === 109 ||
1114
+ error.result === 113;
1104
1115
  return createInternalFrameworkException(
1105
1116
  notFound
1106
1117
  ? ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
@@ -1120,7 +1131,11 @@ function mapMeshSubmissionError(error: unknown, operation: string): Error {
1120
1131
  );
1121
1132
  }
1122
1133
 
1123
- export function meshRequestFailure(meshName: string, result: number, nativeErrno: number): ZLinkFrameworkException {
1134
+ export function meshRequestFailure(
1135
+ meshName: string,
1136
+ result: number,
1137
+ nativeErrno: number
1138
+ ): ZLinkFrameworkException {
1124
1139
  const canonical = isCanonicalWireReplyTerminal(result, nativeErrno);
1125
1140
  const wireKind = canonical
1126
1141
  ? internalFrameworkErrorKindFromWireReply(result, nativeErrno)
@@ -1135,18 +1150,18 @@ export function meshRequestFailure(meshName: string, result: number, nativeErrno
1135
1150
  const kind: ZLinkFrameworkInternalErrorKindType = noEligibleMember
1136
1151
  ? ZLinkFrameworkInternalErrorKind.RouteNotConnected
1137
1152
  : !canonical
1138
- ? ZLinkFrameworkInternalErrorKind.RequestProtocolError
1139
- : result === RequestResult.NotFound
1140
- ? ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
1141
- : result === RequestResult.TimedOut
1142
- ? ZLinkFrameworkInternalErrorKind.DeadlineExceeded
1143
- : result === RequestResult.Terminated
1144
- ? ZLinkFrameworkInternalErrorKind.RuntimeShutdown
1145
- : result === RequestResult.Conflict || result === RequestResult.InternalError
1146
- ? wireKind ?? ZLinkFrameworkInternalErrorKind.RequestProtocolError
1147
- : result === RequestResult.NotConnected || result === RequestResult.Backpressured
1148
- ? ZLinkFrameworkInternalErrorKind.RouteNotConnected
1149
- : wireKind ?? ZLinkFrameworkInternalErrorKind.RequestFailed;
1153
+ ? ZLinkFrameworkInternalErrorKind.RequestProtocolError
1154
+ : result === RequestResult.NotFound
1155
+ ? ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
1156
+ : result === RequestResult.TimedOut
1157
+ ? ZLinkFrameworkInternalErrorKind.DeadlineExceeded
1158
+ : result === RequestResult.Terminated
1159
+ ? ZLinkFrameworkInternalErrorKind.RuntimeShutdown
1160
+ : result === RequestResult.Conflict || result === RequestResult.InternalError
1161
+ ? (wireKind ?? ZLinkFrameworkInternalErrorKind.RequestProtocolError)
1162
+ : result === RequestResult.NotConnected || result === RequestResult.Backpressured
1163
+ ? ZLinkFrameworkInternalErrorKind.RouteNotConnected
1164
+ : (wireKind ?? ZLinkFrameworkInternalErrorKind.RequestFailed);
1150
1165
  const error = createInternalFrameworkException(
1151
1166
  kind,
1152
1167
  `MeshNode '${meshName}' request failed with result ${result} and errno ${nativeErrno}.`,
@@ -1165,9 +1180,12 @@ export function meshRequestFailure(meshName: string, result: number, nativeErrno
1165
1180
 
1166
1181
  function requestMetricOutcome(error: unknown): string {
1167
1182
  if (error instanceof ZLinkFrameworkException) {
1168
- if (internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound) return 'target_not_found';
1169
- if (internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.DeadlineExceeded) return 'timed_out';
1170
- if (internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.RuntimeShutdown) return 'shutdown';
1183
+ if (internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.RequestTargetNotFound)
1184
+ return 'target_not_found';
1185
+ if (internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.DeadlineExceeded)
1186
+ return 'timed_out';
1187
+ if (internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.RuntimeShutdown)
1188
+ return 'shutdown';
1171
1189
  }
1172
1190
  return 'failed';
1173
1191
  }