@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
@@ -17,9 +17,9 @@ export declare class ZLinkInstanceActivationAuthority implements ServiceAsyncIns
17
17
  private readonly pending;
18
18
  constructor(options: ZLinkInstanceActivationAuthorityOptions);
19
19
  read(target: ServiceInstanceActivationTarget): Promise<ServiceInstanceAuthorityRead>;
20
- reserve(activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>): Promise<ServiceInstanceAuthorityReserve>;
20
+ reserve(activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>, signal?: AbortSignal): Promise<ServiceInstanceAuthorityReserve>;
21
21
  resume(target: ServiceInstanceActivationTarget, pending: ServicePendingInstanceActivation): Promise<ServiceInstanceActivationReservation>;
22
- commit(target: ServiceInstanceActivationTarget, reservation: ServiceInstanceActivationReservation, spot: ServiceSpotState): Promise<{
22
+ commit(target: ServiceInstanceActivationTarget, reservation: ServiceInstanceActivationReservation, spot: ServiceSpotState, deadlineUnixMs?: bigint): Promise<{
23
23
  readonly kind: 'committed' | 'lost';
24
24
  readonly route: ServiceInstanceRouteFence;
25
25
  }>;
@@ -28,6 +28,5 @@ export declare class ZLinkInstanceActivationAuthority implements ServiceAsyncIns
28
28
  private requireOwner;
29
29
  private deleteOrphan;
30
30
  private awaitConcurrentActivation;
31
- private awaitClosingRelease;
32
31
  private requirePending;
33
32
  }
@@ -7,7 +7,6 @@ const contracts_1 = require("../../contracts");
7
7
  const service_authority_payload_codec_1 = require("../foundation/service-authority-payload-codec");
8
8
  const routing_id_1 = require("../routing-id");
9
9
  const authority_key_codec_1 = require("../locations/authority-key-codec");
10
- const service_relocation_runtime_1 = require("../foundation/service-relocation-runtime");
11
10
  const relocation_blob_1 = require("../locations/relocation-blob");
12
11
  const service_instance_activation_recovery_codec_1 = require("../foundation/service-instance-activation-recovery-codec");
13
12
  const CREATION_REQUEST_RETENTION_MS = 24 * 60 * 60 * 1_000;
@@ -23,7 +22,7 @@ class ZLinkInstanceActivationAuthority {
23
22
  const current = await this.options.store.readAuthority(authorityKey(target.targetSpotId));
24
23
  return current.kind === 'snapshot' ? readyRead(current, target) : { kind: 'missing' };
25
24
  }
26
- async reserve(activation) {
25
+ async reserve(activation, signal) {
27
26
  const target = activation.target;
28
27
  const owner = this.requireOwner();
29
28
  const requestBytes = (0, service_instance_activation_recovery_codec_1.encodeInstanceActivationRecoveryEnvelope)({
@@ -38,13 +37,12 @@ class ZLinkInstanceActivationAuthority {
38
37
  throw new Error('Instance activation requires a Relocation Store.');
39
38
  }
40
39
  const requestHash = (0, node_crypto_1.createHash)('sha256').update(requestBytes).digest();
41
- const stored = await (0, relocation_blob_1.putNewRelocationBlob)(relocationStore, requestBytes, CREATION_REQUEST_RETENTION_MS);
42
- const storedRead = await relocationStore.read(stored.reference);
40
+ const stored = await (0, relocation_blob_1.putNewRelocationBlob)(relocationStore, requestBytes, CREATION_REQUEST_RETENTION_MS, signal);
41
+ const storedRead = await relocationStore.read(stored.reference, signal);
43
42
  if (stored.reference.value.length === 0 ||
44
43
  stored.expiresAt.getTime() <= stored.storeNow.getTime() ||
45
44
  storedRead.kind !== 'found' ||
46
- (0, service_relocation_runtime_1.crc32c)(storedRead.bytes) !== (0, service_relocation_runtime_1.crc32c)(requestBytes) ||
47
- !Buffer.from(storedRead.bytes).equals(requestBytes)) {
45
+ Buffer.compare(storedRead.bytes, requestBytes) !== 0) {
48
46
  await this.deleteOrphan(stored.reference);
49
47
  throw new Error('Relocation Store returned an invalid creation request receipt.');
50
48
  }
@@ -84,16 +82,7 @@ class ZLinkInstanceActivationAuthority {
84
82
  count: 1
85
83
  }
86
84
  }
87
- });
88
- if (reserved.kind === 'conflict' || reserved.kind === 'alreadyExists') {
89
- const existingState = reserved.current.kind === 'snapshot'
90
- ? (0, service_authority_payload_codec_1.decodeServiceInstanceAuthorityPayload)(reserved.current.payload)?.state
91
- : undefined;
92
- if (existingState === 'closing') {
93
- await this.awaitClosingRelease(target, activation.deadlineUnixMs);
94
- continue;
95
- }
96
- }
85
+ }, undefined, activation.deadlineUnixMs);
97
86
  if (reserved.kind !== 'alreadyExists')
98
87
  break;
