@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
@@ -122,12 +122,14 @@ class ZLinkStreamSessionRuntime {
122
122
  terminalOwner?.close();
123
123
  };
124
124
  if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Control) {
125
- if ((0, protocol_1.messageToBytes)(payload).length === 0
126
- && (decodedHeader.name === protocol_1.ZLINK_STREAM_HEARTBEAT_PONG
127
- || decodedHeader.name === protocol_1.ZLINK_STREAM_HEARTBEAT_PING)) {
128
- void this.handleControl(decodedHeader, payload).catch(error => {
125
+ if ((0, protocol_1.messageToBytes)(payload).length === 0 &&
126
+ (decodedHeader.name === protocol_1.ZLINK_STREAM_HEARTBEAT_PONG ||
127
+ decodedHeader.name === protocol_1.ZLINK_STREAM_HEARTBEAT_PING)) {
128
+ void this.handleControl(decodedHeader, payload)
129
+ .catch((error) => {
129
130
  this.options.onError?.(error);
130
- }).finally(() => {
131
+ })
132
+ .finally(() => {
131
133
  applicationJobPermit?.releaseAfterInternalProcessing();
132
134
  payload.close();
133
135
  releaseTerminal();
@@ -152,8 +154,8 @@ class ZLinkStreamSessionRuntime {
152
154
  }, () => this.traceShutdownDrop(decodedHeader));
153
155
  return;
154
156
  }
155
- if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Response
156
- || decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Error) {
157
+ if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Response ||
158
+ decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Error) {
157
159
  this.enqueueInfrastructure(async () => {
158
160
  try {
159
161
  await this.dispatchPacket(payload, decodedHeader);
@@ -211,12 +213,12 @@ class ZLinkStreamSessionRuntime {
211
213
  if (forcedClose)
212
214
  return;
213
215
  this.livenessClock.setTimer(() => {
214
- if (this.disposed
215
- || this.disconnected
216
- || !this.context.isExactRetiredActorBinding(actor, retiredSession)) {
216
+ if (this.disposed ||
217
+ this.disconnected ||
218
+ !this.context.isExactRetiredActorBinding(actor, retiredSession)) {
217
219
  return;
218
220
  }
219
- void this.close().catch(error => this.options.onError?.(error));
221
+ void this.close().catch((error) => this.options.onError?.(error));
220
222
  }, ZLINK_STREAM_ACTOR_BINDING_REPLACEMENT_CLOSE_DELAY_MS);
221
223
  };
222
224
  const completeCallback = () => {
@@ -239,15 +241,14 @@ class ZLinkStreamSessionRuntime {
239
241
  completeCallback();
240
242
  };
241
243
  callbackDeadlineTimer = this.livenessClock.setTimer(() => {
242
- if (this.disposed
243
- || this.disconnected
244
- || !this.context.isExactRetiredActorBinding(actor, retiredSession)) {
244
+ if (this.disposed ||
245
+ this.disconnected ||
246
+ !this.context.isExactRetiredActorBinding(actor, retiredSession)) {
245
247
  return;
246
248
  }
247
249
  forcedClose = true;
248
- void this.close().catch(error => this.options.onError?.(error));
249
- }, this.options.replacementCallbackTimeoutMs
250
- ?? ZLINK_STREAM_ACTOR_BINDING_REPLACEMENT_CALLBACK_TIMEOUT_MS);
250
+ void this.close().catch((error) => this.options.onError?.(error));
251
+ }, this.options.replacementCallbackTimeoutMs ?? ZLINK_STREAM_ACTOR_BINDING_REPLACEMENT_CALLBACK_TIMEOUT_MS);
251
252
  const callback = session.onActorBindingReplaced;
252
253
  if (callback === undefined) {
253
254
  completeCallback();
@@ -429,7 +430,7 @@ class ZLinkStreamSessionRuntime {
429
430
  }
430
431
  this.livenessTimer = this.livenessClock.setTimer(() => {
431
432
  this.livenessTimer = undefined;
432
- this.serial.executeInfrastructure(async () => this.runLivenessCheck(), {}, error => this.options.onError?.(error));
433
+ this.serial.executeInfrastructure(async () => this.runLivenessCheck(), {}, (error) => this.options.onError?.(error));
433
434
  }, ZLINK_STREAM_HEARTBEAT_INTERVAL_MS);
434
435
  }
435
436
  async runLivenessCheck() {
@@ -441,8 +442,8 @@ class ZLinkStreamSessionRuntime {
441
442
  await this.closeForLiveness(protocol_1.ZLinkStreamCloseReasonCode.IdleTimeout, 'idle_timeout', 'Application idle timeout.');
442
443
  return;
443
444
  }
444
- if (this.awaitingPongSince !== undefined
445
- && now - this.awaitingPongSince >= ZLINK_STREAM_HEARTBEAT_TIMEOUT_MS) {
445
+ if (this.awaitingPongSince !== undefined &&
446
+ now - this.awaitingPongSince >= ZLINK_STREAM_HEARTBEAT_TIMEOUT_MS) {
446
447
  await this.closeForLiveness(protocol_1.ZLinkStreamCloseReasonCode.HeartbeatTimeout, 'heartbeat_timeout', 'Heartbeat timeout.');
447
448
  return;
448
449
  }
@@ -505,8 +506,7 @@ class ZLinkStreamSessionRuntime {
505
506
  * languages' write-path trace.
506
507
  */
507
508
  traceFrameWritten(kind, packetName, correlationId) {
508
- const reply = kind === protocol_1.ZLinkStreamMessageKind.Response
509
- || kind === protocol_1.ZLinkStreamMessageKind.Error;
509
+ const reply = kind === protocol_1.ZLinkStreamMessageKind.Response || kind === protocol_1.ZLinkStreamMessageKind.Error;
510
510
  const outcome = reply ? ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Replied : ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Sent;
511
511
  (0, diagnostics_1.flowIfEnabled)(this.options.dispatchErrors?.flow, outcome)?.trace({
512
512
  outcome,
@@ -547,14 +547,16 @@ class ZLinkStreamSessionRuntime {
547
547
  return;
548
548
  this.disconnectQueued = true;
549
549
  this.stopLivenessChecks();
550
- void this.serial.executeFinal(async () => {
550
+ void this.serial
551
+ .executeFinal(async () => {
551
552
  this.disconnectQueued = false;
552
553
  if (this.disconnected)
553
554
  return;
554
555
  this.stream.markTransportClosed();
555
556
  this.disconnected = true;
556
557
  await this.complete(error, true);
557
- }).catch(() => {
558
+ })
559
+ .catch(() => {
558
560
  this.disconnectQueued = false;
559
561
  });
560
562
  }
@@ -634,11 +636,16 @@ class ZLinkStreamSessionRuntime {
634
636
  exports.ZLinkStreamSessionRuntime = ZLinkStreamSessionRuntime;
635
637
  function streamShutdownDropMessageKind(kind) {
636
638
  switch (kind) {
637
- case protocol_1.ZLinkStreamMessageKind.Request: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Request;
638
- case protocol_1.ZLinkStreamMessageKind.Response: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Response;
639
- case protocol_1.ZLinkStreamMessageKind.Error: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Error;
640
- case protocol_1.ZLinkStreamMessageKind.Control: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Control;
641
- default: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send;
639
+ case protocol_1.ZLinkStreamMessageKind.Request:
640
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Request;
641
+ case protocol_1.ZLinkStreamMessageKind.Response:
642
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Response;
643
+ case protocol_1.ZLinkStreamMessageKind.Error:
644
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Error;
645
+ case protocol_1.ZLinkStreamMessageKind.Control:
646
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Control;
647
+ default:
648
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send;
642
649
  }
643
650
  }
644
651
  class ZLinkStreamSessionNodeRuntime {
@@ -668,17 +675,15 @@ class ZLinkStreamSessionNodeRuntime {
668
675
  return;
669
676
  }
670
677
  const monitor = this.options.monitor;
671
- monitor?.onEvent(event => this.onMonitorEvent(event));
672
- const running = this.runReceiveLoop(this.receiveAbortController.signal)
673
- .catch((error) => {
678
+ monitor?.onEvent((event) => this.onMonitorEvent(event));
679
+ const running = this.runReceiveLoop(this.receiveAbortController.signal).catch((error) => {
674
680
  if (!this.stopped) {
675
681
  this.options.onError?.(error);
676
682
  }
677
683
  });
678
684
  this.receiveLoop = running;
679
685
  if (monitor !== undefined) {
680
- this.monitorLoop = this.runMonitorLoop(monitor, this.receiveAbortController.signal)
681
- .catch((error) => {
686
+ this.monitorLoop = this.runMonitorLoop(monitor, this.receiveAbortController.signal).catch((error) => {
682
687
  if (!this.stopped) {
683
688
  this.options.onError?.(error);
684
689
  }
@@ -809,8 +814,8 @@ class ZLinkStreamSessionNodeRuntime {
809
814
  continue;
810
815
  }
811
816
  this.receiveWorkSinceYield += 1;
812
- if (this.receiveWorkSinceYield >= ZLINK_STREAM_RECEIVE_FRAME_BATCH_LIMIT
813
- && !this.isReceiveStopped(signal)) {
817
+ if (this.receiveWorkSinceYield >= ZLINK_STREAM_RECEIVE_FRAME_BATCH_LIMIT &&
818
+ !this.isReceiveStopped(signal)) {
814
819
  this.receiveWorkSinceYield = 0;
815
820
  await new Promise((resolve) => setImmediate(resolve));
816
821
  }
@@ -835,16 +840,16 @@ class ZLinkStreamSessionNodeRuntime {
835
840
  this.applyPendingConnectionMetadata(session);
836
841
  const decodedHeader = (0, protocol_1.decodeStreamHeader)(header.data(), this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true);
837
842
  payload = (0, stream_message_utils_1.ownedMessage)(body.data());
838
- const terminalCompletion = decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Response
839
- || decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Error;
843
+ const terminalCompletion = decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Response ||
844
+ decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Error;
840
845
  const applicationPermit = terminalCompletion ? undefined : permit;
841
846
  if (terminalCompletion) {
842
847
  permit.releaseAfterInternalProcessing();
843
848
  releasePermitOnFailure = false;
844
849
  }
845
850
  else {
846
- if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Send
847
- || decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Request) {
851
+ if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Send ||
852
+ decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Request) {
848
853
  permit.markApplicationQueued();
849
854
  }
850
855
  }
@@ -949,8 +954,7 @@ class ZLinkStreamSessionNodeRuntime {
949
954
  session.enqueueDisconnected(error);
950
955
  return;
951
956
  }
952
- if (event.routingId === undefined
953
- && !streamMonitorHasEndpoint(event)) {
957
+ if (event.routingId === undefined && !streamMonitorHasEndpoint(event)) {
954
958
  this.enqueueEndpointlessDisconnect(error);
955
959
  }
956
960
  }
@@ -960,9 +964,9 @@ class ZLinkStreamSessionNodeRuntime {
960
964
  }
961
965
  }
962
966
  applyPendingConnectionMetadata(session) {
963
- if (session.stream.localAddr !== undefined
964
- || session.stream.remoteAddr !== undefined
965
- || this.pendingConnectionMetadataCount === 0) {
967
+ if (session.stream.localAddr !== undefined ||
968
+ session.stream.remoteAddr !== undefined ||
969
+ this.pendingConnectionMetadataCount === 0) {
966
970
  return;
967
971
  }
968
972
  const metadata = this.takePendingConnectionMetadata();
@@ -975,16 +979,16 @@ class ZLinkStreamSessionNodeRuntime {
975
979
  hasPendingConnectionMetadata(endpointKey) {
976
980
  for (let index = this.pendingConnectionMetadataHead; index < this.pendingConnectionMetadata.length; index += 1) {
977
981
  const metadata = this.pendingConnectionMetadata[index];
978
- if (metadata !== undefined
979
- && streamMonitorEndpointKey(metadata.localAddr, metadata.remoteAddr) === endpointKey) {
982
+ if (metadata !== undefined &&
983
+ streamMonitorEndpointKey(metadata.localAddr, metadata.remoteAddr) === endpointKey) {
980
984
  return true;
981
985
  }
982
986
  }
983
987
  return false;
984
988
  }
985
989
  takePendingConnectionMetadata() {
986
- while (this.pendingConnectionMetadataHead < this.pendingConnectionMetadata.length
987
- && this.pendingConnectionMetadata[this.pendingConnectionMetadataHead] === undefined) {
990
+ while (this.pendingConnectionMetadataHead < this.pendingConnectionMetadata.length &&
991
+ this.pendingConnectionMetadata[this.pendingConnectionMetadataHead] === undefined) {
988
992
  this.pendingConnectionMetadataHead += 1;
989
993
  }
990
994
  const metadata = this.pendingConnectionMetadata[this.pendingConnectionMetadataHead];
@@ -1001,8 +1005,8 @@ class ZLinkStreamSessionNodeRuntime {
1001
1005
  this.pendingConnectionMetadata.length = 0;
1002
1006
  this.pendingConnectionMetadataHead = 0;
1003
1007
  }
1004
- else if (this.pendingConnectionMetadataHead >= 1024
1005
- && this.pendingConnectionMetadataHead * 2 >= this.pendingConnectionMetadata.length) {
1008
+ else if (this.pendingConnectionMetadataHead >= 1024 &&
1009
+ this.pendingConnectionMetadataHead * 2 >= this.pendingConnectionMetadata.length) {
1006
1010
  this.pendingConnectionMetadata.splice(0, this.pendingConnectionMetadataHead);
1007
1011
  this.pendingConnectionMetadataHead = 0;
1008
1012
  }
@@ -1012,8 +1016,8 @@ class ZLinkStreamSessionNodeRuntime {
1012
1016
  this.unaddressedMonitorSessionCount += 1;
1013
1017
  }
1014
1018
  takeUnaddressedMonitorSession() {
1015
- while (this.unaddressedMonitorSessionHead < this.unaddressedMonitorSessions.length
1016
- && this.unaddressedMonitorSessions[this.unaddressedMonitorSessionHead] === undefined) {
1019
+ while (this.unaddressedMonitorSessionHead < this.unaddressedMonitorSessions.length &&
1020
+ this.unaddressedMonitorSessions[this.unaddressedMonitorSessionHead] === undefined) {
1017
1021
  this.unaddressedMonitorSessionHead += 1;
1018
1022
  }
1019
1023
  const sessionId = this.unaddressedMonitorSessions[this.unaddressedMonitorSessionHead];
@@ -1026,8 +1030,8 @@ class ZLinkStreamSessionNodeRuntime {
1026
1030
  this.unaddressedMonitorSessions.length = 0;
1027
1031
  this.unaddressedMonitorSessionHead = 0;
1028
1032
  }
1029
- else if (this.unaddressedMonitorSessionHead >= 1024
1030
- && this.unaddressedMonitorSessionHead * 2 >= this.unaddressedMonitorSessions.length) {
1033
+ else if (this.unaddressedMonitorSessionHead >= 1024 &&
1034
+ this.unaddressedMonitorSessionHead * 2 >= this.unaddressedMonitorSessions.length) {
1031
1035
  this.unaddressedMonitorSessions.splice(0, this.unaddressedMonitorSessionHead);
1032
1036
  this.unaddressedMonitorSessionHead = 0;
1033
1037
  }
@@ -1035,9 +1039,9 @@ class ZLinkStreamSessionNodeRuntime {
1035
1039
  }
1036
1040
  firstUnaddressedSession() {
1037
1041
  for (const session of this.sessions.values()) {
1038
- if (!session.isDisconnected
1039
- && session.stream.localAddr === undefined
1040
- && session.stream.remoteAddr === undefined) {
1042
+ if (!session.isDisconnected &&
1043
+ session.stream.localAddr === undefined &&
1044
+ session.stream.remoteAddr === undefined) {
1041
1045
  return session;
1042
1046
  }
1043
1047
  }
@@ -1073,9 +1077,9 @@ class ZLinkStreamSessionNodeRuntime {
1073
1077
  let match;
1074
1078
  let matchCount = 0;
1075
1079
  for (const session of this.sessions.values()) {
1076
- if (session.isDisconnected
1077
- || session.stream.localAddr !== event.localAddr
1078
- || session.stream.remoteAddr !== event.remoteAddr) {
1080
+ if (session.isDisconnected ||
1081
+ session.stream.localAddr !== event.localAddr ||
1082
+ session.stream.remoteAddr !== event.remoteAddr) {
1079
1083
  continue;
1080
1084
  }
1081
1085
  match = session;
@@ -1120,11 +1124,11 @@ class ZLinkStreamSessionNodeRuntime {
1120
1124
  // queued. Wake the recv loop instead of waiting for its idle backoff.
1121
1125
  this.wakeReceiveLoop();
1122
1126
  setImmediate(() => {
1123
- if (pending.cancelled
1124
- || this.stopped
1125
- || this.pendingEndpointlessDisconnect !== pending
1126
- || this.activityVersion !== pending.activityVersion
1127
- || this.sessions.get(pending.session.stream.sessionId) !== pending.session) {
1127
+ if (pending.cancelled ||
1128
+ this.stopped ||
1129
+ this.pendingEndpointlessDisconnect !== pending ||
1130
+ this.activityVersion !== pending.activityVersion ||
1131
+ this.sessions.get(pending.session.stream.sessionId) !== pending.session) {
1128
1132
  return;
1129
1133
  }
1130
1134
  this.pendingEndpointlessDisconnect = undefined;
@@ -89,7 +89,8 @@ class ZLinkCpuWorkerPool {
89
89
  try {
90
90
  this.ensureMinimumSlots();
91
91
  while (this.queueCount > 0) {
92
- const slot = this.findIdleSlot() ?? (this.slots.size < this.options.maxThreads ? this.createSlot() : undefined);
92
+ const slot = this.findIdleSlot() ??
93
+ (this.slots.size < this.options.maxThreads ? this.createSlot() : undefined);
93
94
  if (slot === undefined)
94
95
  return;
95
96
  const job = this.takeQueuedJob();
@@ -241,7 +242,9 @@ class ZLinkCpuWorkerPool {
241
242
  clearTimeout(slot.idleTimer);
242
243
  slot.idleTimer = setTimeout(() => {
243
244
  slot.idleTimer = undefined;
244
- if (slot.job === undefined && !slot.terminating && this.slots.size > this.options.minThreads) {
245
+ if (slot.job === undefined &&
246
+ !slot.terminating &&
247
+ this.slots.size > this.options.minThreads) {
245
248
  this.terminateSlot(slot);
246
249
  }
247
250
  }, this.options.idleTimeoutMs);
@@ -357,7 +360,9 @@ class ZLinkIoWorkerRuntime {
357
360
  };
358
361
  signal.addEventListener('abort', abortListener, { once: true });
359
362
  }
360
- Promise.resolve().then(() => work(controller.signal)).then((value) => settle(() => resolve(value)), (error) => settle(() => reject(workerFailed(error))));
363
+ Promise.resolve()
364
+ .then(() => work(controller.signal))
365
+ .then((value) => settle(() => resolve(value)), (error) => settle(() => reject(workerFailed(error))));
361
366
  });
362
367
  }
363
368
  }
@@ -438,7 +443,13 @@ class ZLinkSerialDeliveredPromise {
438
443
  return this.then(undefined, onrejected);
439
444
  }
440
445
  finally(onfinally) {
441
- return this.then((value) => this.serial.execute(() => { onfinally?.(); return value; }), (reason) => this.serial.execute(() => { onfinally?.(); throw reason; }));
446
+ return this.then((value) => this.serial.execute(() => {
447
+ onfinally?.();
448
+ return value;
449
+ }), (reason) => this.serial.execute(() => {
450
+ onfinally?.();
451
+ throw reason;
452
+ }));
442
453
  }
443
454
  }
444
455
  function workerTimedOut(timeoutMs) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zlink-systems/framework",
3
- "version": "0.21.0",
3
+ "version": "0.22.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "@opentelemetry/api": "^1.9.1",
21
21
  "@opentelemetry/api-logs": "^0.221.0",
22
- "@zlink-systems/stream-wire": "0.21.0",
22
+ "@zlink-systems/stream-wire": "0.22.0",
23
23
  "@zlink-systems/zlink": "1.2.1"
24
24
  }
25
25
  }
@@ -1,5 +1,10 @@
1
1
  import type { RoutingId } from '../Common';
2
- import type { ZLinkChannelRequestCall, ZLinkPublishCall, ZLinkRequestCall, ZLinkSendCall } from './Calls';
2
+ import type {
3
+ ZLinkChannelRequestCall,
4
+ ZLinkPublishCall,
5
+ ZLinkRequestCall,
6
+ ZLinkSendCall
7
+ } from './Calls';
3
8
 
4
9
  export interface ZLinkRouteClient {
5
10
  sendToNode(meshName: string, targetNodeRid: RoutingId, message: unknown): ZLinkSendCall;
@@ -108,11 +108,11 @@ export function readZLinkMessageDeclaredType(message: ZLinkMessage): Type | unde
108
108
  */
109
109
  export function materializeZLinkMessageValue<T>(value: T, type?: Type<T>): T {
110
110
  if (
111
- type === undefined
112
- || (type as unknown) === Object
113
- || value === null
114
- || typeof value !== 'object'
115
- || Array.isArray(value)
111
+ type === undefined ||
112
+ (type as unknown) === Object ||
113
+ value === null ||
114
+ typeof value !== 'object' ||
115
+ Array.isArray(value)
116
116
  ) {
117
117
  return value;
118
118
  }
@@ -26,7 +26,7 @@ class ImmutableMetadataMap implements ReadonlyMap<string, string> {
26
26
  constructor(values: ReadonlyMap<string, string> | Readonly<Record<string, string>>) {
27
27
  this.#values = new Map(
28
28
  typeof (values as ReadonlyMap<string, string>)[Symbol.iterator] === 'function'
29
- ? values as ReadonlyMap<string, string>
29
+ ? (values as ReadonlyMap<string, string>)
30
30
  : Object.entries(values)
31
31
  );
32
32
  }
@@ -67,8 +67,9 @@ class ImmutableMetadataMap implements ReadonlyMap<string, string> {
67
67
  }
68
68
  }
69
69
 
70
- export const ZLinkMessageMetadataEmpty: ZLinkMessageMetadata =
71
- Object.freeze(new ImmutableZLinkMessageMetadata());
70
+ export const ZLinkMessageMetadataEmpty: ZLinkMessageMetadata = Object.freeze(
71
+ new ImmutableZLinkMessageMetadata()
72
+ );
72
73
 
73
74
  export function zlinkMessageMetadata(
74
75
  values: ReadonlyMap<string, string> | Readonly<Record<string, string>>
@@ -1,18 +1,10 @@
1
1
  import type { ZLinkActor, ZLinkActorFactory } from '../Actors';
2
- import type {
3
- ZLinkEntrySpot,
4
- ZLinkInstanceSpot,
5
- ZLinkSpot
6
- } from '../Spots';
2
+ import type { ZLinkEntrySpot, ZLinkInstanceSpot, ZLinkSpot } from '../Spots';
7
3
  import type { ZLinkSession, ZLinkSessionFactory, ZLinkStreamCompressionCodec } from '../Streams';
8
4
  import type { ZLinkEndpointConnections } from './Connections';
9
5
  import type { ZLinkCodecRegistryBuilder } from '../Codecs';
10
6
  import type { ZLinkDispatchOptionsBuilder, ZLinkInboundDispatchOptions } from '../Dispatch';
11
- import type {
12
- ZLinkLocationOptions,
13
- ZLinkLocationStore,
14
- ZLinkRelocationStore
15
- } from '../Locations';
7
+ import type { ZLinkLocationOptions, ZLinkLocationStore, ZLinkRelocationStore } from '../Locations';
16
8
  import type { RoutingId, Type } from '../Common';
17
9
  import type { ZLinkWorkerOptions } from './RegistrationTypes';
18
10
  import type { ZLinkSpotPublisherConfig } from './Configs';
@@ -71,7 +63,9 @@ export interface ZLinkClientServerChannelServerBuilder {
71
63
  setWeight(weight: number): this;
72
64
  addHandlerGroup(groupName: string): this;
73
65
  addSendHandler<TMessage>(handlerType: Type<ZLinkSendHandler<TMessage>>): this;
74
- addRequestHandler<TRequest, TReply>(handlerType: Type<ZLinkRequestHandler<TRequest, TReply>>): this;
66
+ addRequestHandler<TRequest, TReply>(
67
+ handlerType: Type<ZLinkRequestHandler<TRequest, TReply>>
68
+ ): this;
75
69
  }
76
70
 
77
71
  export interface ZLinkMeshPeerConnection {
@@ -97,7 +91,9 @@ export interface ZLinkMeshChannelServerBuilder {
97
91
  setWeight(weight: number): this;
98
92
  addHandlerGroup(groupName: string): this;
99
93
  addSendHandler<TMessage>(handlerType: Type<ZLinkSendHandler<TMessage>>): this;
100
- addRequestHandler<TRequest, TReply>(handlerType: Type<ZLinkRequestHandler<TRequest, TReply>>): this;
94
+ addRequestHandler<TRequest, TReply>(
95
+ handlerType: Type<ZLinkRequestHandler<TRequest, TReply>>
96
+ ): this;
101
97
  }
102
98
 
103
99
  export interface ZLinkMeshNodeSocketConfig {
@@ -130,7 +126,9 @@ export interface ZLinkMeshNodeBuilder {
130
126
  setDefaultRequestTimeout(timeoutMs: number): this;
131
127
  objects(): ZLinkMeshObjectRoleBuilder;
132
128
  addRouteSendHandler<TMessage>(handlerType: Type<ZLinkRouteSendHandler<TMessage>>): this;
133
- addRouteRequestHandler<TRequest, TReply>(handlerType: Type<ZLinkRouteRequestHandler<TRequest, TReply>>): this;
129
+ addRouteRequestHandler<TRequest, TReply>(
130
+ handlerType: Type<ZLinkRouteRequestHandler<TRequest, TReply>>
131
+ ): this;
134
132
  }
135
133
 
136
134
  export interface ZLinkNetworkOptions {
@@ -196,5 +194,7 @@ export interface ZLinkStreamNodeBuilder {
196
194
  configureSocket(): ZLinkStreamSocketConfig;
197
195
  enableActorDispatch(): this;
198
196
  setTlsServer(certificatePath: string, keyPath: string, requireClientCertificate?: boolean): this;
199
- registerSession<TSession extends ZLinkSession>(sessionType: Type<TSession> | Type<ZLinkSessionFactory<TSession>>): this;
197
+ registerSession<TSession extends ZLinkSession>(
198
+ sessionType: Type<TSession> | Type<ZLinkSessionFactory<TSession>>
199
+ ): this;
200
200
  }
@@ -1,8 +1,6 @@
1
1
  import { ZLinkConfigurationException } from './ConfigurationException';
2
2
 
3
- const mediaTypePunctuation = new Set(
4
- [..."!#$%&'*+-.^_`|~"].map((value) => value.charCodeAt(0))
5
- );
3
+ const mediaTypePunctuation = new Set([..."!#$%&'*+-.^_`|~"].map((value) => value.charCodeAt(0)));
6
4
 
7
5
  export function normalizeCodecContentType(contentType: string): string {
8
6
  if (typeof contentType !== 'string') {
@@ -27,9 +25,7 @@ export function normalizeCodecContentType(contentType: string): string {
27
25
  continue;
28
26
  }
29
27
  if (!isTokenCharacter(code)) throw invalidContentType();
30
- normalized += code >= 0x41 && code <= 0x5a
31
- ? String.fromCharCode(code + 0x20)
32
- : value[index]!;
28
+ normalized += code >= 0x41 && code <= 0x5a ? String.fromCharCode(code + 0x20) : value[index]!;
33
29
  }
34
30
  if (slash === -1) throw invalidContentType();
35
31
  return normalized;
@@ -55,10 +51,12 @@ function isOuterWhitespace(code: number): boolean {
55
51
  }
56
52
 
57
53
  function isTokenCharacter(code: number): boolean {
58
- return (code >= 0x30 && code <= 0x39)
59
- || (code >= 0x41 && code <= 0x5a)
60
- || (code >= 0x61 && code <= 0x7a)
61
- || mediaTypePunctuation.has(code);
54
+ return (
55
+ (code >= 0x30 && code <= 0x39) ||
56
+ (code >= 0x41 && code <= 0x5a) ||
57
+ (code >= 0x61 && code <= 0x7a) ||
58
+ mediaTypePunctuation.has(code)
59
+ );
62
60
  }
63
61
 
64
62
  function invalidContentType(): ZLinkConfigurationException {
@@ -1,12 +1,7 @@
1
1
  import type { ZLinkMessageFlowLogMode } from '../Dispatch';
2
2
  import { ZLinkConfigurationException } from './ConfigurationException';
3
3
 
4
- const MESSAGE_FLOW_MODES: ReadonlySet<string> = new Set([
5
- 'off',
6
- 'errors',
7
- 'normal',
8
- 'detailed'
9
- ]);
4
+ const MESSAGE_FLOW_MODES: ReadonlySet<string> = new Set(['off', 'errors', 'normal', 'detailed']);
10
5
 
11
6
  export function requireMessageFlowLogMode(value: unknown): ZLinkMessageFlowLogMode {
12
7
  if (typeof value !== 'string' || !MESSAGE_FLOW_MODES.has(value)) {
@@ -83,9 +83,11 @@ export function normalizeEndpoint(endpoint: string): string {
83
83
  const normalizedHost = normalizeHost(host);
84
84
  const normalizedPort = normalizePort(port);
85
85
 
86
- return `${scheme}://${userInfo}${normalizedHost}`
87
- + (normalizedPort.length > 0 ? `:${normalizedPort}` : '')
88
- + normalizeSuffix(suffix);
86
+ return (
87
+ `${scheme}://${userInfo}${normalizedHost}` +
88
+ (normalizedPort.length > 0 ? `:${normalizedPort}` : '') +
89
+ normalizeSuffix(suffix)
90
+ );
89
91
  }
90
92
 
91
93
  function findAuthorityEnd(rest: string): number {
@@ -212,11 +214,8 @@ export function buildAdvertisedEndpoint(
212
214
  const match = ADVERTISE_SOURCE_PATTERN.exec(normalized);
213
215
  if (match === null) return normalized;
214
216
  const boundHost = unbracketHost(match[2]);
215
- const defaultHost = boundHost === '0.0.0.0'
216
- ? '127.0.0.1'
217
- : boundHost === '::'
218
- ? '::1'
219
- : undefined;
217
+ const defaultHost =
218
+ boundHost === '0.0.0.0' ? '127.0.0.1' : boundHost === '::' ? '::1' : undefined;
220
219
  if (defaultHost === undefined) return normalized;
221
220
  const host = defaultHost.includes(':') ? `[${defaultHost}]` : defaultHost;
222
221
  return normalizeEndpoint(`${match[1].toLowerCase()}://${host}:${match[3]}`);
@@ -225,9 +224,10 @@ export function buildAdvertisedEndpoint(
225
224
  if (match === null) return undefined;
226
225
  const scheme = match[1].toLowerCase();
227
226
  if (restrictToScheme !== undefined && scheme !== restrictToScheme) return undefined;
228
- const host = advertiseHost.includes(':') && !advertiseHost.startsWith('[')
229
- ? `[${advertiseHost}]`
230
- : advertiseHost;
227
+ const host =
228
+ advertiseHost.includes(':') && !advertiseHost.startsWith('[')
229
+ ? `[${advertiseHost}]`
230
+ : advertiseHost;
231
231
  return normalizeEndpoint(`${scheme}://${host}:${match[3]}`);
232
232
  }
233
233
 
@@ -17,9 +17,7 @@ export interface ZLinkActorRelocationAdapter<TActor extends ZLinkActor> {
17
17
  restore(actor: TActor, payload: Uint8Array, signal: AbortSignal): Promise<void>;
18
18
  }
19
19
 
20
- export interface ZLinkSpotRelocationAdapter<
21
- TSpot extends ZLinkSpot | ZLinkInstanceSpot
22
- > {
20
+ export interface ZLinkSpotRelocationAdapter<TSpot extends ZLinkSpot | ZLinkInstanceSpot> {
23
21
  capture(spot: TSpot, signal: AbortSignal): Promise<Uint8Array>;
24
22
  restore(spot: TSpot, payload: Uint8Array, signal: AbortSignal): Promise<void>;
25
23
  }