@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
@@ -65,21 +65,20 @@ class ZLinkFanoutLocationRuntime {
65
65
  if (timer !== undefined)
66
66
  clearTimeout(timer);
67
67
  const connectionIds = await this.lane.run(() => [...this.connections.keys()]);
68
- await Promise.allSettled(connectionIds.map(id => this.closeConnection(id)));
68
+ await Promise.allSettled(connectionIds.map((id) => this.closeConnection(id)));
69
69
  await this.removeLocalPublishers(signal);
70
70
  }
71
71
  activeTargets(channelName) {
72
72
  return [...this.connections.values()]
73
- .filter(target => target.state === 'ready')
74
- .map(target => target.descriptor)
75
- .filter(descriptor => descriptor.channelName === channelName);
73
+ .filter((target) => target.state === 'ready')
74
+ .map((target) => target.descriptor)
75
+ .filter((descriptor) => descriptor.channelName === channelName);
76
76
  }
77
77
  async reclaimOwnerRows(signal) {
78
78
  const owner = this.requireOwnerToken();
79
79
  const descriptors = await this.lane.run(() => [...this.localDescriptors]);
80
80
  for (const [channelName, current] of descriptors) {
81
- if (current.ownerId === owner.ownerId
82
- && current.leaseGeneration === owner.leaseGeneration) {
81
+ if (current.ownerId === owner.ownerId && current.leaseGeneration === owner.leaseGeneration) {
83
82
  continue;
84
83
  }
85
84
  const candidate = {
@@ -125,11 +124,8 @@ class ZLinkFanoutLocationRuntime {
125
124
  if (currentIdentity !== undefined)
126
125
  return currentIdentity;
127
126
  const created = {
128
- publisherRid: channel.routingId
129
- ?? `${channel.routingIdPrefix ?? 'fanout'}-${(0, node_crypto_1.randomUUID)()}`,
130
- lifecycleGeneration: generatedLifecycle === 0n
131
- ? 1n
132
- : generatedLifecycle
127
+ publisherRid: channel.routingId ?? `${channel.routingIdPrefix ?? 'fanout'}-${(0, node_crypto_1.randomUUID)()}`,
128
+ lifecycleGeneration: generatedLifecycle === 0n ? 1n : generatedLifecycle
133
129
  };
134
130
  this.publisherIdentities.set(channelName, created);
135
131
  return created;
@@ -158,27 +154,22 @@ class ZLinkFanoutLocationRuntime {
158
154
  }
159
155
  async reconcileSubscribers(signal) {
160
156
  for (const [channelName, channel] of this.registration.channels) {
161
- if (channel.subscriber === undefined
162
- || (channel.subscriber.manualConnections?.length ?? 0) > 0) {
157
+ if (channel.subscriber === undefined ||
158
+ (channel.subscriber.manualConnections?.length ?? 0) > 0) {
163
159
  continue;
164
160
  }
165
161
  const rows = await this.listLivePublishers(channelName, signal);
166
- const desired = new Map(rows.map(row => [
167
- fanoutConnectionId(row),
168
- row
169
- ]));
162
+ const desired = new Map(rows.map((row) => [fanoutConnectionId(row), row]));
170
163
  for (const [connectionId, descriptor] of desired) {
171
164
  const current = await this.lane.run(() => this.connections.get(connectionId));
172
165
  if (current === undefined) {
173
166
  await this.openConnection(connectionId, descriptor);
174
167
  continue;
175
168
  }
176
- if (descriptor.descriptorRevision
177
- < current.descriptor.descriptorRevision) {
169
+ if (descriptor.descriptorRevision < current.descriptor.descriptorRevision) {
178
170
  continue;
179
171
  }
180
- if (descriptor.descriptorRevision
181
- === current.descriptor.descriptorRevision) {
172
+ if (descriptor.descriptorRevision === current.descriptor.descriptorRevision) {
182
173
  if (!sameFanoutDescriptor(descriptor, current.descriptor)) {
183
174
  await this.closeConnection(connectionId);
184
175
  }
@@ -198,8 +189,7 @@ class ZLinkFanoutLocationRuntime {
198
189
  }
199
190
  const connections = await this.lane.run(() => [...this.connections]);
200
191
  for (const [connectionId, current] of connections) {
201
- if (current.descriptor.channelName === channelName
202
- && !desired.has(connectionId)) {
192
+ if (current.descriptor.channelName === channelName && !desired.has(connectionId)) {
203
193
  await this.closeConnection(connectionId);
204
194
  }
205
195
  }
@@ -217,14 +207,11 @@ class ZLinkFanoutLocationRuntime {
217
207
  },
218
208
  onTerminated: () => {
219
209
  const current = this.connections.get(connectionId);
220
- if (target !== undefined
221
- && current === target
222
- && current.reconnectEligible) {
210
+ if (target !== undefined && current === target && current.reconnectEligible) {
223
211
  this.sockets.removeFanoutPublisher(descriptor, connectionId);
224
212
  current.state = 'connecting';
225
213
  setImmediate(() => {
226
- void this.replaceConnection(current)
227
- .catch(error => this.locationRuntime.reportDiscoveryFailure(error));
214
+ void this.replaceConnection(current).catch((error) => this.locationRuntime.reportDiscoveryFailure(error));
228
215
  });
229
216
  }
230
217
  }
@@ -258,9 +245,9 @@ class ZLinkFanoutLocationRuntime {
258
245
  async replaceConnection(expected) {
259
246
  const prepared = await this.lane.run(() => {
260
247
  const controller = this.controller;
261
- if (this.connections.get(expected.connectionId) !== expected
262
- || !expected.reconnectEligible
263
- || controller === undefined)
248
+ if (this.connections.get(expected.connectionId) !== expected ||
249
+ !expected.reconnectEligible ||
250
+ controller === undefined)
264
251
  return undefined;
265
252
  return { controller, descriptor: expected.descriptor };
266
253
  });
@@ -285,9 +272,9 @@ class ZLinkFanoutLocationRuntime {
285
272
  if (descriptor.state !== Locations_1.ZLinkFrameworkRuntimeState.Serving)
286
273
  continue;
287
274
  const lease = await this.storeOwnerLease(descriptor.ownerId, signal);
288
- if (lease.kind === 'found'
289
- && lease.token.leaseGeneration === descriptor.leaseGeneration
290
- && lease.leaseExpiresAt.getTime() > lease.storeNow.getTime()) {
275
+ if (lease.kind === 'found' &&
276
+ lease.token.leaseGeneration === descriptor.leaseGeneration &&
277
+ lease.leaseExpiresAt.getTime() > lease.storeNow.getTime()) {
291
278
  live.push(descriptor);
292
279
  }
293
280
  }
@@ -322,7 +309,7 @@ class ZLinkFanoutLocationRuntime {
322
309
  this.timer = setTimeout(() => {
323
310
  this.timer = undefined;
324
311
  void this.tickCore(this.controller?.signal)
325
- .catch(error => this.locationRuntime.reportDiscoveryFailure(error))
312
+ .catch((error) => this.locationRuntime.reportDiscoveryFailure(error))
326
313
  .finally(() => this.schedule());
327
314
  }, this.options.pollingIntervalMs);
328
315
  this.timer.unref();
@@ -337,20 +324,20 @@ function advertisedEndpoint(boundEndpoint, advertiseHost) {
337
324
  return result;
338
325
  }
339
326
  function fanoutConnectionId(descriptor) {
340
- return `${descriptor.channelName}\0${String(descriptor.publisherRid)}\0`
341
- + descriptor.lifecycleGeneration.toString();
327
+ return (`${descriptor.channelName}\0${String(descriptor.publisherRid)}\0` +
328
+ descriptor.lifecycleGeneration.toString());
342
329
  }
343
330
  function sameFanoutImmutableIdentity(left, right) {
344
- return left.channelName === right.channelName
345
- && left.publisherRid === right.publisherRid
346
- && left.lifecycleGeneration === right.lifecycleGeneration
347
- && left.endpoint === right.endpoint
348
- && left.securityIdentity === right.securityIdentity
349
- && left.ownerId === right.ownerId
350
- && left.leaseGeneration === right.leaseGeneration;
331
+ return (left.channelName === right.channelName &&
332
+ left.publisherRid === right.publisherRid &&
333
+ left.lifecycleGeneration === right.lifecycleGeneration &&
334
+ left.endpoint === right.endpoint &&
335
+ left.securityIdentity === right.securityIdentity &&
336
+ left.ownerId === right.ownerId &&
337
+ left.leaseGeneration === right.leaseGeneration);
351
338
  }
352
339
  function sameFanoutDescriptor(left, right) {
353
- return sameFanoutImmutableIdentity(left, right)
354
- && left.descriptorRevision === right.descriptorRevision
355
- && left.state === right.state;
340
+ return (sameFanoutImmutableIdentity(left, right) &&
341
+ left.descriptorRevision === right.descriptorRevision &&
342
+ left.state === right.state);
356
343
  }
@@ -10,15 +10,13 @@ exports.FANOUT_LIVENESS_PAYLOAD = Uint8Array.from([0x5a, 0x46, 0x01, 0x01]);
10
10
  function inspectFanoutInbound(topic, parts) {
11
11
  if (topic !== FanoutTopic_1.FANOUT_LIVENESS_TOPIC) {
12
12
  const header = (0, channel_envelope_inspection_1.tryDecodeChannelHeader)(parts);
13
- return header === undefined
14
- ? { kind: 'protocolError' }
15
- : { kind: 'application', header };
13
+ return header === undefined ? { kind: 'protocolError' } : { kind: 'application', header };
16
14
  }
17
15
  if (parts.length !== 1)
18
16
  return { kind: 'protocolError' };
19
17
  const payload = parts[0].data();
20
- return payload.length === exports.FANOUT_LIVENESS_PAYLOAD.length
21
- && payload.every((value, index) => value === exports.FANOUT_LIVENESS_PAYLOAD[index])
18
+ return payload.length === exports.FANOUT_LIVENESS_PAYLOAD.length &&
19
+ payload.every((value, index) => value === exports.FANOUT_LIVENESS_PAYLOAD[index])
22
20
  ? { kind: 'beacon' }
23
21
  : { kind: 'protocolError' };
24
22
  }
@@ -33,7 +33,13 @@ class ZLinkLocalSpotRouteTransport {
33
33
  return pending;
34
34
  return new Promise((resolve, reject) => {
35
35
  const timeout = setTimeout(() => reject(new configuration_1.ZLinkConfigurationException(`Route channel '${routerChannelId}' local SPOT request timed out.`)), effectiveTimeoutMs);
36
- pending.then((value) => { clearTimeout(timeout); resolve(value); }, (error) => { clearTimeout(timeout); reject(error); });
36
+ pending.then((value) => {
37
+ clearTimeout(timeout);
38
+ resolve(value);
39
+ }, (error) => {
40
+ clearTimeout(timeout);
41
+ reject(error);
42
+ });
37
43
  });
38
44
  }
39
45
  }
@@ -18,9 +18,9 @@ class ZLinkRouteMemberSnapshot {
18
18
  }
19
19
  observeTermination(channel, routingId, endpoint) {
20
20
  const connected = this.connected.get(channel);
21
- const disconnected = routingId
22
- ?? this.memberByEndpoint.get(channel)?.get(endpoint)
23
- ?? (connected?.size === 1 ? connected.values().next().value : undefined);
21
+ const disconnected = routingId ??
22
+ this.memberByEndpoint.get(channel)?.get(endpoint) ??
23
+ (connected?.size === 1 ? connected.values().next().value : undefined);
24
24
  if (disconnected === undefined)
25
25
  return undefined;
26
26
  getOrCreateSet(this.members, channel).add(disconnected);
@@ -11,7 +11,9 @@ class ZLinkSourceSpotRouter {
11
11
  }
12
12
  async request(sourceSpot, target, packetName, request, timeoutMs, signal) {
13
13
  (0, abort_1.throwIfAborted)(signal);
14
- const parts = [(0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(1 /* ZLinkChannelMessageKind.Request */, target.routerChannelId, packetName, request)];
14
+ const parts = [
15
+ (0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(1 /* ZLinkChannelMessageKind.Request */, target.routerChannelId, packetName, request)
16
+ ];
15
17
  const operation = sourceSpot.requestToSpot(target.targetNodeRid, target.spotId, parts, timeoutMs ?? this.defaultRequestTimeoutMs);
16
18
  const replyParts = await (0, abort_1.awaitWithAbort)(operation, signal, () => {
17
19
  void operation.then(channel_envelope_1.closeMessages, () => undefined);
@@ -26,7 +28,9 @@ class ZLinkSourceSpotRouter {
26
28
  }
27
29
  async send(sourceSpot, target, packetName, message, signal, metadata, timeoutMs) {
28
30
  (0, abort_1.throwIfAborted)(signal);
29
- const parts = [(0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(3 /* ZLinkChannelMessageKind.Command */, target.routerChannelId, packetName, message, metadata)];
31
+ const parts = [
32
+ (0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(3 /* ZLinkChannelMessageKind.Command */, target.routerChannelId, packetName, message, metadata)
33
+ ];
30
34
  try {
31
35
  void timeoutMs;
32
36
  await (0, abort_1.awaitWithAbort)(sourceSpot.sendToSpot(target.targetNodeRid, target.spotId, parts), signal);
@@ -26,7 +26,9 @@ class ZLinkSpotRouteBridgeTransport {
26
26
  }
27
27
  async request(target, parts, codecs, timeoutMs, signal) {
28
28
  const bridge = this.requireBridge(target.routerChannelId);
29
- const operation = (0, channel_multipart_1.appendParts)(bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId), parts).timeout(timeoutMs ?? 0).submit();
29
+ const operation = (0, channel_multipart_1.appendParts)(bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId), parts)
30
+ .timeout(timeoutMs ?? 0)
31
+ .submit();
30
32
  const replyParts = await (0, abort_1.awaitWithAbort)(operation, signal, () => {
31
33
  void operation.then(channel_envelope_1.closeMessages, () => undefined);
32
34
  });
@@ -40,7 +42,8 @@ class ZLinkSpotRouteBridgeTransport {
40
42
  }
41
43
  requestRaw(target, request, timeoutMs, signal) {
42
44
  const bridge = this.requireBridge(target.routerChannelId);
43
- const operation = bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId)
45
+ const operation = bridge
46
+ .request(target.routerChannelId, target.targetNodeRid, target.spotId)
44
47
  .message(request)
45
48
  .timeout(timeoutMs ?? this.defaultRequestTimeoutMs ?? 0)
46
49
  .submit();
@@ -54,8 +54,8 @@ class ZLinkSpotRouteDispatchStrategy {
54
54
  return;
55
55
  }
56
56
  const parts = (0, channel_envelope_1.encodeChannelEnvelopeParts)(3 /* ZLinkChannelMessageKind.Command */, spotRouteTarget.routerChannelId, packetName, message, undefined, undefined, (0, channel_framework_packets_1.codecsForFrameworkPacket)(packetName, this.options.codecs), undefined, this.options.flowCreationEnabled?.() ?? true, metadata);
57
- if (this.targets.hasNamedSpotNode(spotRouteTarget.routerChannelId)
58
- && await this.spotNodeTransport.send(spotRouteTarget, parts, signal)) {
57
+ if (this.targets.hasNamedSpotNode(spotRouteTarget.routerChannelId) &&
58
+ (await this.spotNodeTransport.send(spotRouteTarget, parts, signal))) {
59
59
  return;
60
60
  }
61
61
  if (this.bridgeTransport.has(spotRouteTarget.routerChannelId)) {
@@ -15,8 +15,7 @@ class ZLinkSpotRouteTargetResolver {
15
15
  if (named?.router !== undefined) {
16
16
  return this.spotNodes?.get(routerChannelId);
17
17
  }
18
- const channelOwners = [...this.registration.spotNodes.entries()]
19
- .filter(([, node]) => Object.prototype.hasOwnProperty.call(node.meshChannels ?? {}, routerChannelId));
18
+ const channelOwners = [...this.registration.spotNodes.entries()].filter(([, node]) => Object.prototype.hasOwnProperty.call(node.meshChannels ?? {}, routerChannelId));
20
19
  if (channelOwners.length === 1) {
21
20
  return this.spotNodes?.get(channelOwners[0][0]);
22
21
  }
@@ -38,7 +37,8 @@ class ZLinkSpotRouteTargetResolver {
38
37
  }
39
38
  localRouteNode(target) {
40
39
  const routeNode = this.routeNode(target.routerChannelId) ?? this.spotNodes?.get(target.routerChannelId);
41
- return routeNode !== undefined && routingIdsMatchSpotRoute(routeNode.routingId, target.targetNodeRid)
40
+ return routeNode !== undefined &&
41
+ routingIdsMatchSpotRoute(routeNode.routingId, target.targetNodeRid)
42
42
  ? routeNode
43
43
  : undefined;
44
44
  }
@@ -50,8 +50,8 @@ class ZLinkSpotRouteTargetResolver {
50
50
  return (routeBridgeNode ?? this.spotNodes?.get(routerChannelId))?.entrySpot();
51
51
  }
52
52
  canRouteChannel(routerChannelId) {
53
- return this.registration.routeChannels.has(routerChannelId)
54
- || this.spotNodeRouter(routerChannelId) !== undefined;
53
+ return (this.registration.routeChannels.has(routerChannelId) ||
54
+ this.spotNodeRouter(routerChannelId) !== undefined);
55
55
  }
56
56
  canRoutePacketChannel(routerChannelId) {
57
57
  if (this.spotNodes?.has(routerChannelId) ?? false) {
@@ -72,7 +72,7 @@ function routingIdsMatchSpotRoute(left, right) {
72
72
  return false;
73
73
  }
74
74
  const rightCandidates = spotRouteRoutingIdCandidates(right);
75
- return [...spotRouteRoutingIdCandidates(left)].some(candidate => rightCandidates.has(candidate));
75
+ return [...spotRouteRoutingIdCandidates(left)].some((candidate) => rightCandidates.has(candidate));
76
76
  }
77
77
  function spotRouteRoutingIdCandidates(routingId) {
78
78
  const candidates = new Set();
@@ -0,0 +1,6 @@
1
+ export declare function dispatchErrorDetails(error: unknown): {
2
+ readonly errorType?: string;
3
+ readonly errorMessage?: string;
4
+ readonly errorCauseType?: string;
5
+ readonly errorCauseMessage?: string;
6
+ };
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dispatchErrorDetails = dispatchErrorDetails;
4
+ const ERROR_MESSAGE_MAX_LENGTH = 512;
5
+ const CREDENTIAL_PATTERNS = [
6
+ [/Authorization\s*:\s*(?:(?:Bearer|Basic)\s+)?[^\s,;]+/gi, 'Authorization: <redacted>'],
7
+ [/Bearer\s+[^\s,;]+/gi, 'Bearer <redacted>'],
8
+ [/password\s*=\s*[^\s,;]+/gi, 'password=<redacted>'],
9
+ [/token\s*=\s*[^\s,;]+/gi, 'token=<redacted>']
10
+ ];
11
+ function dispatchErrorDetails(error) {
12
+ if (error === undefined || error === null)
13
+ return {};
14
+ if (error instanceof Error) {
15
+ const cause = deepestErrorCause(error);
16
+ return {
17
+ errorType: error.name,
18
+ errorMessage: sanitizeErrorMessage(error.message),
19
+ ...(cause === error
20
+ ? {}
21
+ : {
22
+ errorCauseType: cause instanceof Error ? cause.name : typeof cause,
23
+ errorCauseMessage: sanitizeErrorMessage(cause instanceof Error ? cause.message : String(cause))
24
+ })
25
+ };
26
+ }
27
+ const errorType = typeof error === 'object' ? error.constructor.name : typeof error;
28
+ const message = typeof error === 'string' ||
29
+ typeof error === 'number' ||
30
+ typeof error === 'boolean' ||
31
+ typeof error === 'bigint'
32
+ ? `${error}`
33
+ : Object.prototype.toString.call(error);
34
+ return { errorType, errorMessage: sanitizeErrorMessage(message) };
35
+ }
36
+ function deepestErrorCause(error) {
37
+ let current = error;
38
+ const seen = new Set();
39
+ while (current instanceof Error && current.cause !== undefined && !seen.has(current)) {
40
+ seen.add(current);
41
+ current = current.cause;
42
+ }
43
+ return current;
44
+ }
45
+ function sanitizeErrorMessage(message) {
46
+ if (message.length === 0)
47
+ return '';
48
+ const lineEnd = message.search(/[\r\n]/u);
49
+ let sanitized = lineEnd < 0 ? message : message.slice(0, lineEnd);
50
+ for (const [pattern, replacement] of CREDENTIAL_PATTERNS) {
51
+ pattern.lastIndex = 0;
52
+ sanitized = sanitized.replace(pattern, replacement);
53
+ }
54
+ return sanitized.slice(0, ERROR_MESSAGE_MAX_LENGTH);
55
+ }
@@ -2,6 +2,7 @@ import type { ZLinkFlowOrigin } from '../../contracts';
2
2
  export interface ZLinkFlowContextValue {
3
3
  readonly flowId: string;
4
4
  readonly flowOrigin: ZLinkFlowOrigin;
5
+ readonly streamSessionId?: string;
5
6
  }
6
7
  export declare function currentFlowContext(): ZLinkFlowContextValue | undefined;
7
8
  export declare function currentOrCreateFlow(origin?: ZLinkFlowOrigin, createIfAbsent?: true): ZLinkFlowContextValue;
@@ -18,4 +19,4 @@ export declare function runWithFlow<T>(flow: ZLinkFlowContextValue | undefined,
18
19
  * observe the same ambient flow, so the source-side hop stays coherent.
19
20
  */
20
21
  export declare function runWithOutboundFlow<T>(enabled: boolean, callback: () => T): T;
21
- export declare function createInboundFlow(flowId?: string, flowOrigin?: ZLinkFlowOrigin, createIfAbsent?: boolean): ZLinkFlowContextValue | undefined;
22
+ export declare function createInboundFlow(flowId: string | undefined, flowOrigin: ZLinkFlowOrigin | undefined, createIfAbsent: boolean, streamSessionId: string | undefined): ZLinkFlowContextValue | undefined;
@@ -50,11 +50,11 @@ function runWithOutboundFlow(enabled, callback) {
50
50
  }
51
51
  return flowStorage.run({ flowId: createFlowId(), flowOrigin: 'Application' }, callback);
52
52
  }
53
- function createInboundFlow(flowId, flowOrigin, createIfAbsent = true) {
53
+ function createInboundFlow(flowId, flowOrigin, createIfAbsent, streamSessionId) {
54
54
  if (!createIfAbsent) {
55
55
  return undefined;
56
56
  }
57
- return { flowId: flowId ?? createFlowId(), flowOrigin: flowOrigin ?? 'Inbound' };
57
+ return { flowId: flowId ?? createFlowId(), flowOrigin: flowOrigin ?? 'Inbound', streamSessionId };
58
58
  }
59
59
  function createFlowId() {
60
60
  const bytes = (0, node_crypto_1.randomBytes)(16);
@@ -62,9 +62,8 @@ class ZLinkSocketMonitoringSource {
62
62
  this.monitor = monitor;
63
63
  this.publisher = publisher;
64
64
  validateSourceName(registration.sourceName);
65
- this.enabledEvents = registration.events === undefined
66
- ? undefined
67
- : new Set(registration.events);
65
+ this.enabledEvents =
66
+ registration.events === undefined ? undefined : new Set(registration.events);
68
67
  }
69
68
  start() {
70
69
  this.monitor.onEvent((event) => {
@@ -185,7 +184,12 @@ class ZLinkLocationMonitoringEventEmitter {
185
184
  constructor(registration, publisher) {
186
185
  this.registration = registration;
187
186
  this.publisher = publisher;
188
- for (const source of [registration.peer, registration.spot, registration.actor, registration.route]) {
187
+ for (const source of [
188
+ registration.peer,
189
+ registration.spot,
190
+ registration.actor,
191
+ registration.route
192
+ ]) {
189
193
  if (source !== undefined) {
190
194
  validateSourceName(source.sourceName);
191
195
  }
@@ -232,28 +236,48 @@ class ZLinkLocationMonitoringEventEmitter {
232
236
  if (registration === undefined) {
233
237
  return;
234
238
  }
235
- this.publish({ sourceName: registration.sourceName, timestamp: new Date(), event, ...payload });
239
+ this.publish({
240
+ sourceName: registration.sourceName,
241
+ timestamp: new Date(),
242
+ event,
243
+ ...payload
244
+ });
236
245
  }
237
246
  publishSpotLocation(event, payload) {
238
247
  const registration = this.registration.spot;
239
248
  if (registration === undefined) {
240
249
  return;
241
250
  }
242
- this.publish({ sourceName: registration.sourceName, timestamp: new Date(), event, ...payload });
251
+ this.publish({
252
+ sourceName: registration.sourceName,
253
+ timestamp: new Date(),
254
+ event,
255
+ ...payload
256
+ });
243
257
  }
244
258
  publishActor(event, payload) {
245
259
  const registration = this.registration.actor;
246
260
  if (registration === undefined) {
247
261
  return;
248
262
  }
249
- this.publish({ sourceName: registration.sourceName, timestamp: new Date(), event, ...payload });
263
+ this.publish({
264
+ sourceName: registration.sourceName,
265
+ timestamp: new Date(),
266
+ event,
267
+ ...payload
268
+ });
250
269
  }
251
270
  publishRoute(event, payload) {
252
271
  const registration = this.registration.route;
253
272
  if (registration === undefined) {
254
273
  return;
255
274
  }
256
- this.publish({ sourceName: registration.sourceName, timestamp: new Date(), event, ...payload });
275
+ this.publish({
276
+ sourceName: registration.sourceName,
277
+ timestamp: new Date(),
278
+ event,
279
+ ...payload
280
+ });
257
281
  }
258
282
  publish(event) {
259
283
  if (this.publisher === undefined) {
@@ -311,14 +335,18 @@ async function publishLocationRuntimeChange(publisher, sourceName, event, snapsh
311
335
  ? { ...base, event, status: snapshot }
312
336
  : event === internal_event_contracts_1.ZLinkLocationRuntimeEventKind.TopologyChanged
313
337
  ? { ...base, event, topology: snapshot }
314
- : { ...base, event: internal_event_contracts_1.ZLinkLocationRuntimeEventKind.ServiceSummaryChanged, serviceSummary: snapshot };
338
+ : {
339
+ ...base,
340
+ event: internal_event_contracts_1.ZLinkLocationRuntimeEventKind.ServiceSummaryChanged,
341
+ serviceSummary: snapshot
342
+ };
315
343
  await publisher.publish(runtimeEvent);
316
344
  }
317
345
  function startOutsideStateLane(work) {
318
346
  return detachedStateLaneResource.runInAsyncScope(work);
319
347
  }
320
348
  function stableSnapshot(value) {
321
- return JSON.stringify(value, (_key, item) => typeof item === 'bigint' ? item.toString() : item);
349
+ return JSON.stringify(value, (_key, item) => (typeof item === 'bigint' ? item.toString() : item));
322
350
  }
323
351
  function validateSourceName(sourceName) {
324
352
  if (sourceName.trim().length === 0) {