99
88
  this.options.metrics?.recordInstanceSpotClaimConflict(this.options.meshName, target.stableType, 'already_exists');
@@ -176,7 +165,7 @@ class ZLinkInstanceActivationAuthority {
176
165
  });
177
166
  return reservation;
178
167
  }
179
- async commit(target, reservation, spot) {
168
+ async commit(target, reservation, spot, deadlineUnixMs) {
180
169
  const pending = this.requirePending(reservation);
181
170
  requireCommitIdentity(target, reservation, pending.creating, spot, this.options.meshName);
182
171
  let result;
@@ -208,7 +197,7 @@ class ZLinkInstanceActivationAuthority {
208
197
  replayCursor: 0n
209
198
  }
210
199
  })
211
- });
200
+ }, undefined, deadlineUnixMs);
212
201
  }
213
202
  catch (error) {
214
203
  if (error instanceof contracts_1.ZLinkFrameworkException)
@@ -366,26 +355,6 @@ class ZLinkInstanceActivationAuthority {
366
355
  }
367
356
  throw new Error(`Concurrent Instance activation for '${target.targetSpotId}' did not reach Ready before deadline.`);
368
357
  }
369
- async awaitClosingRelease(target, deadlineUnixMs) {
370
- const key = authorityKey(target.targetSpotId);
371
- const deadlineMs = performance.now() + Number(deadlineUnixMs - BigInt(Date.now()));
372
- while (performance.now() <= deadlineMs) {
373
- const current = await this.options.store.readAuthority(key);
374
- if (current.kind !== 'snapshot')
375
- return;
376
- const decoded = (0, service_authority_payload_codec_1.decodeServiceInstanceAuthorityPayload)(current.payload);
377
- if (current.allocation.objectKind !== 'instance_spot' ||
378
- current.allocation.stableType !== target.stableType ||
379
- decoded?.kind !== 'instance_spot' ||
380
- decoded.spotId !== target.targetSpotId) {
381
- throw new Error('Instance authority changed to a different Spot while closing.');
382
- }
383
- if (decoded.state !== 'closing')
384
- return;
385
- await waitForActivationJoin(deadlineMs);
386
- }
387
- throw new Error(`Instance Spot '${target.targetSpotId}' close did not release authority before deadline.`);
388
- }
389
358
  requirePending(reservation) {
390
359
  const pending = this.pending.get(reservation.token);
391
360
  if (pending === undefined || pending.creating.objectGeneration !== reservation.attempt) {
@@ -396,11 +365,11 @@ class ZLinkInstanceActivationAuthority {
396
365
  }
397
366
  exports.ZLinkInstanceActivationAuthority = ZLinkInstanceActivationAuthority;
398
367
  function readyRead(snapshot, target) {
399
- const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(snapshot.payload);
368
+ const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(snapshot.payload) ??
369
+ (0, service_authority_payload_codec_1.decodeServiceClosingSpotAuthority)(snapshot.payload);
400
370
  const creating = (0, service_authority_payload_codec_1.decodeServiceInstanceAuthorityPayload)(snapshot.payload);
401
371
  if (creating?.state === 'coldActivating' &&
402
372
  snapshot.allocation.objectKind === 'instance_spot' &&
403
- snapshot.allocation.state === 'reserved' &&
404
373
  creating.stableType === target.stableType &&
405
374
  creating.spotId === target.targetSpotId &&
406
375
  creating.ownerId === snapshot.ownerId &&
@@ -413,7 +382,8 @@ function readyRead(snapshot, target) {
413
382
  return {
414
383
  kind: 'creating',
415
384
  objectGeneration: snapshot.objectGeneration,
416
- authorityOwnerGeneration: snapshot.authorityOwnerGeneration
385
+ authorityOwnerGeneration: snapshot.authorityOwnerGeneration,
386
+ authority: snapshot
417
387
  };
418
388
  }
419
389
  if (decoded?.kind !== 'instance_spot' ||
@@ -430,10 +400,11 @@ function readyRead(snapshot, target) {
430
400
  target.targetNodeGeneration !== snapshot.allocation.descriptorLifecycleGeneration) {
431
401
  return { kind: 'missing' };
432
402
  }
433
- return { kind: 'ready', route: routeFromSnapshot(snapshot) };
403
+ return { kind: 'ready', route: routeFromSnapshot(snapshot), authority: snapshot };
434
404
  }
435
405
  function readyExisting(snapshot, target) {
436
- const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(snapshot.payload);
406
+ const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(snapshot.payload) ??
407
+ (0, service_authority_payload_codec_1.decodeServiceClosingSpotAuthority)(snapshot.payload);
437
408
  if (decoded?.kind !== 'instance_spot' ||
438
409
  decoded.stableType !== target.stableType ||
439
410
  decoded.spotId !== target.targetSpotId ||
@@ -446,7 +417,7 @@ function readyExisting(snapshot, target) {
446
417
  !(0, routing_id_1.routingIdsEqual)(decoded.ownerNodeRid, snapshot.allocation.descriptor.rid)) {
447
418
  throw new Error('Existing Instance authority is not a matching Ready allocation.');
448
419
  }
449
- return { kind: 'ready', route: routeFromSnapshot(snapshot) };
420
+ return { kind: 'ready', route: routeFromSnapshot(snapshot), authority: snapshot };
450
421
  }
451
422
  async function waitForActivationJoin(deadlineMs) {
452
423
  const remaining = deadlineMs - performance.now();
@@ -473,7 +444,8 @@ function requireCommitIdentity(target, reservation, creating, spot, meshName) {
473
444
  }
474
445
  }
475
446
  function routeFromSnapshot(snapshot) {
476
- const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(snapshot.payload);
447
+ const decoded = (0, service_authority_payload_codec_1.decodeServiceReadySpotAuthority)(snapshot.payload) ??
448
+ (0, service_authority_payload_codec_1.decodeServiceClosingSpotAuthority)(snapshot.payload);
477
449
  if (decoded?.kind !== 'instance_spot') {
478
450
  throw new Error('Instance authority is not Ready.');
479
451
  }
@@ -39,7 +39,7 @@ export declare class ZLinkLocationRuntimeOwner {
39
39
  createSpotRouteResolver(spotMeshNames: readonly string[], spotRouterChannelIdByMesh: (meshName: string) => string, resolveLocalSpot?: (spotId: RoutingId) => import('../spots/spot-routing-internal').ZLinkSpotRouteTarget | undefined): ZLinkSpotRouteResolver | undefined;
40
40
  createActorLocationResolver(spotMeshNames: readonly string[]): ZLinkStoreLocationResolvers | undefined;
41
41
  ownerNodeRid(spotNodeRuntime?: ZLinkSpotNodeRuntimeManager): RoutingId;
42
- startForRuntime(primaryMeshName: string | undefined, spotNodeRuntime: ZLinkSpotNodeRuntimeManager, channelRuntime: ZLinkChannelRuntimeManager): Promise<ZLinkLocationRuntime | undefined>;
42
+ startForRuntime(primaryMeshName: string | undefined, spotNodeRuntime: ZLinkSpotNodeRuntimeManager, channelRuntime: ZLinkChannelRuntimeManager, signal: AbortSignal, shutdownSignal: () => AbortSignal): Promise<ZLinkLocationRuntime | undefined>;
43
43
  clearForStop(): ZLinkLocationRuntimeStopSnapshot;
44
44
  private createRuntimeStores;
45
45
  private createAndRememberStores;
@@ -134,12 +134,12 @@ class ZLinkLocationRuntimeOwner {
134
134
  }
135
135
  return this.options.fallbackNodeRid;
136
136
  }
137
- async startForRuntime(primaryMeshName, spotNodeRuntime, channelRuntime) {
137
+ async startForRuntime(primaryMeshName, spotNodeRuntime, channelRuntime, signal, shutdownSignal) {
138
138
  const runtime = this.ensureRuntime(primaryMeshName);
139
139
  if (runtime === undefined) {
140
140
  return undefined;
141
141
  }
142
- await runtime.start(this.ownerNodeRid(spotNodeRuntime));
142
+ await runtime.start(this.ownerNodeRid(spotNodeRuntime), signal, shutdownSignal);
143
143
  const stores = this.currentStores;
144
144
  if (stores === undefined) {
145
145
  return runtime;
@@ -1,4 +1,4 @@
1
- import type { RoutingId, ZLinkRouteMessageContext } from '../../contracts';
1
+ import type { RoutingId } from '../../contracts';
2
2
  import type { DefaultZLinkActorManager } from '../actors';
3
3
  import type { DefaultZLinkSpotManager } from '../spots';
4
4
  import type { ZLinkAuthorityStore } from '../locations/internal-store-contracts';
@@ -18,7 +18,7 @@ export interface ZLinkRemoteActorJoinReceiverOptions {
18
18
  export declare class ZLinkRemoteActorJoinReceiver {
19
19
  private readonly options;
20
20
  constructor(options: ZLinkRemoteActorJoinReceiverOptions);
21
- receive(payload: unknown, routeContext: ZLinkRouteMessageContext): Promise<{
21
+ receive(payload: unknown): Promise<{
22
22
  readonly accepted: boolean;
23
23
  readonly actorNodeRid: string;
24
24
  readonly actorNodeRidHex?: string;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkRemoteActorJoinReceiver = void 0;
4
4
  const runtime_message_1 = require("../backend/runtime-message");
5
- const actor_runtime_state_1 = require("../actors/actor-runtime-state");
6
5
  const actor_remote_wire_1 = require("../actors/actor-remote-wire");
7
6
  const authority_key_codec_1 = require("../locations/authority-key-codec");
8
7
  const framework_errors_internal_1 = require("../framework-errors-internal");
@@ -12,7 +11,7 @@ class ZLinkRemoteActorJoinReceiver {
12
11
  constructor(options) {
13
12
  this.options = options;
14
13
  }
15
- async receive(payload, routeContext) {
14
+ async receive(payload) {
16
15
  let join;
17
16
  try {
18
17
  join = (0, actor_remote_wire_1.decodeRemoteActorJoinPayload)(payload);
@@ -38,22 +37,10 @@ class ZLinkRemoteActorJoinReceiver {
38
37
  generation: BigInt(join.actorGeneration)
39
38
  };
40
39
  state.setNativeActorRef(actorRef);
41
- const refreshedTarget = (0, actor_runtime_state_1.mergeRemoteBoundSessionTarget)({
42
- routerChannelId: join.boundSessionRouterChannelId ??
43
- join.routerChannelId ??
44
- routeContext.channelName ??
45
- '',
46
- targetNodeRid: join.boundSessionTargetNodeRid ?? (0, routing_id_1.normalizeRoutingId)(routeContext.sourceNodeRid),
47
- spotId: join.boundSessionSpotId ??
48
- join.sourceSpotId ??
49
- (0, routing_id_1.normalizeRoutingId)(routeContext.sourceNodeRid)
50
- }, (0, actor_runtime_state_1.preferredRemoteBoundSessionTarget)(state.remoteBoundSessionTarget, state.boundSessionTransferTarget));
51
- state.setRemoteBoundSessionTarget(refreshedTarget);
52
40
  const request = runtime_message_1.ZLinkBufferMessage.from(Buffer.from(join.request, 'base64'));
53
41
  try {
54
42
  const response = await this.requireSpotManager().admitActorJoin(join.spotId, actor, request, (spot) => {
55
43
  state.setJoinedSpot(join.spotId, spot);
56
- return () => state.clearJoinedSpot();
57
44
  }, undefined, undefined, join.requestContentType);
58
45
  const reply = response.reply;
59
46
  return {
@@ -1,4 +1,4 @@
1
- import type { ActorRef, RoutingId, ZLinkSessionActor } from '../../contracts';
1
+ import { type ActorRef, type RoutingId, type ZLinkSessionActor } from '../../contracts';
2
2
  import type { DefaultZLinkActorManager, ZLinkRemoteActorPacketTarget } from '../actors';
3
3
  import type { ZLinkStreamActorLookupPort } from '../streams/stream-binding-runtime-ports';
4
4
  import type { MeshRouterResolver } from './mesh-router-resolver';
@@ -20,8 +20,9 @@ export declare class ZLinkRemoteActorPacketTargetStore {
20
20
  decodeFromWire(value: unknown): ZLinkRemoteActorPacketTarget | undefined;
21
21
  clear(actorId: string, expectedTenureKey?: string, expectedActor?: ZLinkSessionActor): void;
22
22
  cachedTargetForActor(actor: ZLinkSessionActor): ZLinkRemoteActorPacketTarget | undefined;
23
- targetForState(actorId: string, routerChannelIdHint?: string): ZLinkRemoteActorPacketTarget | undefined;
23
+ targetForState(actorId: string): ZLinkRemoteActorPacketTarget | undefined;
24
24
  targetForActorRef(actorRef: ActorRef): ZLinkRemoteActorPacketTarget | undefined;
25
+ isLocalActorRef(actorRef: ActorRef): boolean;
25
26
  tenureKeyForActor(actor: ZLinkSessionActor): string;
26
27
  tenureKeyForActorRef(actorId: string, actorRef: ActorRef): string;
27
28
  rememberActorTarget(actor: ZLinkSessionActor, target: ZLinkRemoteActorPacketTarget, expectedTenureKey?: string): void;
@@ -4,7 +4,6 @@ exports.ZLinkRemoteActorPacketTargetStore = void 0;
4
4
  const contracts_1 = require("../../contracts");
5
5
  const actor_packet_relay_wire_1 = require("../actors/actor-packet-relay-wire");
6
6
  const routing_id_1 = require("../routing-id");
7
- const routing_id_2 = require("../routing-id");
8
7
  class ZLinkRemoteActorPacketTargetStore {
9
8
  options;
10
9
  sessionActorPacketTargets = new WeakMap();
@@ -63,53 +62,18 @@ class ZLinkRemoteActorPacketTargetStore {
63
62
  (actorIdEntry?.routeKey === routeKey ? actorIdEntry.target : undefined) ??
64
63
  this.targetForActorRef(actor.ref));
65
64
  }
66
- targetForState(actorId, routerChannelIdHint) {
65
+ targetForState(actorId) {
67
66
  const state = this.options.actorManager()?.getState(actorId);
68
67
  if (state?.remoteActorPacketTarget !== undefined &&
69
68
  (state.spotId === undefined ||
70
- (0, routing_id_2.routingIdsEqual)(state.remoteActorPacketTarget.spotId, state.spotId))) {
69
+ (0, routing_id_1.routingIdsEqual)(state.remoteActorPacketTarget.spotId, state.spotId))) {
71
70
  return state.remoteActorPacketTarget;
72
71
  }
73
- const spotId = state?.spotId;
74
- if (spotId !== undefined && state?.remoteActorPacketTarget !== undefined) {
75
- // The cached packet target refers to a different Spot than the
76
- // actor's current membership (the actor just moved Entry -> User).
77
- // Combining the stale target's node with the new Spot id fabricates
78
- // a route with no complete Ready authority fence, and the next
79
- // direct request then fails the fence check instead of resolving
80
- // the current owner route (spec 12 §direct payload uses the
81
- // Location Store's current owner route; spec 32:87 — an unavailable
82
- // route is Unavailable, not a fabricated hit). Publish no hint so
83
- // the source clears its cache and re-resolves completely.
84
- return undefined;
85
- }
86
- const actorRef = state?.nativeActorRef;
87
- const targetNodeRid = actorRef?.nodeRid ?? this.options.primaryNodeRid();
88
- const routerChannelId = routerChannelIdHint ??
89
- this.options.meshRouters.defaultSpotRouterChannelId() ??
90
- this.options.meshRouters.defaultRouterChannelId();
91
- const localNodeRid = this.options.primaryNodeRid();
92
- if (spotId === undefined &&
93
- targetNodeRid !== undefined &&
94
- localNodeRid !== undefined &&
95
- (0, routing_id_2.routingIdsEqual)(targetNodeRid, localNodeRid)) {
96
- return undefined;
97
- }
98
- if (spotId === undefined || targetNodeRid === undefined || routerChannelId === undefined) {
99
- return undefined;
100
- }
101
- return {
102
- routerChannelId,
103
- targetNodeRid: (0, routing_id_1.normalizeRoutingId)(targetNodeRid),
104
- spotId: validateSpotId(spotId),
105
- spotKind: contracts_1.ZLinkSpotKind.User,
106
- ...(state?.spotGeneration === undefined ? {} : { targetSpotGeneration: state.spotGeneration })
107
- };
72
+ return undefined;
108
73
  }
109
74
  targetForActorRef(actorRef) {
110
75
  const targetNodeRid = actorRef.nodeRid;
111
- const localNodeRid = this.options.primaryNodeRid();
112
- if (localNodeRid !== undefined && (0, routing_id_2.routingIdsEqual)(localNodeRid, targetNodeRid)) {
76
+ if (this.isLocalActorRef(actorRef)) {
113
77
  return undefined;
114
78
  }
115
79
  const meshName = actorRef.meshName;
@@ -127,6 +91,10 @@ class ZLinkRemoteActorPacketTargetStore {
127
91
  spotKind: contracts_1.ZLinkSpotKind.Entry
128
92
  };
129
93
  }
94
+ isLocalActorRef(actorRef) {
95
+ const localNodeRid = this.options.primaryNodeRid();
96
+ return localNodeRid !== undefined && (0, routing_id_1.routingIdsEqual)(localNodeRid, actorRef.nodeRid);
97
+ }
130
98
  tenureKeyForActor(actor) {
131
99
  return sessionActorPacketTargetTenureKey(actor);
132
100
  }
@@ -172,10 +140,3 @@ function sessionActorPacketTargetTenureKeyForRef(actorId, actorRef) {
172
140
  ref.ownerLeaseGeneration?.toString() ?? ''
173
141
  ].join(':');
174
142
  }
175
- function validateSpotId(value) {
176
- const byteLength = Buffer.byteLength(value, 'utf8');
177
- if (byteLength < 1 || byteLength > 255) {
178
- throw new TypeError('SpotId must contain between 1 and 255 UTF-8 bytes.');
179
- }
180
- return value;
181
- }
@@ -18,7 +18,7 @@ export interface ZLinkRemoteBoundSessionRelayOptions {
18
18
  readonly destroyedActorRefs: ReadonlyMap<string, ActorRef>;
19
19
  readonly boundSessionFactory: (actorId: string) => DefaultZLinkBoundSession;
20
20
  readonly updateRemoteActorPacketTarget: (actorId: string, value: unknown) => Promise<void>;
21
- readonly actorPacketTargetForState: (actorId: string, routerChannelIdHint?: string) => ZLinkRemoteActorPacketTarget | undefined;
21
+ readonly actorPacketTargetForState: (actorId: string) => ZLinkRemoteActorPacketTarget | undefined;
22
22
  readonly reportOwnershipRefreshError?: (actorId: string, error: unknown) => void;
23
23
  }
24
24
  export declare class ZLinkRemoteBoundSessionRelay {
@@ -46,9 +46,8 @@ export declare class ZLinkRemoteBoundSessionRelay {
46
46
  private warnLateSessionRouteUpdate;
47
47
  private applyServiceWireSessionRelocationRoute;
48
48
  private validateServiceWireSessionRoute;
49
- rememberRemoteBoundSessionTarget(actorId: string, target: ZLinkRemoteBoundSessionTarget | undefined): void;
50
49
  resolveRemoteBoundSessionTarget(sourceNodeRid: RoutingId, sourceSessionRid: RoutingId): ZLinkRemoteBoundSessionTarget | undefined;
51
- actorPacketTargetForState(actorId: string, routerChannelIdHint?: string): ZLinkRemoteActorPacketTarget | undefined;
50
+ actorPacketTargetForState(actorId: string): ZLinkRemoteActorPacketTarget | undefined;
52
51
  clearOwnership(actorId: string): void;
53
52
  sendActorResponse(actor: ZLinkActor, packetName: string, requestSeq: bigint, response: unknown, replyOptions: ZLinkActorResponseOptions, fallbackBoundSessionTarget?: ZLinkRemoteBoundSessionTarget, fallbackActorRef?: ActorRef, signal?: AbortSignal): Promise<void>;
54
53
  sendActorError(actorId: string, packetName: string, requestSeq: bigint, error: unknown, metadata: ReadonlyMap<string, string>, fallbackBoundSessionTarget?: ZLinkRemoteBoundSessionTarget, fallbackActorRef?: ActorRef, signal?: AbortSignal): Promise<void>;
@@ -74,15 +74,6 @@ class ZLinkRemoteBoundSessionRelay {
74
74
  async receiveRemoteBoundSessionSend(payload) {
75
75
  const send = (0, bound_session_wire_1.decodeRemoteBoundSessionSendPayload)(payload);
76
76
  await this.options.updateRemoteActorPacketTarget(send.actorId, send.actorPacketTarget);
77
- const owner = (0, actor_session_binding_runtime_owner_1.actorSessionBindingRuntimeOwnerIfRegistered)(this.options.streamBindingRuntime());
78
- const retained = await owner?.retainRelocationOutbound(send.actorId, {
79
- deliver: () => this.deliverRemoteBoundSessionSend(send),
80
- fail: (error) => this.options.reportOwnershipRefreshError?.(send.actorId, error)
81
- }, send.relocationSealId);
82
- if (retained === 'retained')
83
- return { ok: true };
84
- if (retained === 'rejected')
85
- return { ok: false };
86
77
  return { ok: await this.deliverRemoteBoundSessionSend(send) };
87
78
  }
88
79
  async deliverRemoteBoundSessionSend(send) {
@@ -192,7 +183,7 @@ class ZLinkRemoteBoundSessionRelay {
192
183
  await owner.clearRelocation(actorId, error);
193
184
  void this.options
194
185
  .streamBindingRuntime()
195
- .disconnectBoundSession(actorId)
186
+ .closeSessionBinding(actorId, value.session)
196
187
  .catch((disconnectError) => this.options.reportOwnershipRefreshError?.(actorId, disconnectError));
197
188
  state.sealAbortCleanup?.();
198
189
  };
@@ -228,7 +219,7 @@ class ZLinkRemoteBoundSessionRelay {
228
219
  await owner.clearRelocation(actorId, error);
229
220
  void this.options
230
221
  .streamBindingRuntime()
231
- .disconnectBoundSession(actorId)
222
+ .closeSessionBinding(actorId, value.session)
232
223
  .catch((disconnectError) => this.options.reportOwnershipRefreshError?.(actorId, disconnectError));
233
224
  }
234
225
  }
@@ -257,7 +248,6 @@ class ZLinkRemoteBoundSessionRelay {
257
248
  }
258
249
  const state = this.activeServiceWireRelocations.get(key);
259
250
  if (state === undefined) {
260
- await (0, actor_session_binding_runtime_owner_1.actorSessionBindingRuntimeOwner)(this.options.streamBindingRuntime()).discardRelocationOutbound(value.actor.actorId, key, new bound_session_wire_1.ZLinkRemoteBoundSessionFenceError(`Actor '${value.actor.actorId}' command 44 did not match an active command 42.`));
261
251
  this.warnLateSessionRouteUpdate(value);
262
252
  return;
263
253
  }
@@ -317,7 +307,7 @@ class ZLinkRemoteBoundSessionRelay {
317
307
  (0, actor_session_binding_runtime_owner_1.actorSessionBindingRuntimeOwner)(this.options.streamBindingRuntime()).clearRelocation(state.actorId, error);
318
308
  await this.options
319
309
  .streamBindingRuntime()
320
- .disconnectBoundSession(state.actorId)
310
+ .closeSessionBinding(state.actorId, value.session)
321
311
  .catch((disconnectError) => this.options.reportOwnershipRefreshError?.(state.actorId, disconnectError));
322
312
  throw error;
323
313
  }
@@ -386,9 +376,6 @@ class ZLinkRemoteBoundSessionRelay {
386
376
  throw new bound_session_wire_1.ZLinkRemoteBoundSessionFenceError(`Actor '${value.actor.actor.actorId}' command 42 was fenced by its exact Session route.`);
387
377
  }
388
378
  }
389
- rememberRemoteBoundSessionTarget(actorId, target) {
390
- this.options.actorManager()?.getState(actorId)?.setRemoteBoundSessionTarget(target);
391
- }
392
379
  resolveRemoteBoundSessionTarget(sourceNodeRid, sourceSessionRid) {
393
380
  const target = this.options.meshRouters.remoteBoundSessionTargetForSource(sourceNodeRid);
394
381
  if (target === undefined)
@@ -405,8 +392,8 @@ class ZLinkRemoteBoundSessionRelay {
405
392
  sessionRid: sourceSessionRid
406
393
  };
407
394
  }
408
- actorPacketTargetForState(actorId, routerChannelIdHint) {
409
- return this.options.actorPacketTargetForState(actorId, routerChannelIdHint);
395
+ actorPacketTargetForState(actorId) {
396
+ return this.options.actorPacketTargetForState(actorId);
410
397
  }
411
398
  clearOwnership(actorId) {
412
399
  this.actorOwnershipGenerations.delete(actorId);
@@ -433,7 +420,7 @@ class ZLinkRemoteBoundSessionRelay {
433
420
  const actorRef = currentActorRef(state, fallbackActorRef);
434
421
  const remoteTarget = fallbackBoundSessionTarget ?? state?.remoteBoundSessionTarget;
435
422
  if (remoteTarget !== undefined) {
436
- await this.sendRemoteBoundSessionResponse(remoteTarget, actor.context.actorId, packetName, requestSeq, response, replyOptions, signal);
423
+ await this.sendRemoteBoundSessionResponse(remoteTarget, actor.context.actorId, packetName, requestSeq, response, replyOptions);
437
424
  return;
438
425
  }
439
426
  if (actorRef === undefined) {
@@ -457,7 +444,7 @@ class ZLinkRemoteBoundSessionRelay {
457
444
  const actorRef = currentActorRef(state, fallbackActorRef) ?? this.options.destroyedActorRefs.get(actorId);
458
445
  const remoteTarget = fallbackBoundSessionTarget ?? state?.remoteBoundSessionTarget;
459
446
  if (remoteTarget !== undefined) {
460
- await this.sendRemoteBoundSessionError(remoteTarget, actorId, packetName, requestSeq, error, metadata, signal);
447
+ await this.sendRemoteBoundSessionError(remoteTarget, actorId, packetName, requestSeq, error, metadata);
461
448
  return;
462
449
  }
463
450
  if (actorRef === undefined) {
@@ -471,8 +458,8 @@ class ZLinkRemoteBoundSessionRelay {
471
458
  .streamBindingRuntime()
472
459
  .sendNativeBoundSessionError(actorSessionNode, actorRef, packetName, requestSeq, error, metadata, signal);
473
460
  }
474
- async sendRemoteBoundSessionResponse(target, actorId, packetName, requestSeq, message, replyOptions, signal) {
475
- const actorPacketTarget = (0, actor_packet_relay_wire_1.encodeRemoteActorPacketTarget)(this.options.actorPacketTargetForState(actorId, target.routerChannelId));
461
+ async sendRemoteBoundSessionResponse(target, actorId, packetName, requestSeq, message, replyOptions) {
462
+ const actorPacketTarget = (0, actor_packet_relay_wire_1.encodeRemoteActorPacketTarget)(this.options.actorPacketTargetForState(actorId));
476
463
  await this.sendRemoteBoundSessionControl(target, (0, bound_session_wire_1.encodeRemoteBoundSessionResponsePayload)({
477
464
  actorId,
478
465
  boundPacketName: packetName,
@@ -481,19 +468,19 @@ class ZLinkRemoteBoundSessionRelay {
481
468
  metadata: replyOptions.metadata,
482
469
  compressPayload: replyOptions.compressPayload,
483
470
  actorPacketTarget
484
- }), signal);
471
+ }));
485
472
  }
486
- async sendRemoteBoundSessionError(target, actorId, packetName, requestSeq, error, metadata, signal) {
473
+ async sendRemoteBoundSessionError(target, actorId, packetName, requestSeq, error, metadata) {
487
474
  await this.sendRemoteBoundSessionControl(target, (0, bound_session_wire_1.encodeRemoteBoundSessionErrorPayload)({
488
475
  actorId,
489
476
  boundPacketName: packetName,
490
477
  requestSeq,
491
478
  error,
492
479
  metadata,
493
- actorPacketTarget: (0, actor_packet_relay_wire_1.encodeRemoteActorPacketTarget)(this.options.actorPacketTargetForState(actorId, target.routerChannelId))
494
- }), signal);
480
+ actorPacketTarget: (0, actor_packet_relay_wire_1.encodeRemoteActorPacketTarget)(this.options.actorPacketTargetForState(actorId))
481
+ }));
495
482
  }
496
- async sendRemoteBoundSessionControl(target, payload, signal) {
483
+ async sendRemoteBoundSessionControl(target, payload) {
497
484
  const packetName = payload.packetName;
498
485
  if (typeof packetName !== 'string') {
499
486
  throw new Error('Remote bound session control payload does not declare a packet name.');
@@ -502,7 +489,7 @@ class ZLinkRemoteBoundSessionRelay {
502
489
  if (submit === undefined) {
503
490
  throw new Error('Remote bound session node-direct transport is not available.');
504
491
  }
505
- const result = await submit.call(this.options.routeTransport, target.routerChannelId, String(target.targetNodeRid), packetName, payload, signal);
492
+ const result = await submit.call(this.options.routeTransport, target.routerChannelId, String(target.targetNodeRid), packetName, payload);
506
493
  if (result.status !== submission_result_1.ZLinkSubmitStatus.Submitted) {
507
494
  throw new Error(`Remote bound session control '${packetName}' was not admitted` +
508
495
  ` on '${target.routerChannelId}' for '${String(target.targetNodeRid)}'` +
@@ -1,4 +1,8 @@
1
- import { ZLinkFrameworkRuntimeState, type ZLinkObservedStatus, type ZLinkRouteMeshStatus, type ZLinkRouteMeshRuntime } from '../../contracts';
1
+ import { ZLinkFrameworkRuntimeState, type ZLinkMeshNodeDescriptor, type ZLinkObservedStatus, type ZLinkRouteMeshRuntime, type ZLinkRouteMeshStatus } from '../../contracts';
2
+ import type { ZLinkActivationAdmission } from '../activation-admission';
3
+ import type { ZLinkRuntimeAdmissionGate } from '../admission';
4
+ import type { ZLinkBackendMeshNode } from '../backend';
5
+ import type { ZLinkSpotNodeOptions } from '../configuration';
2
6
  type ZLinkDrainForceReason = 'deadline_exceeded' | 'drain_state_publish_failed' | 'owner_cleanup_failed' | 'teardown_failed';
3
7
  type ZLinkMeshDrainResult = {
4
8
  readonly kind: 'drained';
@@ -7,11 +11,6 @@ type ZLinkMeshDrainResult = {
7
11
  readonly reason: ZLinkDrainForceReason;
8
12
  readonly error?: unknown;
9
13
  };
10
- import type { ZLinkBackendMeshNode } from '../backend';
11
- import type { ZLinkRuntimeAdmissionGate } from '../admission';
12
- import type { ZLinkActivationAdmission } from '../activation-admission';
13
- import type { ZLinkSpotNodeOptions } from '../configuration';
14
- import { type ZLinkMeshNodeDescriptor } from '../../contracts';
15
14
  export interface ZLinkRouteMeshRuntimeCoordinatorOptions {
16
15
  readonly meshNames: readonly string[];
17
16
  readonly meshOptions: ReadonlyMap<string, ZLinkSpotNodeOptions>;
@@ -38,9 +37,6 @@ export interface ZLinkLocalPlacementCounts {
38
37
  export declare class ZLinkRouteMeshRuntimeCoordinator implements ZLinkRouteMeshRuntime {
39
38
  private readonly options;
40
39
  private readonly states;
41
- private readonly placementFingerprints;
42
- private readonly peerFingerprints;
43
- private readonly locationStoreHealthFingerprints;
44
40
  private placementObserver?;
45
41
  private hostOperation?;
46
42
  private shutdownOperation?;
@@ -48,6 +44,7 @@ export declare class ZLinkRouteMeshRuntimeCoordinator implements ZLinkRouteMeshR
48
44
  constructor(options: ZLinkRouteMeshRuntimeCoordinatorOptions);
49
45
  markServing(): void;
50
46
  snapshot(meshName: string): ZLinkRouteMeshStatus;
47
+ private buildSnapshot;
51
48
  observe(meshName: string, capacity?: number, signal?: AbortSignal): AsyncIterable<ZLinkObservedStatus<ZLinkRouteMeshStatus>>;
52
49
  isReady(meshName: string): boolean;
53
50
  hostStateChanged(): void;
@@ -55,7 +52,7 @@ export declare class ZLinkRouteMeshRuntimeCoordinator implements ZLinkRouteMeshR
55
52
  drain(meshName: string, deadlineMs?: number, signal?: AbortSignal): Promise<ZLinkMeshDrainResult>;
56
53
  awaitDrained(meshName: string, signal?: AbortSignal): Promise<ZLinkMeshDrainResult>;
57
54
  drainHost(deadlineMs?: number, signal?: AbortSignal): Promise<ZLinkMeshDrainResult>;
58
- shutdownHost(deadline?: number | Date, signal?: AbortSignal, remainingTimeoutMs?: number): Promise<ZLinkMeshDrainResult>;
55
+ shutdownHost(deadline: number | Date, signal: AbortSignal): Promise<ZLinkMeshDrainResult>;
59
56
  prepareHostRetire(deadlineMs: number): Promise<'prepared' | 'store_unavailable' | 'deadline_exceeded'>;
60
57
  /**
61
58
  * Relocates stateful resources without closing application transport.
@@ -66,12 +63,17 @@ export declare class ZLinkRouteMeshRuntimeCoordinator implements ZLinkRouteMeshR
66
63
  private performHostDrain;
67
64
  private performHostShutdown;
68
65
  private transition;
69
- private seedPlacementFingerprint;
66
+ private publishCurrentStatus;
67
+ private publishSnapshot;
68
+ private publishStatus;
70
69
  private startPlacementObserver;
71
70
  private stopPlacementObserverIfIdle;
72
71
  private observePlacementChanges;
73
72
  private requireState;
74
73
  }
74
+ export declare class ZLinkDrainingStatePublishError extends Error {
75
+ constructor(cause: unknown);
76
+ }
75
77
  export declare class ZLinkRetiringRollbackError extends Error {
76
78
  constructor();
77
79
  }