@zlink-systems/framework 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. package/src/runtime/workers/index.ts +68 -29
@@ -5,10 +5,7 @@ import type {
5
5
  ZLinkStreamCompressionCodec
6
6
  } from '../../contracts';
7
7
  import { ZLinkConfigurationException } from './ConfigurationException';
8
- import {
9
- copyRouteInternalState,
10
- markRouteTransportDeclared
11
- } from './RouteChannelInternalState';
8
+ import { copyRouteInternalState, markRouteTransportDeclared } from './RouteChannelInternalState';
12
9
  import type {
13
10
  ZLinkChannelOptions,
14
11
  ZLinkFrameworkRegistration,
@@ -53,38 +50,49 @@ export function toChannelMap(
53
50
  channels: ZLinkFrameworkRegistrationOptions['channels'],
54
51
  network: ZLinkNetworkOptions
55
52
  ): Map<string, ZLinkChannelOptions> {
56
- return new Map(Object.entries(channels ?? {}).map(([name, channel]) => {
57
- const server = channel.server === undefined
58
- ? undefined
59
- : normalizeListener(channel.server, network);
60
- const publisher = channel.publisher === undefined
61
- ? undefined
62
- : normalizeListener(channel.publisher, network);
63
- // In-place: channel.client/subscriber.manualConnections can be the same
64
- // array a live RuntimeEndpointConnections handle mutates, so this must
65
- // not replace the array or the containing client/subscriber object.
66
- normalizeEndpointList(channel.client?.manualConnections);
67
- normalizeEndpointList(channel.subscriber?.manualConnections);
68
- return [name, {
69
- ...channel,
70
- ...(server === undefined ? {} : { server }),
71
- ...(publisher === undefined ? {} : { publisher }),
72
- requestTimeoutMs: normalizeOptionalPositiveInteger(channel.requestTimeoutMs, `${name}.requestTimeoutMs`)
73
- }];
74
- }));
53
+ return new Map(
54
+ Object.entries(channels ?? {}).map(([name, channel]) => {
55
+ const server =
56
+ channel.server === undefined ? undefined : normalizeListener(channel.server, network);
57
+ const publisher =
58
+ channel.publisher === undefined ? undefined : normalizeListener(channel.publisher, network);
59
+ // In-place: channel.client/subscriber.manualConnections can be the same
60
+ // array a live RuntimeEndpointConnections handle mutates, so this must
61
+ // not replace the array or the containing client/subscriber object.
62
+ normalizeEndpointList(channel.client?.manualConnections);
63
+ normalizeEndpointList(channel.subscriber?.manualConnections);
64
+ return [
65
+ name,
66
+ {
67
+ ...channel,
68
+ ...(server === undefined ? {} : { server }),
69
+ ...(publisher === undefined ? {} : { publisher }),
70
+ requestTimeoutMs: normalizeOptionalPositiveInteger(
71
+ channel.requestTimeoutMs,
72
+ `${name}.requestTimeoutMs`
73
+ )
74
+ }
75
+ ];
76
+ })
77
+ );
75
78
  }
76
79
 
77
80
  export function toStreamNodeMap(
78
81
  streamNodes: ZLinkFrameworkRegistrationOptions['streamNodes'],
79
82
  network: ZLinkNetworkOptions
80
83
  ): Map<string, ZLinkStreamNodeOptions> {
81
- return new Map(Object.entries(streamNodes ?? {}).map(([name, streamNode]) => {
82
- const normalized = normalizeListener(streamNode, network);
83
- return [name, {
84
- ...normalized,
85
- maxMessageSize: streamNode.maxMessageSize ?? DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE
86
- }];
87
- }));
84
+ return new Map(
85
+ Object.entries(streamNodes ?? {}).map(([name, streamNode]) => {
86
+ const normalized = normalizeListener(streamNode, network);
87
+ return [
88
+ name,
89
+ {
90
+ ...normalized,
91
+ maxMessageSize: streamNode.maxMessageSize ?? DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE
92
+ }
93
+ ];
94
+ })
95
+ );
88
96
  }
89
97
 
90
98
  export function toRouteChannelOptions(
@@ -112,7 +120,9 @@ export function toRouteChannelOptions(
112
120
  continue;
113
121
  }
114
122
  if (routeOptions.has(channelName)) {
115
- throw new ZLinkConfigurationException(`Route mesh channel '${channelName}' is already registered.`);
123
+ throw new ZLinkConfigurationException(
124
+ `Route mesh channel '${channelName}' is already registered.`
125
+ );
116
126
  }
117
127
  const routeChannel = {
118
128
  routerChannelId: channelName,
@@ -139,7 +149,10 @@ export function requirePositiveInteger(label: string, value: number | undefined)
139
149
  }
140
150
  }
141
151
 
142
- export function normalizeOptionalPositiveInteger(value: number | undefined, label: string): number | undefined {
152
+ export function normalizeOptionalPositiveInteger(
153
+ value: number | undefined,
154
+ label: string
155
+ ): number | undefined {
143
156
  requirePositiveInteger(label, value);
144
157
  return value;
145
158
  }
@@ -149,19 +162,18 @@ export function hasSpotNode(registration: ZLinkFrameworkRegistration): boolean {
149
162
  }
150
163
 
151
164
  export function hasActorManager(registration: ZLinkFrameworkRegistration): boolean {
152
- const hasObjectCapability = [...registration.spotNodes.values()].some(node =>
153
- node.objectRole === 'client'
154
- || node.objectRole === 'server'
155
- || (
156
- node.actorFactories instanceof Map
165
+ const hasObjectCapability = [...registration.spotNodes.values()].some(
166
+ (node) =>
167
+ node.objectRole === 'client' ||
168
+ node.objectRole === 'server' ||
169
+ (node.actorFactories instanceof Map
157
170
  ? node.actorFactories.size > 0
158
- : Object.keys(node.actorFactories ?? {}).length > 0
159
- )
160
- || Object.keys(node.actorFactoryRegistrations ?? {}).length > 0
171
+ : Object.keys(node.actorFactories ?? {}).length > 0) ||
172
+ Object.keys(node.actorFactoryRegistrations ?? {}).length > 0
161
173
  );
162
- return hasObjectCapability && (
163
- registration.locations.useInMemoryStores
164
- || registration.locations.storeInstance !== undefined
174
+ return (
175
+ hasObjectCapability &&
176
+ (registration.locations.useInMemoryStores || registration.locations.storeInstance !== undefined)
165
177
  );
166
178
  }
167
179
 
@@ -179,7 +191,9 @@ export function toTypeMap(value: ZLinkSpotNodeOptions['actorFactories']): Map<st
179
191
  return new Map(Object.entries(value));
180
192
  }
181
193
 
182
- export function typeMapToRecord(value: ZLinkSpotNodeOptions['actorFactories']): Record<string, Type> {
194
+ export function typeMapToRecord(
195
+ value: ZLinkSpotNodeOptions['actorFactories']
196
+ ): Record<string, Type> {
183
197
  if (value === undefined) {
184
198
  return {};
185
199
  }
@@ -193,8 +207,12 @@ function isTypeMap(value: ZLinkSpotNodeOptions['actorFactories']): value is Map<
193
207
  return value instanceof Map;
194
208
  }
195
209
 
196
- export function actorFactoriesFromSpotNodes(spotNodes: ReadonlyMap<string, ZLinkSpotNodeOptions>): Map<string, Type> {
197
- const actorCapableNodes = [...spotNodes.values()].filter((spotNode) => toTypeMap(spotNode.actorFactories).size > 0);
210
+ export function actorFactoriesFromSpotNodes(
211
+ spotNodes: ReadonlyMap<string, ZLinkSpotNodeOptions>
212
+ ): Map<string, Type> {
213
+ const actorCapableNodes = [...spotNodes.values()].filter(
214
+ (spotNode) => toTypeMap(spotNode.actorFactories).size > 0
215
+ );
198
216
  if (actorCapableNodes.length === 0) {
199
217
  return new Map();
200
218
  }
@@ -209,44 +227,49 @@ export function toSpotNodeMap(
209
227
  return new Map();
210
228
  }
211
229
  if (!Array.isArray(value)) {
212
- return new Map(Object.entries(value).map(([name, spotNode]) => [
213
- name,
214
- normalizeSpotNodeOptions(spotNode, network)
215
- ]));
230
+ return new Map(
231
+ Object.entries(value).map(([name, spotNode]) => [
232
+ name,
233
+ normalizeSpotNodeOptions(spotNode, network)
234
+ ])
235
+ );
216
236
  }
217
- return new Map(value.map((spotNode) => {
218
- if (typeof spotNode === 'string') {
219
- return [spotNode, normalizeSpotNodeOptions({}, network)];
220
- }
221
- const { name, ...options } = spotNode;
222
- return [name, normalizeSpotNodeOptions(options, network)];
223
- }));
237
+ return new Map(
238
+ value.map((spotNode) => {
239
+ if (typeof spotNode === 'string') {
240
+ return [spotNode, normalizeSpotNodeOptions({}, network)];
241
+ }
242
+ const { name, ...options } = spotNode;
243
+ return [name, normalizeSpotNodeOptions(options, network)];
244
+ })
245
+ );
224
246
  }
225
247
 
226
248
  function normalizeSpotNodeOptions(
227
249
  spotNode: ZLinkSpotNodeOptions,
228
250
  network: ZLinkNetworkOptions
229
251
  ): ZLinkSpotNodeOptions {
230
- const router = spotNode.router === undefined
231
- ? undefined
232
- : normalizeListener(spotNode.router, network);
252
+ const router =
253
+ spotNode.router === undefined ? undefined : normalizeListener(spotNode.router, network);
233
254
  return {
234
255
  ...spotNode,
235
- router: router === undefined
236
- ? undefined
237
- : {
238
- ...router,
239
- routingId: router.routingId ?? spotNode.routingId,
240
- manualConnections: normalizeEndpointList(router.manualConnections),
241
- manualPeerConnections: normalizeManualPeerConnections(router.manualPeerConnections)
242
- },
243
- pubSub: spotNode.pubSub === undefined
244
- ? undefined
245
- : {
246
- ...spotNode.pubSub,
247
- routingId: spotNode.pubSub.routingId ?? spotNode.routingId,
248
- manualConnections: normalizeEndpointList(spotNode.pubSub.manualConnections)
249
- }
256
+ router:
257
+ router === undefined
258
+ ? undefined
259
+ : {
260
+ ...router,
261
+ routingId: router.routingId ?? spotNode.routingId,
262
+ manualConnections: normalizeEndpointList(router.manualConnections),
263
+ manualPeerConnections: normalizeManualPeerConnections(router.manualPeerConnections)
264
+ },
265
+ pubSub:
266
+ spotNode.pubSub === undefined
267
+ ? undefined
268
+ : {
269
+ ...spotNode.pubSub,
270
+ routingId: spotNode.pubSub.routingId ?? spotNode.routingId,
271
+ manualConnections: normalizeEndpointList(spotNode.pubSub.manualConnections)
272
+ }
250
273
  };
251
274
  }
252
275
 
@@ -257,15 +280,18 @@ function normalizeListener<
257
280
  readonly advertiseHost?: string;
258
281
  readonly port?: number;
259
282
  }
260
- >(listener: T, network: ZLinkNetworkOptions): T & {
283
+ >(
284
+ listener: T,
285
+ network: ZLinkNetworkOptions
286
+ ): T & {
261
287
  readonly bind: string;
262
288
  readonly bindHost?: string;
263
289
  readonly port: number;
264
290
  } {
265
291
  const usesConfiguredEndpoint = listener.bind !== undefined && listener.port === undefined;
266
292
  const port = listener.port ?? (usesConfiguredEndpoint ? endpointPort(listener.bind!) : 0);
267
- const bindHost = listener.bindHost
268
- ?? (usesConfiguredEndpoint ? endpointHost(listener.bind!) : network.bindHost);
293
+ const bindHost =
294
+ listener.bindHost ?? (usesConfiguredEndpoint ? endpointHost(listener.bind!) : network.bindHost);
269
295
  const bind = usesConfiguredEndpoint
270
296
  ? normalizeEndpoint(listener.bind!)
271
297
  : tcpEndpoint(bindHost ?? network.bindHost, port);
@@ -372,10 +398,14 @@ export function normalizeStreamCompression(
372
398
  return undefined;
373
399
  }
374
400
  if (value.disabled === true && value.codec !== undefined) {
375
- throw new ZLinkConfigurationException('STREAM compression codec cannot be set when compression is disabled.');
401
+ throw new ZLinkConfigurationException(
402
+ 'STREAM compression codec cannot be set when compression is disabled.'
403
+ );
376
404
  }
377
405
  if (value.codec !== undefined && !isStreamCompressionCodec(value.codec)) {
378
- throw new ZLinkConfigurationException('STREAM compression codec must provide compress and decompress functions.');
406
+ throw new ZLinkConfigurationException(
407
+ 'STREAM compression codec must provide compress and decompress functions.'
408
+ );
379
409
  }
380
410
  return {
381
411
  disabled: value.disabled,
@@ -384,10 +414,12 @@ export function normalizeStreamCompression(
384
414
  }
385
415
 
386
416
  export function isStreamCompressionCodec(value: unknown): value is ZLinkStreamCompressionCodec {
387
- return typeof value === 'object'
388
- && value !== null
389
- && typeof (value as { compress?: unknown }).compress === 'function'
390
- && typeof (value as { decompress?: unknown }).decompress === 'function';
417
+ return (
418
+ typeof value === 'object' &&
419
+ value !== null &&
420
+ typeof (value as { compress?: unknown }).compress === 'function' &&
421
+ typeof (value as { decompress?: unknown }).decompress === 'function'
422
+ );
391
423
  }
392
424
 
393
425
  export function normalizeLocationRegistration(
@@ -17,17 +17,11 @@ import type {
17
17
  import type { AutoHwmProfileValue } from '@zlink-systems/zlink';
18
18
  import type { ZLinkMessageSerializer } from '../Codecs';
19
19
  import type { ZLinkMessageTypeSelector } from '../Codecs';
20
- import type {
21
- ZLinkApplicationJobQueueProfile,
22
- ZLinkDispatchOptions
23
- } from '../Dispatch';
20
+ import type { ZLinkApplicationJobQueueProfile, ZLinkDispatchOptions } from '../Dispatch';
24
21
  import type { ZLinkLocationStore, ZLinkRelocationStore } from '../Locations';
25
22
  import type { ZLinkNetworkOptions } from './Builders';
26
23
  import type { ZLinkLocationOptionValues } from '../RouteMesh';
27
- import {
28
- ZLinkSpotRelocationCoordinationMode,
29
- ZLinkUserSpotExecutionMode
30
- } from './ObjectRoles';
24
+ import { ZLinkSpotRelocationCoordinationMode, ZLinkUserSpotExecutionMode } from './ObjectRoles';
31
25
 
32
26
  declare const zlinkRelocationConfigurationBrand: unique symbol;
33
27
 
@@ -150,8 +144,9 @@ export interface ZLinkFrameworkRegistrationOptions {
150
144
  readonly routeChannels?: readonly (string | ZLinkRouteChannelOptions)[];
151
145
  readonly streamNodes?: Readonly<Record<string, ZLinkStreamNodeOptions>>;
152
146
  readonly streamCompression?: ZLinkStreamCompressionOptions;
153
- readonly spotNodes?: readonly (string | ZLinkSpotNodeRegistrationOptions)[] |
154
- Readonly<Record<string, ZLinkSpotNodeOptions>>;
147
+ readonly spotNodes?:
148
+ | readonly (string | ZLinkSpotNodeRegistrationOptions)[]
149
+ | Readonly<Record<string, ZLinkSpotNodeOptions>>;
155
150
  readonly spotPublisherClients?: readonly string[];
156
151
  readonly filters?: readonly Type<ZLinkHandlerFilter>[];
157
152
  readonly worker?: ZLinkWorkerOptions;
@@ -275,27 +270,28 @@ export interface ZLinkSpotNodeOptions {
275
270
  readonly entrySpotType?: Type<ZLinkEntrySpot>;
276
271
  readonly spotFactories?: readonly Type<ZLinkSpot>[];
277
272
  readonly spotFactoryRegistrations?: Readonly<
278
- Record<string, ZLinkObjectFactoryRegistration<
279
- ZLinkSpot,
280
- ZLinkSpot,
281
- ZLinkUserSpotFactoryConfiguration
282
- >>
273
+ Record<
274
+ string,
275
+ ZLinkObjectFactoryRegistration<ZLinkSpot, ZLinkSpot, ZLinkUserSpotFactoryConfiguration>
276
+ >
283
277
  >;
284
278
  readonly instanceSpotFactories?: Readonly<Record<string, Type<ZLinkInstanceSpot>>>;
285
279
  readonly instanceSpotFactoryRegistrations?: Readonly<
286
- Record<string, ZLinkObjectFactoryRegistration<
287
- ZLinkInstanceSpot,
288
- ZLinkInstanceSpot,
289
- ZLinkInstanceSpotFactoryConfiguration
290
- >>
280
+ Record<
281
+ string,
282
+ ZLinkObjectFactoryRegistration<
283
+ ZLinkInstanceSpot,
284
+ ZLinkInstanceSpot,
285
+ ZLinkInstanceSpotFactoryConfiguration
286
+ >
287
+ >
291
288
  >;
292
289
  readonly actorFactories?: Readonly<Record<string, Type> | Map<string, Type>>;
293
290
  readonly actorFactoryRegistrations?: Readonly<
294
- Record<string, ZLinkObjectFactoryRegistration<
295
- ZLinkActor,
296
- ZLinkActorFactory,
297
- ZLinkActorFactoryConfiguration
298
- >>
291
+ Record<
292
+ string,
293
+ ZLinkObjectFactoryRegistration<ZLinkActor, ZLinkActorFactory, ZLinkActorFactoryConfiguration>
294
+ >
299
295
  >;
300
296
  readonly meshChannels?: Readonly<Record<string, ZLinkMeshChannelOptions>>;
301
297
  readonly routeSendHandlers?: readonly ZLinkRouteMeshSendHandlerRegistration[];