@zlink-systems/framework 0.25.0 → 0.27.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 (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
  3. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  4. package/dist/contracts/Common/CoreTypes.js +7 -0
  5. package/dist/contracts/Common/index.d.ts +1 -1
  6. package/dist/contracts/Common/index.js +0 -1
  7. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  8. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  9. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  10. package/dist/contracts/Configuration/Registration.js +58 -36
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  12. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  13. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  14. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  15. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  16. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  17. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  18. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  19. package/dist/contracts/Handlers/JsonContract.js +10 -4
  20. package/dist/contracts/Locations/Authority.d.ts +1 -1
  21. package/dist/contracts/Locations/Authority.js +3 -2
  22. package/dist/contracts/Locations/Options.js +1 -1
  23. package/dist/contracts/Locations/Stores.d.ts +12 -0
  24. package/dist/contracts/Locations/Stores.js +9 -0
  25. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
  26. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  27. package/dist/internal.d.ts +5 -0
  28. package/dist/internal.js +16 -1
  29. package/dist/nest-integration.d.ts +4 -2
  30. package/dist/nest-integration.js +14 -4
  31. package/dist/runtime/abort.d.ts +1 -0
  32. package/dist/runtime/abort.js +8 -5
  33. package/dist/runtime/activation-admission.d.ts +28 -0
  34. package/dist/runtime/activation-admission.js +57 -0
  35. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  36. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  37. package/dist/runtime/actors/actor-client.d.ts +2 -2
  38. package/dist/runtime/actors/actor-client.js +42 -143
  39. package/dist/runtime/actors/actor-context.d.ts +3 -5
  40. package/dist/runtime/actors/actor-context.js +19 -17
  41. package/dist/runtime/actors/actor-handoff.d.ts +13 -7
  42. package/dist/runtime/actors/actor-handoff.js +36 -25
  43. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  44. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  45. package/dist/runtime/actors/actor-local-native-join.js +85 -123
  46. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  47. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  48. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  49. package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
  50. package/dist/runtime/actors/actor-remote-joiner.js +11 -17
  51. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  52. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  53. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  54. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  55. package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
  56. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  57. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  58. package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
  59. package/dist/runtime/actors/bound-session-wire.js +2 -7
  60. package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
  61. package/dist/runtime/actors/deferred-join-completion.js +21 -0
  62. package/dist/runtime/actors/index.d.ts +10 -8
  63. package/dist/runtime/actors/index.js +101 -73
  64. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  65. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  66. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  67. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  68. package/dist/runtime/admission.d.ts +7 -1
  69. package/dist/runtime/admission.js +11 -1
  70. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  71. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  72. package/dist/runtime/backend/contracts/index.d.ts +8 -33
  73. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
  74. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  75. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  76. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
  77. package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
  78. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
  79. package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
  80. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  81. package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
  82. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  83. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
  84. package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
  85. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
  86. package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
  87. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  88. package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
  89. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  90. package/dist/runtime/backend/runtime-values.js +2 -0
  91. package/dist/runtime/channels/channel-clients.d.ts +20 -9
  92. package/dist/runtime/channels/channel-clients.js +68 -60
  93. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  94. package/dist/runtime/channels/channel-envelope.js +47 -29
  95. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  96. package/dist/runtime/channels/channel-outbound-operations.js +9 -18
  97. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  98. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  99. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  100. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  101. package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
  102. package/dist/runtime/channels/channel-runtime-manager.js +4 -12
  103. package/dist/runtime/channels/channel-socket-options.js +3 -2
  104. package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
  105. package/dist/runtime/channels/channel-socket-registry.js +296 -235
  106. package/dist/runtime/channels/channel-transports.d.ts +11 -20
  107. package/dist/runtime/channels/channel-transports.js +68 -47
  108. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  109. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  110. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  111. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  112. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  113. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  114. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  115. package/dist/runtime/channels/fanout-location-runtime.js +133 -81
  116. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  117. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  118. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  119. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  120. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  121. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  122. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  123. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  124. package/dist/runtime/diagnostics/flow-context.js +16 -2
  125. package/dist/runtime/diagnostics/index.d.ts +4 -2
  126. package/dist/runtime/diagnostics/index.js +14 -4
  127. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  128. package/dist/runtime/diagnostics/message-flow.js +10 -19
  129. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  130. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  131. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  132. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  133. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  134. package/dist/runtime/disposal.d.ts +5 -0
  135. package/dist/runtime/disposal.js +22 -0
  136. package/dist/runtime/execution/index.d.ts +22 -9
  137. package/dist/runtime/execution/index.js +107 -37
  138. package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
  139. package/dist/runtime/execution/serial-execution-queue.js +99 -26
  140. package/dist/runtime/execution/state-lane.d.ts +8 -1
  141. package/dist/runtime/execution/state-lane.js +118 -3
  142. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  143. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  144. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  145. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  146. package/dist/runtime/foundation/listener-records.d.ts +11 -0
  147. package/dist/runtime/foundation/listener-records.js +20 -0
  148. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  149. package/dist/runtime/foundation/operation-identity.js +9 -5
  150. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  151. package/dist/runtime/foundation/operation-registry.js +34 -44
  152. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
  153. package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
  154. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  155. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  156. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
  157. package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
  158. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  159. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  160. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  161. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  162. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  163. package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
  164. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  165. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  166. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  167. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
  168. package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
  169. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
  170. package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
  171. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  172. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  173. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  174. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
  175. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  176. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  177. package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
  178. package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
  179. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
  180. package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
  181. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
  182. package/dist/runtime/foundation/service-topology-registry.js +22 -61
  183. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  184. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  185. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  186. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  187. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  188. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  189. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  190. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  191. package/dist/runtime/framework-errors-internal.js +343 -122
  192. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  193. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  194. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  195. package/dist/runtime/host/actor-packet-relay.js +48 -91
  196. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  197. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  198. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  199. package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
  200. package/dist/runtime/host/actor-transfer-runtime.js +210 -256
  201. package/dist/runtime/host/application-job-queue.js +16 -33
  202. package/dist/runtime/host/bound-session-relay.js +1 -1
  203. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  204. package/dist/runtime/host/index.d.ts +19 -14
  205. package/dist/runtime/host/index.js +234 -175
  206. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  207. package/dist/runtime/host/instance-activation-authority.js +17 -45
  208. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  209. package/dist/runtime/host/location-runtime-owner.js +2 -2
  210. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  211. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  212. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  213. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  214. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  215. package/dist/runtime/host/remote-bound-session-relay.js +11 -23
  216. package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
  217. package/dist/runtime/host/route-mesh-runtime.js +178 -257
  218. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  219. package/dist/runtime/host/runtime-shutdown.js +18 -21
  220. package/dist/runtime/host/service-relocation-control.js +6 -1
  221. package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
  222. package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
  223. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  224. package/dist/runtime/host/spot-address-transport.js +34 -136
  225. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  226. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  227. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
  228. package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
  229. package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
  230. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
  231. package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
  232. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  233. package/dist/runtime/locations/authority-key-codec.js +4 -3
  234. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  235. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  236. package/dist/runtime/locations/creation-operation-id.js +6 -4
  237. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  238. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  239. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  240. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  241. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  242. package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
  243. package/dist/runtime/locations/key-codec.js +3 -2
  244. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  245. package/dist/runtime/locations/lease-tracker.js +7 -11
  246. package/dist/runtime/locations/lifecycle.d.ts +5 -10
  247. package/dist/runtime/locations/lifecycle.js +4 -33
  248. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  249. package/dist/runtime/locations/location-store-failure.js +7 -0
  250. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  251. package/dist/runtime/locations/location-store-pages.js +13 -0
  252. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  253. package/dist/runtime/locations/location-store-repository.js +303 -332
  254. package/dist/runtime/locations/relocation-blob.js +18 -5
  255. package/dist/runtime/locations/resolvers.d.ts +5 -5
  256. package/dist/runtime/locations/resolvers.js +44 -30
  257. package/dist/runtime/locations/runtime.d.ts +5 -4
  258. package/dist/runtime/locations/runtime.js +123 -92
  259. package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
  260. package/dist/runtime/locations/spot-location-claims.js +40 -23
  261. package/dist/runtime/messaging/payload-codec.js +26 -20
  262. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  263. package/dist/runtime/messaging/submission-result.js +48 -0
  264. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
  265. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
  266. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
  267. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
  268. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
  269. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
  270. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
  271. package/dist/runtime/spots/index.d.ts +29 -29
  272. package/dist/runtime/spots/index.js +441 -313
  273. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
  274. package/dist/runtime/spots/spot-activation-registry.js +27 -60
  275. package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
  276. package/dist/runtime/spots/spot-activation-state.js +4 -17
  277. package/dist/runtime/spots/spot-activation.d.ts +10 -9
  278. package/dist/runtime/spots/spot-activation.js +103 -81
  279. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  280. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  281. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  282. package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
  283. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
  284. package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
  285. package/dist/runtime/spots/spot-actor-membership.js +44 -53
  286. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  287. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  288. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  289. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  290. package/dist/runtime/spots/spot-context.d.ts +2 -2
  291. package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
  292. package/dist/runtime/spots/spot-entry-activation.js +9 -21
  293. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  294. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  295. package/dist/runtime/spots/spot-manager-public.js +6 -5
  296. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  297. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
  298. package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
  299. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  300. package/dist/runtime/spots/spot-outbound.js +10 -37
  301. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  302. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  303. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  304. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  305. package/dist/runtime/spots/spot-route-replies.js +3 -1
  306. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
  307. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
  308. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
  309. package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
  310. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  311. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  312. package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
  313. package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
  314. package/dist/runtime/spots/spot-serial-executor.js +9 -2
  315. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
  316. package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
  317. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  318. package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
  319. package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
  320. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
  321. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  322. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  323. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  324. package/dist/runtime/streams/bound-session-service.js +12 -19
  325. package/dist/runtime/streams/index.d.ts +15 -14
  326. package/dist/runtime/streams/index.js +38 -39
  327. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  328. package/dist/runtime/streams/managed-stream.js +17 -8
  329. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  330. package/dist/runtime/streams/protocol.d.ts +6 -33
  331. package/dist/runtime/streams/protocol.js +38 -110
  332. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  333. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  334. package/dist/runtime/streams/session-calls.d.ts +1 -1
  335. package/dist/runtime/streams/session-calls.js +5 -4
  336. package/dist/runtime/streams/session-context.d.ts +6 -6
  337. package/dist/runtime/streams/session-context.js +22 -4
  338. package/dist/runtime/streams/session-requests.js +2 -1
  339. package/dist/runtime/streams/session-serial-executor.js +2 -2
  340. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  341. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  342. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  343. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  344. package/dist/runtime/workers/index.d.ts +2 -2
  345. package/dist/runtime/workers/index.js +5 -4
  346. package/package.json +3 -3
  347. package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
  348. package/src/contracts/Common/CoreTypes.ts +7 -0
  349. package/src/contracts/Common/index.ts +1 -1
  350. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  351. package/src/contracts/Configuration/Registration.ts +92 -48
  352. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  353. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  354. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  355. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  356. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  357. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  358. package/src/contracts/Handlers/JsonContract.ts +14 -4
  359. package/src/contracts/Locations/Authority.ts +7 -3
  360. package/src/contracts/Locations/Options.ts +1 -1
  361. package/src/contracts/Locations/Stores.ts +14 -0
  362. package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
  363. package/src/contracts/Spots/Contracts.ts +1 -1
  364. package/src/internal.ts +15 -0
  365. package/src/nest-integration.ts +28 -10
  366. package/src/runtime/abort.ts +6 -5
  367. package/src/runtime/activation-admission.ts +72 -0
  368. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  369. package/src/runtime/actors/actor-client.ts +77 -204
  370. package/src/runtime/actors/actor-context.ts +45 -39
  371. package/src/runtime/actors/actor-handoff.ts +55 -45
  372. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  373. package/src/runtime/actors/actor-local-native-join.ts +174 -215
  374. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  375. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  376. package/src/runtime/actors/actor-remote-joiner.ts +15 -36
  377. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  378. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  379. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  380. package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
  381. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  382. package/src/runtime/actors/actor-source-transfer.ts +5 -18
  383. package/src/runtime/actors/bound-session-wire.ts +2 -8
  384. package/src/runtime/actors/deferred-join-completion.ts +44 -0
  385. package/src/runtime/actors/index.ts +122 -88
  386. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  387. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  388. package/src/runtime/admission.ts +13 -2
  389. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  390. package/src/runtime/backend/contracts/index.ts +15 -42
  391. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
  392. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  393. package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
  394. package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
  395. package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
  396. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  397. package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
  398. package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
  399. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
  400. package/src/runtime/backend/raw-binding-port.ts +14 -1
  401. package/src/runtime/backend/runtime-values.ts +4 -1
  402. package/src/runtime/channels/channel-clients.ts +132 -96
  403. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  404. package/src/runtime/channels/channel-envelope.ts +58 -29
  405. package/src/runtime/channels/channel-outbound-operations.ts +10 -31
  406. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  407. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  408. package/src/runtime/channels/channel-runtime-manager.ts +8 -15
  409. package/src/runtime/channels/channel-socket-options.ts +8 -2
  410. package/src/runtime/channels/channel-socket-registry.ts +369 -262
  411. package/src/runtime/channels/channel-transports.ts +161 -115
  412. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  413. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  414. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  415. package/src/runtime/channels/fanout-location-runtime.ts +175 -106
  416. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  417. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  418. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  419. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  420. package/src/runtime/diagnostics/flow-context.ts +16 -2
  421. package/src/runtime/diagnostics/index.ts +27 -17
  422. package/src/runtime/diagnostics/message-flow.ts +15 -25
  423. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  424. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  425. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  426. package/src/runtime/disposal.ts +19 -0
  427. package/src/runtime/execution/index.ts +116 -38
  428. package/src/runtime/execution/serial-execution-queue.ts +179 -34
  429. package/src/runtime/execution/state-lane.ts +142 -4
  430. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  431. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  432. package/src/runtime/foundation/listener-records.ts +21 -0
  433. package/src/runtime/foundation/operation-identity.ts +11 -5
  434. package/src/runtime/foundation/operation-registry.ts +33 -50
  435. package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
  436. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  437. package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
  438. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  439. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  440. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  441. package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
  442. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  443. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  444. package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
  445. package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
  446. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  447. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  448. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
  449. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  450. package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
  451. package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
  452. package/src/runtime/foundation/service-topology-registry.ts +30 -79
  453. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  454. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  455. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  456. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  457. package/src/runtime/framework-errors-internal.ts +380 -134
  458. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  459. package/src/runtime/host/actor-packet-relay.ts +57 -147
  460. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  461. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  462. package/src/runtime/host/actor-transfer-runtime.ts +266 -418
  463. package/src/runtime/host/application-job-queue.ts +28 -34
  464. package/src/runtime/host/bound-session-relay.ts +1 -2
  465. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  466. package/src/runtime/host/index.ts +408 -312
  467. package/src/runtime/host/instance-activation-authority.ts +89 -109
  468. package/src/runtime/host/location-runtime-owner.ts +4 -2
  469. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  470. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  471. package/src/runtime/host/remote-bound-session-relay.ts +12 -44
  472. package/src/runtime/host/route-mesh-runtime.ts +236 -275
  473. package/src/runtime/host/runtime-shutdown.ts +17 -21
  474. package/src/runtime/host/service-relocation-control.ts +14 -1
  475. package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
  476. package/src/runtime/host/spot-address-transport.ts +73 -195
  477. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  478. package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
  479. package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
  480. package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
  481. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  482. package/src/runtime/locations/authority-key-codec.ts +7 -3
  483. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  484. package/src/runtime/locations/creation-operation-id.ts +6 -3
  485. package/src/runtime/locations/domain-store-contract.ts +12 -3
  486. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  487. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  488. package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
  489. package/src/runtime/locations/key-codec.ts +3 -2
  490. package/src/runtime/locations/lease-tracker.ts +8 -14
  491. package/src/runtime/locations/lifecycle.ts +16 -45
  492. package/src/runtime/locations/location-store-failure.ts +4 -0
  493. package/src/runtime/locations/location-store-pages.ts +18 -0
  494. package/src/runtime/locations/location-store-repository.ts +450 -478
  495. package/src/runtime/locations/relocation-blob.ts +17 -6
  496. package/src/runtime/locations/resolvers.ts +90 -58
  497. package/src/runtime/locations/runtime.ts +220 -110
  498. package/src/runtime/locations/spot-location-claims.ts +54 -26
  499. package/src/runtime/messaging/payload-codec.ts +35 -24
  500. package/src/runtime/messaging/submission-result.ts +57 -1
  501. package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
  502. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
  503. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
  504. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
  505. package/src/runtime/spots/index.ts +687 -437
  506. package/src/runtime/spots/spot-activation-registry.ts +42 -71
  507. package/src/runtime/spots/spot-activation-state.ts +4 -16
  508. package/src/runtime/spots/spot-activation.ts +167 -115
  509. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  510. package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
  511. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
  512. package/src/runtime/spots/spot-actor-membership.ts +107 -75
  513. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  514. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  515. package/src/runtime/spots/spot-context.ts +3 -3
  516. package/src/runtime/spots/spot-entry-activation.ts +13 -33
  517. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  518. package/src/runtime/spots/spot-manager-public.ts +29 -21
  519. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  520. package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
  521. package/src/runtime/spots/spot-outbound.ts +47 -68
  522. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  523. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  524. package/src/runtime/spots/spot-route-replies.ts +6 -4
  525. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
  526. package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
  527. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  528. package/src/runtime/spots/spot-runtime-ports.ts +10 -43
  529. package/src/runtime/spots/spot-serial-executor.ts +10 -2
  530. package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
  531. package/src/runtime/spots/spot-timer.ts +3 -2
  532. package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
  533. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
  534. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  535. package/src/runtime/streams/bound-session-service.ts +23 -37
  536. package/src/runtime/streams/index.ts +102 -88
  537. package/src/runtime/streams/managed-stream.ts +29 -10
  538. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  539. package/src/runtime/streams/protocol.ts +34 -88
  540. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  541. package/src/runtime/streams/session-calls.ts +6 -5
  542. package/src/runtime/streams/session-context.ts +54 -10
  543. package/src/runtime/streams/session-requests.ts +2 -1
  544. package/src/runtime/streams/session-serial-executor.ts +2 -2
  545. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  546. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  547. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  548. package/src/runtime/workers/index.ts +13 -12
  549. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
  550. package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
  551. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  552. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  553. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  554. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  555. package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
  556. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  557. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -4,8 +4,11 @@ exports.ZLinkFanoutLocationRuntime = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
5
  const Locations_1 = require("../../contracts/Locations");
6
6
  const Options_1 = require("../../contracts/Locations/Options");
7
+ const Stores_1 = require("../../contracts/Locations/Stores");
7
8
  const configuration_1 = require("../configuration");
8
9
  const state_lane_1 = require("../execution/state-lane");
10
+ const runtime_state_projections_1 = require("../foundation/runtime-state-projections");
11
+ const event_loop_resources_1 = require("../foundation/event-loop-resources");
9
12
  class ZLinkFanoutLocationRuntime {
10
13
  registration;
11
14
  sockets;
@@ -17,7 +20,7 @@ class ZLinkFanoutLocationRuntime {
17
20
  store;
18
21
  localDescriptors = new Map();
19
22
  publisherIdentities = new Map();
20
- connections = new Map();
23
+ targets = new Map();
21
24
  controller;
22
25
  timer;
23
26
  constructor(registration, sockets, locationRuntime, stores, options, onSubscriberOpened) {
@@ -64,16 +67,39 @@ class ZLinkFanoutLocationRuntime {
64
67
  });
65
68
  if (timer !== undefined)
66
69
  clearTimeout(timer);
67
- const connectionIds = await this.lane.run(() => [...this.connections.keys()]);
68
- await Promise.allSettled(connectionIds.map((id) => this.closeConnection(id)));
69
- await this.removeLocalPublishers(signal);
70
+ const targets = await this.lane.run(() => [...this.targets]);
71
+ const targetResults = await Promise.allSettled(targets.map(([id, target]) => this.removeTarget(id, target)));
72
+ const publisherResults = await Promise.allSettled([this.removeLocalPublishers(signal)]);
73
+ (0, event_loop_resources_1.finishResourceCleanup)([...targetResults, ...publisherResults].flatMap((result) => result.status === 'rejected' ? [result.reason] : []));
70
74
  }
71
75
  activeTargets(channelName) {
72
- return [...this.connections.values()]
73
- .filter((target) => target.state === 'ready')
76
+ return [...this.targets.values()]
77
+ .filter((target) => target.connection?.state === 'ready')
74
78
  .map((target) => target.descriptor)
75
79
  .filter((descriptor) => descriptor.channelName === channelName);
76
80
  }
81
+ topologyTargets(channelName) {
82
+ if (!this.isAutomaticSubscriber(channelName))
83
+ return undefined;
84
+ return [...this.targets.values()]
85
+ .filter((target) => target.descriptor.channelName === channelName)
86
+ .map((target) => ({
87
+ channelName,
88
+ publisherRoutingId: String(target.descriptor.publisherRid),
89
+ lifecycleGeneration: target.descriptor.lifecycleGeneration,
90
+ descriptorRevision: target.descriptor.descriptorRevision,
91
+ advertisedEndpoint: target.descriptor.endpoint,
92
+ state: target.descriptor.state === Locations_1.ZLinkFrameworkRuntimeState.Serving
93
+ ? target.connection?.state === 'ready'
94
+ ? 'serving'
95
+ : 'preparing'
96
+ : (0, runtime_state_projections_1.discoveryAvailabilityForRuntimeState)(target.descriptor.state)
97
+ }));
98
+ }
99
+ isAutomaticSubscriber(channelName) {
100
+ const subscriber = this.registration.channels.get(channelName)?.subscriber;
101
+ return subscriber !== undefined && (subscriber.manualConnections?.length ?? 0) === 0;
102
+ }
77
103
  async reclaimOwnerRows(signal) {
78
104
  const owner = this.requireOwnerToken();
79
105
  const descriptors = await this.lane.run(() => [...this.localDescriptors]);
@@ -101,8 +127,9 @@ class ZLinkFanoutLocationRuntime {
101
127
  for (const [channelName, channel] of this.registration.channels) {
102
128
  if (channel.publisher === undefined)
103
129
  continue;
104
- const publisher = this.sockets.publisher(channelName);
105
- const endpoint = advertisedEndpoint(publisher.lastEndpoint ?? channel.publisher.bind ?? '', channel.publisher.advertiseHost);
130
+ // Opening the publisher binds it and fixes its advertised endpoint.
131
+ this.sockets.publisher(channelName);
132
+ const endpoint = this.sockets.fanoutPublisherEndpoint(channelName) ?? '';
106
133
  if (endpoint.length === 0) {
107
134
  throw new configuration_1.ZLinkConfigurationException(`Fanout publisher '${channelName}' did not report a bound endpoint.`);
108
135
  }
@@ -153,124 +180,150 @@ class ZLinkFanoutLocationRuntime {
153
180
  }
154
181
  }
155
182
  async reconcileSubscribers(signal) {
156
- for (const [channelName, channel] of this.registration.channels) {
157
- if (channel.subscriber === undefined ||
158
- (channel.subscriber.manualConnections?.length ?? 0) > 0) {
183
+ for (const channelName of this.registration.channels.keys()) {
184
+ if (!this.isAutomaticSubscriber(channelName))
159
185
  continue;
160
- }
186
+ const previous = this.topologyTargets(channelName);
161
187
  const rows = await this.listLivePublishers(channelName, signal);
162
188
  const desired = new Map(rows.map((row) => [fanoutConnectionId(row), row]));
163
189
  for (const [connectionId, descriptor] of desired) {
164
- const current = await this.lane.run(() => this.connections.get(connectionId));
190
+ let current = await this.lane.run(() => this.targets.get(connectionId));
165
191
  if (current === undefined) {
166
- await this.openConnection(connectionId, descriptor);
167
- continue;
192
+ const created = { descriptor };
193
+ current = created;
194
+ await this.lane.run(() => this.targets.set(connectionId, created));
168
195
  }
169
- if (descriptor.descriptorRevision < current.descriptor.descriptorRevision) {
196
+ else if (descriptor.descriptorRevision < current.descriptor.descriptorRevision) {
170
197
  continue;
171
198
  }
172
- if (descriptor.descriptorRevision === current.descriptor.descriptorRevision) {
199
+ else if (descriptor.descriptorRevision === current.descriptor.descriptorRevision) {
173
200
  if (!sameFanoutDescriptor(descriptor, current.descriptor)) {
174
- await this.closeConnection(connectionId);
201
+ await this.removeTarget(connectionId, current);
202
+ continue;
175
203
  }
176
- continue;
177
204
  }
178
- if (!sameFanoutImmutableIdentity(descriptor, current.descriptor)) {
179
- await this.closeConnection(connectionId);
205
+ else if (!sameFanoutImmutableIdentity(descriptor, current.descriptor)) {
206
+ await this.removeTarget(connectionId, current);
180
207
  continue;
181
208
  }
182
- await this.lane.run(() => {
183
- if (this.connections.get(connectionId) === current)
184
- current.descriptor = descriptor;
185
- });
186
- if (current.state === 'ready') {
187
- this.sockets.admitFanoutPublisher(descriptor, connectionId);
209
+ else {
210
+ const target = current;
211
+ await this.lane.run(() => {
212
+ if (this.targets.get(connectionId) === target)
213
+ target.descriptor = descriptor;
214
+ });
215
+ if (current.connection?.state === 'ready') {
216
+ this.sockets.admitFanoutPublisher(current.descriptor, connectionId);
217
+ }
188
218
  }
219
+ await this.reconcileConnection(connectionId, current);
189
220
  }
190
- const connections = await this.lane.run(() => [...this.connections]);
191
- for (const [connectionId, current] of connections) {
221
+ const targets = await this.lane.run(() => [...this.targets]);
222
+ for (const [connectionId, current] of targets) {
192
223
  if (current.descriptor.channelName === channelName && !desired.has(connectionId)) {
193
- await this.closeConnection(connectionId);
224
+ await this.removeTarget(connectionId, current);
194
225
  }
195
226
  }
227
+ const next = this.topologyTargets(channelName);
228
+ if (previous.length !== next.length ||
229
+ previous.some((publisher, index) => publisher.publisherRoutingId !== next[index].publisherRoutingId ||
230
+ publisher.state !== next[index].state)) {
231
+ this.sockets.notifyFanoutTopology(channelName);
232
+ }
233
+ }
234
+ }
235
+ async reconcileConnection(connectionId, target) {
236
+ if (target.descriptor.state !== Locations_1.ZLinkFrameworkRuntimeState.Serving) {
237
+ await this.closeConnection(target);
238
+ }
239
+ else if (target.connection === undefined) {
240
+ await this.openConnection(connectionId, target);
196
241
  }
197
242
  }
198
- async openConnection(connectionId, descriptor) {
199
- let target;
243
+ async openConnection(connectionId, target) {
244
+ const descriptor = target.descriptor;
245
+ let connection;
200
246
  const subscriber = this.sockets.openFanoutSubscriberConnection(descriptor.channelName, connectionId, descriptor.endpoint, {
201
247
  onReady: () => {
202
- const current = this.connections.get(connectionId);
203
- if (target !== undefined && current === target) {
204
- current.state = 'ready';
205
- this.sockets.admitFanoutPublisher(descriptor, connectionId);
248
+ if (connection !== undefined && target.connection === connection) {
249
+ connection.state = 'ready';
250
+ this.sockets.admitFanoutPublisher(target.descriptor, connectionId);
206
251
  }
207
252
  },
208
253
  onTerminated: () => {
209
- const current = this.connections.get(connectionId);
210
- if (target !== undefined && current === target && current.reconnectEligible) {
211
- this.sockets.removeFanoutPublisher(descriptor, connectionId);
212
- current.state = 'connecting';
254
+ if (connection !== undefined && target.connection === connection) {
255
+ this.sockets.removeFanoutPublisher(target.descriptor, connectionId);
256
+ connection.state = 'connecting';
257
+ const terminated = connection;
213
258
  setImmediate(() => {
214
- void this.replaceConnection(current).catch((error) => this.locationRuntime.reportDiscoveryFailure(error));
259
+ void this.replaceConnection(target, terminated).catch((error) => this.locationRuntime.reportDiscoveryFailure(error));
215
260
  });
216
261
  }
217
262
  }
218
263
  });
219
- target = {
220
- descriptor,
264
+ connection = {
221
265
  connectionId,
222
- subscriber,
223
- reconnectEligible: true,
224
266
  stopReceiver: async () => { },
225
267
  state: 'connecting'
226
268
  };
227
- await this.lane.run(() => this.connections.set(connectionId, target));
228
- target.stopReceiver = this.onSubscriberOpened(descriptor.channelName, connectionId, subscriber);
269
+ const opened = connection;
270
+ await this.lane.run(() => (target.connection = opened));
271
+ connection.stopReceiver = this.onSubscriberOpened(descriptor.channelName, connectionId, subscriber);
229
272
  }
230
- async closeConnection(connectionId) {
231
- const current = await this.lane.run(() => {
232
- const target = this.connections.get(connectionId);
233
- if (target !== undefined) {
234
- target.reconnectEligible = false;
235
- this.connections.delete(connectionId);
236
- }
237
- return target;
273
+ async removeTarget(connectionId, target) {
274
+ const detached = await this.lane.run(() => {
275
+ if (this.targets.get(connectionId) !== target)
276
+ return undefined;
277
+ this.targets.delete(connectionId);
278
+ return this.detachConnection(target);
238
279
  });
280
+ await this.closeDetachedConnection(target.descriptor, detached);
281
+ }
282
+ async closeConnection(target) {
283
+ const detached = await this.lane.run(() => this.detachConnection(target));
284
+ await this.closeDetachedConnection(target.descriptor, detached);
285
+ }
286
+ detachConnection(target) {
287
+ const connection = target.connection;
288
+ target.connection = undefined;
289
+ return connection;
290
+ }
291
+ async closeDetachedConnection(descriptor, current) {
239
292
  if (current === undefined)
240
293
  return;
241
- this.sockets.removeFanoutPublisher(current.descriptor, connectionId);
242
- await current.stopReceiver();
243
- await this.sockets.closeFanoutSubscriberConnection(connectionId);
294
+ this.sockets.removeFanoutPublisher(descriptor, current.connectionId);
295
+ await (0, event_loop_resources_1.closeResources)([
296
+ { close: () => current.stopReceiver() },
297
+ { close: () => this.sockets.closeFanoutSubscriberConnection(current.connectionId) }
298
+ ]);
244
299
  }
245
- async replaceConnection(expected) {
300
+ async replaceConnection(target, expected) {
246
301
  const prepared = await this.lane.run(() => {
247
302
  const controller = this.controller;
248
- if (this.connections.get(expected.connectionId) !== expected ||
249
- !expected.reconnectEligible ||
303
+ if (this.targets.get(expected.connectionId) !== target ||
304
+ target.connection !== expected ||
250
305
  controller === undefined)
251
306
  return undefined;
252
- return { controller, descriptor: expected.descriptor };
307
+ return controller;
253
308
  });
254
309
  if (prepared === undefined) {
255
310
  return;
256
311
  }
257
- await this.closeConnection(expected.connectionId);
258
- if (await this.lane.run(() => this.controller === prepared.controller)) {
259
- await this.openConnection(expected.connectionId, prepared.descriptor);
312
+ await this.closeConnection(target);
313
+ if (await this.lane.run(() => this.controller === prepared && this.targets.get(expected.connectionId) === target)) {
314
+ await this.reconcileConnection(expected.connectionId, target);
260
315
  }
261
316
  }
262
317
  async listLivePublishers(channelName, signal) {
263
318
  const rows = [];
264
319
  let continuationToken;
265
320
  do {
266
- const page = await this.store.listFanoutPublishers(channelName, { pageSize: 1000, continuationToken }, signal);
321
+ const page = await this.store.listFanoutPublishers(channelName, { pageSize: Stores_1.ZLINK_PROVIDER_MAX_PAGE_SIZE, continuationToken }, signal);
267
322
  rows.push(...page.items);
268
323
  continuationToken = page.continuationToken;
269
324
  } while (continuationToken !== undefined);
270
325
  const live = [];
271
326
  for (const descriptor of rows) {
272
- if (descriptor.state !== Locations_1.ZLinkFrameworkRuntimeState.Serving)
273
- continue;
274
327
  const lease = await this.storeOwnerLease(descriptor.ownerId, signal);
275
328
  if (lease.kind === 'found' &&
276
329
  lease.token.leaseGeneration === descriptor.leaseGeneration &&
@@ -288,13 +341,19 @@ class ZLinkFanoutLocationRuntime {
288
341
  if (owner === undefined)
289
342
  return;
290
343
  const descriptors = await this.lane.run(() => [...this.localDescriptors.values()]);
291
- for (const descriptor of descriptors) {
292
- await this.store.removeFanoutPublisher({
293
- channelName: descriptor.channelName,
294
- publisherRid: descriptor.publisherRid
295
- }, owner, signal);
344
+ try {
345
+ await (0, event_loop_resources_1.closeResources)(descriptors.map((descriptor) => ({
346
+ close: async () => {
347
+ await this.store.removeFanoutPublisher({
348
+ channelName: descriptor.channelName,
349
+ publisherRid: descriptor.publisherRid
350
+ }, owner, signal);
351
+ }
352
+ })));
353
+ }
354
+ finally {
355
+ await this.lane.run(() => this.localDescriptors.clear());
296
356
  }
297
- await this.lane.run(() => this.localDescriptors.clear());
298
357
  }
299
358
  requireOwnerToken() {
300
359
  const token = this.locationRuntime.currentOwnerToken;
@@ -316,13 +375,6 @@ class ZLinkFanoutLocationRuntime {
316
375
  }
317
376
  }
318
377
  exports.ZLinkFanoutLocationRuntime = ZLinkFanoutLocationRuntime;
319
- function advertisedEndpoint(boundEndpoint, advertiseHost) {
320
- const result = (0, configuration_1.buildAdvertisedEndpoint)(boundEndpoint, advertiseHost);
321
- if (result === undefined) {
322
- throw new configuration_1.ZLinkConfigurationException(`Fanout publisher bound endpoint '${boundEndpoint}' cannot be advertised.`);
323
- }
324
- return result;
325
- }
326
378
  function fanoutConnectionId(descriptor) {
327
379
  return (`${descriptor.channelName}\0${String(descriptor.publisherRid)}\0` +
328
380
  descriptor.lifecycleGeneration.toString());
@@ -1,5 +1,6 @@
1
1
  import type { Message } from '../../contracts/Common/Message';
2
2
  import type { ZLinkBackendMessageLike as MessageLike } from '../backend/runtime-values';
3
3
  import { ZLinkChannelMessageKind } from './channel-envelope';
4
+ export declare const SPOT_DIRECT_ENVELOPE = "zlink.framework.spot-direct.v1";
4
5
  export declare function encodeSpotDirectEnvelope(kind: ZLinkChannelMessageKind.Request | ZLinkChannelMessageKind.Command, channelName: string, packetName: string | undefined, payload: unknown, metadata?: ReadonlyMap<string, string>): MessageLike;
5
6
  export declare function decodeSpotDirectReply<TReply>(parts: readonly Message[]): TReply;
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SPOT_DIRECT_ENVELOPE = void 0;
3
4
  exports.encodeSpotDirectEnvelope = encodeSpotDirectEnvelope;
4
5
  exports.decodeSpotDirectReply = decodeSpotDirectReply;
5
6
  const configuration_1 = require("../configuration");
6
- const SPOT_DIRECT_ENVELOPE = 'zlink.framework.spot-direct.v1';
7
+ exports.SPOT_DIRECT_ENVELOPE = 'zlink.framework.spot-direct.v1';
7
8
  function encodeSpotDirectEnvelope(kind, channelName, packetName, payload, metadata) {
8
9
  return Buffer.from(JSON.stringify({
9
- marker: SPOT_DIRECT_ENVELOPE,
10
+ marker: exports.SPOT_DIRECT_ENVELOPE,
10
11
  kind,
11
12
  channelName,
12
13
  packetName,
@@ -19,7 +20,7 @@ function decodeSpotDirectReply(parts) {
19
20
  throw new configuration_1.ZLinkConfigurationException('Spot direct reply is missing.');
20
21
  }
21
22
  const reply = JSON.parse(parts[0].data().toString());
22
- if (reply.marker !== SPOT_DIRECT_ENVELOPE) {
23
+ if (reply.marker !== exports.SPOT_DIRECT_ENVELOPE) {
23
24
  throw new configuration_1.ZLinkConfigurationException('Spot direct reply marker is invalid.');
24
25
  }
25
26
  if (reply.ok !== true) {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotNodeRouteTransport = void 0;
4
+ const Registration_1 = require("../../contracts/Configuration/Registration");
4
5
  const abort_1 = require("../abort");
5
6
  const channel_envelope_1 = require("./channel-envelope");
6
7
  class ZLinkSpotNodeRouteTransport {
@@ -29,7 +30,7 @@ class ZLinkSpotNodeRouteTransport {
29
30
  if (router === undefined) {
30
31
  return undefined;
31
32
  }
32
- const effectiveTimeoutMs = timeoutMs ?? this.registration.requestTimeoutMs ?? 30_000;
33
+ const effectiveTimeoutMs = timeoutMs ?? this.registration.requestTimeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS;
33
34
  (0, abort_1.throwIfAborted)(signal);
34
35
  const operation = router.requestToSpot(target.targetNodeRid, target.spotId, parts, effectiveTimeoutMs);
35
36
  return (0, abort_1.awaitWithAbort)(operation, signal, () => {
@@ -49,7 +50,7 @@ class ZLinkSpotNodeRouteTransport {
49
50
  if (router === undefined) {
50
51
  return undefined;
51
52
  }
52
- const effectiveTimeoutMs = timeoutMs ?? this.registration.requestTimeoutMs ?? 30_000;
53
+ const effectiveTimeoutMs = timeoutMs ?? this.registration.requestTimeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS;
53
54
  (0, abort_1.throwIfAborted)(signal);
54
55
  const operation = router.requestToSpot(target.targetNodeRid, target.spotId, request, effectiveTimeoutMs);
55
56
  return (0, abort_1.awaitWithAbort)(operation, signal, () => {
@@ -0,0 +1,2 @@
1
+ /** Formats absent diagnostic text consistently across the Node runtime. */
2
+ export declare function diagnosticTextOrAbsent(value: string | null | undefined): string;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.diagnosticTextOrAbsent = diagnosticTextOrAbsent;
4
+ /** Formats absent diagnostic text consistently across the Node runtime. */
5
+ function diagnosticTextOrAbsent(value) {
6
+ return value ?? '<none>';
7
+ }
@@ -1,3 +1,6 @@
1
+ import { ZLinkRuntimeDispatchErrorReason as ZLinkDispatchErrorReason } from '../../contracts/Dispatch/ZLinkDispatchOptions';
2
+ export declare function dispatchReasonFromError(error: unknown): ZLinkDispatchErrorReason;
3
+ export declare const ERROR_MESSAGE_MAX_LENGTH = 512;
1
4
  export declare function dispatchErrorDetails(error: unknown): {
2
5
  readonly errorType?: string;
3
6
  readonly errorMessage?: string;
@@ -1,7 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERROR_MESSAGE_MAX_LENGTH = void 0;
4
+ exports.dispatchReasonFromError = dispatchReasonFromError;
3
5
  exports.dispatchErrorDetails = dispatchErrorDetails;
4
- const ERROR_MESSAGE_MAX_LENGTH = 512;
6
+ const ZLinkFrameworkException_1 = require("../../contracts/Errors/ZLinkFrameworkException");
7
+ const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
8
+ const framework_errors_internal_1 = require("../framework-errors-internal");
9
+ function dispatchReasonFromError(error) {
10
+ if (!(error instanceof ZLinkFrameworkException_1.ZLinkFrameworkException))
11
+ return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerException;
12
+ const origin = (0, framework_errors_internal_1.internalFrameworkErrorKind)(error);
13
+ if (origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PayloadDecodeFailed)
14
+ return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.PayloadDecodeFailed;
15
+ if (origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotGenerationStale ||
16
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorGenerationStale ||
17
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotMoving ||
18
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving ||
19
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale)
20
+ return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.StaleTarget;
21
+ switch (error.kind) {
22
+ case ZLinkFrameworkException_1.ZLinkFrameworkErrorKind.NotFound:
23
+ return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerMissing;
24
+ case ZLinkFrameworkException_1.ZLinkFrameworkErrorKind.ProtocolError:
25
+ return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.InvalidFrame;
26
+ case ZLinkFrameworkException_1.ZLinkFrameworkErrorKind.ShuttingDown:
27
+ return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.Shutdown;
28
+ default:
29
+ return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerException;
30
+ }
31
+ }
32
+ exports.ERROR_MESSAGE_MAX_LENGTH = 512;
5
33
  const CREDENTIAL_PATTERNS = [
6
34
  [/Authorization\s*:\s*(?:(?:Bearer|Basic)\s+)?[^\s,;]+/gi, 'Authorization: <redacted>'],
7
35
  [/Bearer\s+[^\s,;]+/gi, 'Bearer <redacted>'],
@@ -51,5 +79,5 @@ function sanitizeErrorMessage(message) {
51
79
  pattern.lastIndex = 0;
52
80
  sanitized = sanitized.replace(pattern, replacement);
53
81
  }
54
- return sanitized.slice(0, ERROR_MESSAGE_MAX_LENGTH);
82
+ return sanitized.slice(0, exports.ERROR_MESSAGE_MAX_LENGTH);
55
83
  }
@@ -1,4 +1,10 @@
1
1
  import type { ZLinkFlowOrigin } from '../../contracts';
2
+ /**
3
+ * Spec 27 §3 defines the flow_origin value set as lowercase
4
+ * (`inbound|timer|application|lifecycle`); every language emits these exact
5
+ * strings so records remain comparable across runtimes (spec 26 §3.1).
6
+ */
7
+ export declare const FLOW_ORIGIN_VALUES: Readonly<Record<ZLinkFlowOrigin, string>>;
2
8
  export interface ZLinkFlowContextValue {
3
9
  readonly flowId: string;
4
10
  readonly flowOrigin: ZLinkFlowOrigin;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FLOW_ORIGIN_VALUES = void 0;
3
4
  exports.currentFlowContext = currentFlowContext;
4
5
  exports.currentOrCreateFlow = currentOrCreateFlow;
5
6
  exports.runWithFlow = runWithFlow;
@@ -7,6 +8,19 @@ exports.runWithOutboundFlow = runWithOutboundFlow;
7
8
  exports.createInboundFlow = createInboundFlow;
8
9
  const node_async_hooks_1 = require("node:async_hooks");
9
10
  const node_crypto_1 = require("node:crypto");
11
+ const FLOW_UUID_BYTES = 16;
12
+ const FLOW_UUID_VARIANT_BYTE = 8;
13
+ /**
14
+ * Spec 27 §3 defines the flow_origin value set as lowercase
15
+ * (`inbound|timer|application|lifecycle`); every language emits these exact
16
+ * strings so records remain comparable across runtimes (spec 26 §3.1).
17
+ */
18
+ exports.FLOW_ORIGIN_VALUES = Object.freeze({
19
+ Inbound: 'inbound',
20
+ Timer: 'timer',
21
+ Application: 'application',
22
+ Lifecycle: 'lifecycle'
23
+ });
10
24
  const flowStorage = new node_async_hooks_1.AsyncLocalStorage();
11
25
  function currentFlowContext() {
12
26
  return flowStorage.getStore();
@@ -57,12 +71,12 @@ function createInboundFlow(flowId, flowOrigin, createIfAbsent, streamSessionId)
57
71
  return { flowId: flowId ?? createFlowId(), flowOrigin: flowOrigin ?? 'Inbound', streamSessionId };
58
72
  }
59
73
  function createFlowId() {
60
- const bytes = (0, node_crypto_1.randomBytes)(16);
74
+ const bytes = (0, node_crypto_1.randomBytes)(FLOW_UUID_BYTES);
61
75
  // Date.now() is always within 48 bits, which is exactly the UUIDv7
62
76
  // timestamp field.
63
77
  bytes.writeUIntBE(Date.now(), 0, 6);
64
78
  bytes[6] = 0x70 | (bytes[6] & 0x0f);
65
- bytes[8] = 0x80 | (bytes[8] & 0x3f);
79
+ bytes[FLOW_UUID_VARIANT_BYTE] = 0x80 | (bytes[FLOW_UUID_VARIANT_BYTE] & 0x3f);
66
80
  const hex = bytes.toString('hex');
67
81
  return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
68
82
  }
@@ -1,15 +1,17 @@
1
1
  import type { ZLinkLocationRuntimeQuery } from '../../contracts';
2
- import type { ZLinkActorLocation, ZLinkPeerLocation, ZLinkRouteLocation, ZLinkSpotLocation } from '../../contracts/Locations/Rows';
3
2
  import type { ZLinkActorLocationKey, ZLinkLocationKey, ZLinkRouteLocationKey, ZLinkSpotLocationKey } from '../../contracts/Locations/Keys';
3
+ import type { ZLinkActorLocation, ZLinkPeerLocation, ZLinkRouteLocation, ZLinkSpotLocation } from '../../contracts/Locations/Rows';
4
+ import type { ZLinkBackendSocketMonitor, ZLinkBackendSocketMonitorEvent } from '../backend';
4
5
  import { type ZLinkAutoConnectDesiredSetChange, type ZLinkLocationMonitoringRegistration, type ZLinkPollingMonitoringRegistration, type ZLinkRuntimeEvent, type ZLinkRuntimeEventHandler, type ZLinkSocketMonitoringRegistration } from './internal-event-contracts';
5
6
  export { ZLinkLocationActorEventKind, ZLinkLocationPeerEventKind, ZLinkLocationRouteEventKind, ZLinkLocationSpotEventKind, ZLinkSocketNativeEventType } from './internal-event-contracts';
6
- import type { ZLinkBackendSocketMonitor, ZLinkBackendSocketMonitorEvent } from '../backend';
7
7
  export interface ZLinkActorOwnerLeaseObservation {
8
8
  readonly actorId: string;
9
9
  readonly authorityGeneration: bigint;
10
10
  readonly remainingLeaseMs: number;
11
11
  readonly decision: 'owner_unavailable';
12
12
  }
13
+ export declare function isRelocationDebugEnabled(): boolean;
14
+ export declare function relocationDebug(marker: string, detail: Record<string, unknown>): void;
13
15
  /** Emits high-cardinality resolver detail only on the existing relocation debug path. */
14
16
  export declare function emitActorOwnerLeaseObservation(observation: ZLinkActorOwnerLeaseObservation): void;
15
17
  /** Runtime composition port. It is intentionally absent from the public contract barrel. */
@@ -15,7 +15,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.ZLinkLocationMonitoringEventEmitter = exports.ZLinkLocationRuntimeMonitoringSource = exports.ZLinkSocketMonitoringSource = exports.DefaultZLinkRuntimeEventPublisher = exports.ZLinkSocketNativeEventType = exports.ZLinkLocationSpotEventKind = exports.ZLinkLocationRouteEventKind = exports.ZLinkLocationPeerEventKind = exports.ZLinkLocationActorEventKind = void 0;
18
+ exports.isRelocationDebugEnabled = isRelocationDebugEnabled;
19
+ exports.relocationDebug = relocationDebug;
18
20
  exports.emitActorOwnerLeaseObservation = emitActorOwnerLeaseObservation;
21
+ const node_async_hooks_1 = require("node:async_hooks");
22
+ const state_lane_1 = require("../execution/state-lane");
23
+ const routing_id_1 = require("../routing-id");
19
24
  const internal_event_contracts_1 = require("./internal-event-contracts");
20
25
  var internal_event_contracts_2 = require("./internal-event-contracts");
21
26
  Object.defineProperty(exports, "ZLinkLocationActorEventKind", { enumerable: true, get: function () { return internal_event_contracts_2.ZLinkLocationActorEventKind; } });
@@ -23,14 +28,19 @@ Object.defineProperty(exports, "ZLinkLocationPeerEventKind", { enumerable: true,
23
28
  Object.defineProperty(exports, "ZLinkLocationRouteEventKind", { enumerable: true, get: function () { return internal_event_contracts_2.ZLinkLocationRouteEventKind; } });
24
29
  Object.defineProperty(exports, "ZLinkLocationSpotEventKind", { enumerable: true, get: function () { return internal_event_contracts_2.ZLinkLocationSpotEventKind; } });
25
30
  Object.defineProperty(exports, "ZLinkSocketNativeEventType", { enumerable: true, get: function () { return internal_event_contracts_2.ZLinkSocketNativeEventType; } });
26
- const node_async_hooks_1 = require("node:async_hooks");
27
- const state_lane_1 = require("../execution/state-lane");
28
- const routing_id_1 = require("../routing-id");
29
31
  const ZLINK_DISCONNECT_REASON_HANDSHAKE_FAILED = 3;
30
32
  const detachedStateLaneResource = new node_async_hooks_1.AsyncResource('zlink:location-runtime-monitoring-source');
33
+ function isRelocationDebugEnabled() {
34
+ return process.env.ZLINK_DEBUG_FRAMEWORK_RELOCATION === '1';
35
+ }
36
+ function relocationDebug(marker, detail) {
37
+ if (!isRelocationDebugEnabled())
38
+ return;
39
+ console.error('[zlink.runtime.relocation]', marker, detail);
40
+ }
31
41
  /** Emits high-cardinality resolver detail only on the existing relocation debug path. */
32
42
  function emitActorOwnerLeaseObservation(observation) {
33
- if (process.env.ZLINK_DEBUG_FRAMEWORK_RELOCATION !== '1')
43
+ if (!isRelocationDebugEnabled())
34
44
  return;
35
45
  console.error('[zlink.runtime.relocation]', 'actor_route.owner_lease_observed', observation);
36
46
  }
@@ -1,5 +1,5 @@
1
1
  import { type ZLinkDiagnosticsOptions, type ZLinkMessageFlowLogMode } from '../../contracts';
2
- import { ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome, type ZLinkRuntimeMessageFlowResult, type ZLinkRuntimeMessageFlowEvent } from '../../contracts/Dispatch/ZLinkDispatchOptions';
2
+ import { ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome, type ZLinkRuntimeMessageFlowEvent, type ZLinkRuntimeMessageFlowResult } from '../../contracts/Dispatch/ZLinkDispatchOptions';
3
3
  import type { ZLinkDispatchErrorSink } from './dispatch-error-port';
4
4
  export interface ZLinkMessageFlowModeCell {
5
5
  mode: ZLinkMessageFlowLogMode;