@zlink-systems/framework 0.25.0 → 0.27.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 (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
  3. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  4. package/dist/contracts/Common/CoreTypes.js +7 -0
  5. package/dist/contracts/Common/index.d.ts +1 -1
  6. package/dist/contracts/Common/index.js +0 -1
  7. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  8. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  9. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  10. package/dist/contracts/Configuration/Registration.js +58 -36
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  12. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  13. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  14. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  15. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  16. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  17. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  18. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  19. package/dist/contracts/Handlers/JsonContract.js +10 -4
  20. package/dist/contracts/Locations/Authority.d.ts +1 -1
  21. package/dist/contracts/Locations/Authority.js +3 -2
  22. package/dist/contracts/Locations/Options.js +1 -1
  23. package/dist/contracts/Locations/Stores.d.ts +12 -0
  24. package/dist/contracts/Locations/Stores.js +9 -0
  25. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
  26. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  27. package/dist/internal.d.ts +5 -0
  28. package/dist/internal.js +16 -1
  29. package/dist/nest-integration.d.ts +4 -2
  30. package/dist/nest-integration.js +14 -4
  31. package/dist/runtime/abort.d.ts +1 -0
  32. package/dist/runtime/abort.js +8 -5
  33. package/dist/runtime/activation-admission.d.ts +28 -0
  34. package/dist/runtime/activation-admission.js +57 -0
  35. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  36. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  37. package/dist/runtime/actors/actor-client.d.ts +2 -2
  38. package/dist/runtime/actors/actor-client.js +42 -143
  39. package/dist/runtime/actors/actor-context.d.ts +3 -5
  40. package/dist/runtime/actors/actor-context.js +19 -17
  41. package/dist/runtime/actors/actor-handoff.d.ts +13 -7
  42. package/dist/runtime/actors/actor-handoff.js +36 -25
  43. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  44. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  45. package/dist/runtime/actors/actor-local-native-join.js +85 -123
  46. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  47. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  48. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  49. package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
  50. package/dist/runtime/actors/actor-remote-joiner.js +11 -17
  51. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  52. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  53. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  54. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  55. package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
  56. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  57. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  58. package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
  59. package/dist/runtime/actors/bound-session-wire.js +2 -7
  60. package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
  61. package/dist/runtime/actors/deferred-join-completion.js +21 -0
  62. package/dist/runtime/actors/index.d.ts +10 -8
  63. package/dist/runtime/actors/index.js +101 -73
  64. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  65. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  66. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  67. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  68. package/dist/runtime/admission.d.ts +7 -1
  69. package/dist/runtime/admission.js +11 -1
  70. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  71. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  72. package/dist/runtime/backend/contracts/index.d.ts +8 -33
  73. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
  74. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  75. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  76. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
  77. package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
  78. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
  79. package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
  80. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  81. package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
  82. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  83. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
  84. package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
  85. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
  86. package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
  87. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  88. package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
  89. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  90. package/dist/runtime/backend/runtime-values.js +2 -0
  91. package/dist/runtime/channels/channel-clients.d.ts +20 -9
  92. package/dist/runtime/channels/channel-clients.js +68 -60
  93. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  94. package/dist/runtime/channels/channel-envelope.js +47 -29
  95. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  96. package/dist/runtime/channels/channel-outbound-operations.js +9 -18
  97. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  98. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  99. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  100. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  101. package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
  102. package/dist/runtime/channels/channel-runtime-manager.js +4 -12
  103. package/dist/runtime/channels/channel-socket-options.js +3 -2
  104. package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
  105. package/dist/runtime/channels/channel-socket-registry.js +296 -235
  106. package/dist/runtime/channels/channel-transports.d.ts +11 -20
  107. package/dist/runtime/channels/channel-transports.js +68 -47
  108. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  109. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  110. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  111. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  112. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  113. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  114. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  115. package/dist/runtime/channels/fanout-location-runtime.js +133 -81
  116. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  117. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  118. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  119. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  120. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  121. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  122. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  123. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  124. package/dist/runtime/diagnostics/flow-context.js +16 -2
  125. package/dist/runtime/diagnostics/index.d.ts +4 -2
  126. package/dist/runtime/diagnostics/index.js +14 -4
  127. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  128. package/dist/runtime/diagnostics/message-flow.js +10 -19
  129. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  130. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  131. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  132. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  133. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  134. package/dist/runtime/disposal.d.ts +5 -0
  135. package/dist/runtime/disposal.js +22 -0
  136. package/dist/runtime/execution/index.d.ts +22 -9
  137. package/dist/runtime/execution/index.js +107 -37
  138. package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
  139. package/dist/runtime/execution/serial-execution-queue.js +99 -26
  140. package/dist/runtime/execution/state-lane.d.ts +8 -1
  141. package/dist/runtime/execution/state-lane.js +118 -3
  142. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  143. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  144. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  145. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  146. package/dist/runtime/foundation/listener-records.d.ts +11 -0
  147. package/dist/runtime/foundation/listener-records.js +20 -0
  148. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  149. package/dist/runtime/foundation/operation-identity.js +9 -5
  150. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  151. package/dist/runtime/foundation/operation-registry.js +34 -44
  152. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
  153. package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
  154. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  155. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  156. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
  157. package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
  158. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  159. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  160. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  161. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  162. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  163. package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
  164. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  165. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  166. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  167. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
  168. package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
  169. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
  170. package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
  171. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  172. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  173. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  174. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
  175. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  176. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  177. package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
  178. package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
  179. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
  180. package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
  181. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
  182. package/dist/runtime/foundation/service-topology-registry.js +22 -61
  183. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  184. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  185. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  186. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  187. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  188. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  189. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  190. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  191. package/dist/runtime/framework-errors-internal.js +343 -122
  192. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  193. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  194. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  195. package/dist/runtime/host/actor-packet-relay.js +48 -91
  196. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  197. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  198. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  199. package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
  200. package/dist/runtime/host/actor-transfer-runtime.js +210 -256
  201. package/dist/runtime/host/application-job-queue.js +16 -33
  202. package/dist/runtime/host/bound-session-relay.js +1 -1
  203. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  204. package/dist/runtime/host/index.d.ts +19 -14
  205. package/dist/runtime/host/index.js +234 -175
  206. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  207. package/dist/runtime/host/instance-activation-authority.js +17 -45
  208. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  209. package/dist/runtime/host/location-runtime-owner.js +2 -2
  210. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  211. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  212. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  213. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  214. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  215. package/dist/runtime/host/remote-bound-session-relay.js +11 -23
  216. package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
  217. package/dist/runtime/host/route-mesh-runtime.js +178 -257
  218. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  219. package/dist/runtime/host/runtime-shutdown.js +18 -21
  220. package/dist/runtime/host/service-relocation-control.js +6 -1
  221. package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
  222. package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
  223. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  224. package/dist/runtime/host/spot-address-transport.js +34 -136
  225. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  226. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  227. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
  228. package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
  229. package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
  230. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
  231. package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
  232. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  233. package/dist/runtime/locations/authority-key-codec.js +4 -3
  234. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  235. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  236. package/dist/runtime/locations/creation-operation-id.js +6 -4
  237. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  238. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  239. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  240. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  241. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  242. package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
  243. package/dist/runtime/locations/key-codec.js +3 -2
  244. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  245. package/dist/runtime/locations/lease-tracker.js +7 -11
  246. package/dist/runtime/locations/lifecycle.d.ts +5 -10
  247. package/dist/runtime/locations/lifecycle.js +4 -33
  248. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  249. package/dist/runtime/locations/location-store-failure.js +7 -0
  250. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  251. package/dist/runtime/locations/location-store-pages.js +13 -0
  252. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  253. package/dist/runtime/locations/location-store-repository.js +303 -332
  254. package/dist/runtime/locations/relocation-blob.js +18 -5
  255. package/dist/runtime/locations/resolvers.d.ts +5 -5
  256. package/dist/runtime/locations/resolvers.js +44 -30
  257. package/dist/runtime/locations/runtime.d.ts +5 -4
  258. package/dist/runtime/locations/runtime.js +123 -92
  259. package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
  260. package/dist/runtime/locations/spot-location-claims.js +40 -23
  261. package/dist/runtime/messaging/payload-codec.js +26 -20
  262. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  263. package/dist/runtime/messaging/submission-result.js +48 -0
  264. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
  265. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
  266. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
  267. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
  268. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
  269. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
  270. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
  271. package/dist/runtime/spots/index.d.ts +29 -29
  272. package/dist/runtime/spots/index.js +441 -313
  273. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
  274. package/dist/runtime/spots/spot-activation-registry.js +27 -60
  275. package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
  276. package/dist/runtime/spots/spot-activation-state.js +4 -17
  277. package/dist/runtime/spots/spot-activation.d.ts +10 -9
  278. package/dist/runtime/spots/spot-activation.js +103 -81
  279. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  280. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  281. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  282. package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
  283. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
  284. package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
  285. package/dist/runtime/spots/spot-actor-membership.js +44 -53
  286. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  287. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  288. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  289. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  290. package/dist/runtime/spots/spot-context.d.ts +2 -2
  291. package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
  292. package/dist/runtime/spots/spot-entry-activation.js +9 -21
  293. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  294. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  295. package/dist/runtime/spots/spot-manager-public.js +6 -5
  296. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  297. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
  298. package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
  299. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  300. package/dist/runtime/spots/spot-outbound.js +10 -37
  301. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  302. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  303. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  304. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  305. package/dist/runtime/spots/spot-route-replies.js +3 -1
  306. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
  307. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
  308. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
  309. package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
  310. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  311. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  312. package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
  313. package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
  314. package/dist/runtime/spots/spot-serial-executor.js +9 -2
  315. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
  316. package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
  317. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  318. package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
  319. package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
  320. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
  321. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  322. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  323. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  324. package/dist/runtime/streams/bound-session-service.js +12 -19
  325. package/dist/runtime/streams/index.d.ts +15 -14
  326. package/dist/runtime/streams/index.js +38 -39
  327. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  328. package/dist/runtime/streams/managed-stream.js +17 -8
  329. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  330. package/dist/runtime/streams/protocol.d.ts +6 -33
  331. package/dist/runtime/streams/protocol.js +38 -110
  332. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  333. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  334. package/dist/runtime/streams/session-calls.d.ts +1 -1
  335. package/dist/runtime/streams/session-calls.js +5 -4
  336. package/dist/runtime/streams/session-context.d.ts +6 -6
  337. package/dist/runtime/streams/session-context.js +22 -4
  338. package/dist/runtime/streams/session-requests.js +2 -1
  339. package/dist/runtime/streams/session-serial-executor.js +2 -2
  340. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  341. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  342. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  343. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  344. package/dist/runtime/workers/index.d.ts +2 -2
  345. package/dist/runtime/workers/index.js +5 -4
  346. package/package.json +3 -3
  347. package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
  348. package/src/contracts/Common/CoreTypes.ts +7 -0
  349. package/src/contracts/Common/index.ts +1 -1
  350. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  351. package/src/contracts/Configuration/Registration.ts +92 -48
  352. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  353. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  354. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  355. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  356. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  357. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  358. package/src/contracts/Handlers/JsonContract.ts +14 -4
  359. package/src/contracts/Locations/Authority.ts +7 -3
  360. package/src/contracts/Locations/Options.ts +1 -1
  361. package/src/contracts/Locations/Stores.ts +14 -0
  362. package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
  363. package/src/contracts/Spots/Contracts.ts +1 -1
  364. package/src/internal.ts +15 -0
  365. package/src/nest-integration.ts +28 -10
  366. package/src/runtime/abort.ts +6 -5
  367. package/src/runtime/activation-admission.ts +72 -0
  368. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  369. package/src/runtime/actors/actor-client.ts +77 -204
  370. package/src/runtime/actors/actor-context.ts +45 -39
  371. package/src/runtime/actors/actor-handoff.ts +55 -45
  372. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  373. package/src/runtime/actors/actor-local-native-join.ts +174 -215
  374. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  375. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  376. package/src/runtime/actors/actor-remote-joiner.ts +15 -36
  377. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  378. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  379. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  380. package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
  381. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  382. package/src/runtime/actors/actor-source-transfer.ts +5 -18
  383. package/src/runtime/actors/bound-session-wire.ts +2 -8
  384. package/src/runtime/actors/deferred-join-completion.ts +44 -0
  385. package/src/runtime/actors/index.ts +122 -88
  386. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  387. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  388. package/src/runtime/admission.ts +13 -2
  389. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  390. package/src/runtime/backend/contracts/index.ts +15 -42
  391. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
  392. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  393. package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
  394. package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
  395. package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
  396. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  397. package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
  398. package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
  399. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
  400. package/src/runtime/backend/raw-binding-port.ts +14 -1
  401. package/src/runtime/backend/runtime-values.ts +4 -1
  402. package/src/runtime/channels/channel-clients.ts +132 -96
  403. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  404. package/src/runtime/channels/channel-envelope.ts +58 -29
  405. package/src/runtime/channels/channel-outbound-operations.ts +10 -31
  406. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  407. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  408. package/src/runtime/channels/channel-runtime-manager.ts +8 -15
  409. package/src/runtime/channels/channel-socket-options.ts +8 -2
  410. package/src/runtime/channels/channel-socket-registry.ts +369 -262
  411. package/src/runtime/channels/channel-transports.ts +161 -115
  412. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  413. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  414. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  415. package/src/runtime/channels/fanout-location-runtime.ts +175 -106
  416. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  417. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  418. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  419. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  420. package/src/runtime/diagnostics/flow-context.ts +16 -2
  421. package/src/runtime/diagnostics/index.ts +27 -17
  422. package/src/runtime/diagnostics/message-flow.ts +15 -25
  423. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  424. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  425. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  426. package/src/runtime/disposal.ts +19 -0
  427. package/src/runtime/execution/index.ts +116 -38
  428. package/src/runtime/execution/serial-execution-queue.ts +179 -34
  429. package/src/runtime/execution/state-lane.ts +142 -4
  430. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  431. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  432. package/src/runtime/foundation/listener-records.ts +21 -0
  433. package/src/runtime/foundation/operation-identity.ts +11 -5
  434. package/src/runtime/foundation/operation-registry.ts +33 -50
  435. package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
  436. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  437. package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
  438. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  439. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  440. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  441. package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
  442. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  443. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  444. package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
  445. package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
  446. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  447. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  448. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
  449. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  450. package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
  451. package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
  452. package/src/runtime/foundation/service-topology-registry.ts +30 -79
  453. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  454. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  455. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  456. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  457. package/src/runtime/framework-errors-internal.ts +380 -134
  458. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  459. package/src/runtime/host/actor-packet-relay.ts +57 -147
  460. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  461. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  462. package/src/runtime/host/actor-transfer-runtime.ts +266 -418
  463. package/src/runtime/host/application-job-queue.ts +28 -34
  464. package/src/runtime/host/bound-session-relay.ts +1 -2
  465. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  466. package/src/runtime/host/index.ts +408 -312
  467. package/src/runtime/host/instance-activation-authority.ts +89 -109
  468. package/src/runtime/host/location-runtime-owner.ts +4 -2
  469. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  470. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  471. package/src/runtime/host/remote-bound-session-relay.ts +12 -44
  472. package/src/runtime/host/route-mesh-runtime.ts +236 -275
  473. package/src/runtime/host/runtime-shutdown.ts +17 -21
  474. package/src/runtime/host/service-relocation-control.ts +14 -1
  475. package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
  476. package/src/runtime/host/spot-address-transport.ts +73 -195
  477. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  478. package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
  479. package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
  480. package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
  481. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  482. package/src/runtime/locations/authority-key-codec.ts +7 -3
  483. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  484. package/src/runtime/locations/creation-operation-id.ts +6 -3
  485. package/src/runtime/locations/domain-store-contract.ts +12 -3
  486. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  487. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  488. package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
  489. package/src/runtime/locations/key-codec.ts +3 -2
  490. package/src/runtime/locations/lease-tracker.ts +8 -14
  491. package/src/runtime/locations/lifecycle.ts +16 -45
  492. package/src/runtime/locations/location-store-failure.ts +4 -0
  493. package/src/runtime/locations/location-store-pages.ts +18 -0
  494. package/src/runtime/locations/location-store-repository.ts +450 -478
  495. package/src/runtime/locations/relocation-blob.ts +17 -6
  496. package/src/runtime/locations/resolvers.ts +90 -58
  497. package/src/runtime/locations/runtime.ts +220 -110
  498. package/src/runtime/locations/spot-location-claims.ts +54 -26
  499. package/src/runtime/messaging/payload-codec.ts +35 -24
  500. package/src/runtime/messaging/submission-result.ts +57 -1
  501. package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
  502. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
  503. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
  504. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
  505. package/src/runtime/spots/index.ts +687 -437
  506. package/src/runtime/spots/spot-activation-registry.ts +42 -71
  507. package/src/runtime/spots/spot-activation-state.ts +4 -16
  508. package/src/runtime/spots/spot-activation.ts +167 -115
  509. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  510. package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
  511. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
  512. package/src/runtime/spots/spot-actor-membership.ts +107 -75
  513. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  514. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  515. package/src/runtime/spots/spot-context.ts +3 -3
  516. package/src/runtime/spots/spot-entry-activation.ts +13 -33
  517. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  518. package/src/runtime/spots/spot-manager-public.ts +29 -21
  519. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  520. package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
  521. package/src/runtime/spots/spot-outbound.ts +47 -68
  522. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  523. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  524. package/src/runtime/spots/spot-route-replies.ts +6 -4
  525. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
  526. package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
  527. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  528. package/src/runtime/spots/spot-runtime-ports.ts +10 -43
  529. package/src/runtime/spots/spot-serial-executor.ts +10 -2
  530. package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
  531. package/src/runtime/spots/spot-timer.ts +3 -2
  532. package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
  533. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
  534. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  535. package/src/runtime/streams/bound-session-service.ts +23 -37
  536. package/src/runtime/streams/index.ts +102 -88
  537. package/src/runtime/streams/managed-stream.ts +29 -10
  538. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  539. package/src/runtime/streams/protocol.ts +34 -88
  540. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  541. package/src/runtime/streams/session-calls.ts +6 -5
  542. package/src/runtime/streams/session-context.ts +54 -10
  543. package/src/runtime/streams/session-requests.ts +2 -1
  544. package/src/runtime/streams/session-serial-executor.ts +2 -2
  545. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  546. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  547. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  548. package/src/runtime/workers/index.ts +13 -12
  549. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
  550. package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
  551. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  552. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  553. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  554. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  555. package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
  556. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  557. 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
  }
