@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
@@ -93,9 +93,10 @@ class ZLinkActorCreationCoordinator {
93
93
  }
94
94
  let response;
95
95
  try {
96
- response = nodeRid === undefined
97
- ? { accepted: true }
98
- : await this.options.actorCreatedNotifier?.(nodeRid, actor, createRequest.callbackRequest, signal) ?? { accepted: true };
96
+ response =
97
+ nodeRid === undefined
98
+ ? { accepted: true }
99
+ : ((await this.options.actorCreatedNotifier?.(nodeRid, actor, createRequest.callbackRequest, signal)) ?? { accepted: true });
99
100
  }
100
101
  catch (error) {
101
102
  await this.discardStagingActor(state, nativeActorNode);
@@ -46,7 +46,8 @@ class ZLinkActorHandoffCoordinator {
46
46
  replyRoutes = new Map();
47
47
  constructor(options) {
48
48
  this.options = options;
49
- this.messageFollowDurationMs = options.messageFollowDurationMs ?? exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS;
49
+ this.messageFollowDurationMs =
50
+ options.messageFollowDurationMs ?? exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS;
50
51
  }
51
52
  begin(actorId, oldGeneration) {
52
53
  this.startHandoff(actorId, oldGeneration, { phase: 'relocating' });
@@ -62,10 +63,12 @@ class ZLinkActorHandoffCoordinator {
62
63
  throw new Error(`Actor '${actorId}' handoff requires a positive source ObjectGeneration.`);
63
64
  }
64
65
  const source = this.options.requestSource(actorId);
65
- if (source.meshName.length === 0 || source.ownerId.length === 0
66
- || source.ownerLeaseGeneration <= 0n
67
- || source.nodeRid.length === 0 || source.nodeGeneration <= 0n
68
- || source.authorityOwnerGeneration <= 0n) {
66
+ if (source.meshName.length === 0 ||
67
+ source.ownerId.length === 0 ||
68
+ source.ownerLeaseGeneration <= 0n ||
69
+ source.nodeRid.length === 0 ||
70
+ source.nodeGeneration <= 0n ||
71
+ source.authorityOwnerGeneration <= 0n) {
69
72
  throw new Error(`Actor '${actorId}' handoff requires an exact source owner fence.`);
70
73
  }
71
74
  if (source.objectGeneration !== oldGeneration) {
@@ -85,8 +88,7 @@ class ZLinkActorHandoffCoordinator {
85
88
  ownerId: source.ownerId,
86
89
  ownerLeaseGeneration: source.ownerLeaseGeneration,
87
90
  nodeRid: sourceOwner.nodeRid,
88
- nodeRidHex: sourceOwner.nodeRidHex
89
- ?? (0, routing_id_1.encodeRoutingIdStorageHex)(sourceOwner.nodeRid),
91
+ nodeRidHex: sourceOwner.nodeRidHex ?? (0, routing_id_1.encodeRoutingIdStorageHex)(sourceOwner.nodeRid),
90
92
  nodeGeneration: source.nodeGeneration,
91
93
  authorityOwnerGeneration: source.authorityOwnerGeneration
92
94
  });
@@ -195,7 +197,7 @@ class ZLinkActorHandoffCoordinator {
195
197
  void start.then(() => {
196
198
  release.startOpen = true;
197
199
  this.finishPrefixReleaseIfIdle(actorId, handoff, release);
198
- }, error => {
200
+ }, (error) => {
199
201
  release.startOpen = true;
200
202
  if (handoff.pending.length === 0)
201
203
  release.errors.push(error);
@@ -222,7 +224,7 @@ class ZLinkActorHandoffCoordinator {
222
224
  const pending = handoff.pending.slice(begin, end);
223
225
  let admitted;
224
226
  try {
225
- admitted = release.queue(pending.map(record => this.createPrefixRecord(record, release)));
227
+ admitted = release.queue(pending.map((record) => this.createPrefixRecord(record, release)));
226
228
  }
227
229
  catch (error) {
228
230
  this.failUnqueuedPrefix(handoff, release, error);
@@ -230,7 +232,7 @@ class ZLinkActorHandoffCoordinator {
230
232
  }
231
233
  release.cursor = end;
232
234
  release.inFlight += 1;
233
- void admitted.terminal.then(() => this.completePrefixBatch(actorId, handoff, release), error => {
235
+ void admitted.terminal.then(() => this.completePrefixBatch(actorId, handoff, release), (error) => {
234
236
  release.errors.push(error);
235
237
  this.completePrefixBatch(actorId, handoff, release);
236
238
  });
@@ -291,9 +293,7 @@ class ZLinkActorHandoffCoordinator {
291
293
  this.finishPrefixReleaseIfIdle(actorId, handoff, release);
292
294
  }
293
295
  finishPrefixReleaseIfIdle(actorId, handoff, release) {
294
- if (!release.startOpen
295
- || release.inFlight !== 0
296
- || release.cursor !== handoff.pending.length)
296
+ if (!release.startOpen || release.inFlight !== 0 || release.cursor !== handoff.pending.length)
297
297
  return;
298
298
  if (handoff.prefixRelease === release)
299
299
  handoff.prefixRelease = undefined;
@@ -413,14 +413,14 @@ class ZLinkActorHandoffCoordinator {
413
413
  }
414
414
  capture(actorId, parts, returnResponse = false, remoteBoundSessionTarget, fallbackActorRef, deadlineUnixMs, messageFollowOrigin, provisionalReplay) {
415
415
  const incomingContext = (0, actor_message_follow_context_1.actorMessageFollowContext)(fallbackActorRef);
416
- const originalDeadlineUnixMs = deadlineUnixMs
417
- ?? incomingContext?.deadlineUnixMs
418
- ?? packetDeadlineUnixMs(parts);
416
+ const originalDeadlineUnixMs = deadlineUnixMs ?? incomingContext?.deadlineUnixMs ?? packetDeadlineUnixMs(parts);
419
417
  const handoff = this.active.get(actorId);
420
418
  if (handoff !== undefined) {
421
419
  if (parts.length < 2)
422
420
  return Promise.resolve(undefined);
423
- if (handoff.connectionBoundSealed && !returnResponse && remoteBoundSessionTarget !== undefined) {
421
+ if (handoff.connectionBoundSealed &&
422
+ !returnResponse &&
423
+ remoteBoundSessionTarget !== undefined) {
424
424
  // The Session route seal already fixed the accepted high water. A
425
425
  // send whose lifetime is only the Session connection can no longer
426
426
  // drain here and must never enter the durable frozen journal, so the
@@ -430,7 +430,8 @@ class ZLinkActorHandoffCoordinator {
430
430
  if (handoff.phase === 'provisional' && handoff.replay === undefined) {
431
431
  handoff.replay = provisionalReplay;
432
432
  }
433
- const context = incomingContext ?? this.createInitialIngressContext(handoff.sourceOwner, handoff.oldGeneration, parts, returnResponse, originalDeadlineUnixMs);
433
+ const context = incomingContext ??
434
+ this.createInitialIngressContext(handoff.sourceOwner, handoff.oldGeneration, parts, returnResponse, originalDeadlineUnixMs);
434
435
  try {
435
436
  this.validateContext(actorId, context, parts, returnResponse, fallbackActorRef);
436
437
  }
@@ -499,13 +500,13 @@ class ZLinkActorHandoffCoordinator {
499
500
  }
500
501
  const followRoute = this.findMessageFollowRoute(actorId, incomingContext);
501
502
  const staleGeneration = fallbackActorRef?.objectGeneration;
502
- if (fallbackActorRef !== undefined
503
- && this.options.isCurrentActorRef?.(actorId, fallbackActorRef) === true) {
503
+ if (fallbackActorRef !== undefined &&
504
+ this.options.isCurrentActorRef?.(actorId, fallbackActorRef) === true) {
504
505
  if (incomingContext !== undefined) {
505
506
  this.validateContext(actorId, incomingContext, parts, returnResponse, fallbackActorRef);
506
507
  const currentFence = this.options.currentOwnerFence?.(actorId);
507
- if (currentFence !== undefined
508
- && !(0, actor_message_follow_context_1.messageFollowOwnerFencesEqual)(incomingContext.targetOwner, currentFence)) {
508
+ if (currentFence !== undefined &&
509
+ !(0, actor_message_follow_context_1.messageFollowOwnerFencesEqual)(incomingContext.targetOwner, currentFence)) {
509
510
  // A relocation round trip (A→B→A) keeps the ObjectGeneration, so a
510
511
  // context resolved against a departed tenure still addresses this
511
512
  // node while the current tenure holds strictly newer authority
@@ -526,18 +527,17 @@ class ZLinkActorHandoffCoordinator {
526
527
  }
527
528
  return undefined;
528
529
  }
529
- if (incomingContext === undefined
530
- && fallbackActorRef !== undefined
531
- && this.hasMessageFollowRouteForStaleRef(actorId, fallbackActorRef)) {
530
+ if (incomingContext === undefined &&
531
+ fallbackActorRef !== undefined &&
532
+ this.hasMessageFollowRouteForStaleRef(actorId, fallbackActorRef)) {
532
533
  this.options.onMarker?.('message_follow_rejected', actorId);
533
534
  return Promise.reject(actorLocationStale(actorId));
534
535
  }
535
- if (followRoute === undefined
536
- &&
537
- staleGeneration !== undefined
538
- && this.staleGenerations.get(actorId)?.has(staleGeneration) === true
539
- && fallbackActorRef !== undefined
540
- && this.isKnownStaleRef(actorId, fallbackActorRef)) {
536
+ if (followRoute === undefined &&
537
+ staleGeneration !== undefined &&
538
+ this.staleGenerations.get(actorId)?.has(staleGeneration) === true &&
539
+ fallbackActorRef !== undefined &&
540
+ this.isKnownStaleRef(actorId, fallbackActorRef)) {
541
541
  this.options.onMarker?.('message_follow_expired', actorId);
542
542
  return Promise.reject(actorLocationStale(actorId));
543
543
  }
@@ -575,8 +575,8 @@ class ZLinkActorHandoffCoordinator {
575
575
  snapshotCoreBacklog(actorId) {
576
576
  const handoff = this.requireActive(actorId);
577
577
  let snapshotIndex = -1;
578
- while (snapshotIndex + 1 < handoff.pending.length
579
- && handoff.pending[snapshotIndex + 1].packet.returnResponse === false) {
578
+ while (snapshotIndex + 1 < handoff.pending.length &&
579
+ handoff.pending[snapshotIndex + 1].packet.returnResponse === false) {
580
580
  snapshotIndex++;
581
581
  }
582
582
  handoff.snapshotIndex = snapshotIndex;
@@ -592,7 +592,7 @@ class ZLinkActorHandoffCoordinator {
592
592
  const handoff = this.requireActive(actorId);
593
593
  const first = handoff.snapshotIndex + 1;
594
594
  handoff.snapshotIndex = handoff.pending.length - 1;
595
- return handoff.pending.slice(first).map(entry => entry.packet);
595
+ return handoff.pending.slice(first).map((entry) => entry.packet);
596
596
  }
597
597
  complete(actorId, target, targetActorRef, results, targetOwnerFence) {
598
598
  const handoff = this.requireActive(actorId);
@@ -630,10 +630,9 @@ class ZLinkActorHandoffCoordinator {
630
630
  if (pending.packet.source !== undefined) {
631
631
  this.removeReplyRoute(pending.packet.source.replyRouteId);
632
632
  }
633
- void this.enqueueMessageFollow(followRoute, actorId, pending.packet)
634
- .then(value => {
633
+ void this.enqueueMessageFollow(followRoute, actorId, pending.packet).then((value) => {
635
634
  pending.resolve?.(value);
636
- }, error => {
635
+ }, (error) => {
637
636
  pending.reject?.(error);
638
637
  });
639
638
  }
@@ -641,16 +640,15 @@ class ZLinkActorHandoffCoordinator {
641
640
  messageFollowCount(actorId) {
642
641
  return actorId === undefined
643
642
  ? this.messageFollowRoutes.size
644
- : [...this.messageFollowRoutes.values()]
645
- .filter(route => route.targetActorRef.actorId === actorId).length;
643
+ : [...this.messageFollowRoutes.values()].filter((route) => route.targetActorRef.actorId === actorId).length;
646
644
  }
647
645
  pendingCount(actorId) {
648
646
  return this.active.get(actorId)?.pending.length ?? 0;
649
647
  }
650
648
  isKnownStale(actor) {
651
- return this.messageFollowCount(actor.actorId) === 0
652
- && this.options.isCurrentActorRef?.(actor.actorId, actor) !== true
653
- && this.isKnownStaleRef(actor.actorId, actor);
649
+ return (this.messageFollowCount(actor.actorId) === 0 &&
650
+ this.options.isCurrentActorRef?.(actor.actorId, actor) !== true &&
651
+ this.isKnownStaleRef(actor.actorId, actor));
654
652
  }
655
653
  recordStaleFailure(actorId) {
656
654
  this.options.onMarker?.('message_follow_rejected', actorId);
@@ -660,10 +658,10 @@ class ZLinkActorHandoffCoordinator {
660
658
  if (source === undefined || source.replyRouteId.length === 0)
661
659
  return 'notAcknowledged';
662
660
  const route = this.replyRoutes.get(source.replyRouteId);
663
- if (route === undefined
664
- || packet.messageFollowContext.objectGeneration
665
- !== route.sourceEvidence.objectGeneration.toString()
666
- || !(0, actor_message_follow_context_1.messageFollowOwnerFencesEqual)(packet.messageFollowContext.targetOwner, route.sourceOwner)) {
661
+ if (route === undefined ||
662
+ packet.messageFollowContext.objectGeneration !==
663
+ route.sourceEvidence.objectGeneration.toString() ||
664
+ !(0, actor_message_follow_context_1.messageFollowOwnerFencesEqual)(packet.messageFollowContext.targetOwner, route.sourceOwner)) {
667
665
  return 'notAcknowledged';
668
666
  }
669
667
  return this.acceptRelocatedTerminalRelay(packet.messageFollowContext.operationId, source.replyRouteId, source, result, sourceNodeRid, targetAuthorityOwnerGeneration, actorId).status;
@@ -675,14 +673,14 @@ class ZLinkActorHandoffCoordinator {
675
673
  if (route === undefined)
676
674
  return { status: 'notAcknowledged' };
677
675
  const exactSource = source ?? route.source;
678
- if (!requestSourcesEqual(route.source, exactSource)
679
- || (actorId !== undefined && route.actorId !== actorId)
680
- || route.operationId !== operationId
681
- || route.targetNodeRid === undefined
682
- || !(0, routing_id_1.routingIdsEqual)(route.targetNodeRid, sourceNodeRid)
683
- || route.targetAuthorityOwnerGeneration === undefined
684
- || (targetAuthorityOwnerGeneration !== undefined
685
- && route.targetAuthorityOwnerGeneration !== targetAuthorityOwnerGeneration)) {
676
+ if (!requestSourcesEqual(route.source, exactSource) ||
677
+ (actorId !== undefined && route.actorId !== actorId) ||
678
+ route.operationId !== operationId ||
679
+ route.targetNodeRid === undefined ||
680
+ !(0, routing_id_1.routingIdsEqual)(route.targetNodeRid, sourceNodeRid) ||
681
+ route.targetAuthorityOwnerGeneration === undefined ||
682
+ (targetAuthorityOwnerGeneration !== undefined &&
683
+ route.targetAuthorityOwnerGeneration !== targetAuthorityOwnerGeneration)) {
686
684
  return { status: 'notAcknowledged' };
687
685
  }
688
686
  try {
@@ -823,8 +821,8 @@ class ZLinkActorHandoffCoordinator {
823
821
  const stale = this.staleGenerations.get(actorId);
824
822
  if (stale !== undefined) {
825
823
  const recordedGeneration = stale.get(entry.oldGeneration);
826
- if (recordedGeneration !== undefined
827
- && recordedGeneration <= departedAuthorityOwnerGeneration) {
824
+ if (recordedGeneration !== undefined &&
825
+ recordedGeneration <= departedAuthorityOwnerGeneration) {
828
826
  stale.delete(entry.oldGeneration);
829
827
  }
830
828
  if (stale.size === 0)
@@ -849,10 +847,10 @@ class ZLinkActorHandoffCoordinator {
849
847
  return this.messageFollowRoutes.get(messageFollowRouteKey(actorId, BigInt(context.objectGeneration), context.targetOwner));
850
848
  }
851
849
  hasMessageFollowRouteForStaleRef(actorId, actorRef) {
852
- return [...this.messageFollowRoutes.values()].some(route => route.targetActorRef.actorId === actorId
853
- && actorRef.objectGeneration === route.oldGeneration
854
- && (route.oldNodeRid === undefined
855
- || (0, routing_id_1.routingIdsEqual)(actorRef.nodeRid, (0, actor_message_follow_context_1.messageFollowOwnerNodeRid)(route.sourceOwner))));
850
+ return [...this.messageFollowRoutes.values()].some((route) => route.targetActorRef.actorId === actorId &&
851
+ actorRef.objectGeneration === route.oldGeneration &&
852
+ (route.oldNodeRid === undefined ||
853
+ (0, routing_id_1.routingIdsEqual)(actorRef.nodeRid, (0, actor_message_follow_context_1.messageFollowOwnerNodeRid)(route.sourceOwner))));
856
854
  }
857
855
  createInitialIngressContext(sourceOwner, generation, parts, request, deadlineUnixMs) {
858
856
  const operationId = (0, actor_message_follow_context_1.createMessageFollowId)();
@@ -871,15 +869,14 @@ class ZLinkActorHandoffCoordinator {
871
869
  });
872
870
  }
873
871
  validateContext(actorId, context, parts, request, actorRef) {
874
- if (actorRef !== undefined
875
- && context.objectGeneration !== actorRef.objectGeneration.toString()) {
872
+ if (actorRef !== undefined &&
873
+ context.objectGeneration !== actorRef.objectGeneration.toString()) {
876
874
  throw actorGenerationStale(actorId);
877
875
  }
878
876
  if (context.objectGeneration === '0' || context.request !== request) {
879
877
  throw actorLocationStale(actorId);
880
878
  }
881
- if (context.deadlineUnixMs !== undefined
882
- && Date.now() >= context.deadlineUnixMs) {
879
+ if (context.deadlineUnixMs !== undefined && Date.now() >= context.deadlineUnixMs) {
883
880
  throw actorDeadlineExceeded(actorId);
884
881
  }
885
882
  (0, actor_message_follow_context_1.verifyActorMessageFollowPayload)(context, parts);
@@ -888,13 +885,15 @@ class ZLinkActorHandoffCoordinator {
888
885
  const physicalRefs = this.staleActorRefs.get(actorId);
889
886
  if (physicalRefs !== undefined) {
890
887
  const departedAuthorityOwnerGeneration = physicalRefs.get(actorRefKey(actor.nodeRid, actor.objectGeneration));
891
- return departedAuthorityOwnerGeneration !== undefined
892
- && !this.isNewerTenureRef(actorId, actor, departedAuthorityOwnerGeneration);
893
- }
894
- const departedAuthorityOwnerGeneration = this.staleGenerations.get(actorId)?.get(actor.objectGeneration);
895
- return departedAuthorityOwnerGeneration !== undefined
896
- && !this.isNewerTenureRef(actorId, actor, departedAuthorityOwnerGeneration)
897
- && this.options.isStaleActorRef?.(actorId, actor) === true;
888
+ return (departedAuthorityOwnerGeneration !== undefined &&
889
+ !this.isNewerTenureRef(actorId, actor, departedAuthorityOwnerGeneration));
890
+ }
891
+ const departedAuthorityOwnerGeneration = this.staleGenerations
892
+ .get(actorId)
893
+ ?.get(actor.objectGeneration);
894
+ return (departedAuthorityOwnerGeneration !== undefined &&
895
+ !this.isNewerTenureRef(actorId, actor, departedAuthorityOwnerGeneration) &&
896
+ this.options.isStaleActorRef?.(actorId, actor) === true);
898
897
  }
899
898
  /**
900
899
  * The stale record captures the departing tenure's full fence. A ref whose
@@ -921,9 +920,9 @@ class ZLinkActorHandoffCoordinator {
921
920
  const context = packet.messageFollowContext;
922
921
  const duplicate = entry.operations.get(context.operationId);
923
922
  if (duplicate !== undefined) {
924
- if (duplicate.checksum !== context.payloadChecksumSha256
925
- || duplicate.request !== context.request
926
- || duplicate.replyRouteId !== context.replyRouteId) {
923
+ if (duplicate.checksum !== context.payloadChecksumSha256 ||
924
+ duplicate.request !== context.request ||
925
+ duplicate.replyRouteId !== context.replyRouteId) {
927
926
  this.options.onMarker?.('message_follow_rejected', actorId);
928
927
  return Promise.reject(actorLocationStale(actorId));
929
928
  }
@@ -1026,7 +1025,8 @@ class ZLinkActorHandoffCoordinator {
1026
1025
  return;
1027
1026
  let accepted = false;
1028
1027
  try {
1029
- accepted = await this.options.onMessageFollowRelayed?.(actorId, entry.targetActorRef, context, packet.messageFollowOrigin, entry.queuedMessages, entry.queuedBytes) === true;
1028
+ accepted =
1029
+ (await this.options.onMessageFollowRelayed?.(actorId, entry.targetActorRef, context, packet.messageFollowOrigin, entry.queuedMessages, entry.queuedBytes)) === true;
1030
1030
  }
1031
1031
  catch {
1032
1032
  accepted = false;
@@ -1090,9 +1090,9 @@ async function replayActorHandoffBacklog(backlog, dispatch, onEnqueued) {
1090
1090
  for (const packet of backlog) {
1091
1091
  const decoded = decodeHandoffPacket(packet);
1092
1092
  try {
1093
- if (packet.returnResponse
1094
- && packet.messageFollowContext.deadlineUnixMs !== undefined
1095
- && Date.now() >= packet.messageFollowContext.deadlineUnixMs) {
1093
+ if (packet.returnResponse &&
1094
+ packet.messageFollowContext.deadlineUnixMs !== undefined &&
1095
+ Date.now() >= packet.messageFollowContext.deadlineUnixMs) {
1096
1096
  throw actorDeadlineExceeded(packet.fallbackActorRef?.actorId ?? 'accepted-handoff');
1097
1097
  }
1098
1098
  await onEnqueued?.(packet.index);
@@ -1104,9 +1104,7 @@ async function replayActorHandoffBacklog(backlog, dispatch, onEnqueued) {
1104
1104
  index: packet.index,
1105
1105
  ok: false,
1106
1106
  error: error instanceof Error ? error.message : String(error),
1107
- errorKind: error instanceof contracts_1.ZLinkFrameworkException
1108
- ? (0, framework_errors_internal_1.internalFrameworkErrorKind)(error)
1109
- : undefined
1107
+ errorKind: error instanceof contracts_1.ZLinkFrameworkException ? (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) : undefined
1110
1108
  });
1111
1109
  }
1112
1110
  finally {
@@ -1213,13 +1211,13 @@ function actorRefEvidenceKey(nodeRid, nodeRidHex, generation) {
1213
1211
  return `${nodeRidHex ?? (0, routing_id_1.encodeRoutingIdStorageHex)(nodeRid)}\u0000${generation}`;
1214
1212
  }
1215
1213
  function requestSourcesEqual(expected, actual) {
1216
- return expected.replyRouteId === actual.replyRouteId
1217
- && expected.ownerId === actual.ownerId
1218
- && expected.ownerLeaseGeneration === actual.ownerLeaseGeneration
1219
- && expected.nodeRid === actual.nodeRid
1220
- && expected.nodeGeneration === actual.nodeGeneration
1221
- && /^[1-9][0-9]*$/.test(actual.ownerLeaseGeneration)
1222
- && /^[1-9][0-9]*$/.test(actual.nodeGeneration);
1214
+ return (expected.replyRouteId === actual.replyRouteId &&
1215
+ expected.ownerId === actual.ownerId &&
1216
+ expected.ownerLeaseGeneration === actual.ownerLeaseGeneration &&
1217
+ expected.nodeRid === actual.nodeRid &&
1218
+ expected.nodeGeneration === actual.nodeGeneration &&
1219
+ /^[1-9][0-9]*$/.test(actual.ownerLeaseGeneration) &&
1220
+ /^[1-9][0-9]*$/.test(actual.nodeGeneration));
1223
1221
  }
1224
1222
  function terminalRequestSource(route) {
1225
1223
  return Object.freeze({
@@ -1243,10 +1241,9 @@ function actorMoving(actorId) {
1243
1241
  return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving, `Actor '${actorId}' bound-session send arrived after its Session route seal.`, true);
1244
1242
  }
1245
1243
  function actorRelayError(actorId, errorKind, error) {
1246
- const kind = Object.values(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind)
1247
- .includes(errorKind)
1244
+ const kind = Object.values(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind).includes(errorKind)
1248
1245
  ? errorKind
1249
1246
  : framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
1250
- return (0, framework_errors_internal_1.createInternalFrameworkException)(kind, String(error ?? `Actor Message Follow relay failed for '${actorId}'.`), kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving
1251
- || kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected);
1247
+ return (0, framework_errors_internal_1.createInternalFrameworkException)(kind, String(error ?? `Actor Message Follow relay failed for '${actorId}'.`), kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving ||
1248
+ kind === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected);
1252
1249
  }
@@ -31,8 +31,7 @@ class ZLinkLocalNativeActorJoin {
31
31
  }
32
32
  const completion = await this.waitForJoinCompletion(() => node.joinActorSpot(actorRef, (0, routing_id_1.toBackendRoutingId)(target.targetNodeRid), (0, routing_id_1.toBackendRoutingId)(target.spotId), target.targetSpotGeneration, actorJoinApplicationPayload(request), timeoutMs), completions, timeoutMs, signal);
33
33
  const control = completion.kindData;
34
- if (control?.kind !== 'actorJoinCompletion' ||
35
- control.actor === null) {
34
+ if (control?.kind !== 'actorJoinCompletion' || control.actor === null) {
36
35
  (0, mesh_completion_table_1.closeMeshCompletion)(completion);
37
36
  const message = `Actor join failed for '${actor.context.actorId}' with result '${completion.terminalResult}' and errno '${completion.failureErrno}'.`;
38
37
  // Classify the (terminal, fine) pair instead of collapsing every non-OK
@@ -85,14 +84,15 @@ class ZLinkLocalNativeActorJoin {
85
84
  const completions = this.requireCompletions();
86
85
  const actorMeshName = runtimeActorMeshName(actor, state, '');
87
86
  const targetNodeRid = spotRouteTarget?.targetNodeRid ?? nodeRid;
88
- const remote = spotRouteTarget !== undefined && (!(0, routing_id_2.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(node.status().routingId), spotRouteTarget.targetNodeRid) || !(0, routing_id_2.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(actorRef.nodeRid), spotRouteTarget.targetNodeRid));
87
+ const remote = spotRouteTarget !== undefined &&
88
+ (!(0, routing_id_2.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(node.status().routingId), spotRouteTarget.targetNodeRid) ||
89
+ !(0, routing_id_2.routingIdsEqual)((0, actor_runtime_state_1.toFrameworkRoutingId)(actorRef.nodeRid), spotRouteTarget.targetNodeRid));
89
90
  if (remote) {
90
91
  return await this.relocateRemoteActorJoin(node, actor, state, actorRef, spotRouteTarget, request, timeoutMs, signal, completionOperationId, true);
91
92
  }
92
93
  const completion = await this.waitForJoinCompletion(() => node.joinActorEntrySpot(actorRef, (0, routing_id_1.toBackendRoutingId)(targetNodeRid), actorJoinApplicationPayload(request), timeoutMs), completions, timeoutMs, signal);
93
94
  const control = completion.kindData;
94
- if (control?.kind !== 'actorJoinCompletion' ||
95
- control.actor === null) {
95
+ if (control?.kind !== 'actorJoinCompletion' || control.actor === null) {
96
96
  (0, mesh_completion_table_1.closeMeshCompletion)(completion);
97
97
  const message = `Actor entry SPOT join failed for '${actor.context.actorId}' with result '${completion.terminalResult}' and errno '${completion.failureErrno}'.`;
98
98
  // Classify the (terminal, fine) pair instead of collapsing to NotFound
@@ -149,9 +149,7 @@ class ZLinkLocalNativeActorJoin {
149
149
  }
150
150
  const completions = this.requireCompletions();
151
151
  let relocationId = (0, node_crypto_1.randomUUID)();
152
- const completionOperationKey = completionOperationId === undefined
153
- ? undefined
154
- : (0, operation_identity_1.operationIdentityKey)(completionOperationId);
152
+ const completionOperationKey = completionOperationId === undefined ? undefined : (0, operation_identity_1.operationIdentityKey)(completionOperationId);
155
153
  if (completionOperationKey === relocationId) {
156
154
  throw new Error('Actor Join OperationId must be distinct from RelocationId.');
157
155
  }
@@ -161,8 +159,7 @@ class ZLinkLocalNativeActorJoin {
161
159
  // the existing internal admission route (wire protocol §10); fabricating
162
160
  // an Actor fence from the destination Spot would let a stale source pass
163
161
  // receiver-side Authority-row equality.
164
- const canonicalAdmission = actorAuthorityFence === undefined
165
- || !supportsCanonicalActorJoin(node, entrySpot)
162
+ const canonicalAdmission = actorAuthorityFence === undefined || !supportsCanonicalActorJoin(node, entrySpot)
166
163
  ? undefined
167
164
  : {
168
165
  request: actorJoinApplicationPayload(request),
@@ -359,19 +356,21 @@ function canonicalHandoffRelocationId(handoffId) {
359
356
  if (!/^[0-9a-f]{32}$/u.test(hex) || /^0+$/u.test(hex)) {
360
357
  throw new TypeError('Canonical Actor Join handoff id is not a non-zero 128-bit identity.');
361
358
  }
362
- return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}`
363
- + `-${hex.slice(16, 20)}-${hex.slice(20)}`;
359
+ return (`${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}` +
360
+ `-${hex.slice(16, 20)}-${hex.slice(20)}`);
364
361
  }
365
362
  function remoteActorJoinFailureException(node, target, terminalResult, failureErrno, message) {
366
363
  const failure = (0, framework_errors_internal_1.wireReplyFailureException)(terminalResult, failureErrno, message);
367
364
  const targetGeneration = target.targetNodeGeneration;
368
- if (failure.kind === contracts_1.ZLinkFrameworkErrorKind.DeadlineExceeded
369
- && targetGeneration !== undefined
370
- && targetGeneration !== 0n
371
- && !node.peers().some((peer) => peer.state === 3
372
- && peer.routingId !== null
373
- && (0, routing_id_2.routingIdsEqual)(peer.routingId, target.targetNodeRid)
374
- && peer.lifecycleGeneration === targetGeneration)) {
365
+ if (failure.kind === contracts_1.ZLinkFrameworkErrorKind.DeadlineExceeded &&
366
+ targetGeneration !== undefined &&
367
+ targetGeneration !== 0n &&
368
+ !node
369
+ .peers()
370
+ .some((peer) => peer.state === 3 &&
371
+ peer.routingId !== null &&
372
+ (0, routing_id_2.routingIdsEqual)(peer.routingId, target.targetNodeRid) &&
373
+ peer.lifecycleGeneration === targetGeneration)) {
375
374
  return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, 'wire Actor join target RouteMesh peer became unavailable');
376
375
  }
377
376
  return failure;
@@ -29,7 +29,7 @@ class ZLinkActorSerialExecutor {
29
29
  admitDurablePrefix(records) {
30
30
  // No await occurs in this map: the whole durable prefix is appended in
31
31
  // one event-loop turn before later ingress can observe the released hold.
32
- return records.map(record => this.scheduler.admitDurablePrefix(() => record.operation(child => (0, actor_execution_context_1.runZLinkActorExecution)(this.actorId, this.sourceSpotId, child)), record.workOptions, undefined, record.preparation));
32
+ return records.map((record) => this.scheduler.admitDurablePrefix(() => record.operation((child) => (0, actor_execution_context_1.runZLinkActorExecution)(this.actorId, this.sourceSpotId, child)), record.workOptions, undefined, record.preparation));
33
33
  }
34
34
  close() {
35
35
  return this.scheduler.close();
@@ -58,8 +58,9 @@ function decodeActorMessageFollowContext(value) {
58
58
  const checksum = input.payloadChecksumSha256;
59
59
  if (typeof request !== 'boolean')
60
60
  throw invalidContext('request must be boolean');
61
- if (!Number.isSafeInteger(hopCount) || hopCount < 0
62
- || hopCount > exports.ZLINK_MESSAGE_FOLLOW_MAX_HOPS) {
61
+ if (!Number.isSafeInteger(hopCount) ||
62
+ hopCount < 0 ||
63
+ hopCount > exports.ZLINK_MESSAGE_FOLLOW_MAX_HOPS) {
63
64
  throw invalidContext('hopCount is outside 0..8');
64
65
  }
65
66
  if (typeof checksum !== 'string' || !/^[0-9a-f]{64}$/.test(checksum)) {
@@ -74,16 +75,16 @@ function decodeActorMessageFollowContext(value) {
74
75
  if (!request && replyRouteId !== undefined) {
75
76
  throw invalidContext('one-way context must not contain replyRouteId');
76
77
  }
77
- if (!Array.isArray(input.visitedOwners)
78
- || input.visitedOwners.some(item => typeof item !== 'string' || item.length === 0)
79
- || input.visitedOwners.length !== hopCount + 1) {
78
+ if (!Array.isArray(input.visitedOwners) ||
79
+ input.visitedOwners.some((item) => typeof item !== 'string' || item.length === 0) ||
80
+ input.visitedOwners.length !== hopCount + 1) {
80
81
  throw invalidContext('visitedOwners does not match hopCount');
81
82
  }
82
83
  const visitedOwners = [...input.visitedOwners];
83
84
  const targetOwnerKeys = messageFollowOwnerFenceCompatibleKeys(targetOwner);
84
- if (new Set(visitedOwners).size !== visitedOwners.length
85
- || !targetOwnerKeys.includes(visitedOwners[visitedOwners.length - 1])
86
- || visitedOwners.slice(0, -1).some(key => targetOwnerKeys.includes(key))) {
85
+ if (new Set(visitedOwners).size !== visitedOwners.length ||
86
+ !targetOwnerKeys.includes(visitedOwners[visitedOwners.length - 1]) ||
87
+ visitedOwners.slice(0, -1).some((key) => targetOwnerKeys.includes(key))) {
87
88
  throw invalidContext('visited owner fence chain is invalid');
88
89
  }
89
90
  return freezeContext({
@@ -108,8 +109,7 @@ function advanceActorMessageFollowContext(context, sourceOwner, targetOwner) {
108
109
  throw invalidContext('Message Follow reached the 8-hop limit');
109
110
  }
110
111
  const targetKey = messageFollowOwnerFenceKey(targetOwner);
111
- if (messageFollowOwnerFenceCompatibleKeys(targetOwner)
112
- .some(key => context.visitedOwners.includes(key))) {
112
+ if (messageFollowOwnerFenceCompatibleKeys(targetOwner).some((key) => context.visitedOwners.includes(key))) {
113
113
  throw invalidContext('Message Follow owner loop was detected');
114
114
  }
115
115
  return freezeContext({
@@ -127,8 +127,7 @@ function attachActorMessageFollowContext(actorRef, context) {
127
127
  });
128
128
  }
129
129
  function actorMessageFollowContext(actorRef) {
130
- return actorRef
131
- ?.__zlinkMessageFollowContext;
130
+ return actorRef?.__zlinkMessageFollowContext;
132
131
  }
133
132
  function actorMessageFollowPayloadChecksum(parts) {
134
133
  const hash = (0, node_crypto_1.createHash)('sha256');
@@ -198,8 +197,7 @@ function freezeContext(context) {
198
197
  });
199
198
  }
200
199
  function requireId(value, name) {
201
- if (typeof value !== 'string' || !/^[0-9a-f]{32}$/.test(value)
202
- || /^0+$/.test(value)) {
200
+ if (typeof value !== 'string' || !/^[0-9a-f]{32}$/.test(value) || /^0+$/.test(value)) {
203
201
  throw invalidContext(`${name} must be a nonzero 128-bit lowercase hex value`);
204
202
  }
205
203
  return value;
@@ -222,8 +220,10 @@ function requirePositiveBigInt(value, name) {
222
220
  function optionalNodeRidHex(value, name) {
223
221
  if (value === undefined)
224
222
  return undefined;
225
- if (typeof value !== 'string' || value.length === 0 || value.length % 2 !== 0
226
- || !/^[0-9a-f]+$/.test(value)) {
223
+ if (typeof value !== 'string' ||
224
+ value.length === 0 ||
225
+ value.length % 2 !== 0 ||
226
+ !/^[0-9a-f]+$/.test(value)) {
227
227
  throw invalidContext(`${name} must be non-empty lowercase hexadecimal bytes`);
228
228
  }
229
229
  return value;
@@ -231,18 +231,21 @@ function optionalNodeRidHex(value, name) {
231
231
  function messageFollowOwnerFenceCompatibleKeys(fence) {
232
232
  const canonical = messageFollowOwnerFenceKey(fence);
233
233
  const textHex = (0, routing_id_1.encodeRoutingIdStorageHex)(fence.nodeRid);
234
- if (fence.nodeRid.includes('\u0000')
235
- || fence.ownerId.includes('\u0000')
236
- || (fence.nodeRidHex !== undefined && fence.nodeRidHex !== textHex)) {
234
+ if (fence.nodeRid.includes('\u0000') ||
235
+ fence.ownerId.includes('\u0000') ||
236
+ (fence.nodeRidHex !== undefined && fence.nodeRidHex !== textHex)) {
237
237
  return [canonical];
238
238
  }
239
- return [canonical, [
239
+ return [
240
+ canonical,
241
+ [
240
242
  fence.nodeRid,
241
243
  fence.nodeGeneration,
242
244
  fence.ownerId,
243
245
  fence.ownerLeaseGeneration,
244
246
  fence.authorityOwnerGeneration
245
- ].join('\u0000')];
247
+ ].join('\u0000')
248
+ ];
246
249
  }
247
250
  function optionalPositiveSafeInteger(value, name) {
248
251
  if (value === undefined)
@@ -40,9 +40,7 @@ function encodeRemoteActorPacketRelayPayload(input) {
40
40
  boundSessionTargetNodeRid: input.boundSessionTargetNodeRid,
41
41
  boundSessionSpotId: input.boundSessionSpotId,
42
42
  actorNodeRid: input.actorRef === undefined ? undefined : String(input.actorRef.nodeRid),
43
- actorNodeRidHex: input.actorRef === undefined
44
- ? undefined
45
- : (0, routing_id_1.routingIdWireHex)(input.actorRef.nodeRid),
43
+ actorNodeRidHex: input.actorRef === undefined ? undefined : (0, routing_id_1.routingIdWireHex)(input.actorRef.nodeRid),
46
44
  actorGeneration: input.actorRef?.objectGeneration.toString(),
47
45
  bindingActorNodeRid: input.bindingActorRef === undefined ? undefined : String(input.bindingActorRef.nodeRid),
48
46
  bindingActorNodeRidHex: input.bindingActorRef === undefined