@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
@@ -42,9 +42,9 @@ class ZLinkRuntimeRouteTransport {
42
42
  return this.routeChannelPredicate?.(routerChannelId) ?? false;
43
43
  }
44
44
  canRoutePacketChannel(routerChannelId) {
45
- return this.manager()?.canRoutePacketChannel(routerChannelId)
46
- ?? this.routeChannelPredicate?.(routerChannelId)
47
- ?? false;
45
+ return (this.manager()?.canRoutePacketChannel(routerChannelId) ??
46
+ this.routeChannelPredicate?.(routerChannelId) ??
47
+ false);
48
48
  }
49
49
  async submit(meshName, targetNodeRid, packetName, message, signal, metadata) {
50
50
  // Call-scoped flow (spec 27 §4): the envelope flow pair lives only for
@@ -60,8 +60,8 @@ class ZLinkRuntimeRouteTransport {
60
60
  return this.requireManager().routeSubmit(meshName, targetNodeRid, packetName, message, signal, metadata);
61
61
  }
62
62
  (0, abort_1.throwIfAborted)(signal);
63
- if (!allowObjectClientTarget
64
- && node.isObjectClientNodeDirectTarget?.((0, routing_id_1.toBackendRoutingId)(targetNodeRid)) === true) {
63
+ if (!allowObjectClientTarget &&
64
+ node.isObjectClientNodeDirectTarget?.((0, routing_id_1.toBackendRoutingId)(targetNodeRid)) === true) {
65
65
  return { status: submission_result_1.ZLinkSubmitStatus.TargetNotFound };
66
66
  }
67
67
  const parts = this.encodeMessage(3 /* ZLinkChannelMessageKind.Command */, meshName, packetName, message, undefined, metadata);
@@ -69,8 +69,8 @@ class ZLinkRuntimeRouteTransport {
69
69
  if (this.isSelfNode(node, targetNodeRid)) {
70
70
  return this.submitLocalNode(meshName, String(node.status().routingId), parts);
71
71
  }
72
- if (!this.isKnownBackendPeer(node, targetNodeRid)
73
- && this.manualNodeTarget?.(meshName, targetNodeRid) === false) {
72
+ if (!this.isKnownBackendPeer(node, targetNodeRid) &&
73
+ this.manualNodeTarget?.(meshName, targetNodeRid) === false) {
74
74
  return { status: submission_result_1.ZLinkSubmitStatus.TargetNotFound };
75
75
  }
76
76
  try {
@@ -93,7 +93,10 @@ class ZLinkRuntimeRouteTransport {
93
93
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound, `MeshNode '${meshName}' target '${targetNodeRid}' is an Object Client.`);
94
94
  }
95
95
  const parts = this.encodeMessage(1 /* ZLinkChannelMessageKind.Request */, meshName, packetName, request, timeoutMs ?? 30_000, metadata);
96
- const completion = await this.submitRequestOperation(meshName, timeoutMs, signal, `MeshNode '${meshName}' request to node '${targetNodeRid}'`, (remainingTimeoutMs) => node.requestToNode((0, routing_id_1.toBackendRoutingId)(targetNodeRid), parts, { flags: 1, timeoutMs: remainingTimeoutMs }));
96
+ const completion = await this.submitRequestOperation(meshName, timeoutMs, signal, `MeshNode '${meshName}' request to node '${targetNodeRid}'`, (remainingTimeoutMs) => node.requestToNode((0, routing_id_1.toBackendRoutingId)(targetNodeRid), parts, {
97
+ flags: 1,
98
+ timeoutMs: remainingTimeoutMs
99
+ }));
97
100
  return this.decodeMeshReply(meshName, completion);
98
101
  }
99
102
  submitToChannel(meshName, channelName, packetName, message, signal, metadata) {
@@ -170,7 +173,9 @@ class ZLinkRuntimeRouteTransport {
170
173
  if (spotRouteTarget.spotKind === Spots_1.ZLinkSpotKind.Instance) {
171
174
  return mapMeshSubmitResult(await node.sendToInstanceSpot(instanceSpotRouteFence(spotRouteTarget), encoded, undefined, options.metadata));
172
175
  }
173
- return mapMeshSubmitResult(await node.entrySpot().sendToSpot((0, routing_id_1.toBackendRoutingId)(spotRouteTarget.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(spotRouteTarget.spotId), spotRouteTarget.targetSpotGeneration ?? 0n, encoded, {
176
+ return mapMeshSubmitResult(await node
177
+ .entrySpot()
178
+ .sendToSpot((0, routing_id_1.toBackendRoutingId)(spotRouteTarget.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(spotRouteTarget.spotId), spotRouteTarget.targetSpotGeneration ?? 0n, encoded, {
174
179
  flags: 1,
175
180
  routeFence: directSpotRouteFence(spotRouteTarget),
176
181
  entrySpot: spotRouteTarget.spotKind === Spots_1.ZLinkSpotKind.Entry
@@ -202,7 +207,9 @@ class ZLinkRuntimeRouteTransport {
202
207
  const encoded = this.encodeMessage(1 /* ZLinkChannelMessageKind.Request */, meshName, options.packetName, request, options.timeoutMs, options.metadata);
203
208
  completionPromise = this.completionTable(meshName).submit(() => spotRouteTarget.spotKind === Spots_1.ZLinkSpotKind.Instance
204
209
  ? node.requestInstanceSpot(instanceSpotRouteFence(spotRouteTarget), encoded, options.timeoutMs, undefined, options.metadata)
205
- : node.entrySpot().requestToSpot((0, routing_id_1.toBackendRoutingId)(spotRouteTarget.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(spotRouteTarget.spotId), spotRouteTarget.targetSpotGeneration ?? 0n, encoded, {
210
+ : node
211
+ .entrySpot()
212
+ .requestToSpot((0, routing_id_1.toBackendRoutingId)(spotRouteTarget.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(spotRouteTarget.spotId), spotRouteTarget.targetSpotGeneration ?? 0n, encoded, {
206
213
  flags: 1,
207
214
  timeoutMs: options.timeoutMs,
208
215
  routeFence: directSpotRouteFence(spotRouteTarget),
@@ -229,13 +236,13 @@ class ZLinkRuntimeRouteTransport {
229
236
  if (node !== undefined) {
230
237
  (0, abort_1.throwIfAborted)(options.signal);
231
238
  const payload = JSON.parse(request.getString('utf8'));
232
- const packetName = typeof payload.packetName === 'string'
233
- ? payload.packetName
234
- : undefined;
239
+ const packetName = typeof payload.packetName === 'string' ? payload.packetName : undefined;
235
240
  const parts = this.encodeMessage(1 /* ZLinkChannelMessageKind.Request */, meshName, packetName, payload, options.timeoutMs);
236
241
  let completionPromise;
237
242
  try {
238
- completionPromise = this.completionTable(meshName).submit(() => node.entrySpot().requestToSpot((0, routing_id_1.toBackendRoutingId)(spotRouteTarget.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(spotRouteTarget.spotId), spotRouteTarget.targetSpotGeneration ?? 0n, parts, {
243
+ completionPromise = this.completionTable(meshName).submit(() => node
244
+ .entrySpot()
245
+ .requestToSpot((0, routing_id_1.toBackendRoutingId)(spotRouteTarget.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(spotRouteTarget.spotId), spotRouteTarget.targetSpotGeneration ?? 0n, parts, {
239
246
  flags: 1,
240
247
  timeoutMs: options.timeoutMs,
241
248
  routeFence: directSpotRouteFence(spotRouteTarget),
@@ -279,7 +286,10 @@ class ZLinkRuntimeRouteTransport {
279
286
  return (0, routing_id_1.routingIdsEqual)(node.status().routingId, targetNodeRid);
280
287
  }
281
288
  isKnownBackendPeer(node, targetNodeRid) {
282
- return node.peers().some((peer) => peer.routingId !== null && (0, routing_id_1.routingIdsEqual)(peer.routingId, targetNodeRid));
289
+ return node
290
+ .peers()
291
+ .some((peer) => peer.routingId !== null &&
292
+ (0, routing_id_1.routingIdsEqual)(peer.routingId, targetNodeRid));
283
293
  }
284
294
  submitLocalNode(meshName, sourceNodeRid, parts) {
285
295
  if (this.localNodeSubmit === undefined) {
@@ -328,12 +338,12 @@ function directSpotRouteFence(target) {
328
338
  if (target.spotKind === Spots_1.ZLinkSpotKind.Entry) {
329
339
  return undefined;
330
340
  }
331
- if (target.targetSpotGeneration === undefined
332
- || target.targetNodeGeneration === undefined
333
- || target.authorityOwnerGeneration === undefined
334
- || target.targetOwnerId === undefined
335
- || target.ownerLeaseGeneration === undefined
336
- || target.authorityStoreVersion === undefined) {
341
+ if (target.targetSpotGeneration === undefined ||
342
+ target.targetNodeGeneration === undefined ||
343
+ target.authorityOwnerGeneration === undefined ||
344
+ target.targetOwnerId === undefined ||
345
+ target.ownerLeaseGeneration === undefined ||
346
+ target.authorityStoreVersion === undefined) {
337
347
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound, `Spot '${String(target.spotId)}' has no complete Ready authority fence.`);
338
348
  }
339
349
  return {
@@ -349,12 +359,12 @@ function directSpotRouteFence(target) {
349
359
  };
350
360
  }
351
361
  function instanceSpotRouteFence(target) {
352
- if (target.targetSpotGeneration === undefined
353
- || target.targetNodeGeneration === undefined
354
- || target.authorityOwnerGeneration === undefined
355
- || target.targetOwnerId === undefined
356
- || target.ownerLeaseGeneration === undefined
357
- || target.authorityStoreVersion === undefined) {
362
+ if (target.targetSpotGeneration === undefined ||
363
+ target.targetNodeGeneration === undefined ||
364
+ target.authorityOwnerGeneration === undefined ||
365
+ target.targetOwnerId === undefined ||
366
+ target.ownerLeaseGeneration === undefined ||
367
+ target.authorityStoreVersion === undefined) {
358
368
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound, `Instance Spot '${String(target.spotId)}' has no complete Ready authority fence.`);
359
369
  }
360
370
  return {
@@ -399,10 +409,10 @@ function mapMeshSubmissionError(error, operation) {
399
409
  }
400
410
  if ((0, runtime_values_1.isZLinkBackendResultError)(error)) {
401
411
  const notFound = error.result === runtime_values_1.SubmitResult.NotFound || error.result === 102;
402
- const retriable = error.result === runtime_values_1.SubmitResult.Backpressured
403
- || error.result === runtime_values_1.SubmitResult.NotConnected
404
- || error.result === 109
405
- || error.result === 113;
412
+ const retriable = error.result === runtime_values_1.SubmitResult.Backpressured ||
413
+ error.result === runtime_values_1.SubmitResult.NotConnected ||
414
+ error.result === 109 ||
415
+ error.result === 113;
406
416
  return (0, framework_errors_internal_1.createInternalFrameworkException)(notFound
407
417
  ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
408
418
  : framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `${operation} failed with result ${error.result}.`, retriable, error);
@@ -414,15 +424,9 @@ function meshRequestFailure(meshName, result, nativeErrno) {
414
424
  const wireKind = canonical
415
425
  ? (0, framework_errors_internal_1.internalFrameworkErrorKindFromWireReply)(result, nativeErrno)
416
426
  : undefined;
417
- // NotFound without an errno is the selection itself coming back empty: the
418
- // send path and its connection are there, and applying eligibility and drain
419
- // left no member to pick. The spec names that Unavailable, not NotFound, and
420
- // not the protocol error a non-canonical pair would otherwise produce
421
- // (06-framework-api "no eligible select-one member"). A named target that
422
- // does not exist arrives with an errno and still ends as NotFound.
423
- const noEligibleMember = result === runtime_values_1.RequestResult.NotFound && nativeErrno === 0;
424
- const kind = noEligibleMember
425
- ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected
427
+ const localNoMember = result === runtime_values_1.RequestResult.NotFound && nativeErrno === 0;
428
+ const kind = localNoMember
429
+ ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
426
430
  : !canonical
427
431
  ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError
428
432
  : result === runtime_values_1.RequestResult.NotFound
@@ -432,10 +436,10 @@ function meshRequestFailure(meshName, result, nativeErrno) {
432
436
  : result === runtime_values_1.RequestResult.Terminated
433
437
  ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RuntimeShutdown
434
438
  : result === runtime_values_1.RequestResult.Conflict || result === runtime_values_1.RequestResult.InternalError
435
- ? wireKind ?? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError
439
+ ? (wireKind ?? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError)
436
440
  : result === runtime_values_1.RequestResult.NotConnected || result === runtime_values_1.RequestResult.Backpressured
437
441
  ? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected
438
- : wireKind ?? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
442
+ : (wireKind ?? framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed);
439
443
  const error = (0, framework_errors_internal_1.createInternalFrameworkException)(kind, `MeshNode '${meshName}' request failed with result ${result} and errno ${nativeErrno}.`, result === runtime_values_1.RequestResult.NotConnected || result === runtime_values_1.RequestResult.Backpressured);
440
444
  // An operation id was returned before this completion was observed. The
441
445
  // application envelope therefore crossed the native submission boundary,
@@ -73,7 +73,7 @@ class ZLinkClientServerLocationRuntime {
73
73
  }
74
74
  activeTargets(channelName) {
75
75
  return [...this.connections.values()]
76
- .filter(target => target.state === 'ready')
76
+ .filter((target) => target.state === 'ready')
77
77
  .map((target) => target.descriptor)
78
78
  .filter((descriptor) => descriptor.channelName === channelName);
79
79
  }
@@ -81,8 +81,7 @@ class ZLinkClientServerLocationRuntime {
81
81
  const owner = this.requireOwnerToken();
82
82
  const descriptors = await this.lane.run(() => [...this.localDescriptors]);
83
83
  for (const [channelName, current] of descriptors) {
84
- if (current.ownerId === owner.ownerId
85
- && current.leaseGeneration === owner.leaseGeneration) {
84
+ if (current.ownerId === owner.ownerId && current.leaseGeneration === owner.leaseGeneration) {
86
85
  continue;
87
86
  }
88
87
  const candidate = {
@@ -152,10 +151,7 @@ class ZLinkClientServerLocationRuntime {
152
151
  continue;
153
152
  }
154
153
  const rows = await this.listLiveServers(channelName, signal);
155
- const desired = new Map(rows.map((descriptor) => [
156
- clientServerConnectionId(descriptor),
157
- descriptor
158
- ]));
154
+ const desired = new Map(rows.map((descriptor) => [clientServerConnectionId(descriptor), descriptor]));
159
155
  const desiredStableKeys = new Set(rows.map(clientServerStableKey));
160
156
  for (const [connectionId, descriptor] of desired) {
161
157
  const current = await this.lane.run(() => this.connections.get(connectionId));
@@ -185,8 +181,8 @@ class ZLinkClientServerLocationRuntime {
185
181
  for (const [connectionId, current] of connections) {
186
182
  if (current.descriptor.channelName !== channelName || desired.has(connectionId))
187
183
  continue;
188
- if (desiredStableKeys.has(clientServerStableKey(current.descriptor))
189
- && current.state === 'ready') {
184
+ if (desiredStableKeys.has(clientServerStableKey(current.descriptor)) &&
185
+ current.state === 'ready') {
190
186
  continue;
191
187
  }
192
188
  await this.closeConnection(connectionId);
@@ -203,14 +199,14 @@ class ZLinkClientServerLocationRuntime {
203
199
  } while (continuationToken !== undefined);
204
200
  const live = [];
205
201
  for (const descriptor of rows) {
206
- if (descriptor.state === Locations_1.ZLinkFrameworkRuntimeState.Stopped
207
- || descriptor.state === Locations_1.ZLinkFrameworkRuntimeState.Error) {
202
+ if (descriptor.state === Locations_1.ZLinkFrameworkRuntimeState.Stopped ||
203
+ descriptor.state === Locations_1.ZLinkFrameworkRuntimeState.Error) {
208
204
  continue;
209
205
  }
210
206
  const lease = await this.stores.ownerLeaseStore.readOwnerLease(descriptor.ownerId, signal);
211
- if (lease.kind === 'found'
212
- && lease.token.leaseGeneration === descriptor.leaseGeneration
213
- && lease.leaseExpiresAt.getTime() > lease.storeNow.getTime()) {
207
+ if (lease.kind === 'found' &&
208
+ lease.token.leaseGeneration === descriptor.leaseGeneration &&
209
+ lease.leaseExpiresAt.getTime() > lease.storeNow.getTime()) {
214
210
  live.push(descriptor);
215
211
  }
216
212
  }
@@ -218,7 +214,7 @@ class ZLinkClientServerLocationRuntime {
218
214
  }
219
215
  async disconnectClients() {
220
216
  const connectionIds = await this.lane.run(() => [...this.connections.keys()]);
221
- await Promise.allSettled(connectionIds.map(connectionId => this.closeConnection(connectionId)));
217
+ await Promise.allSettled(connectionIds.map((connectionId) => this.closeConnection(connectionId)));
222
218
  }
223
219
  async openConnection(descriptor, connectionId) {
224
220
  const target = {
@@ -231,8 +227,7 @@ class ZLinkClientServerLocationRuntime {
231
227
  try {
232
228
  target.dealer = this.sockets.openClientServerConnection(descriptor.channelName, connectionId, descriptor.endpoint, {
233
229
  onTransportReady: (routingId, endpoint) => {
234
- void this.handleTransportReady(connectionId, routingId, endpoint)
235
- .catch(error => this.locationRuntime.reportDiscoveryFailure(error));
230
+ void this.handleTransportReady(connectionId, routingId, endpoint).catch((error) => this.locationRuntime.reportDiscoveryFailure(error));
236
231
  },
237
232
  onTerminated: () => {
238
233
  void this.handleConnectionTerminated(connectionId);
@@ -310,8 +305,7 @@ class ZLinkClientServerLocationRuntime {
310
305
  return retryAdmission;
311
306
  });
312
307
  if (shouldRetry) {
313
- void this.handleTransportReady(connectionId, _routingId, _endpoint)
314
- .catch(error => this.locationRuntime.reportDiscoveryFailure(error));
308
+ void this.handleTransportReady(connectionId, _routingId, _endpoint).catch((error) => this.locationRuntime.reportDiscoveryFailure(error));
315
309
  }
316
310
  }
317
311
  }
@@ -319,9 +313,9 @@ class ZLinkClientServerLocationRuntime {
319
313
  const stableKey = clientServerStableKey(admitted.descriptor);
320
314
  const connections = await this.lane.run(() => [...this.connections.values()]);
321
315
  const superseded = connections
322
- .filter(current => current.connectionId !== admitted.connectionId
323
- && clientServerStableKey(current.descriptor) === stableKey)
324
- .map(current => current.connectionId);
316
+ .filter((current) => current.connectionId !== admitted.connectionId &&
317
+ clientServerStableKey(current.descriptor) === stableKey)
318
+ .map((current) => current.connectionId);
325
319
  for (const connectionId of superseded) {
326
320
  await this.closeConnection(connectionId);
327
321
  }
@@ -403,13 +397,13 @@ function clientServerConnectionId(descriptor) {
403
397
  return `${channelName.length}:${channelName}:${serverRid.length}:${serverRid}:${descriptor.lifecycleGeneration}`;
404
398
  }
405
399
  function sameDescriptor(left, right) {
406
- return left.lifecycleGeneration === right.lifecycleGeneration
407
- && left.descriptorRevision === right.descriptorRevision
408
- && left.endpoint === right.endpoint
409
- && left.weight === right.weight
410
- && left.state === right.state
411
- && left.ownerId === right.ownerId
412
- && left.leaseGeneration === right.leaseGeneration;
400
+ return (left.lifecycleGeneration === right.lifecycleGeneration &&
401
+ left.descriptorRevision === right.descriptorRevision &&
402
+ left.endpoint === right.endpoint &&
403
+ left.weight === right.weight &&
404
+ left.state === right.state &&
405
+ left.ownerId === right.ownerId &&
406
+ left.leaseGeneration === right.leaseGeneration);
413
407
  }
414
408
  function toDiscoveryDescriptor(descriptor, effectiveMaxMessageBytes = 0x7fff_ffff) {
415
409
  return {
@@ -455,14 +449,14 @@ function requestAdmission(dealer, descriptor, timeoutMs) {
455
449
  });
456
450
  }
457
451
  function requireMatchingAdmission(expected, actual) {
458
- if (actual.channelName !== expected.channelName
459
- || actual.serverRid !== String(expected.serverRid)
460
- || actual.lifecycleGeneration !== expected.lifecycleGeneration
461
- || actual.descriptorRevision !== expected.descriptorRevision
462
- || actual.weight !== expected.weight
463
- || actual.state !== expected.state
464
- || actual.securityIdentity !== expected.securityIdentity
465
- || actual.advertisedEndpoint !== expected.endpoint) {
452
+ if (actual.channelName !== expected.channelName ||
453
+ actual.serverRid !== String(expected.serverRid) ||
454
+ actual.lifecycleGeneration !== expected.lifecycleGeneration ||
455
+ actual.descriptorRevision !== expected.descriptorRevision ||
456
+ actual.weight !== expected.weight ||
457
+ actual.state !== expected.state ||
458
+ actual.securityIdentity !== expected.securityIdentity ||
459
+ actual.advertisedEndpoint !== expected.endpoint) {
466
460
  throw new configuration_1.ZLinkConfigurationException(`ClientServer '${expected.channelName}' admission does not match its descriptor.`);
467
461
  }
468
462
  }
@@ -471,7 +465,5 @@ function closeMessages(parts) {
471
465
  part.close();
472
466
  }
473
467
  function normalizedMessageLimit(value) {
474
- return Number.isSafeInteger(value) && value > 0
475
- ? Math.min(value, 0xffff_ffff)
476
- : 0x7fff_ffff;
468
+ return Number.isSafeInteger(value) && value > 0 ? Math.min(value, 0xffff_ffff) : 0x7fff_ffff;
477
469
  }
@@ -58,18 +58,15 @@ function encodeClientServerLivenessAck(probeId) {
58
58
  return encodeLiveness(COMMAND_LIVENESS_ACK, probeId);
59
59
  }
60
60
  function isClientServerControlFrame(frame) {
61
- return frame.byteLength >= 5
62
- && frame[0] === MAGIC_0
63
- && frame[1] === MAGIC_1
64
- && frame[2] === WIRE_MAJOR;
61
+ return (frame.byteLength >= 5 && frame[0] === MAGIC_0 && frame[1] === MAGIC_1 && frame[2] === WIRE_MAJOR);
65
62
  }
66
63
  function decodeClientServerControl(frame) {
67
64
  if (frame.byteLength > MAX_DESCRIPTOR_BYTES)
68
65
  fail('ClientServer control record is oversized.');
69
66
  const reader = new Reader(frame);
70
- if (reader.u8('magic[0]') !== MAGIC_0
71
- || reader.u8('magic[1]') !== MAGIC_1
72
- || reader.u8('wireMajor') !== WIRE_MAJOR) {
67
+ if (reader.u8('magic[0]') !== MAGIC_0 ||
68
+ reader.u8('magic[1]') !== MAGIC_1 ||
69
+ reader.u8('wireMajor') !== WIRE_MAJOR) {
73
70
  fail('ClientServer control record prefix is invalid.');
74
71
  }
75
72
  const command = reader.u8('command');
@@ -113,9 +110,7 @@ function decodeClientServerControl(frame) {
113
110
  fail('ClientServer server admission role is invalid.');
114
111
  const admission = decodeServerAdmission(reader);
115
112
  reader.end();
116
- return command === COMMAND_ADMIT
117
- ? { kind: 'admit', admission }
118
- : { kind: 'update', admission };
113
+ return command === COMMAND_ADMIT ? { kind: 'admit', admission } : { kind: 'update', admission };
119
114
  }
120
115
  function encodeLiveness(command, probeId) {
121
116
  return concat(prefix(command), encodeNonZeroU64(probeId, 'probeId'));
@@ -206,24 +201,36 @@ function encodeText16(value, field) {
206
201
  }
207
202
  function runtimeStateToWire(value) {
208
203
  switch (value) {
209
- case Locations_1.ZLinkFrameworkRuntimeState.Preparing: return 0;
210
- case Locations_1.ZLinkFrameworkRuntimeState.Serving: return 1;
204
+ case Locations_1.ZLinkFrameworkRuntimeState.Preparing:
205
+ return 0;
206
+ case Locations_1.ZLinkFrameworkRuntimeState.Serving:
207
+ return 1;
211
208
  case Locations_1.ZLinkFrameworkRuntimeState.Relocating:
212
209
  case Locations_1.ZLinkFrameworkRuntimeState.Relocated:
213
- case Locations_1.ZLinkFrameworkRuntimeState.Draining: return 2;
214
- case Locations_1.ZLinkFrameworkRuntimeState.Stopped: return 3;
215
- case Locations_1.ZLinkFrameworkRuntimeState.Error: return 4;
216
- default: fail('ClientServer runtime state is invalid.');
210
+ case Locations_1.ZLinkFrameworkRuntimeState.Draining:
211
+ return 2;
212
+ case Locations_1.ZLinkFrameworkRuntimeState.Stopped:
213
+ return 3;
214
+ case Locations_1.ZLinkFrameworkRuntimeState.Error:
215
+ return 4;
216
+ default:
217
+ fail('ClientServer runtime state is invalid.');
217
218
  }
218
219
  }
219
220
  function runtimeStateFromWire(value) {
220
221
  switch (value) {
221
- case 0: return Locations_1.ZLinkFrameworkRuntimeState.Preparing;
222
- case 1: return Locations_1.ZLinkFrameworkRuntimeState.Serving;
223
- case 2: return Locations_1.ZLinkFrameworkRuntimeState.Draining;
224
- case 3: return Locations_1.ZLinkFrameworkRuntimeState.Stopped;
225
- case 4: return Locations_1.ZLinkFrameworkRuntimeState.Error;
226
- default: fail('ClientServer runtime state is invalid.');
222
+ case 0:
223
+ return Locations_1.ZLinkFrameworkRuntimeState.Preparing;
224
+ case 1:
225
+ return Locations_1.ZLinkFrameworkRuntimeState.Serving;
226
+ case 2:
227
+ return Locations_1.ZLinkFrameworkRuntimeState.Draining;
228
+ case 3:
229
+ return Locations_1.ZLinkFrameworkRuntimeState.Stopped;
230
+ case 4:
231
+ return Locations_1.ZLinkFrameworkRuntimeState.Error;
232
+ default:
233
+ fail('ClientServer runtime state is invalid.');
227
234
  }
228
235
  }
229
236
  function concat(...parts) {
@@ -17,6 +17,7 @@ export declare class ZLinkDispatchErrorReporter {
17
17
  readonly flow: ZLinkMessageFlowTracer;
18
18
  constructor(_observerType: undefined, _providerResolver: unknown, errorSink: ZLinkDispatchErrorSink, ctx?: ZLinkDiagnosticsContext, metrics?: ZLinkRuntimeMetrics | undefined);
19
19
  report(event: ZLinkRuntimeDispatchFailure): void;
20
+ captureEnabled(): boolean;
20
21
  get reportedCount(): number;
21
22
  get providerFailureCount(): number;
22
23
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkDispatchErrorReporter = void 0;
4
4
  const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
5
5
  const diagnostics_1 = require("../diagnostics");
6
+ const dispatch_error_details_1 = require("../diagnostics/dispatch-error-details");
6
7
  class ZLinkDispatchErrorReporter {
7
8
  metrics;
8
9
  reportedEvents = 0;
@@ -23,7 +24,6 @@ class ZLinkDispatchErrorReporter {
23
24
  }
24
25
  report(event) {
25
26
  const normalized = normalizeDispatchFailure(event);
26
- const tracePoint = this.flow.begin(ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error);
27
27
  const dropReason = channelDropReason(normalized);
28
28
  if (dropReason !== undefined) {
29
29
  this.metrics?.count('zlink.mesh_node.messages.dropped', 1, {
@@ -32,9 +32,10 @@ class ZLinkDispatchErrorReporter {
32
32
  reason: dropReason
33
33
  });
34
34
  }
35
+ const tracePoint = this.flow.begin(ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error);
35
36
  if (tracePoint === undefined)
36
37
  return;
37
- const errorInfo = dispatchErrorInfo(normalized);
38
+ const errorInfo = (0, dispatch_error_details_1.dispatchErrorDetails)(normalized.error);
38
39
  this.reportedEvents += 1;
39
40
  tracePoint.trace({
40
41
  outcome: ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error,
@@ -64,6 +65,9 @@ class ZLinkDispatchErrorReporter {
64
65
  errorCauseMessage: errorInfo.errorCauseMessage
65
66
  });
66
67
  }
68
+ captureEnabled() {
69
+ return this.flow.enabled(ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Error);
70
+ }
67
71
  get reportedCount() {
68
72
  return this.reportedEvents;
69
73
  }
@@ -83,9 +87,9 @@ function normalizeDispatchFailure(event) {
83
87
  };
84
88
  }
85
89
  function channelDropReason(event) {
86
- if (event.action !== ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.Drop
87
- || (event.surface !== ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.Channel
88
- && event.surface !== ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.RouteMeshChannel))
90
+ if (event.action !== ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.Drop ||
91
+ (event.surface !== ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.Channel &&
92
+ event.surface !== ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.RouteMeshChannel))
89
93
  return undefined;
90
94
  switch (event.reason) {
91
95
  case ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerMissing:
@@ -97,37 +101,3 @@ function channelDropReason(event) {
97
101
  return undefined;
98
102
  }
99
103
  }
100
- function dispatchErrorInfo(event) {
101
- if (event.errorType !== undefined || event.errorMessage !== undefined) {
102
- return {
103
- errorType: event.errorType,
104
- errorMessage: event.errorMessage,
105
- errorCauseType: event.errorCauseType,
106
- errorCauseMessage: event.errorCauseMessage
107
- };
108
- }
109
- if (event.error === undefined) {
110
- return {};
111
- }
112
- if (event.error instanceof Error) {
113
- const cause = deepestErrorCause(event.error);
114
- return {
115
- errorType: event.error.name,
116
- errorMessage: event.error.message,
117
- ...(cause === event.error ? {} : {
118
- errorCauseType: cause instanceof Error ? cause.name : typeof cause,
119
- errorCauseMessage: cause instanceof Error ? cause.message : String(cause)
120
- })
121
- };
122
- }
123
- return { errorType: typeof event.error, errorMessage: String(event.error) };
124
- }
125
- function deepestErrorCause(error) {
126
- let current = error;
127
- const seen = new Set();
128
- while (current instanceof Error && current.cause !== undefined && !seen.has(current)) {
129
- seen.add(current);
130
- current = current.cause;
131
- }
132
- return current;
133
- }