@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
@@ -61,8 +61,7 @@ class ZLinkActorSessionBindingRegistry {
61
61
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorSessionNotBound, `Actor '${actor.actorId}' session binding changed before route replacement.`, true);
62
62
  }
63
63
  context.bindLocal(actor, bindingToken);
64
- const sameLocalBinding = previous.context === context
65
- && previous.bindingToken === bindingToken;
64
+ const sameLocalBinding = previous.context === context && previous.bindingToken === bindingToken;
66
65
  if (!sameLocalBinding) {
67
66
  try {
68
67
  previous.context.unbindLocal(actor.actorId, previous.bindingToken);
@@ -238,8 +237,8 @@ class ZLinkActorSessionBindingRegistry {
238
237
  return;
239
238
  completed = true;
240
239
  route.activeFrames.count--;
241
- if (route.activeFrames.count === 0
242
- && this.routes.get(actorId)?.activeFrames === route.activeFrames) {
240
+ if (route.activeFrames.count === 0 &&
241
+ this.routes.get(actorId)?.activeFrames === route.activeFrames) {
243
242
  this.resolveActiveFrameWaiters(actorId);
244
243
  }
245
244
  };
@@ -356,9 +355,7 @@ class ZLinkActorSessionBindingRegistry {
356
355
  assertRelocationClaim(existing, claim);
357
356
  return { kind: 'existing', wait: existing.ready };
358
357
  }
359
- const predecessor = queue?.activeSealId === undefined
360
- ? undefined
361
- : queue.seals.get(queue.activeSealId);
358
+ const predecessor = queue?.activeSealId === undefined ? undefined : queue.seals.get(queue.activeSealId);
362
359
  if (predecessor !== undefined && predecessor.phase !== 'terminal') {
363
360
  if (predecessor.sessionIdentity === undefined || claim.sessionIdentity === undefined) {
364
361
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale, `Actor '${claim.actorId}' session ingress is sealed by another relocation.`, true);
@@ -368,7 +365,9 @@ class ZLinkActorSessionBindingRegistry {
368
365
  }
369
366
  this.sealCore(claim.actorId, claim.sealId, expected);
370
367
  let resolveTerminal;
371
- const terminal = new Promise((resolve) => { resolveTerminal = resolve; });
368
+ const terminal = new Promise((resolve) => {
369
+ resolveTerminal = resolve;
370
+ });
372
371
  const ready = this.waitForActiveFramesCore(claim.actorId, signal);
373
372
  const actorQueue = queue ?? {
374
373
  actorId: claim.actorId,
@@ -402,10 +401,10 @@ class ZLinkActorSessionBindingRegistry {
402
401
  if (sealId !== undefined) {
403
402
  const queue = this.relocations.get(actorId);
404
403
  const state = queue?.seals.get(sealId);
405
- if (queue === undefined
406
- || state === undefined
407
- || (queue.activeSealId !== sealId
408
- && !(queue.activeSealId === undefined && state.phase === 'terminal'))) {
404
+ if (queue === undefined ||
405
+ state === undefined ||
406
+ (queue.activeSealId !== sealId &&
407
+ !(queue.activeSealId === undefined && state.phase === 'terminal'))) {
409
408
  failRetainedOutbound(operation, new Error(`Actor '${actorId}' Session outbound did not match its exact relocation seal.`));
410
409
  return 'rejected';
411
410
  }
@@ -417,9 +416,7 @@ class ZLinkActorSessionBindingRegistry {
417
416
  }
418
417
  admitRelocationOutboundCore(claim, operation) {
419
418
  const queue = this.relocations.get(claim.actorId);
420
- const state = queue?.activeSealId === undefined
421
- ? undefined
422
- : queue.seals.get(queue.activeSealId);
419
+ const state = queue?.activeSealId === undefined ? undefined : queue.seals.get(queue.activeSealId);
423
420
  const error = this.outboundAdmissionError(claim);
424
421
  if (error !== undefined) {
425
422
  failRetainedOutbound(operation, error);
@@ -437,14 +434,11 @@ class ZLinkActorSessionBindingRegistry {
437
434
  if (state.phase === 'sealed' || state.phase === 'applying') {
438
435
  const matchesSource = matchesRelocationSourceProof(state, claim);
439
436
  const matchesCurrent = this.matchesCurrentProducerNode(claim);
440
- const authorization = matchesSource || matchesCurrent
441
- ? 'source'
442
- : 'pendingTarget';
437
+ const authorization = matchesSource || matchesCurrent ? 'source' : 'pendingTarget';
443
438
  return this.retainRelocationOutboundCore(claim.actorId, operation, authorization, claim);
444
439
  }
445
440
  const acceptedProof = state.acceptedProducerProof;
446
- if (acceptedProof === undefined
447
- || !matchesAcceptedProducerProof(acceptedProof, claim)) {
441
+ if (acceptedProof === undefined || !matchesAcceptedProducerProof(acceptedProof, claim)) {
448
442
  failRetainedOutbound(operation, new Error(`Actor '${claim.actorId}' Session outbound admission did not match its accepted producer proof.`));
449
443
  return 'rejected';
450
444
  }
@@ -452,9 +446,7 @@ class ZLinkActorSessionBindingRegistry {
452
446
  }
453
447
  retainRelocationOutboundCore(actorId, operation, authorization, claim) {
454
448
  const queue = this.relocations.get(actorId);
455
- const state = queue?.activeSealId === undefined
456
- ? undefined
457
- : queue.seals.get(queue.activeSealId);
449
+ const state = queue?.activeSealId === undefined ? undefined : queue.seals.get(queue.activeSealId);
458
450
  if (queue === undefined)
459
451
  return 'passThrough';
460
452
  if (state === undefined || state.phase === 'applied' || state.phase === 'terminal') {
@@ -535,9 +527,9 @@ class ZLinkActorSessionBindingRegistry {
535
527
  }
536
528
  return { queue, state, applyPromise: state.applyPromise };
537
529
  }
538
- if (action === 'commit'
539
- && acceptedProducerProof !== undefined
540
- && !validAcceptedTargetProof(state, acceptedProducerProof)) {
530
+ if (action === 'commit' &&
531
+ acceptedProducerProof !== undefined &&
532
+ !validAcceptedTargetProof(state, acceptedProducerProof)) {
541
533
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale, `Actor '${actorId}' command 44 target producer proof did not match its Session seal.`, true);
542
534
  }
543
535
  if (action === 'abort' && acceptedProducerProof !== undefined) {
@@ -567,7 +559,7 @@ class ZLinkActorSessionBindingRegistry {
567
559
  completeRelocationApply(prepared) {
568
560
  const { queue, state, action, acceptedProducerProof, actorId, sealId } = prepared;
569
561
  const proof = action === 'commit'
570
- ? acceptedProducerProof ?? this.currentProducerProof(actorId)
562
+ ? (acceptedProducerProof ?? this.currentProducerProof(actorId))
571
563
  : relocationSourceProof(state);
572
564
  state.acceptedProducerProof = proof;
573
565
  for (let index = queue.outbound.length - 1; index >= 0; index--) {
@@ -578,10 +570,10 @@ class ZLinkActorSessionBindingRegistry {
578
570
  entry.released = true;
579
571
  continue;
580
572
  }
581
- if (action === 'commit'
582
- && proof !== undefined
583
- && entry.claim !== undefined
584
- && matchesAcceptedProducerProof(proof, entry.claim)) {
573
+ if (action === 'commit' &&
574
+ proof !== undefined &&
575
+ entry.claim !== undefined &&
576
+ matchesAcceptedProducerProof(proof, entry.claim)) {
585
577
  entry.released = true;
586
578
  continue;
587
579
  }
@@ -601,16 +593,16 @@ class ZLinkActorSessionBindingRegistry {
601
593
  const route = this.routes.get(actorId);
602
594
  const actorRef = (route?.actor).ref;
603
595
  const sessionIdentity = route?.sessionIdentity;
604
- if (route === undefined
605
- || actorRef === undefined
606
- || sessionIdentity === undefined
607
- || actorRef.ownerNodeGeneration === undefined)
596
+ if (route === undefined ||
597
+ actorRef === undefined ||
598
+ sessionIdentity === undefined ||
599
+ actorRef.ownerNodeGeneration === undefined)
608
600
  return undefined;
609
601
  return {
610
602
  actorId,
611
- objectGeneration: BigInt(actorRef.objectGeneration
612
- ?? actorRef.generation
613
- ?? -1),
603
+ objectGeneration: BigInt(actorRef.objectGeneration ??
604
+ actorRef.generation ??
605
+ -1),
614
606
  actorNodeRid: String(actorRef.nodeRid ?? ''),
615
607
  actorNodeGeneration: BigInt(actorRef.ownerNodeGeneration),
616
608
  sessionIdentity: String(sessionIdentity),
@@ -623,10 +615,10 @@ class ZLinkActorSessionBindingRegistry {
623
615
  observeRelocationTerminalCore(actorId, sealId, applyFingerprint) {
624
616
  const queue = this.relocations.get(actorId);
625
617
  const state = queue?.seals.get(sealId);
626
- if (queue === undefined
627
- || state === undefined
628
- || state.applyFingerprint !== applyFingerprint
629
- || (state.phase !== 'applied' && state.phase !== 'terminal')) {
618
+ if (queue === undefined ||
619
+ state === undefined ||
620
+ state.applyFingerprint !== applyFingerprint ||
621
+ (state.phase !== 'applied' && state.phase !== 'terminal')) {
630
622
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale, `Actor '${actorId}' Session relocation terminal did not match its exact route apply.`, true);
631
623
  }
632
624
  if (state.phase === 'terminal') {
@@ -680,9 +672,9 @@ class ZLinkActorSessionBindingRegistry {
680
672
  return;
681
673
  const activeSealId = queue.activeSealId;
682
674
  const activeState = activeSealId === undefined ? undefined : queue.seals.get(activeSealId);
683
- const ownsActiveSeal = activeState !== undefined
684
- && activeState.phase !== 'terminal'
685
- && activeState.sessionIdentity === route.sessionIdentity;
675
+ const ownsActiveSeal = activeState !== undefined &&
676
+ activeState.phase !== 'terminal' &&
677
+ activeState.sessionIdentity === route.sessionIdentity;
686
678
  if (!ownsActiveSeal) {
687
679
  // Nothing this exact route still holds open — leave terminal
688
680
  // retention and any other Session's active seal untouched.
@@ -725,8 +717,7 @@ class ZLinkActorSessionBindingRegistry {
725
717
  }
726
718
  validateSealCore(actorId, sealId) {
727
719
  const route = this.routes.get(actorId);
728
- return route !== undefined
729
- && route.sealId === sealId;
720
+ return route !== undefined && route.sealId === sealId;
730
721
  }
731
722
  /** True while a relocation seal currently holds this actor's ingress. */
732
723
  async isSealed(actorId) {
@@ -952,30 +943,30 @@ class ZLinkActorSessionBindingRegistry {
952
943
  failRetainedOutbound(entry.operation, error);
953
944
  }
954
945
  outboundAdmissionError(claim) {
955
- if (claim.actorId.length === 0
956
- || claim.objectGeneration <= 0n
957
- || claim.actorNodeRid.length === 0
958
- || claim.actorNodeGeneration <= 0n
959
- || claim.producerNodeRid.length === 0
960
- || claim.producerNodeGeneration <= 0n
961
- || claim.bindingGeneration <= 0n
962
- || claim.sessionIdentity.length === 0
963
- || !(0, routing_id_1.routingIdsEqual)(claim.producerNodeRid, claim.actorNodeRid)
964
- || claim.producerNodeGeneration !== claim.actorNodeGeneration) {
946
+ if (claim.actorId.length === 0 ||
947
+ claim.objectGeneration <= 0n ||
948
+ claim.actorNodeRid.length === 0 ||
949
+ claim.actorNodeGeneration <= 0n ||
950
+ claim.producerNodeRid.length === 0 ||
951
+ claim.producerNodeGeneration <= 0n ||
952
+ claim.bindingGeneration <= 0n ||
953
+ claim.sessionIdentity.length === 0 ||
954
+ !(0, routing_id_1.routingIdsEqual)(claim.producerNodeRid, claim.actorNodeRid) ||
955
+ claim.producerNodeGeneration !== claim.actorNodeGeneration) {
965
956
  return new Error(`Actor '${claim.actorId}' Session outbound admission claim is invalid.`);
966
957
  }
967
958
  const route = this.routes.get(claim.actorId);
968
959
  const ref = route?.actor;
969
960
  const actorRef = ref?.ref;
970
961
  const routeSessionIdentity = route?.sessionIdentity;
971
- if (route === undefined
972
- || actorRef === undefined
973
- || String(actorRef.actorId ?? claim.actorId) !== claim.actorId
974
- || BigInt(actorRef.objectGeneration
975
- ?? actorRef.generation
976
- ?? -1) !== claim.objectGeneration
977
- || BigInt(actorRef.bindingGeneration ?? -1) !== claim.bindingGeneration
978
- || String(routeSessionIdentity ?? '') !== claim.sessionIdentity) {
962
+ if (route === undefined ||
963
+ actorRef === undefined ||
964
+ String(actorRef.actorId ?? claim.actorId) !== claim.actorId ||
965
+ BigInt(actorRef.objectGeneration ??
966
+ actorRef.generation ??
967
+ -1) !== claim.objectGeneration ||
968
+ BigInt(actorRef.bindingGeneration ?? -1) !== claim.bindingGeneration ||
969
+ String(routeSessionIdentity ?? '') !== claim.sessionIdentity) {
979
970
  return new Error(`Actor '${claim.actorId}' Session outbound admission was fenced by its current binding.`);
980
971
  }
981
972
  return undefined;
@@ -983,9 +974,9 @@ class ZLinkActorSessionBindingRegistry {
983
974
  matchesCurrentProducerNode(claim) {
984
975
  const route = this.routes.get(claim.actorId);
985
976
  const actorRef = (route?.actor).ref;
986
- return route !== undefined
987
- && actorRef !== undefined
988
- && (0, routing_id_1.routingIdsEqual)(String(actorRef.nodeRid ?? ''), claim.actorNodeRid);
977
+ return (route !== undefined &&
978
+ actorRef !== undefined &&
979
+ (0, routing_id_1.routingIdsEqual)(String(actorRef.nodeRid ?? ''), claim.actorNodeRid));
989
980
  }
990
981
  rememberTerminalRelocation(state) {
991
982
  this.terminalRelocations.delete(state);
@@ -1003,11 +994,11 @@ class ZLinkActorSessionBindingRegistry {
1003
994
  }
1004
995
  }
1005
996
  deleteEmptyRelocationQueue(queue) {
1006
- if (queue.activeSealId === undefined
1007
- && queue.seals.size === 0
1008
- && queue.outbound.length === 0
1009
- && queue.drainPromise === undefined
1010
- && this.relocations.get(queue.actorId) === queue) {
997
+ if (queue.activeSealId === undefined &&
998
+ queue.seals.size === 0 &&
999
+ queue.outbound.length === 0 &&
1000
+ queue.drainPromise === undefined &&
1001
+ this.relocations.get(queue.actorId) === queue) {
1011
1002
  this.relocations.delete(queue.actorId);
1012
1003
  }
1013
1004
  }
@@ -1030,11 +1021,11 @@ class ZLinkActorSessionBindingRegistry {
1030
1021
  }
1031
1022
  exports.ZLinkActorSessionBindingRegistry = ZLinkActorSessionBindingRegistry;
1032
1023
  function assertRelocationClaim(state, claim) {
1033
- if (state.actorGeneration !== claim.actorGeneration
1034
- || state.bindingGeneration !== claim.bindingGeneration
1035
- || state.sessionIdentity !== claim.sessionIdentity
1036
- || state.actorNodeRid !== claim.actorNodeRid
1037
- || state.actorNodeGeneration !== claim.actorNodeGeneration) {
1024
+ if (state.actorGeneration !== claim.actorGeneration ||
1025
+ state.bindingGeneration !== claim.bindingGeneration ||
1026
+ state.sessionIdentity !== claim.sessionIdentity ||
1027
+ state.actorNodeRid !== claim.actorNodeRid ||
1028
+ state.actorNodeGeneration !== claim.actorNodeGeneration) {
1038
1029
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale, `Actor '${claim.actorId}' repeated Session seal changed its exact identity.`, true);
1039
1030
  }
1040
1031
  }
@@ -1042,34 +1033,34 @@ function startOutsideStateLane(work) {
1042
1033
  return detachedStateLaneResource.runInAsyncScope(work);
1043
1034
  }
1044
1035
  function matchesRelocationSourceProof(state, claim) {
1045
- return state.actorId === claim.actorId
1046
- && state.actorGeneration === claim.objectGeneration
1047
- && state.bindingGeneration === claim.bindingGeneration
1048
- && state.sessionIdentity === claim.sessionIdentity
1049
- && state.actorNodeRid !== undefined
1050
- && (0, routing_id_1.routingIdsEqual)(state.actorNodeRid, claim.actorNodeRid)
1051
- && state.actorNodeGeneration === claim.actorNodeGeneration;
1036
+ return (state.actorId === claim.actorId &&
1037
+ state.actorGeneration === claim.objectGeneration &&
1038
+ state.bindingGeneration === claim.bindingGeneration &&
1039
+ state.sessionIdentity === claim.sessionIdentity &&
1040
+ state.actorNodeRid !== undefined &&
1041
+ (0, routing_id_1.routingIdsEqual)(state.actorNodeRid, claim.actorNodeRid) &&
1042
+ state.actorNodeGeneration === claim.actorNodeGeneration);
1052
1043
  }
1053
1044
  function matchesAcceptedProducerProof(proof, claim) {
1054
- return proof.actorId === claim.actorId
1055
- && proof.objectGeneration === claim.objectGeneration
1056
- && (0, routing_id_1.routingIdsEqual)(proof.actorNodeRid, claim.actorNodeRid)
1057
- && proof.actorNodeGeneration === claim.actorNodeGeneration
1058
- && proof.sessionIdentity === claim.sessionIdentity
1059
- && proof.bindingGeneration === claim.bindingGeneration;
1045
+ return (proof.actorId === claim.actorId &&
1046
+ proof.objectGeneration === claim.objectGeneration &&
1047
+ (0, routing_id_1.routingIdsEqual)(proof.actorNodeRid, claim.actorNodeRid) &&
1048
+ proof.actorNodeGeneration === claim.actorNodeGeneration &&
1049
+ proof.sessionIdentity === claim.sessionIdentity &&
1050
+ proof.bindingGeneration === claim.bindingGeneration);
1060
1051
  }
1061
1052
  function validAcceptedTargetProof(state, proof) {
1062
- return proof.actorId === state.actorId
1063
- && proof.objectGeneration === state.actorGeneration
1064
- && proof.actorNodeRid.length > 0
1065
- && proof.actorNodeGeneration > 0n
1066
- && proof.sessionIdentity === state.sessionIdentity
1067
- && proof.bindingGeneration === state.bindingGeneration;
1053
+ return (proof.actorId === state.actorId &&
1054
+ proof.objectGeneration === state.actorGeneration &&
1055
+ proof.actorNodeRid.length > 0 &&
1056
+ proof.actorNodeGeneration > 0n &&
1057
+ proof.sessionIdentity === state.sessionIdentity &&
1058
+ proof.bindingGeneration === state.bindingGeneration);
1068
1059
  }
1069
1060
  function relocationSourceProof(state) {
1070
- if (state.sessionIdentity === undefined
1071
- || state.actorNodeRid === undefined
1072
- || state.actorNodeGeneration === undefined)
1061
+ if (state.sessionIdentity === undefined ||
1062
+ state.actorNodeRid === undefined ||
1063
+ state.actorNodeGeneration === undefined)
1073
1064
  return undefined;
1074
1065
  return {
1075
1066
  actorId: state.actorId,
@@ -1090,17 +1081,17 @@ function failRetainedOutbound(operation, error) {
1090
1081
  }
1091
1082
  }
1092
1083
  function assertSuccessorSessionIdentity(predecessor, successor) {
1093
- if (predecessor.actorGeneration !== successor.actorGeneration
1094
- || predecessor.bindingGeneration !== successor.bindingGeneration
1095
- || predecessor.sessionIdentity !== successor.sessionIdentity) {
1084
+ if (predecessor.actorGeneration !== successor.actorGeneration ||
1085
+ predecessor.bindingGeneration !== successor.bindingGeneration ||
1086
+ predecessor.sessionIdentity !== successor.sessionIdentity) {
1096
1087
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale, `Actor '${successor.actorId}' successor Session seal changed its exact Session identity.`, true);
1097
1088
  }
1098
1089
  }
1099
1090
  function routeMatchesFence(route, expected) {
1100
1091
  const ref = route.actor.ref;
1101
- return ref !== undefined
1102
- && BigInt(ref.objectGeneration ?? ref.generation ?? -1n) === expected.objectGeneration
1103
- && ref.bindingGeneration === expected.bindingGeneration;
1092
+ return (ref !== undefined &&
1093
+ BigInt(ref.objectGeneration ?? ref.generation ?? -1n) === expected.objectGeneration &&
1094
+ ref.bindingGeneration === expected.bindingGeneration);
1104
1095
  }
1105
1096
  function sessionIdentityFromContext(context) {
1106
1097
  return context.routingId === undefined ? undefined : String(context.routingId);
@@ -1119,7 +1110,7 @@ function waitForSessionRelocation(operation, signal) {
1119
1110
  operation.then(() => {
1120
1111
  signal.removeEventListener('abort', onAbort);
1121
1112
  resolve();
1122
- }, error => {
1113
+ }, (error) => {
1123
1114
  signal.removeEventListener('abort', onAbort);
1124
1115
  reject(error);
1125
1116
  });
@@ -6,7 +6,9 @@ class ZLinkActorSessionLifecycleCoordinator {
6
6
  async run(actorId, operation) {
7
7
  const previous = this.tails.get(actorId) ?? Promise.resolve();
8
8
  let release;
9
- const current = new Promise((resolve) => { release = resolve; });
9
+ const current = new Promise((resolve) => {
10
+ release = resolve;
11
+ });
10
12
  const tail = previous.catch(() => undefined).then(() => current);
11
13
  this.tails.set(actorId, tail);
12
14
  await previous.catch(() => undefined);
@@ -23,8 +23,7 @@ class ZLinkBoundActorRelaySender {
23
23
  const header = dispatchHeader === undefined
24
24
  ? await this.currentHeader(actor)
25
25
  : await this.requireDispatchHeader(actor, dispatchHeader);
26
- if (header.kind === protocol_1.ZLinkStreamMessageKind.Request
27
- && header.requestSeq !== undefined) {
26
+ if (header.kind === protocol_1.ZLinkStreamMessageKind.Request && header.requestSeq !== undefined) {
28
27
  const operation = async () => {
29
28
  const admission = await this.routes.beginAcceptedRequestFrameWhenReady(actor.actorId, actor.bindingToken, signal);
30
29
  try {
@@ -34,13 +33,14 @@ class ZLinkBoundActorRelaySender {
34
33
  await admission.complete();
35
34
  }
36
35
  };
37
- if (await this.routes.isSealed(actor.actorId) && (0, execution_1.captureZLinkExecutionTurn)() !== undefined) {
36
+ if ((await this.routes.isSealed(actor.actorId)) &&
37
+ (0, execution_1.captureZLinkExecutionTurn)() !== undefined) {
38
38
  void operation().catch(() => undefined);
39
39
  return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
40
40
  }
41
41
  return await operation();
42
42
  }
43
- if (await this.routes.isSealed(actor.actorId) && (0, execution_1.captureZLinkExecutionTurn)() !== undefined) {
43
+ if ((await this.routes.isSealed(actor.actorId)) && (0, execution_1.captureZLinkExecutionTurn)() !== undefined) {
44
44
  // Spec 32:62 — a Send completes once the source outbound queue
45
45
  // accepts it; spec 05 — infrastructure send progress must not depend
46
46
  // on the application turn. When the CALLER IS an application turn
@@ -53,17 +53,19 @@ class ZLinkBoundActorRelaySender {
53
53
  // Non-turn callers (stream ingress relays) keep the waiting
54
54
  // semantics so a held frame across a failed rebind still
55
55
  // terminalizes to the caller.
56
- void this.routes.runAcceptedFrameWhenReady(actor.actorId, actor.bindingToken, () => this.relayAcceptedFrame(actor, payload, signal), signal).catch(() => undefined);
56
+ void this.routes
57
+ .runAcceptedFrameWhenReady(actor.actorId, actor.bindingToken, () => this.relayAcceptedFrame(actor, payload, signal), signal)
58
+ .catch(() => undefined);
57
59
  return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
58
60
  }
59
61
  return this.routes.runAcceptedFrameWhenReady(actor.actorId, actor.bindingToken, () => this.relayAcceptedFrame(actor, payload, signal), signal);
60
62
  }
61
63
  async relayAcceptedFrame(actor, payload, signal, header, requestAdmission) {
62
- const activeHeader = header ?? await this.currentHeader(actor);
64
+ const activeHeader = header ?? (await this.currentHeader(actor));
63
65
  const started = await this.lifecycle.run(actor.actorId, async () => {
64
66
  const completion = this.relayInsideLifecycle(actor, payload, signal, activeHeader, requestAdmission);
65
- if (activeHeader.kind === protocol_1.ZLinkStreamMessageKind.Request
66
- && activeHeader.requestSeq !== undefined) {
67
+ if (activeHeader.kind === protocol_1.ZLinkStreamMessageKind.Request &&
68
+ activeHeader.requestSeq !== undefined) {
67
69
  // A routed REQUEST only needs this lane while its ordered submission
68
70
  // is started. Its admission acknowledgement can depend on relocation
69
71
  // route publication, and command 44 uses the same lane. Keeping the
@@ -94,7 +96,7 @@ class ZLinkBoundActorRelaySender {
94
96
  return header;
95
97
  }
96
98
  async relayInsideLifecycle(actor, payload, signal, currentHeader, requestAdmission) {
97
- const header = currentHeader ?? await this.currentHeader(actor);
99
+ const header = currentHeader ?? (await this.currentHeader(actor));
98
100
  const held = requestAdmission?.beginSubmission(signal);
99
101
  if (held !== undefined)
100
102
  await held;
@@ -135,9 +137,9 @@ class ZLinkBoundActorRelaySender {
135
137
  await this.routes.unbind(actor.actorId, route.context, actor.bindingToken);
136
138
  return route;
137
139
  });
138
- if (unbindNative
139
- && detached.bindingToken === actor.bindingToken
140
- && detached.context.stream instanceof managed_stream_1.ZLinkManagedStream) {
140
+ if (unbindNative &&
141
+ detached.bindingToken === actor.bindingToken &&
142
+ detached.context.stream instanceof managed_stream_1.ZLinkManagedStream) {
141
143
  await detached.context.stream.unbindActor(actor.actorId, this.options.actorBindTimeoutMs ?? 2000, signal);
142
144
  }
143
145
  await this.options.notifyDisconnected?.(actor, signal);
@@ -148,10 +150,10 @@ class ZLinkBoundActorRelaySender {
148
150
  await Promise.allSettled(snapshot.map(async (actor) => {
149
151
  const detached = await this.lifecycle.run(actor.actorId, async () => {
150
152
  const route = await this.routes.route(actor.actorId);
151
- if (route === undefined
152
- || route.context !== context
153
- || route.actor !== actor
154
- || route.bindingToken !== actor.bindingToken) {
153
+ if (route === undefined ||
154
+ route.context !== context ||
155
+ route.actor !== actor ||
156
+ route.bindingToken !== actor.bindingToken) {
155
157
  return false;
156
158
  }
157
159
  // The transport is already closed, so remove its exact route before
@@ -114,7 +114,7 @@ class ZLinkBoundSessionService {
114
114
  const header = runtime_message_1.ZLinkBufferMessage.fromOwned(Buffer.from(encodedBindHeader.buffer, encodedBindHeader.byteOffset, encodedBindHeader.byteLength));
115
115
  const body = runtime_message_1.ZLinkBufferMessage.fromOwned(Buffer.alloc(0));
116
116
  try {
117
- if (!await stream.sendBoundActor(actorRef.actorId, [header, body], 0)) {
117
+ if (!(await stream.sendBoundActor(actorRef.actorId, [header, body], 0))) {
118
118
  throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor '${actorRef.actorId}' remote bound session bind relay failed.`);
119
119
  }
120
120
  }
@@ -183,14 +183,13 @@ function toBoundSessionSendActorRef(actor) {
183
183
  }
184
184
  function boundSessionSendFence(node, backendActor, actor) {
185
185
  const internal = actor;
186
- const ownerNodeGeneration = internal.ownerNodeGeneration
187
- ?? node.actorNodeGeneration?.(backendActor);
188
- if (internal.ownershipGeneration === undefined
189
- || internal.ownershipGeneration <= 0n
190
- || internal.ownerLeaseGeneration === undefined
191
- || internal.ownerLeaseGeneration <= 0n
192
- || ownerNodeGeneration === undefined
193
- || ownerNodeGeneration <= 0n) {
186
+ const ownerNodeGeneration = internal.ownerNodeGeneration ?? node.actorNodeGeneration?.(backendActor);
187
+ if (internal.ownershipGeneration === undefined ||
188
+ internal.ownershipGeneration <= 0n ||
189
+ internal.ownerLeaseGeneration === undefined ||
190
+ internal.ownerLeaseGeneration <= 0n ||
191
+ ownerNodeGeneration === undefined ||
192
+ ownerNodeGeneration <= 0n) {
194
193
  return undefined;
195
194
  }
196
195
  return Object.freeze({
@@ -40,8 +40,9 @@ class ZLinkStreamRuntimeManager {
40
40
  applicationJobQueue;
41
41
  constructor(options) {
42
42
  this.options = options;
43
- this.applicationJobQueue = options.applicationJobQueue
44
- ?? new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
43
+ this.applicationJobQueue =
44
+ options.applicationJobQueue ??
45
+ new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
45
46
  }
46
47
  start() {
47
48
  if (this.options.registration.streamNodes.size === 0) {
@@ -75,14 +76,12 @@ class ZLinkStreamRuntimeManager {
75
76
  if (actorDispatchEnabled) {
76
77
  for (const [meshName, mesh] of this.options.registration.spotNodes) {
77
78
  const isPrimaryMesh = meshName === applicationMeshName;
78
- if (!isPrimaryMesh
79
- && mesh.objectRole !== 'client'
80
- && mesh.objectRole !== 'server')
79
+ if (!isPrimaryMesh && mesh.objectRole !== 'client' && mesh.objectRole !== 'server')
81
80
  continue;
82
- const meshNode = this.options.nativeMeshNodeForName?.(meshName)
83
- ?? (isPrimaryMesh ? nativeMeshNode : undefined);
84
- const completions = this.options.meshCompletionsForName?.(meshName)
85
- ?? (isPrimaryMesh ? meshCompletions : undefined);
81
+ const meshNode = this.options.nativeMeshNodeForName?.(meshName) ??
82
+ (isPrimaryMesh ? nativeMeshNode : undefined);
83
+ const completions = this.options.meshCompletionsForName?.(meshName) ??
84
+ (isPrimaryMesh ? meshCompletions : undefined);
86
85
  const createService = meshNode?.createStreamSessionService;
87
86
  if (typeof createService !== 'function' || completions === undefined)
88
87
  continue;
@@ -112,7 +111,7 @@ class ZLinkStreamRuntimeManager {
112
111
  applicationJobQueue: this.applicationJobQueue,
113
112
  nativeSessionService,
114
113
  meshCompletions,
115
- nativeSessionRouteForMesh: meshName => nativeSessionRoutes.get(meshName),
114
+ nativeSessionRouteForMesh: (meshName) => nativeSessionRoutes.get(meshName),
116
115
  monitor,
117
116
  bindingRuntime: this.options.bindingRuntime,
118
117
  acceptNewSession: () => this.options.acceptNewSession?.(applicationMeshName) !== false,
@@ -131,7 +130,7 @@ class ZLinkStreamRuntimeManager {
131
130
  socket,
132
131
  monitor,
133
132
  nativeSessionService,
134
- nativeSessionServices: [...nativeSessionRoutes.values()].map(route => route.service)
133
+ nativeSessionServices: [...nativeSessionRoutes.values()].map((route) => route.service)
135
134
  });
136
135
  }
137
136
  }
@@ -140,8 +139,8 @@ class ZLinkStreamRuntimeManager {
140
139
  this.nodes.clear();
141
140
  for (const node of nodes.reverse()) {
142
141
  await node.runtime.dispose();
143
- const nativeServices = node.nativeSessionServices
144
- ?? (node.nativeSessionService === undefined ? [] : [node.nativeSessionService]);
142
+ const nativeServices = node.nativeSessionServices ??
143
+ (node.nativeSessionService === undefined ? [] : [node.nativeSessionService]);
145
144
  for (const service of nativeServices) {
146
145
  service.shutdown(1000);
147
146
  service.close();
@@ -167,9 +166,10 @@ class ZLinkStreamSessionRuntime extends stream_session_runtime_1.ZLinkStreamSess
167
166
  // Spec 27 §4: a default-constructed binding runtime must still honor the
168
167
  // process diagnostics level, so wire its Off gate to the runtime's
169
168
  // dispatch-error flow tracer.
170
- const bindingRuntime = options.bindingRuntime ?? new ZLinkStreamBindingRuntime({
171
- flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
172
- });
169
+ const bindingRuntime = options.bindingRuntime ??
170
+ new ZLinkStreamBindingRuntime({
171
+ flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
172
+ });
173
173
  super({
174
174
  ...options,
175
175
  bindingRuntime
@@ -183,9 +183,10 @@ class ZLinkStreamSessionNodeRuntime extends stream_session_runtime_1.ZLinkStream
183
183
  constructor(options) {
184
184
  // Spec 27 §4: keep the default binding runtime's flow creation behind the
185
185
  // process diagnostics Off gate (see ZLinkStreamSessionRuntime above).
186
- const bindingRuntime = options.bindingRuntime ?? new ZLinkStreamBindingRuntime({
187
- flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
188
- });
186
+ const bindingRuntime = options.bindingRuntime ??
187
+ new ZLinkStreamBindingRuntime({
188
+ flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
189
+ });
189
190
  super({
190
191
  ...options,
191
192
  bindingRuntime