@zlink-systems/framework 0.21.0 → 0.23.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 (516) 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/Dispatch/ZLinkDispatchOptions.d.ts +1 -0
  13. package/dist/contracts/Handlers/JsonContract.js +23 -11
  14. package/dist/contracts/Spots/SpotKind.js +16 -8
  15. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -1
  16. package/dist/location-store-integration.js +16 -16
  17. package/dist/nest-integration.js +17 -11
  18. package/dist/runtime/abort.js +9 -5
  19. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  20. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  21. package/dist/runtime/actors/actor-client.js +83 -63
  22. package/dist/runtime/actors/actor-context.js +28 -22
  23. package/dist/runtime/actors/actor-creation.js +4 -3
  24. package/dist/runtime/actors/actor-handoff.js +89 -92
  25. package/dist/runtime/actors/actor-join-deferred-scope.d.ts +0 -1
  26. package/dist/runtime/actors/actor-join-deferred-scope.js +0 -18
  27. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  28. package/dist/runtime/actors/actor-mailbox.js +1 -1
  29. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  30. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  31. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  32. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  33. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  34. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  35. package/dist/runtime/actors/bound-session-wire.js +14 -9
  36. package/dist/runtime/actors/deferred-join-accepted-journal.js +160 -130
  37. package/dist/runtime/actors/index.js +2 -5
  38. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  39. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  40. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  41. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  42. package/dist/runtime/admission.js +2 -6
  43. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  44. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  45. package/dist/runtime/backend/contracts/index.d.ts +1 -0
  46. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  47. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  48. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  49. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  50. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  51. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  52. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +3 -0
  53. package/dist/runtime/backend/node/node-raw-mesh-backend.js +134 -118
  54. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  55. package/dist/runtime/backend/runtime-message.js +3 -3
  56. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  57. package/dist/runtime/backend/runtime-values.js +4 -5
  58. package/dist/runtime/channels/channel-clients.js +27 -24
  59. package/dist/runtime/channels/channel-dispatch-pipeline.js +12 -20
  60. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  61. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  62. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  63. package/dist/runtime/channels/channel-envelope.js +83 -47
  64. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  65. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  66. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  67. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  68. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  69. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  70. package/dist/runtime/channels/channel-transports.js +46 -42
  71. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  72. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  73. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -0
  74. package/dist/runtime/channels/dispatch-error-reporter.js +9 -39
  75. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  76. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  77. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  78. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  79. package/dist/runtime/channels/source-spot-router.js +6 -2
  80. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  81. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  82. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  83. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +6 -0
  84. package/dist/runtime/diagnostics/dispatch-error-details.js +55 -0
  85. package/dist/runtime/diagnostics/flow-context.d.ts +2 -1
  86. package/dist/runtime/diagnostics/flow-context.js +2 -2
  87. package/dist/runtime/diagnostics/index.js +38 -10
  88. package/dist/runtime/diagnostics/message-flow.js +58 -42
  89. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  90. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  91. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  92. package/dist/runtime/execution/index.js +7 -6
  93. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  94. package/dist/runtime/execution/state-lane.js +2 -2
  95. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -27
  96. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  97. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  98. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +4 -2
  99. package/dist/runtime/foundation/raw-service-mesh-runtime.js +169 -144
  100. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  101. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  102. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  103. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  104. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  105. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  106. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  107. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  108. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  109. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  110. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  111. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +1 -0
  112. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  113. package/dist/runtime/foundation/service-stateful-runtime.d.ts +4 -0
  114. package/dist/runtime/foundation/service-stateful-runtime.js +461 -439
  115. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  116. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -0
  117. package/dist/runtime/foundation/service-topology-registry.js +105 -96
  118. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  119. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  120. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  121. package/dist/runtime/framework-errors-internal.js +7 -10
  122. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  123. package/dist/runtime/handlers/index.js +3 -1
  124. package/dist/runtime/host/actor-packet-relay.js +74 -70
  125. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  126. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  127. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  128. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  129. package/dist/runtime/host/application-job-queue.js +18 -22
  130. package/dist/runtime/host/bound-session-relay.js +3 -1
  131. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  132. package/dist/runtime/host/host-capacity-status.js +8 -4
  133. package/dist/runtime/host/index.js +245 -228
  134. package/dist/runtime/host/instance-activation-authority.js +93 -96
  135. package/dist/runtime/host/location-runtime-owner.js +16 -14
  136. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  137. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  138. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  139. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  140. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  141. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  142. package/dist/runtime/host/runtime-shutdown.js +1 -2
  143. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  144. package/dist/runtime/host/spot-address-transport.js +69 -71
  145. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  146. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  147. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  148. package/dist/runtime/locations/actor-location-claims.js +26 -20
  149. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  150. package/dist/runtime/locations/authority-key-codec.js +7 -7
  151. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  152. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  153. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  154. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  155. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  156. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  157. package/dist/runtime/locations/key-codec.js +1 -1
  158. package/dist/runtime/locations/lease-tracker.js +23 -21
  159. package/dist/runtime/locations/lifecycle.js +4 -5
  160. package/dist/runtime/locations/location-store-repository.js +368 -324
  161. package/dist/runtime/locations/opaque-record-key.js +2 -2
  162. package/dist/runtime/locations/resolvers.js +73 -82
  163. package/dist/runtime/locations/runtime.js +68 -63
  164. package/dist/runtime/locations/spot-location-claims.js +39 -35
  165. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  166. package/dist/runtime/messaging/packet-name.js +7 -6
  167. package/dist/runtime/messaging/payload-codec.js +21 -18
  168. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  169. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  170. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +20 -18
  171. package/dist/runtime/routing-id.js +3 -5
  172. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  173. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  174. package/dist/runtime/spots/index.js +209 -220
  175. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  176. package/dist/runtime/spots/spot-activation-state.js +17 -15
  177. package/dist/runtime/spots/spot-activation.js +33 -16
  178. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  179. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  180. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +2 -1
  181. package/dist/runtime/spots/spot-actor-packet-dispatch.js +29 -21
  182. package/dist/runtime/spots/spot-actor-packet-drain.js +14 -10
  183. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  184. package/dist/runtime/spots/spot-closing.js +3 -7
  185. package/dist/runtime/spots/spot-context.js +2 -2
  186. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  187. package/dist/runtime/spots/spot-handle.js +6 -3
  188. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  189. package/dist/runtime/spots/spot-manager-public.js +5 -6
  190. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  191. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  192. package/dist/runtime/spots/spot-node-runtime-manager.js +79 -86
  193. package/dist/runtime/spots/spot-outbound.js +10 -14
  194. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  195. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  196. package/dist/runtime/spots/spot-route-packet-dispatch.js +17 -15
  197. package/dist/runtime/spots/spot-route-replies.js +4 -6
  198. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  199. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +2 -3
  200. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  201. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  202. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  203. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  204. package/dist/runtime/spots/spot-subscription-dispatch.js +6 -6
  205. package/dist/runtime/spots/spot-timer.js +26 -30
  206. package/dist/runtime/streams/actor-session-binding-registry.d.ts +21 -8
  207. package/dist/runtime/streams/actor-session-binding-registry.js +168 -148
  208. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -0
  209. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  210. package/dist/runtime/streams/bound-actor-relay-sender.js +20 -17
  211. package/dist/runtime/streams/bound-session-response-target.js +8 -1
  212. package/dist/runtime/streams/bound-session-service.d.ts +1 -0
  213. package/dist/runtime/streams/bound-session-service.js +14 -12
  214. package/dist/runtime/streams/index.js +28 -20
  215. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  216. package/dist/runtime/streams/managed-stream.js +52 -31
  217. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  218. package/dist/runtime/streams/protocol.d.ts +5 -1
  219. package/dist/runtime/streams/protocol.js +68 -20
  220. package/dist/runtime/streams/session-actor-coordinator.js +37 -41
  221. package/dist/runtime/streams/session-context.d.ts +9 -2
  222. package/dist/runtime/streams/session-context.js +50 -32
  223. package/dist/runtime/streams/session-local-actors.d.ts +3 -1
  224. package/dist/runtime/streams/session-local-actors.js +17 -2
  225. package/dist/runtime/streams/session-provider.js +2 -2
  226. package/dist/runtime/streams/session-serial-executor.js +1 -2
  227. package/dist/runtime/streams/stream-frame-factory.d.ts +1 -1
  228. package/dist/runtime/streams/stream-frame-factory.js +14 -7
  229. package/dist/runtime/streams/stream-session-runtime.js +112 -78
  230. package/dist/runtime/workers/index.js +15 -4
  231. package/package.json +3 -3
  232. package/src/contracts/Channels/RouteCalls.ts +6 -1
  233. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  234. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  235. package/src/contracts/Configuration/Builders.ts +14 -14
  236. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  237. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  238. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  239. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  240. package/src/contracts/Configuration/Registration.ts +46 -17
  241. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  242. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  243. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  244. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  245. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  246. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  247. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  248. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  249. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  250. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  251. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -6
  252. package/src/contracts/Errors/index.ts +1 -4
  253. package/src/contracts/Handlers/Attributes.ts +15 -9
  254. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  255. package/src/contracts/Handlers/JsonContract.ts +53 -19
  256. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  257. package/src/contracts/Locations/Authority.ts +4 -11
  258. package/src/contracts/Locations/Keys.ts +6 -1
  259. package/src/contracts/Locations/Options.ts +3 -2
  260. package/src/contracts/Locations/RelocationStore.ts +1 -4
  261. package/src/contracts/Locations/Resolvers.ts +5 -5
  262. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  263. package/src/contracts/Locations/Stores.ts +1 -2
  264. package/src/contracts/Locations/index.ts +2 -8
  265. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  266. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  267. package/src/contracts/Spots/Contracts.ts +2 -8
  268. package/src/contracts/Spots/SpotKind.ts +16 -8
  269. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  270. package/src/contracts/Streams/IZLinkSession.ts +2 -2
  271. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  272. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  273. package/src/internal.ts +5 -4
  274. package/src/location-store-integration.ts +24 -16
  275. package/src/nest-integration.ts +40 -25
  276. package/src/runtime/abort.ts +10 -4
  277. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  278. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  279. package/src/runtime/actors/actor-client.ts +162 -133
  280. package/src/runtime/actors/actor-context.ts +142 -134
  281. package/src/runtime/actors/actor-creation.ts +47 -44
  282. package/src/runtime/actors/actor-execution-context.ts +6 -4
  283. package/src/runtime/actors/actor-handoff.ts +269 -293
  284. package/src/runtime/actors/actor-join-deferred-scope.ts +1 -32
  285. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  286. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  287. package/src/runtime/actors/actor-mailbox.ts +16 -19
  288. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  289. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  290. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  291. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  292. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  293. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  294. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  295. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  296. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  297. package/src/runtime/actors/bound-session-wire.ts +37 -17
  298. package/src/runtime/actors/deferred-join-accepted-journal.ts +353 -326
  299. package/src/runtime/actors/index.ts +43 -86
  300. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  301. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  302. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  303. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  304. package/src/runtime/admission.ts +9 -9
  305. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  306. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  307. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  308. package/src/runtime/backend/contracts/index.ts +77 -52
  309. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  310. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  311. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  312. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  313. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  314. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  315. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  316. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  317. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  318. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  319. package/src/runtime/backend/node/node-raw-mesh-backend.ts +370 -390
  320. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  321. package/src/runtime/backend/runtime-message.ts +5 -3
  322. package/src/runtime/backend/runtime-values.ts +10 -7
  323. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  324. package/src/runtime/channels/channel-clients.ts +93 -73
  325. package/src/runtime/channels/channel-dispatch-pipeline.ts +44 -44
  326. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  327. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  328. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  329. package/src/runtime/channels/channel-envelope.ts +256 -150
  330. package/src/runtime/channels/channel-multipart.ts +13 -5
  331. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  332. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  333. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  334. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  335. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  336. package/src/runtime/channels/channel-socket-options.ts +3 -10
  337. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  338. package/src/runtime/channels/channel-transports.ts +218 -206
  339. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  340. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  341. package/src/runtime/channels/dispatch-error-reporter.ts +12 -47
  342. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  343. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  344. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  345. package/src/runtime/channels/index.ts +1 -4
  346. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  347. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  348. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  349. package/src/runtime/channels/source-spot-router.ts +26 -22
  350. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  351. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  352. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  353. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  354. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  355. package/src/runtime/codecs/index.ts +3 -2
  356. package/src/runtime/diagnostics/dispatch-error-details.ts +62 -0
  357. package/src/runtime/diagnostics/flow-context.ts +18 -7
  358. package/src/runtime/diagnostics/index.ts +96 -61
  359. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  360. package/src/runtime/diagnostics/message-flow.ts +107 -79
  361. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  362. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  363. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  364. package/src/runtime/execution/index.ts +18 -26
  365. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  366. package/src/runtime/execution/state-lane.ts +2 -2
  367. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -55
  368. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  369. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  370. package/src/runtime/foundation/operation-identity.ts +1 -2
  371. package/src/runtime/foundation/operation-registry.ts +8 -2
  372. package/src/runtime/foundation/raw-service-mesh-runtime.ts +364 -396
  373. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  374. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  375. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  376. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  377. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  378. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  379. package/src/runtime/foundation/service-mailbox.ts +14 -14
  380. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  381. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  382. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  383. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  384. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  385. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  386. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  387. package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -4
  388. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  389. package/src/runtime/foundation/service-stateful-runtime.ts +1233 -1112
  390. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  391. package/src/runtime/foundation/service-topology-registry.ts +170 -159
  392. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  393. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  394. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  395. package/src/runtime/framework-errors-internal.ts +31 -30
  396. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  397. package/src/runtime/handlers/index.ts +18 -8
  398. package/src/runtime/host/actor-packet-relay.ts +290 -261
  399. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  400. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  401. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  402. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  403. package/src/runtime/host/application-job-queue.ts +32 -48
  404. package/src/runtime/host/bound-session-relay.ts +7 -9
  405. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  406. package/src/runtime/host/host-capacity-status.ts +10 -9
  407. package/src/runtime/host/index.ts +861 -789
  408. package/src/runtime/host/instance-activation-authority.ts +125 -143
  409. package/src/runtime/host/location-runtime-owner.ts +38 -26
  410. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  411. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  412. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  413. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  414. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  415. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  416. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  417. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  418. package/src/runtime/host/runtime-shutdown.ts +4 -3
  419. package/src/runtime/host/service-relocation-control.ts +14 -5
  420. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  421. package/src/runtime/host/spot-address-transport.ts +284 -237
  422. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  423. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  424. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  425. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  426. package/src/runtime/locations/actor-location-claims.ts +61 -49
  427. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  428. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  429. package/src/runtime/locations/authority-key-codec.ts +13 -10
  430. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  431. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  432. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  433. package/src/runtime/locations/canonical-codec.ts +3 -1
  434. package/src/runtime/locations/creation-operation-id.ts +4 -3
  435. package/src/runtime/locations/domain-store-contract.ts +13 -7
  436. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  437. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  438. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  439. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  440. package/src/runtime/locations/key-codec.ts +3 -4
  441. package/src/runtime/locations/lease-tracker.ts +36 -27
  442. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  443. package/src/runtime/locations/lifecycle.ts +33 -28
  444. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  445. package/src/runtime/locations/opaque-record-key.ts +4 -9
  446. package/src/runtime/locations/resolvers.ts +201 -178
  447. package/src/runtime/locations/runtime.ts +251 -159
  448. package/src/runtime/locations/spot-location-claims.ts +110 -112
  449. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  450. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  451. package/src/runtime/messaging/packet-name.ts +8 -6
  452. package/src/runtime/messaging/payload-codec.ts +70 -50
  453. package/src/runtime/messaging/submission-result.ts +6 -9
  454. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  455. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +19 -18
  456. package/src/runtime/routing-id.ts +10 -7
  457. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  458. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  459. package/src/runtime/spots/index.ts +595 -564
  460. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  461. package/src/runtime/spots/spot-activation-state.ts +43 -51
  462. package/src/runtime/spots/spot-activation.ts +179 -116
  463. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  464. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  465. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  466. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  467. package/src/runtime/spots/spot-actor-packet-dispatch.ts +196 -148
  468. package/src/runtime/spots/spot-actor-packet-drain.ts +56 -42
  469. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  470. package/src/runtime/spots/spot-closing.ts +11 -12
  471. package/src/runtime/spots/spot-context.ts +46 -26
  472. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  473. package/src/runtime/spots/spot-handle.ts +17 -15
  474. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  475. package/src/runtime/spots/spot-location-claim.ts +5 -4
  476. package/src/runtime/spots/spot-manager-public.ts +62 -82
  477. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  478. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  479. package/src/runtime/spots/spot-node-runtime-manager.ts +235 -222
  480. package/src/runtime/spots/spot-outbound.ts +47 -59
  481. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  482. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  483. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  484. package/src/runtime/spots/spot-route-packet-dispatch.ts +129 -95
  485. package/src/runtime/spots/spot-route-replies.ts +23 -24
  486. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  487. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  488. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +13 -18
  489. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  490. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  491. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  492. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  493. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  494. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  495. package/src/runtime/spots/spot-subscription-dispatch.ts +58 -47
  496. package/src/runtime/spots/spot-timer.ts +103 -91
  497. package/src/runtime/streams/actor-session-binding-registry.ts +421 -292
  498. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +8 -4
  499. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  500. package/src/runtime/streams/bound-actor-relay-sender.ts +60 -50
  501. package/src/runtime/streams/bound-session-response-target.ts +39 -9
  502. package/src/runtime/streams/bound-session-service.ts +52 -42
  503. package/src/runtime/streams/index.ts +183 -100
  504. package/src/runtime/streams/managed-stream.ts +123 -90
  505. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  506. package/src/runtime/streams/protocol.ts +115 -46
  507. package/src/runtime/streams/session-actor-coordinator.ts +109 -93
  508. package/src/runtime/streams/session-calls.ts +2 -8
  509. package/src/runtime/streams/session-context.ts +96 -51
  510. package/src/runtime/streams/session-local-actors.ts +19 -3
  511. package/src/runtime/streams/session-provider.ts +5 -7
  512. package/src/runtime/streams/session-serial-executor.ts +7 -6
  513. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  514. package/src/runtime/streams/stream-frame-factory.ts +59 -40
  515. package/src/runtime/streams/stream-session-runtime.ts +317 -214
  516. package/src/runtime/workers/index.ts +68 -29