@@ -338,7 +328,7 @@ class ZLinkRemoteBoundSessionRelay {
338
328
  const owner = (0, actor_session_binding_runtime_owner_1.actorSessionBindingRuntimeOwner)(runtime);
339
329
  const fingerprint = (0, service_stateful_wire_codec_1.encodeSessionRelocationRoute)(value).toString('base64');
340
330
  if (value.route.action === 'abort') {
341
- await owner.applyRelocation(value.actor.actorId, key, fingerprint, 'abort', async () => {
331
+ await owner.applyRelocation(value.actor.actorId, key, fingerprint, async () => {
342
332
  if (!(await runtime.abortActorRouteSeal(value.actor.actorId, key))) {
343
333
  throw new bound_session_wire_1.ZLinkRemoteBoundSessionFenceError(`Actor '${value.actor.actorId}' command 44 abort lost its Session seal.`);
344
334
  }
@@ -357,9 +347,10 @@ class ZLinkRemoteBoundSessionRelay {
357
347
  nodeRid: (0, routing_id_1.decodeRoutingId)(committedRoute.targetNodeRid, undefined),
358
348
  bindingGeneration: value.session.bindingGeneration,
359
349
  ownershipGeneration: committedRoute.targetAuthorityOwnerGeneration,
360
- ownerNodeGeneration: committedRoute.targetNodeGeneration
350
+ ownerNodeGeneration: committedRoute.targetNodeGeneration,
351
+ ownerLeaseGeneration: committedRoute.targetOwnerLeaseGeneration
361
352
  };
362
- await owner.applyRelocation(value.actor.actorId, key, fingerprint, 'commit', async () => {
353
+ await owner.applyRelocation(value.actor.actorId, key, fingerprint, async () => {
363
354
  await runtime.commitActorRoute(targetActorRef, undefined, {
364
355
  confirmRemoteSessionBinding: 'send',
365
356
  releaseSeal: { sealId: key }
@@ -385,9 +376,6 @@ class ZLinkRemoteBoundSessionRelay {
385
376
  throw new bound_session_wire_1.ZLinkRemoteBoundSessionFenceError(`Actor '${value.actor.actor.actorId}' command 42 was fenced by its exact Session route.`);
386
377
  }
387
378
  }
388
- rememberRemoteBoundSessionTarget(actorId, target) {
389
- this.options.actorManager()?.getState(actorId)?.setRemoteBoundSessionTarget(target);
390
- }
391
379
  resolveRemoteBoundSessionTarget(sourceNodeRid, sourceSessionRid) {
392
380
  const target = this.options.meshRouters.remoteBoundSessionTargetForSource(sourceNodeRid);
393
381
  if (target === undefined)
@@ -404,8 +392,8 @@ class ZLinkRemoteBoundSessionRelay {
404
392
  sessionRid: sourceSessionRid
405
393
  };
406
394
  }
407
- actorPacketTargetForState(actorId, routerChannelIdHint) {
408
- return this.options.actorPacketTargetForState(actorId, routerChannelIdHint);
395
+ actorPacketTargetForState(actorId) {
396
+ return this.options.actorPacketTargetForState(actorId);
409
397
  }
410
398
  clearOwnership(actorId) {
411
399
  this.actorOwnershipGenerations.delete(actorId);
@@ -471,7 +459,7 @@ class ZLinkRemoteBoundSessionRelay {
471
459
  .sendNativeBoundSessionError(actorSessionNode, actorRef, packetName, requestSeq, error, metadata, signal);
472
460
  }
473
461
  async sendRemoteBoundSessionResponse(target, actorId, packetName, requestSeq, message, replyOptions, signal) {
474
- const actorPacketTarget = (0, actor_packet_relay_wire_1.encodeRemoteActorPacketTarget)(this.options.actorPacketTargetForState(actorId, target.routerChannelId));
462
+ const actorPacketTarget = (0, actor_packet_relay_wire_1.encodeRemoteActorPacketTarget)(this.options.actorPacketTargetForState(actorId));
475
463
  await this.sendRemoteBoundSessionControl(target, (0, bound_session_wire_1.encodeRemoteBoundSessionResponsePayload)({
476
464
  actorId,
477
465
  boundPacketName: packetName,
@@ -489,7 +477,7 @@ class ZLinkRemoteBoundSessionRelay {
489
477
  requestSeq,
490
478
  error,
491
479
  metadata,
492
- actorPacketTarget: (0, actor_packet_relay_wire_1.encodeRemoteActorPacketTarget)(this.options.actorPacketTargetForState(actorId, target.routerChannelId))
480
+ actorPacketTarget: (0, actor_packet_relay_wire_1.encodeRemoteActorPacketTarget)(this.options.actorPacketTargetForState(actorId))
493
481
  }), signal);
494
482
  }
495
483
  async sendRemoteBoundSessionControl(target, payload, signal) {
@@ -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,10 +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 { ZLinkSpotNodeOptions } from '../configuration';
13
- import { type ZLinkMeshNodeDescriptor } from '../../contracts';
14
14
  export interface ZLinkRouteMeshRuntimeCoordinatorOptions {
15
15
  readonly meshNames: readonly string[];
16
16
  readonly meshOptions: ReadonlyMap<string, ZLinkSpotNodeOptions>;
@@ -20,6 +20,7 @@ export interface ZLinkRouteMeshRuntimeCoordinatorOptions {
20
20
  readonly isLocationStoreHealthy?: () => boolean;
21
21
  readonly hostState?: () => ZLinkFrameworkRuntimeState;
22
22
  readonly admission: ZLinkRuntimeAdmissionGate;
23
+ readonly activationAdmission?: ZLinkActivationAdmission;
23
24
  readonly publishRetiring: (meshName: string, signal: AbortSignal) => Promise<void>;
24
25
  readonly rollbackRetiring: (meshName: string, signal: AbortSignal) => Promise<void>;
25
26
  readonly publishDraining: (meshName: string, signal: AbortSignal) => Promise<void>;
@@ -36,9 +37,6 @@ export interface ZLinkLocalPlacementCounts {
36
37
  export declare class ZLinkRouteMeshRuntimeCoordinator implements ZLinkRouteMeshRuntime {
37
38
  private readonly options;
38
39
  private readonly states;
39
- private readonly placementFingerprints;
40
- private readonly peerFingerprints;
41
- private readonly locationStoreHealthFingerprints;
42
40
  private placementObserver?;
43
41
  private hostOperation?;
44
42
  private shutdownOperation?;
@@ -46,6 +44,7 @@ export declare class ZLinkRouteMeshRuntimeCoordinator implements ZLinkRouteMeshR
46
44
  constructor(options: ZLinkRouteMeshRuntimeCoordinatorOptions);
47
45
  markServing(): void;
48
46
  snapshot(meshName: string): ZLinkRouteMeshStatus;
47
+ private buildSnapshot;
49
48
  observe(meshName: string, capacity?: number, signal?: AbortSignal): AsyncIterable<ZLinkObservedStatus<ZLinkRouteMeshStatus>>;
50
49
  isReady(meshName: string): boolean;
51
50
  hostStateChanged(): void;
@@ -53,7 +52,7 @@ export declare class ZLinkRouteMeshRuntimeCoordinator implements ZLinkRouteMeshR
53
52
  drain(meshName: string, deadlineMs?: number, signal?: AbortSignal): Promise<ZLinkMeshDrainResult>;
54
53
  awaitDrained(meshName: string, signal?: AbortSignal): Promise<ZLinkMeshDrainResult>;
55
54
  drainHost(deadlineMs?: number, signal?: AbortSignal): Promise<ZLinkMeshDrainResult>;
56
- shutdownHost(deadline?: number | Date, signal?: AbortSignal, remainingTimeoutMs?: number): Promise<ZLinkMeshDrainResult>;
55
+ shutdownHost(deadline: number | Date, signal: AbortSignal): Promise<ZLinkMeshDrainResult>;
57
56
  prepareHostRetire(deadlineMs: number): Promise<'prepared' | 'store_unavailable' | 'deadline_exceeded'>;
58
57
  /**
59
58
  * Relocates stateful resources without closing application transport.
@@ -64,12 +63,17 @@ export declare class ZLinkRouteMeshRuntimeCoordinator implements ZLinkRouteMeshR
64
63
  private performHostDrain;
65
64
  private performHostShutdown;
66
65
  private transition;
67
- private seedPlacementFingerprint;
66
+ private publishCurrentStatus;
67
+ private publishSnapshot;
68
+ private publishStatus;
68
69
  private startPlacementObserver;
69
70
  private stopPlacementObserverIfIdle;
70
71
  private observePlacementChanges;
71
72
  private requireState;
72
73
  }
74
+ export declare class ZLinkDrainingStatePublishError extends Error {
75
+ constructor(cause: unknown);
76
+ }
73
77
  export declare class ZLinkRetiringRollbackError extends Error {
74
78
  constructor();
75
79
  }