@zlink-systems/framework 0.26.0 → 0.28.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 (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -20,6 +20,7 @@ import { ZLinkFrameworkException } from '../../contracts';
20
20
  import {
21
21
  decodeServiceInstanceAuthorityPayload,
22
22
  decodeServiceReadySpotAuthority,
23
+ decodeServiceClosingSpotAuthority,
23
24
  encodeServiceInstanceAuthorityPayload
24
25
  } from '../foundation/service-authority-payload-codec';
25
26
  import type {
@@ -36,7 +37,6 @@ import type {
36
37
  } from '../foundation/service-stateful-wire-codec';
37
38
  import { routingIdsEqual } from '../routing-id';
38
39
  import { encodeAuthorityKey } from '../locations/authority-key-codec';
39
- import { crc32c } from '../foundation/service-relocation-runtime';
40
40
  import { putNewRelocationBlob, relocationBlobReference } from '../locations/relocation-blob';
41
41
 
42
42
  import {
@@ -80,7 +80,8 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
80
80
  }
81
81
 
82
82
  async reserve(
83
- activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>
83
+ activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>,
84
+ signal?: AbortSignal
84
85
  ): Promise<ServiceInstanceAuthorityReserve> {
85
86
  const target = activation.target;
86
87
  const owner = this.requireOwner();
@@ -99,15 +100,15 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
99
100
  const stored = await putNewRelocationBlob(
100
101
  relocationStore,
101
102
  requestBytes,
102
- CREATION_REQUEST_RETENTION_MS
103
+ CREATION_REQUEST_RETENTION_MS,
104
+ signal
103
105
  );
104
- const storedRead = await relocationStore.read(stored.reference);
106
+ const storedRead = await relocationStore.read(stored.reference, signal);
105
107
  if (
106
108
  stored.reference.value.length === 0 ||
107
109
  stored.expiresAt.getTime() <= stored.storeNow.getTime() ||
108
110
  storedRead.kind !== 'found' ||
109
- crc32c(storedRead.bytes) !== crc32c(requestBytes) ||
110
- !Buffer.from(storedRead.bytes).equals(requestBytes)
111
+ Buffer.compare(storedRead.bytes, requestBytes) !== 0
111
112
  ) {
112
113
  await this.deleteOrphan(stored.reference);
113
114
  throw new Error('Relocation Store returned an invalid creation request receipt.');
@@ -115,50 +116,44 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
115
116
  let reserved: Awaited<ReturnType<ZLinkObjectCreationStore['reserve']>>;
116
117
  try {
117
118
  for (;;) {
118
- reserved = await this.options.store.reserve({
119
- key: { kind: 'instance_spot', globalId: target.targetSpotId },
120
- intent: {
121
- stableType: target.stableType,
122
- requestContentReference: stored.reference.value,
123
- requestSha256: requestHash,
124
- requestEncodedSize: BigInt(requestBytes.byteLength)
125
- },
126
- target: {
127
- meshName: this.options.meshName,
128
- nodeRid: target.targetNodeRid,
129
- nodeLifecycleGeneration: target.targetNodeGeneration,
130
- owner
131
- },
132
- creatingPayload: encodeServiceInstanceAuthorityPayload({
133
- state: 'coldActivating',
134
- stableType: target.stableType,
135
- spotId: target.targetSpotId,
136
- ownerId: owner.ownerId,
137
- ownerLeaseGeneration: owner.leaseGeneration,
138
- ownerMeshName: this.options.meshName,
139
- ownerNodeRid: target.targetNodeRid,
140
- ownerNodeGeneration: target.targetNodeGeneration
141
- }),
142
- capacity: {
143
- actors: 0,
144
- spots: 1,
145
- spotType: {
146
- objectKind: 'instance_spot',
119
+ reserved = await this.options.store.reserve(
120
+ {
121
+ key: { kind: 'instance_spot', globalId: target.targetSpotId },
122
+ intent: {
147
123
  stableType: target.stableType,
148
- count: 1
124
+ requestContentReference: stored.reference.value,
125
+ requestSha256: requestHash,
126
+ requestEncodedSize: BigInt(requestBytes.byteLength)
127
+ },
128
+ target: {
129
+ meshName: this.options.meshName,
130
+ nodeRid: target.targetNodeRid,
131
+ nodeLifecycleGeneration: target.targetNodeGeneration,
132
+ owner
133
+ },
134
+ creatingPayload: encodeServiceInstanceAuthorityPayload({
135
+ state: 'coldActivating',
136
+ stableType: target.stableType,
137
+ spotId: target.targetSpotId,
138
+ ownerId: owner.ownerId,
139
+ ownerLeaseGeneration: owner.leaseGeneration,
140
+ ownerMeshName: this.options.meshName,
141
+ ownerNodeRid: target.targetNodeRid,
142
+ ownerNodeGeneration: target.targetNodeGeneration
143
+ }),
144
+ capacity: {
145
+ actors: 0,
146
+ spots: 1,
147
+ spotType: {
148
+ objectKind: 'instance_spot',
149
+ stableType: target.stableType,
150
+ count: 1
151
+ }
149
152
  }
150
- }
151
- });
152
- if (reserved.kind === 'conflict' || reserved.kind === 'alreadyExists') {
153
- const existingState =
154
- reserved.current.kind === 'snapshot'
155
- ? decodeServiceInstanceAuthorityPayload(reserved.current.payload)?.state
156
- : undefined;
157
- if (existingState === 'closing') {
158
- await this.awaitClosingRelease(target, activation.deadlineUnixMs);
159
- continue;
160
- }
161
- }
153
+ },
154
+ undefined,
155
+ activation.deadlineUnixMs
156
+ );
162
157
  if (reserved.kind !== 'alreadyExists') break;
163
158
  this.options.metrics?.recordInstanceSpotClaimConflict(
164
159
  this.options.meshName,
@@ -266,40 +261,45 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
266
261
  async commit(
267
262
  target: ServiceInstanceActivationTarget,
268
263
  reservation: ServiceInstanceActivationReservation,
269
- spot: ServiceSpotState
264
+ spot: ServiceSpotState,
265
+ deadlineUnixMs?: bigint
270
266
  ): Promise<{ readonly kind: 'committed' | 'lost'; readonly route: ServiceInstanceRouteFence }> {
271
267
  const pending = this.requirePending(reservation);
272
268
  requireCommitIdentity(target, reservation, pending.creating, spot, this.options.meshName);
273
269
  let result;
274
270
  try {
275
- result = await this.options.store.commit({
276
- key: { kind: 'instance_spot', globalId: target.targetSpotId },
277
- reservationId: pending.reservationId,
278
- expectedStoreVersion: pending.creating.storeVersion.value,
279
- target: {
280
- meshName: this.options.meshName,
281
- nodeRid: target.targetNodeRid,
282
- nodeLifecycleGeneration: target.targetNodeGeneration,
283
- owner: pending.owner
271
+ result = await this.options.store.commit(
272
+ {
273
+ key: { kind: 'instance_spot', globalId: target.targetSpotId },
274
+ reservationId: pending.reservationId,
275
+ expectedStoreVersion: pending.creating.storeVersion.value,
276
+ target: {
277
+ meshName: this.options.meshName,
278
+ nodeRid: target.targetNodeRid,
279
+ nodeLifecycleGeneration: target.targetNodeGeneration,
280
+ owner: pending.owner
281
+ },
282
+ readyPayload: encodeServiceInstanceAuthorityPayload({
283
+ state: 'ready',
284
+ stableType: spot.stableType,
285
+ spotId: spot.ref.spotId,
286
+ ownerId: pending.owner.ownerId,
287
+ ownerLeaseGeneration: pending.owner.leaseGeneration,
288
+ ownerMeshName: this.options.meshName,
289
+ ownerNodeRid: target.targetNodeRid,
290
+ ownerNodeGeneration: target.targetNodeGeneration,
291
+ activationRecovery: {
292
+ reference: pending.requestReference.value,
293
+ sha256: pending.requestSha256,
294
+ encodedSize: pending.requestEncodedSize,
295
+ inboxSequence: 1n,
296
+ replayCursor: 0n
297
+ }
298
+ })
284
299
  },
285
- readyPayload: encodeServiceInstanceAuthorityPayload({
286
- state: 'ready',
287
- stableType: spot.stableType,
288
- spotId: spot.ref.spotId,
289
- ownerId: pending.owner.ownerId,
290
- ownerLeaseGeneration: pending.owner.leaseGeneration,
291
- ownerMeshName: this.options.meshName,
292
- ownerNodeRid: target.targetNodeRid,
293
- ownerNodeGeneration: target.targetNodeGeneration,
294
- activationRecovery: {
295
- reference: pending.requestReference.value,
296
- sha256: pending.requestSha256,
297
- encodedSize: pending.requestEncodedSize,
298
- inboxSequence: 1n,
299
- replayCursor: 0n
300
- }
301
- })
302
- });
300
+ undefined,
301
+ deadlineUnixMs
302
+ );
303
303
  } catch (error) {
304
304
  if (error instanceof ZLinkFrameworkException) throw error;
305
305
  throw createInternalFrameworkException(
@@ -483,32 +483,6 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
483
483
  );
484
484
  }
485
485
 
486
- private async awaitClosingRelease(
487
- target: ServiceInstanceActivationTarget,
488
- deadlineUnixMs: bigint
489
- ): Promise<void> {
490
- const key = authorityKey(target.targetSpotId);
491
- const deadlineMs = performance.now() + Number(deadlineUnixMs - BigInt(Date.now()));
492
- while (performance.now() <= deadlineMs) {
493
- const current = await this.options.store.readAuthority(key);
494
- if (current.kind !== 'snapshot') return;
495
- const decoded = decodeServiceInstanceAuthorityPayload(current.payload);
496
- if (
497
- current.allocation.objectKind !== 'instance_spot' ||
498
- current.allocation.stableType !== target.stableType ||
499
- decoded?.kind !== 'instance_spot' ||
500
- decoded.spotId !== target.targetSpotId
501
- ) {
502
- throw new Error('Instance authority changed to a different Spot while closing.');
503
- }
504
- if (decoded.state !== 'closing') return;
505
- await waitForActivationJoin(deadlineMs);
506
- }
507
- throw new Error(
508
- `Instance Spot '${target.targetSpotId}' close did not release authority before deadline.`
509
- );
510
- }
511
-
512
486
  private requirePending(reservation: ServiceInstanceActivationReservation): PendingReservation {
513
487
  const pending = this.pending.get(reservation.token);
514
488
  if (pending === undefined || pending.creating.objectGeneration !== reservation.attempt) {
@@ -522,12 +496,13 @@ function readyRead(
522
496
  snapshot: ZLinkAuthoritySnapshot,
523
497
  target: ServiceInstanceActivationTarget
524
498
  ): ServiceInstanceAuthorityRead {
525
- const decoded = decodeServiceReadySpotAuthority(snapshot.payload);
499
+ const decoded =
500
+ decodeServiceReadySpotAuthority(snapshot.payload) ??
501
+ decodeServiceClosingSpotAuthority(snapshot.payload);
526
502
  const creating = decodeServiceInstanceAuthorityPayload(snapshot.payload);
527
503
  if (
528
504
  creating?.state === 'coldActivating' &&
529
505
  snapshot.allocation.objectKind === 'instance_spot' &&
530
- snapshot.allocation.state === 'reserved' &&
531
506
  creating.stableType === target.stableType &&
532
507
  creating.spotId === target.targetSpotId &&
533
508
  creating.ownerId === snapshot.ownerId &&
@@ -541,7 +516,8 @@ function readyRead(
541
516
  return {
542
517
  kind: 'creating',
543
518
  objectGeneration: snapshot.objectGeneration,
544
- authorityOwnerGeneration: snapshot.authorityOwnerGeneration
519
+ authorityOwnerGeneration: snapshot.authorityOwnerGeneration,
520
+ authority: snapshot
545
521
  };
546
522
  }
547
523
  if (
@@ -560,14 +536,16 @@ function readyRead(
560
536
  ) {
561
537
  return { kind: 'missing' };
562
538
  }
563
- return { kind: 'ready', route: routeFromSnapshot(snapshot) };
539
+ return { kind: 'ready', route: routeFromSnapshot(snapshot), authority: snapshot };
564
540
  }
565
541
 
566
542
  function readyExisting(
567
543
  snapshot: ZLinkAuthoritySnapshot,
568
544
  target: ServiceInstanceActivationTarget
569
545
  ): Extract<ServiceInstanceAuthorityRead, { readonly kind: 'ready' }> {
570
- const decoded = decodeServiceReadySpotAuthority(snapshot.payload);
546
+ const decoded =
547
+ decodeServiceReadySpotAuthority(snapshot.payload) ??
548
+ decodeServiceClosingSpotAuthority(snapshot.payload);
571
549
  if (
572
550
  decoded?.kind !== 'instance_spot' ||
573
551
  decoded.stableType !== target.stableType ||
@@ -582,7 +560,7 @@ function readyExisting(
582
560
  ) {
583
561
  throw new Error('Existing Instance authority is not a matching Ready allocation.');
584
562
  }
585
- return { kind: 'ready', route: routeFromSnapshot(snapshot) };
563
+ return { kind: 'ready', route: routeFromSnapshot(snapshot), authority: snapshot };
586
564
  }
587
565
 
588
566
  async function waitForActivationJoin(deadlineMs: number): Promise<void> {
@@ -619,7 +597,9 @@ function requireCommitIdentity(
619
597
  }
620
598
 
621
599
  function routeFromSnapshot(snapshot: ZLinkAuthoritySnapshot): ServiceInstanceRouteFence {
622
- const decoded = decodeServiceReadySpotAuthority(snapshot.payload);
600
+ const decoded =
601
+ decodeServiceReadySpotAuthority(snapshot.payload) ??
602
+ decodeServiceClosingSpotAuthority(snapshot.payload);
623
603
  if (decoded?.kind !== 'instance_spot') {
624
604
  throw new Error('Instance authority is not Ready.');
625
605
  }
@@ -203,13 +203,15 @@ export class ZLinkLocationRuntimeOwner {
203
203
  async startForRuntime(
204
204
  primaryMeshName: string | undefined,
205
205
  spotNodeRuntime: ZLinkSpotNodeRuntimeManager,
206
- channelRuntime: ZLinkChannelRuntimeManager
206
+ channelRuntime: ZLinkChannelRuntimeManager,
207
+ signal: AbortSignal,
208
+ shutdownSignal: () => AbortSignal
207
209
  ): Promise<ZLinkLocationRuntime | undefined> {
208
210
  const runtime = this.ensureRuntime(primaryMeshName);
209
211
  if (runtime === undefined) {
210
212
  return undefined;
211
213
  }
212
- await runtime.start(this.ownerNodeRid(spotNodeRuntime));
214
+ await runtime.start(this.ownerNodeRid(spotNodeRuntime), signal, shutdownSignal);
213
215
  const stores = this.currentStores;
214
216
  if (stores === undefined) {
215
217
  return runtime;
@@ -1,12 +1,8 @@
1
1
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
2
- import type { RoutingId, ZLinkRouteMessageContext } from '../../contracts';
2
+ import type { RoutingId } from '../../contracts';
3
3
  import type { Message } from '../../contracts/Common/Message';
4
4
  import type { ZLinkBackendActorRef } from '../backend';
5
5
  import type { DefaultZLinkActorManager } from '../actors';
6
- import {
7
- mergeRemoteBoundSessionTarget,
8
- preferredRemoteBoundSessionTarget
9
- } from '../actors/actor-runtime-state';
10
6
  import { decodeRemoteActorJoinPayload } from '../actors/actor-remote-wire';
11
7
  import type { DefaultZLinkSpotManager } from '../spots';
12
8
  import type { ZLinkAuthorityStore } from '../locations/internal-store-contracts';
@@ -15,7 +11,7 @@ import {
15
11
  ZLinkFrameworkInternalErrorKind,
16
12
  createInternalFrameworkException
17
13
  } from '../framework-errors-internal';
18
- import { normalizeRoutingId, routingIdWireHex, routingIdsEqual } from '../routing-id';
14
+ import { routingIdWireHex, routingIdsEqual } from '../routing-id';
19
15
 
20
16
  export interface ZLinkCanonicalActorJoinAuthorityFence {
21
17
  readonly actorId: string;
@@ -35,10 +31,7 @@ export interface ZLinkRemoteActorJoinReceiverOptions {
35
31
  export class ZLinkRemoteActorJoinReceiver {
36
32
  constructor(private readonly options: ZLinkRemoteActorJoinReceiverOptions) {}
37
33
 
38
- async receive(
39
- payload: unknown,
40
- routeContext: ZLinkRouteMessageContext
41
- ): Promise<{
34
+ async receive(payload: unknown): Promise<{
42
35
  readonly accepted: boolean;
43
36
  readonly actorNodeRid: string;
44
37
  readonly actorNodeRidHex?: string;
@@ -77,26 +70,6 @@ export class ZLinkRemoteActorJoinReceiver {
77
70
  generation: BigInt(join.actorGeneration)
78
71
  };
79
72
  state.setNativeActorRef(actorRef as unknown as ZLinkBackendActorRef);
80
- const refreshedTarget = mergeRemoteBoundSessionTarget(
81
- {
82
- routerChannelId:
83
- join.boundSessionRouterChannelId ??
84
- join.routerChannelId ??
85
- routeContext.channelName ??
86
- '',
87
- targetNodeRid:
88
- join.boundSessionTargetNodeRid ?? normalizeRoutingId(routeContext.sourceNodeRid),
89
- spotId:
90
- join.boundSessionSpotId ??
91
- join.sourceSpotId ??
92
- normalizeRoutingId(routeContext.sourceNodeRid)
93
- },
94
- preferredRemoteBoundSessionTarget(
95
- state.remoteBoundSessionTarget,
96
- state.boundSessionTransferTarget
97
- )
98
- );
99
- state.setRemoteBoundSessionTarget(refreshedTarget);
100
73
  const request = RuntimeMessage.from(Buffer.from(join.request, 'base64'));
101
74
  try {
102
75
  const response = await this.requireSpotManager().admitActorJoin(
@@ -105,7 +78,6 @@ export class ZLinkRemoteActorJoinReceiver {
105
78
  request,
106
79
  (spot) => {
107
80
  state.setJoinedSpot(join.spotId as RoutingId, spot);
108
- return () => state.clearJoinedSpot();
109
81
  },
110
82
  undefined,
111
83
  undefined,
@@ -1,11 +1,15 @@
1
- import type { ActorRef, RoutingId, SpotId, ZLinkSessionActor } from '../../contracts';
2
- import { ZLinkSpotKind } from '../../contracts';
1
+ import {
2
+ type ActorRef,
3
+ type RoutingId,
4
+ type ZLinkSessionActor,
5
+ ZLinkSpotKind
6
+ } from '../../contracts';
7
+
3
8
  import type { DefaultZLinkActorManager, ZLinkRemoteActorPacketTarget } from '../actors';
4
- import type { ZLinkStreamActorLookupPort } from '../streams/stream-binding-runtime-ports';
5
9
  import { decodeRemoteActorPacketTarget } from '../actors/actor-packet-relay-wire';
6
- import { normalizeRoutingId as normalizeRuntimeRoutingId } from '../routing-id';
7
- import type { MeshRouterResolver } from './mesh-router-resolver';
8
10
  import { routingIdsEqual } from '../routing-id';
11
+ import type { ZLinkStreamActorLookupPort } from '../streams/stream-binding-runtime-ports';
12
+ import type { MeshRouterResolver } from './mesh-router-resolver';
9
13
 
10
14
  export interface ZLinkRemoteActorPacketTargetStoreOptions {
11
15
  readonly actorManager: () => DefaultZLinkActorManager | undefined;
@@ -100,10 +104,7 @@ export class ZLinkRemoteActorPacketTargetStore {
100
104
  );
101
105
  }
102
106
 
103
- targetForState(
104
- actorId: string,
105
- routerChannelIdHint?: string
106
- ): ZLinkRemoteActorPacketTarget | undefined {
107
+ targetForState(actorId: string): ZLinkRemoteActorPacketTarget | undefined {
107
108
  const state = this.options.actorManager()?.getState(actorId);
108
109
  if (
109
110
  state?.remoteActorPacketTarget !== undefined &&
@@ -112,51 +113,12 @@ export class ZLinkRemoteActorPacketTargetStore {
112
113
  ) {
113
114
  return state.remoteActorPacketTarget;
114
115
  }
115
- const spotId = state?.spotId;
116
- if (spotId !== undefined && state?.remoteActorPacketTarget !== undefined) {
117
- // The cached packet target refers to a different Spot than the
118
- // actor's current membership (the actor just moved Entry -> User).
119
- // Combining the stale target's node with the new Spot id fabricates
120
- // a route with no complete Ready authority fence, and the next
121
- // direct request then fails the fence check instead of resolving
122
- // the current owner route (spec 12 §direct payload uses the
123
- // Location Store's current owner route; spec 32:87 — an unavailable
124
- // route is Unavailable, not a fabricated hit). Publish no hint so
125
- // the source clears its cache and re-resolves completely.
126
- return undefined;
127
- }
128
- const actorRef = state?.nativeActorRef as ActorRef | undefined;
129
- const targetNodeRid =
130
- (actorRef?.nodeRid as RoutingId | undefined) ?? this.options.primaryNodeRid();
131
- const routerChannelId =
132
- routerChannelIdHint ??
133
- this.options.meshRouters.defaultSpotRouterChannelId() ??
134
- this.options.meshRouters.defaultRouterChannelId();
135
- const localNodeRid = this.options.primaryNodeRid();
136
- if (
137
- spotId === undefined &&
138
- targetNodeRid !== undefined &&
139
- localNodeRid !== undefined &&
140
- routingIdsEqual(targetNodeRid, localNodeRid)
141
- ) {
142
- return undefined;
143
- }
144
- if (spotId === undefined || targetNodeRid === undefined || routerChannelId === undefined) {
145
- return undefined;
146
- }
147
- return {
148
- routerChannelId,
149
- targetNodeRid: normalizeRuntimeRoutingId(targetNodeRid),
150
- spotId: validateSpotId(spotId),
151
- spotKind: ZLinkSpotKind.User,
152
- ...(state?.spotGeneration === undefined ? {} : { targetSpotGeneration: state.spotGeneration })
153
- };
116
+ return undefined;
154
117
  }
155
118
 
156
119
  targetForActorRef(actorRef: ActorRef): ZLinkRemoteActorPacketTarget | undefined {
157
120
  const targetNodeRid = actorRef.nodeRid as RoutingId;
158
- const localNodeRid = this.options.primaryNodeRid();
159
- if (localNodeRid !== undefined && routingIdsEqual(localNodeRid, targetNodeRid)) {
121
+ if (this.isLocalActorRef(actorRef)) {
160
122
  return undefined;
161
123
  }
162
124
  const meshName = actorRef.meshName;
@@ -176,6 +138,11 @@ export class ZLinkRemoteActorPacketTargetStore {
176
138
  };
177
139
  }
178
140
 
141
+ isLocalActorRef(actorRef: ActorRef): boolean {
142
+ const localNodeRid = this.options.primaryNodeRid();
143
+ return localNodeRid !== undefined && routingIdsEqual(localNodeRid, actorRef.nodeRid);
144
+ }
145
+
179
146
  tenureKeyForActor(actor: ZLinkSessionActor): string {
180
147
  return sessionActorPacketTargetTenureKey(actor);
181
148
  }
@@ -236,11 +203,3 @@ function sessionActorPacketTargetTenureKeyForRef(actorId: string, actorRef: Acto
236
203
  ref.ownerLeaseGeneration?.toString() ?? ''
237
204
  ].join(':');
238
205
  }
239
-
240
- function validateSpotId(value: string): SpotId {
241
- const byteLength = Buffer.byteLength(value, 'utf8');
242
- if (byteLength < 1 || byteLength > 255) {
243
- throw new TypeError('SpotId must contain between 1 and 255 UTF-8 bytes.');
244
- }
245
- return value;
246
- }
@@ -54,10 +54,7 @@ export interface ZLinkRemoteBoundSessionRelayOptions {
54
54
  readonly destroyedActorRefs: ReadonlyMap<string, ActorRef>;
55
55
  readonly boundSessionFactory: (actorId: string) => DefaultZLinkBoundSession;
56
56
  readonly updateRemoteActorPacketTarget: (actorId: string, value: unknown) => Promise<void>;
57
- readonly actorPacketTargetForState: (
58
- actorId: string,
59
- routerChannelIdHint?: string
60
- ) => ZLinkRemoteActorPacketTarget | undefined;
57
+ readonly actorPacketTargetForState: (actorId: string) => ZLinkRemoteActorPacketTarget | undefined;
61
58
  readonly reportOwnershipRefreshError?: (actorId: string, error: unknown) => void;
62
59
  }
63
60
 
@@ -197,17 +194,6 @@ export class ZLinkRemoteBoundSessionRelay {
197
194
  async receiveRemoteBoundSessionSend(payload: unknown): Promise<{ readonly ok: boolean }> {
198
195
  const send = decodeRemoteBoundSessionSendPayload(payload);
199
196
  await this.options.updateRemoteActorPacketTarget(send.actorId, send.actorPacketTarget);
200
- const owner = actorSessionBindingRuntimeOwnerIfRegistered(this.options.streamBindingRuntime());
201
- const retained = await owner?.retainRelocationOutbound(
202
- send.actorId,
203
- {
204
- deliver: () => this.deliverRemoteBoundSessionSend(send),
205
- fail: (error) => this.options.reportOwnershipRefreshError?.(send.actorId, error)
206
- },
207
- send.relocationSealId
208
- );
209
- if (retained === 'retained') return { ok: true };
210
- if (retained === 'rejected') return { ok: false };
211
197
  return { ok: await this.deliverRemoteBoundSessionSend(send) };
212
198
  }
213
199
 
@@ -349,7 +335,7 @@ export class ZLinkRemoteBoundSessionRelay {
349
335
  await owner.clearRelocation(actorId, error);
350
336
  void this.options
351
337
  .streamBindingRuntime()
352
- .disconnectBoundSession(actorId)
338
+ .closeSessionBinding(actorId, value.session)
353
339
  .catch((disconnectError) =>
354
340
  this.options.reportOwnershipRefreshError?.(actorId, disconnectError)
355
341
  );
@@ -389,7 +375,7 @@ export class ZLinkRemoteBoundSessionRelay {
389
375
  await owner.clearRelocation(actorId, error);
390
376
  void this.options
391
377
  .streamBindingRuntime()
392
- .disconnectBoundSession(actorId)
378
+ .closeSessionBinding(actorId, value.session)
393
379
  .catch((disconnectError) =>
394
380
  this.options.reportOwnershipRefreshError?.(actorId, disconnectError)
395
381
  );
@@ -425,15 +411,6 @@ export class ZLinkRemoteBoundSessionRelay {
425
411
  }
426
412
  const state = this.activeServiceWireRelocations.get(key);
427
413
  if (state === undefined) {
428
- await actorSessionBindingRuntimeOwner(
429
- this.options.streamBindingRuntime()
430
- ).discardRelocationOutbound(
431
- value.actor.actorId,
432
- key,
433
- new ZLinkRemoteBoundSessionFenceError(
434
- `Actor '${value.actor.actorId}' command 44 did not match an active command 42.`
435
- )
436
- );
437
414
  this.warnLateSessionRouteUpdate(value);
438
415
  return;
439
416
  }
@@ -500,7 +477,7 @@ export class ZLinkRemoteBoundSessionRelay {
500
477
  );
501
478
  await this.options
502
479
  .streamBindingRuntime()
503
- .disconnectBoundSession(state.actorId)
480
+ .closeSessionBinding(state.actorId, value.session)
504
481
  .catch((disconnectError) =>
505
482
  this.options.reportOwnershipRefreshError?.(state.actorId, disconnectError)
506
483
  );
@@ -592,13 +569,6 @@ export class ZLinkRemoteBoundSessionRelay {
592
569
  }
593
570
  }
594
571
 
595
- rememberRemoteBoundSessionTarget(
596
- actorId: string,
597
- target: ZLinkRemoteBoundSessionTarget | undefined
598
- ): void {
599
- this.options.actorManager()?.getState(actorId)?.setRemoteBoundSessionTarget(target);
600
- }
601
-
602
572
  resolveRemoteBoundSessionTarget(
603
573
  sourceNodeRid: RoutingId,
604
574
  sourceSessionRid: RoutingId
@@ -618,11 +588,8 @@ export class ZLinkRemoteBoundSessionRelay {
618
588
  };
619
589
  }
620
590
 
621
- actorPacketTargetForState(
622
- actorId: string,
623
- routerChannelIdHint?: string
624
- ): ZLinkRemoteActorPacketTarget | undefined {
625
- return this.options.actorPacketTargetForState(actorId, routerChannelIdHint);
591
+ actorPacketTargetForState(actorId: string): ZLinkRemoteActorPacketTarget | undefined {
592
+ return this.options.actorPacketTargetForState(actorId);
626
593
  }
627
594
 
628
595
  clearOwnership(actorId: string): void {
@@ -675,8 +642,7 @@ export class ZLinkRemoteBoundSessionRelay {
675
642
  packetName,
676
643
  requestSeq,
677
644
  response,
678
- replyOptions,
679
- signal
645
+ replyOptions
680
646
  );
681
647
  return;
682
648
  }
@@ -731,8 +697,7 @@ export class ZLinkRemoteBoundSessionRelay {
731
697
  packetName,
732
698
  requestSeq,
733
699
  error,
734
- metadata,
735
- signal
700
+ metadata
736
701
  );
737
702
  return;
738
703
  }
@@ -764,11 +729,10 @@ export class ZLinkRemoteBoundSessionRelay {
764
729
  packetName: string,
765
730
  requestSeq: bigint,
766
731
  message: unknown,
767
- replyOptions: ZLinkActorResponseOptions,
768
- signal?: AbortSignal
732
+ replyOptions: ZLinkActorResponseOptions
769
733
  ): Promise<void> {
770
734
  const actorPacketTarget = encodeRemoteActorPacketTarget(
771
- this.options.actorPacketTargetForState(actorId, target.routerChannelId)
735
+ this.options.actorPacketTargetForState(actorId)
772
736
  );
773
737
  await this.sendRemoteBoundSessionControl(
774
738
  target,
@@ -780,8 +744,7 @@ export class ZLinkRemoteBoundSessionRelay {
780
744
  metadata: replyOptions.metadata,
781
745
  compressPayload: replyOptions.compressPayload,
782
746
  actorPacketTarget
783
- }),
784
- signal
747
+ })
785
748
  );
786
749
  }
787
750
 
@@ -791,8 +754,7 @@ export class ZLinkRemoteBoundSessionRelay {
791
754
  packetName: string,
792
755
  requestSeq: bigint,
793
756
  error: unknown,
794
- metadata: ReadonlyMap<string, string>,
795
- signal?: AbortSignal
757
+ metadata: ReadonlyMap<string, string>
796
758
  ): Promise<void> {
797
759
  await this.sendRemoteBoundSessionControl(
798
760
  target,
@@ -803,17 +765,15 @@ export class ZLinkRemoteBoundSessionRelay {
803
765
  error,
804
766
  metadata,
805
767
  actorPacketTarget: encodeRemoteActorPacketTarget(
806
- this.options.actorPacketTargetForState(actorId, target.routerChannelId)
768
+ this.options.actorPacketTargetForState(actorId)
807
769
  )
808
- }),
809
- signal
770
+ })
810
771
  );
811
772
  }
812
773
 
813
774
  private async sendRemoteBoundSessionControl(
814
775
  target: ZLinkRemoteBoundSessionTarget,
815
- payload: Record<string, unknown>,
816
- signal?: AbortSignal
776
+ payload: Record<string, unknown>
817
777
  ): Promise<void> {
818
778
  const packetName = payload.packetName;
819
779
  if (typeof packetName !== 'string') {
@@ -829,8 +789,7 @@ export class ZLinkRemoteBoundSessionRelay {
829
789
  target.routerChannelId,
830
790
  String(target.targetNodeRid),
831
791
  packetName,
832
- payload,
833
- signal
792
+ payload
834
793
  );
835
794
  if (result.status !== ZLinkSubmitStatus.Submitted) {
836
795
  throw new Error(