@@ -1,4 +1,8 @@
1
- import { ZLinkFrameworkInternalErrorKind, createInternalFrameworkException, internalFrameworkErrorKind } from '../framework-errors-internal';
1
+ import {
2
+ ZLinkFrameworkInternalErrorKind,
3
+ createInternalFrameworkException,
4
+ internalFrameworkErrorKind
5
+ } from '../framework-errors-internal';
2
6
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
3
7
  import {
4
8
  RequestResult,
@@ -15,10 +19,7 @@ import type {
15
19
  ZLinkMessageSerializer
16
20
  } from '../../contracts';
17
21
  import { ZLinkSpotKind } from '../../contracts';
18
- import {
19
- ZLinkFrameworkException,
20
- ZLinkFrameworkErrorKind
21
- } from '../../contracts';
22
+ import { ZLinkFrameworkException, ZLinkFrameworkErrorKind } from '../../contracts';
22
23
  import {
23
24
  requireOneWayCompletion,
24
25
  throwAlreadySubmitted,
@@ -82,13 +83,15 @@ export interface ZLinkActorClientOptions {
82
83
  ) => Promise<unknown> | undefined;
83
84
  readonly sendErrorReporter?: (error: unknown) => void;
84
85
  readonly routeTransport?: ZLinkActorRoutedJoinTransport;
85
- readonly transportDeliveryGate?: () => {
86
- waitBeforeSubmit(
87
- actorId: string,
88
- kind: 'oneWay' | 'request',
89
- signal?: AbortSignal
90
- ): Promise<number | void>;
91
- } | undefined;
86
+ readonly transportDeliveryGate?: () =>
87
+ | {
88
+ waitBeforeSubmit(
89
+ actorId: string,
90
+ kind: 'oneWay' | 'request',
91
+ signal?: AbortSignal
92
+ ): Promise<number | void>;
93
+ }
94
+ | undefined;
92
95
  }
93
96
 
94
97
  export class DefaultZLinkActorClient implements ZLinkActorClient {
@@ -97,8 +100,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
97
100
  sendToActor(actorId: string, message: unknown): ZLinkActorSendCall {
98
101
  requireActorId(actorId);
99
102
  return new DefaultZLinkActorSendCall(
100
- (packetName, metadata, signal) =>
101
- this.send(actorId, packetName, message, metadata, signal),
103
+ (packetName, metadata, signal) => this.send(actorId, packetName, message, metadata, signal),
102
104
  message
103
105
  );
104
106
  }
@@ -127,19 +129,20 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
127
129
  const route = await this.resolveActorRoute(actorId, signal);
128
130
  const { meshName, actorRef: actor } = route;
129
131
  this.throwIfKnownStale(meshName, actor);
130
- const parts = this.createPacketParts(ZLinkStreamMessageKind.Send, undefined, explicitPacketName, message, metadata);
131
- const messageFollow = createActorMessageFollowContext(
132
- route,
133
- parts,
134
- false
132
+ const parts = this.createPacketParts(
133
+ ZLinkStreamMessageKind.Send,
134
+ undefined,
135
+ explicitPacketName,
136
+ message,
137
+ metadata
135
138
  );
139
+ const messageFollow = createActorMessageFollowContext(route, parts, false);
136
140
  const routedActor = attachActorMessageFollowContext(actor, messageFollow);
137
141
  try {
138
- const submissionCopies = await this.options.transportDeliveryGate?.()?.waitBeforeSubmit(
139
- actorId,
140
- 'oneWay',
141
- signal
142
- ) ?? 1;
142
+ const submissionCopies =
143
+ (await this.options
144
+ .transportDeliveryGate?.()
145
+ ?.waitBeforeSubmit(actorId, 'oneWay', signal)) ?? 1;
143
146
  const handoff = this.options.handoffCapture?.(
144
147
  meshName,
145
148
  actor.actorId,
@@ -164,8 +167,8 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
164
167
  }
165
168
  const node = this.requireNode(meshName);
166
169
  if (
167
- this.options.routeTransport !== undefined
168
- && String(node.status().routingId) !== String(actor.nodeRid)
170
+ this.options.routeTransport !== undefined &&
171
+ String(node.status().routingId) !== String(actor.nodeRid)
169
172
  ) {
170
173
  await this.options.routeTransport.sendToSpot(
171
174
  remoteActorRouteTarget(route),
@@ -205,20 +208,17 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
205
208
  waitPolicy: 'async' | 'yield' = 'async'
206
209
  ): Promise<TReply> {
207
210
  throwIfAborted(signal);
208
- const sourceSpotId = currentZLinkActorExecution()?.spotId
209
- ?? currentZLinkSpotSerialSourceId();
211
+ const sourceSpotId = currentZLinkActorExecution()?.spotId ?? currentZLinkSpotSerialSourceId();
210
212
  const effectiveTimeoutMs = timeoutMs ?? this.options.defaultRequestTimeoutMs;
211
- const deadlineMs = effectiveTimeoutMs === undefined
212
- ? undefined
213
- : performance.now() + effectiveTimeoutMs;
214
- const deadlineUnixMs = effectiveTimeoutMs === undefined
215
- ? undefined
216
- : Date.now() + effectiveTimeoutMs;
213
+ const deadlineMs =
214
+ effectiveTimeoutMs === undefined ? undefined : performance.now() + effectiveTimeoutMs;
215
+ const deadlineUnixMs =
216
+ effectiveTimeoutMs === undefined ? undefined : Date.now() + effectiveTimeoutMs;
217
217
  const route = await this.resolveActorRoute(actorId, signal);
218
218
  if (
219
- waitPolicy === 'async'
220
- && sourceSpotId !== undefined
221
- && sameSpotRoute(sourceSpotId, route)
219
+ waitPolicy === 'async' &&
220
+ sourceSpotId !== undefined &&
221
+ sameSpotRoute(sourceSpotId, route)
222
222
  ) {
223
223
  throw createInternalFrameworkException(
224
224
  ZLinkFrameworkInternalErrorKind.InvalidOperation,
@@ -248,11 +248,10 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
248
248
  );
249
249
  const routedActor = attachActorMessageFollowContext(actor, messageFollow);
250
250
  try {
251
- const submissionCopies = await this.options.transportDeliveryGate?.()?.waitBeforeSubmit(
252
- actorId,
253
- 'request',
254
- signal
255
- ) ?? 1;
251
+ const submissionCopies =
252
+ (await this.options
253
+ .transportDeliveryGate?.()
254
+ ?.waitBeforeSubmit(actorId, 'request', signal)) ?? 1;
256
255
  const handoff = this.options.handoffCapture?.(
257
256
  meshName,
258
257
  actor.actorId,
@@ -349,9 +348,11 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
349
348
  ): readonly Message[] {
350
349
  const packetName = resolveFrameworkPacketName(message, explicitPacketName, 'Actor');
351
350
  const flags =
352
- (requestSeq === undefined ? ZLinkStreamHeaderFlags.None : ZLinkStreamHeaderFlags.HasRequestSeq)
353
- | (metadata.size === 0 ? ZLinkStreamHeaderFlags.None : ZLinkStreamHeaderFlags.HasMetadata)
354
- | (correlationId === undefined
351
+ (requestSeq === undefined
352
+ ? ZLinkStreamHeaderFlags.None
353
+ : ZLinkStreamHeaderFlags.HasRequestSeq) |
354
+ (metadata.size === 0 ? ZLinkStreamHeaderFlags.None : ZLinkStreamHeaderFlags.HasMetadata) |
355
+ (correlationId === undefined
355
356
  ? ZLinkStreamHeaderFlags.None
356
357
  : ZLinkStreamHeaderFlags.HasCorrelationId);
357
358
  const encoded = encodeFrameworkPayload(
@@ -390,7 +391,9 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
390
391
  const node = this.requireNode(meshName);
391
392
  try {
392
393
  return mapSubmitResult(
393
- await node.sendToActor(actor, toMessageLikeParts(parts), { flags: ZLINK_BACKEND_SEND_NONE }),
394
+ await node.sendToActor(actor, toMessageLikeParts(parts), {
395
+ flags: ZLINK_BACKEND_SEND_NONE
396
+ }),
394
397
  'Actor send'
395
398
  );
396
399
  } catch (error) {
@@ -414,9 +417,9 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
414
417
  ): Promise<TReply> {
415
418
  const node = this.requireNode(meshName);
416
419
  if (
417
- this.options.routeTransport !== undefined
418
- && String(node.status().routingId) !== String(actor.nodeRid)
419
- && route !== undefined
420
+ this.options.routeTransport !== undefined &&
421
+ String(node.status().routingId) !== String(actor.nodeRid) &&
422
+ route !== undefined
420
423
  ) {
421
424
  const relay = encodeRemoteActorPacketRelayPayload({
422
425
  actorId: actor.actorId,
@@ -453,7 +456,9 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
453
456
  if (reply.ok !== true) {
454
457
  throw createInternalFrameworkException(
455
458
  remoteRelayErrorKind(reply.errorKind),
456
- typeof reply.error === 'string' ? reply.error : `Remote Actor request failed for '${actor.actorId}'.`
459
+ typeof reply.error === 'string'
460
+ ? reply.error
461
+ : `Remote Actor request failed for '${actor.actorId}'.`
457
462
  );
458
463
  }
459
464
  return reply.response as TReply;
@@ -463,16 +468,16 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
463
468
  throw routeNotConnected('Actor request requires a running MeshNode completion table.');
464
469
  }
465
470
  const completion = await completions.submit(
466
- () => node.requestToActor(actor, toMessageLikeParts(parts), {
467
- flags: ZLINK_BACKEND_SEND_NONE,
468
- timeoutMs
469
- }),
471
+ () =>
472
+ node.requestToActor(actor, toMessageLikeParts(parts), {
473
+ flags: ZLINK_BACKEND_SEND_NONE,
474
+ timeoutMs
475
+ }),
470
476
  signal
471
477
  );
472
478
  if (completion.terminalResult !== RequestResult.Ok) {
473
479
  closeMeshCompletion(completion);
474
- throw mapRequestResult(
475
- completion.terminalResult, completion.failureErrno, 'Actor request');
480
+ throw mapRequestResult(completion.terminalResult, completion.failureErrno, 'Actor request');
476
481
  }
477
482
  return decodeActorReply<TReply>(
478
483
  completion.parts,
@@ -520,15 +525,18 @@ function createActorMessageFollowContext(
520
525
  correlationId?: string,
521
526
  operationId?: string
522
527
  ): ZLinkActorMessageFollowContext {
523
- if (typeof route.ownerId !== 'string' || route.ownerId.length === 0
524
- || typeof route.ownerLeaseGeneration !== 'bigint'
525
- || route.ownerLeaseGeneration <= 0n
526
- || typeof route.ownerNodeGeneration !== 'bigint'
527
- || route.ownerNodeGeneration <= 0n
528
- || typeof route.authorityOwnerGeneration !== 'bigint'
529
- || route.authorityOwnerGeneration <= 0n
530
- || typeof route.actorRef.objectGeneration !== 'bigint'
531
- || route.actorRef.objectGeneration <= 0n) {
528
+ if (
529
+ typeof route.ownerId !== 'string' ||
530
+ route.ownerId.length === 0 ||
531
+ typeof route.ownerLeaseGeneration !== 'bigint' ||
532
+ route.ownerLeaseGeneration <= 0n ||
533
+ typeof route.ownerNodeGeneration !== 'bigint' ||
534
+ route.ownerNodeGeneration <= 0n ||
535
+ typeof route.authorityOwnerGeneration !== 'bigint' ||
536
+ route.authorityOwnerGeneration <= 0n ||
537
+ typeof route.actorRef.objectGeneration !== 'bigint' ||
538
+ route.actorRef.objectGeneration <= 0n
539
+ ) {
532
540
  throw actorLocationStale(
533
541
  route.actorRef.actorId,
534
542
  new Error('Resolved Actor route does not contain an exact authority owner fence.')
@@ -545,12 +553,17 @@ function createActorMessageFollowContext(
545
553
  }
546
554
 
547
555
  function remoteRelayErrorKind(value: unknown): ZLinkFrameworkInternalErrorKind {
548
- return Object.values(ZLinkFrameworkInternalErrorKind).includes(value as ZLinkFrameworkInternalErrorKind)
549
- ? value as ZLinkFrameworkInternalErrorKind
556
+ return Object.values(ZLinkFrameworkInternalErrorKind).includes(
557
+ value as ZLinkFrameworkInternalErrorKind
558
+ )
559
+ ? (value as ZLinkFrameworkInternalErrorKind)
550
560
  : ZLinkFrameworkInternalErrorKind.RequestFailed;
551
561
  }
552
562
 
553
- function remainingActorRequestTimeout(actorId: string, deadlineMs: number | undefined): number | undefined {
563
+ function remainingActorRequestTimeout(
564
+ actorId: string,
565
+ deadlineMs: number | undefined
566
+ ): number | undefined {
554
567
  if (deadlineMs === undefined) return undefined;
555
568
  const remaining = deadlineMs - performance.now();
556
569
  if (remaining <= 0) {
@@ -573,18 +586,21 @@ async function waitHandoffReply<TReply>(
573
586
  reply: Promise<unknown>,
574
587
  timeoutMs: number | undefined
575
588
  ): Promise<TReply> {
576
- if (timeoutMs === undefined) return await reply as TReply;
589
+ if (timeoutMs === undefined) return (await reply) as TReply;
577
590
  let deadline: ReturnType<typeof setTimeout> | undefined;
578
591
  try {
579
592
  return await Promise.race([
580
593
  reply as Promise<TReply>,
581
594
  new Promise<TReply>((_resolve, reject) => {
582
595
  deadline = setTimeout(
583
- () => reject(createInternalFrameworkException(
584
- ZLinkFrameworkInternalErrorKind.RequestFailed,
585
- 'Actor handoff request timed out.',
586
- true
587
- )),
596
+ () =>
597
+ reject(
598
+ createInternalFrameworkException(
599
+ ZLinkFrameworkInternalErrorKind.RequestFailed,
600
+ 'Actor handoff request timed out.',
601
+ true
602
+ )
603
+ ),
588
604
  timeoutMs
589
605
  );
590
606
  })
@@ -608,23 +624,27 @@ export async function forwardEncodedActorPacket(
608
624
  const parts = [header, payload];
609
625
  const packetName = decodeStreamHeader(header).name;
610
626
  if (!returnResponse) {
611
- if (await node.sendToActor(
612
- target,
613
- parts,
614
- { flags: ZLINK_BACKEND_SEND_NONE }
615
- ) !== SubmitResult.Ok) {
627
+ if (
628
+ (await node.sendToActor(target, parts, { flags: ZLINK_BACKEND_SEND_NONE })) !==
629
+ SubmitResult.Ok
630
+ ) {
616
631
  throw routeNotConnected('Actor handoff send submit was not accepted.');
617
632
  }
618
633
  return undefined;
619
634
  }
620
- const completion = await completions.submit(() => node.requestToActor(target, parts, {
621
- flags: ZLINK_BACKEND_SEND_NONE,
622
- timeoutMs
623
- }));
635
+ const completion = await completions.submit(() =>
636
+ node.requestToActor(target, parts, {
637
+ flags: ZLINK_BACKEND_SEND_NONE,
638
+ timeoutMs
639
+ })
640
+ );
624
641
  if (completion.terminalResult !== RequestResult.Ok) {
625
642
  closeMeshCompletion(completion);
626
643
  throw mapRequestResult(
627
- completion.terminalResult, completion.failureErrno, 'Actor handoff request');
644
+ completion.terminalResult,
645
+ completion.failureErrno,
646
+ 'Actor handoff request'
647
+ );
628
648
  }
629
649
  return decodeActorReply(completion.parts, serializers, packetName);
630
650
  }
@@ -752,17 +772,12 @@ class DefaultZLinkActorRequestCall implements ZLinkActorRequestCall {
752
772
  return turn.yieldPromise(pending);
753
773
  }
754
774
 
755
- private execute<TReply>(
756
- waitPolicy: 'async' | 'yield',
757
- signal?: AbortSignal
758
- ): Promise<TReply> {
775
+ private execute<TReply>(waitPolicy: 'async' | 'yield', signal?: AbortSignal): Promise<TReply> {
759
776
  ensureSingleSubmit(this.executed);
760
777
  this.rejectSelfActorRequest();
761
778
  this.executed = true;
762
779
  throwIfAborted(signal);
763
- const submitter = waitPolicy === 'async'
764
- ? this.asyncSubmitter
765
- : this.yieldSubmitter;
780
+ const submitter = waitPolicy === 'async' ? this.asyncSubmitter : this.yieldSubmitter;
766
781
  return submitter<TReply>(
767
782
  this.packet ?? resolveFrameworkPacketName(this.request, undefined, 'Actor'),
768
783
  this.timeoutMs ?? this.defaultRequestTimeoutMs,
@@ -781,13 +796,9 @@ class DefaultZLinkActorRequestCall implements ZLinkActorRequestCall {
781
796
  }
782
797
  }
783
798
 
784
- function sameSpotRoute(
785
- sourceSpotId: unknown,
786
- route: ZLinkResolvedActorRoute
787
- ): boolean {
799
+ function sameSpotRoute(sourceSpotId: unknown, route: ZLinkResolvedActorRoute): boolean {
788
800
  const targetSpotId = route.enclosingSpotRoute?.spotId ?? route.spotId;
789
- return targetSpotId !== undefined
790
- && String(sourceSpotId) === String(targetSpotId);
801
+ return targetSpotId !== undefined && String(sourceSpotId) === String(targetSpotId);
791
802
  }
792
803
 
793
804
  function decodeActorReply<TReply>(
@@ -837,12 +848,13 @@ function decodeActorReplyPayload<TReply>(
837
848
  readonly kind?: number;
838
849
  }>(payload, serializers);
839
850
  const wireKind = error.kind;
840
- const publicKind = typeof wireKind === 'number'
841
- && Number.isInteger(wireKind)
842
- && wireKind >= ZLinkFrameworkErrorKind.NotFound
843
- && wireKind <= ZLinkFrameworkErrorKind.InternalFailure
844
- ? wireKind as ZLinkFrameworkErrorKind
845
- : ZLinkFrameworkErrorKind.InternalFailure;
851
+ const publicKind =
852
+ typeof wireKind === 'number' &&
853
+ Number.isInteger(wireKind) &&
854
+ wireKind >= ZLinkFrameworkErrorKind.NotFound &&
855
+ wireKind <= ZLinkFrameworkErrorKind.InternalFailure
856
+ ? (wireKind as ZLinkFrameworkErrorKind)
857
+ : ZLinkFrameworkErrorKind.InternalFailure;
846
858
  throw new ZLinkFrameworkException(publicKind, error.message ?? 'Actor request failed.');
847
859
  }
848
860
  return decodeFrameworkPayloadMessage<TReply>(
@@ -862,7 +874,10 @@ function mapSubmitError(error: unknown, operationName: string): Error {
862
874
  if (isZLinkBackendResultError(error)) {
863
875
  switch (error.result) {
864
876
  case SubmitResult.NotConnected:
865
- return routeNotConnected(`${operationName} failed because the target route is not connected.`, error);
877
+ return routeNotConnected(
878
+ `${operationName} failed because the target route is not connected.`,
879
+ error
880
+ );
866
881
  case SubmitResult.NotFound:
867
882
  return createInternalFrameworkException(
868
883
  ZLinkFrameworkInternalErrorKind.ActorRouteNotFound,
@@ -919,27 +934,44 @@ function submitted(): ZLinkSubmitResult {
919
934
  // source-owned queue exhaustion. Backpressure never appears on this reply
920
935
  // path. Internal kinds are preserved so the stale-actor re-resolve retry
921
936
  // (isStaleActorError) keeps working.
922
- function actorFailureCodeKind(
923
- failureErrno: number
924
- ): ZLinkFrameworkInternalErrorKind | undefined {
937
+ function actorFailureCodeKind(failureErrno: number): ZLinkFrameworkInternalErrorKind | undefined {
925
938
  switch (failureErrno) {
926
- case 3: return ZLinkFrameworkInternalErrorKind.ActorAlreadyExists;
927
- case 4: return ZLinkFrameworkInternalErrorKind.ActorTypeMismatch;
928
- case 7: return ZLinkFrameworkInternalErrorKind.SpotTypeMismatch;
929
- case 8: return ZLinkFrameworkInternalErrorKind.ActorSessionNotBound;
930
- case 9: case 14: return ZLinkFrameworkInternalErrorKind.RequestTargetNotFound;
931
- case 12: case 16: return ZLinkFrameworkInternalErrorKind.RequestProtocolError;
939
+ case 3:
940
+ return ZLinkFrameworkInternalErrorKind.ActorAlreadyExists;
941
+ case 4:
942
+ return ZLinkFrameworkInternalErrorKind.ActorTypeMismatch;
943
+ case 7:
944
+ return ZLinkFrameworkInternalErrorKind.SpotTypeMismatch;
945
+ case 8:
946
+ return ZLinkFrameworkInternalErrorKind.ActorSessionNotBound;
947
+ case 9:
948
+ case 14:
949
+ return ZLinkFrameworkInternalErrorKind.RequestTargetNotFound;
950
+ case 12:
951
+ case 16:
952
+ return ZLinkFrameworkInternalErrorKind.RequestProtocolError;
932
953
  // routeNotConnected(13) and a remote worker queue full(18) are Unavailable.
933
- case 13: case 18: return ZLinkFrameworkInternalErrorKind.RouteNotConnected;
934
- case 15: return ZLinkFrameworkInternalErrorKind.RequestRejected;
935
- case 19: return ZLinkFrameworkInternalErrorKind.WorkerTimedOut;
936
- case 17: return ZLinkFrameworkInternalErrorKind.RequestFailed;
937
- case 20: return ZLinkFrameworkInternalErrorKind.WorkerFailed;
938
- case 21: return ZLinkFrameworkInternalErrorKind.ActorLocationStale;
939
- case 33: return ZLinkFrameworkInternalErrorKind.ActorGenerationStale;
940
- case 34: return ZLinkFrameworkInternalErrorKind.ActorMoving;
941
- case 35: return ZLinkFrameworkInternalErrorKind.RelocationDataLost;
942
- default: return undefined;
954
+ case 13:
955
+ case 18:
956
+ return ZLinkFrameworkInternalErrorKind.RouteNotConnected;
957
+ case 15:
958
+ return ZLinkFrameworkInternalErrorKind.RequestRejected;
959
+ case 19:
960
+ return ZLinkFrameworkInternalErrorKind.WorkerTimedOut;
961
+ case 17:
962
+ return ZLinkFrameworkInternalErrorKind.RequestFailed;
963
+ case 20:
964
+ return ZLinkFrameworkInternalErrorKind.WorkerFailed;
965
+ case 21:
966
+ return ZLinkFrameworkInternalErrorKind.ActorLocationStale;
967
+ case 33:
968
+ return ZLinkFrameworkInternalErrorKind.ActorGenerationStale;
969
+ case 34:
970
+ return ZLinkFrameworkInternalErrorKind.ActorMoving;
971
+ case 35:
972
+ return ZLinkFrameworkInternalErrorKind.RelocationDataLost;
973
+ default:
974
+ return undefined;
943
975
  }
944
976
  }
945
977
 
@@ -967,16 +999,12 @@ function actorTerminalKind(result: number): ZLinkFrameworkInternalErrorKind {
967
999
  }
968
1000
  }
969
1001
 
970
- function mapRequestResult(
971
- result: number,
972
- failureErrno: number,
973
- operationName: string
974
- ): Error {
1002
+ function mapRequestResult(result: number, failureErrno: number, operationName: string): Error {
975
1003
  const kind = actorFailureCodeKind(failureErrno) ?? actorTerminalKind(result);
976
1004
  return createInternalFrameworkException(
977
1005
  kind,
978
- `${operationName} failed with request result ${result}`
979
- + (failureErrno !== 0 ? ` (failure code ${failureErrno}).` : '.')
1006
+ `${operationName} failed with request result ${result}` +
1007
+ (failureErrno !== 0 ? ` (failure code ${failureErrno}).` : '.')
980
1008
  );
981
1009
  }
982
1010
 
@@ -987,7 +1015,6 @@ function mapRequestError(
987
1015
  return mapRequestResult(error.result, error.failureErrno ?? 0, operationName);
988
1016
  }
989
1017
 
990
-
991
1018
  function routeNotConnected(message: string, cause?: unknown): ZLinkFrameworkException {
992
1019
  return createInternalFrameworkException(
993
1020
  ZLinkFrameworkInternalErrorKind.RouteNotConnected,
@@ -998,8 +1025,10 @@ function routeNotConnected(message: string, cause?: unknown): ZLinkFrameworkExce
998
1025
  }
999
1026
 
1000
1027
  function isStaleActorError(error: unknown): boolean {
1001
- return error instanceof ZLinkFrameworkException
1002
- && internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.ActorLocationStale;
1028
+ return (
1029
+ error instanceof ZLinkFrameworkException &&
1030
+ internalFrameworkErrorKind(error) === ZLinkFrameworkInternalErrorKind.ActorLocationStale
1031
+ );
1003
1032
  }
1004
1033
 
1005
1034
  function actorLocationStale(actorId: string, cause: unknown): ZLinkFrameworkException {