@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
@@ -4,6 +4,7 @@ exports.ZLinkSpotActivationLifecycle = void 0;
4
4
  const contracts_1 = require("../../contracts");
5
5
  const abort_1 = require("../abort");
6
6
  const configuration_1 = require("../configuration");
7
+ const framework_errors_internal_1 = require("../framework-errors-internal");
7
8
  const actors_1 = require("../actors");
8
9
  const handler_instance_scope_1 = require("../handlers/handler-instance-scope");
9
10
  const payload_codec_1 = require("../messaging/payload-codec");
@@ -23,6 +24,9 @@ class ZLinkSpotActivationLifecycle {
23
24
  cleanupStates = new WeakMap();
24
25
  constructor(options) {
25
26
  this.options = options;
27
+ if (options.detachedTaskRunner === undefined) {
28
+ throw new configuration_1.ZLinkConfigurationException('Spot activation requires a detached task runner.');
29
+ }
26
30
  this.actorAdmission = new spot_actor_admission_coordinator_1.ZLinkSpotActorAdmissionCoordinator(options);
27
31
  }
28
32
  async materializeRelocation(meshName, objectKind, stableType, implementation, spotId, objectGeneration, authorityOwnerGeneration, signal) {
@@ -62,7 +66,7 @@ class ZLinkSpotActivationLifecycle {
62
66
  const common = {
63
67
  meshName,
64
68
  spotId,
65
- objectGeneration: toContextGeneration(objectGeneration),
69
+ objectGeneration: objectGeneration,
66
70
  outbound,
67
71
  timers,
68
72
  serial,
@@ -72,7 +76,7 @@ class ZLinkSpotActivationLifecycle {
72
76
  providerResolver: this.options.providerResolver,
73
77
  runtimeEventPublisher: this.options.runtimeEventPublisher,
74
78
  workerRuntime: this.options.workerRuntime,
75
- close: this.contextClose(meshName, spotId, () => activation)
79
+ close: this.contextClose(objectGeneration, () => activation)
76
80
  };
77
81
  const context = objectKind === 'user_spot'
78
82
  ? (0, spot_context_1.createSpotContext)({
@@ -110,6 +114,7 @@ class ZLinkSpotActivationLifecycle {
110
114
  domain: objectKind === 'user_spot'
111
115
  ? {
112
116
  kind: 'user',
117
+ objectGeneration,
113
118
  executionMode,
114
119
  relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(meshName, implementation) ?? contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged
115
120
  }
@@ -129,16 +134,24 @@ class ZLinkSpotActivationLifecycle {
129
134
  return activation;
130
135
  }
131
136
  catch (error) {
132
- await timers.dispose().catch(() => undefined);
133
- if (instance !== undefined) {
134
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(instance).catch(() => undefined);
137
+ const cleanup = await Promise.allSettled([
138
+ timers.dispose(),
139
+ ...(instance === undefined
140
+ ? []
141
+ : [(0, handler_instance_scope_1.disposeLifecycleHandlers)(instance, this.options.detachedTaskRunner)]),
142
+ ...(nativeSpot === undefined ? [] : [Promise.resolve().then(() => nativeSpot.dispose())])
143
+ ]);
144
+ const cleanupErrors = cleanup
145
+ .filter((result) => result.status === 'rejected')
146
+ .map((result) => result.reason);
147
+ if (cleanupErrors.length > 0) {
148
+ throw new AggregateError([error, ...cleanupErrors], `Spot '${spotId}' relocation materialization cleanup failed.`);
135
149
  }
136
- await nativeSpot?.dispose().catch(() => undefined);
137
150
  throw error;
138
151
  }
139
152
  }
140
- async materializeInstance(meshName, instanceType, implementation, spotId, objectGeneration, signal) {
141
- const serial = new spot_serial_turn_executor_1.ZLinkSpotSerialTurnExecutor(true, spotId);
153
+ async materializeInstance(meshName, instanceType, implementation, spotId, objectGeneration, signal, serialOwner) {
154
+ const serial = serialOwner?.serial ?? new spot_serial_turn_executor_1.ZLinkSpotSerialTurnExecutor(true, spotId);
142
155
  const serialExecutor = new spot_serial_executor_1.ZLinkSpotSerialExecutor(serial, contracts_1.ZLinkUserSpotExecutionMode.SpotWide, spotId);
143
156
  const actorHandlers = new actors_1.ZLinkSpotActorHandlerRegistryRuntime();
144
157
  const handlers = new spot_handler_registry_1.DefaultZLinkSpotHandlerRegistry(actorHandlers);
@@ -160,7 +173,7 @@ class ZLinkSpotActivationLifecycle {
160
173
  const context = (0, spot_context_1.createInstanceSpotContext)({
161
174
  meshName,
162
175
  spotId,
163
- objectGeneration: toContextGeneration(objectGeneration),
176
+ objectGeneration: objectGeneration,
164
177
  handlers: instanceHandlers,
165
178
  outbound,
166
179
  timers,
@@ -171,7 +184,7 @@ class ZLinkSpotActivationLifecycle {
171
184
  providerResolver: this.options.providerResolver,
172
185
  runtimeEventPublisher: this.options.runtimeEventPublisher,
173
186
  workerRuntime: this.options.workerRuntime,
174
- close: this.contextClose(meshName, spotId, () => activation)
187
+ close: this.contextClose(objectGeneration, () => activation)
175
188
  });
176
189
  instance = await (0, spot_provider_1.createFreshProviderInstance)(implementation, this.options.providerResolver, context);
177
190
  Object.defineProperty(instance, 'context', {
@@ -190,6 +203,7 @@ class ZLinkSpotActivationLifecycle {
190
203
  timers,
191
204
  actorHandlers,
192
205
  handlers,
206
+ executionBarrier: serialOwner?.executionBarrier,
193
207
  externalActorCount: () => this.options.actorCountProvider?.(spotId) ?? 0
194
208
  });
195
209
  try {
@@ -199,14 +213,21 @@ class ZLinkSpotActivationLifecycle {
199
213
  runtimeEventPublisher: this.options.runtimeEventPublisher,
200
214
  signal
201
215
  });
202
- await serial.execute(() => instance.onInitialize?.());
216
+ await (serialOwner === undefined
217
+ ? serial.execute(() => instance.onInitialize?.())
218
+ : serial.postBarrierTurn(() => instance.onInitialize?.()));
203
219
  this.options.registerActivation(activation);
204
220
  return activation;
205
221
  }
206
222
  catch (error) {
207
- await timers.dispose();
208
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(instance);
209
- throw new AggregateError([error], `Instance Spot '${instanceType}' materialization failed for '${String(spotId)}'.`);
223
+ const cleanup = await Promise.allSettled([
224
+ timers.dispose(),
225
+ (0, handler_instance_scope_1.disposeLifecycleHandlers)(instance, this.options.detachedTaskRunner)
226
+ ]);
227
+ const cleanupErrors = cleanup
228
+ .filter((result) => result.status === 'rejected')
229
+ .map((result) => result.reason);
230
+ throw new AggregateError([error, ...cleanupErrors], `Instance Spot '${instanceType}' materialization failed for '${String(spotId)}'.`);
210
231
  }
211
232
  }
212
233
  async discardInstance(activation) {
@@ -230,7 +251,7 @@ class ZLinkSpotActivationLifecycle {
230
251
  errors.push(error);
231
252
  }
232
253
  try {
233
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot);
254
+ await (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot, this.options.detachedTaskRunner);
234
255
  }
235
256
  catch (error) {
236
257
  errors.push(error);
@@ -241,13 +262,6 @@ class ZLinkSpotActivationLifecycle {
241
262
  throw new AggregateError(errors, `Instance Spot '${String(activation.spotId)}' cleanup failed.`);
242
263
  }
243
264
  }
244
- resourcesReleased(activation) {
245
- const state = this.cleanupStates.get(activation);
246
- return (state?.timersDisposed === true &&
247
- state.handlersDisposed === true &&
248
- state.nativeDisposed === true &&
249
- state.locationReleased === true);
250
- }
251
265
  async create(meshName, spotType, spotId, request, signal, authority) {
252
266
  const executionMode = this.options.userSpotExecutionMode?.(meshName, spotType) ??
253
267
  contracts_1.ZLinkUserSpotExecutionMode.SpotWide;
@@ -296,7 +310,7 @@ class ZLinkSpotActivationLifecycle {
296
310
  const context = (0, spot_context_1.createSpotContext)({
297
311
  meshName,
298
312
  spotId,
299
- objectGeneration: toContextGeneration(spotGeneration),
313
+ objectGeneration: spotGeneration,
300
314
  handlers,
301
315
  outbound,
302
316
  timers,
@@ -315,7 +329,7 @@ class ZLinkSpotActivationLifecycle {
315
329
  },
316
330
  ensureOperationAllowed: () => activation?.ensureContextOperationAllowed(),
317
331
  leaveActor: (actor, contextSignal) => this.options.leaveActor(spotId, actor, contextSignal, meshName),
318
- close: this.contextClose(meshName, spotId, () => activation)
332
+ close: this.contextClose(spotGeneration, () => activation)
319
333
  });
320
334
  try {
321
335
  spot = await (0, spot_provider_1.createFreshProviderInstance)(spotType, this.options.providerResolver, context);
@@ -331,6 +345,7 @@ class ZLinkSpotActivationLifecycle {
331
345
  spotId,
332
346
  domain: {
333
347
  kind: 'user',
348
+ objectGeneration: spotGeneration,
334
349
  executionMode,
335
350
  relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(meshName, spotType) ??
336
351
  contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged
@@ -360,9 +375,11 @@ class ZLinkSpotActivationLifecycle {
360
375
  else {
361
376
  const partialCleanup = await Promise.allSettled([
362
377
  timers.dispose(),
363
- ...(spot === undefined ? [] : [(0, handler_instance_scope_1.disposeLifecycleHandlers)(spot)]),
364
- nativeSpot.dispose(),
365
- this.options.locationClaim.release(locationClaim.meshName, spotId)
378
+ ...(spot === undefined
379
+ ? []
380
+ : [(0, handler_instance_scope_1.disposeLifecycleHandlers)(spot, this.options.detachedTaskRunner)]),
381
+ Promise.resolve().then(() => nativeSpot.dispose()),
382
+ Promise.resolve().then(() => this.options.locationClaim.release(locationClaim.meshName, spotId))
366
383
  ]);
367
384
  const partialErrors = partialCleanup
368
385
  .filter((result) => result.status === 'rejected')
@@ -389,7 +406,7 @@ class ZLinkSpotActivationLifecycle {
389
406
  const context = (0, spot_context_1.createSpotContext)({
390
407
  meshName,
391
408
  spotId,
392
- objectGeneration: toContextGeneration(objectGeneration),
409
+ objectGeneration: objectGeneration,
393
410
  handlers,
394
411
  outbound,
395
412
  timers,
@@ -408,7 +425,7 @@ class ZLinkSpotActivationLifecycle {
408
425
  },
409
426
  ensureOperationAllowed: () => activation?.ensureContextOperationAllowed(),
410
427
  leaveActor: (actor, contextSignal) => this.options.leaveActor(spotId, actor, contextSignal, meshName),
411
- close: this.contextClose(meshName, spotId, () => activation)
428
+ close: this.contextClose(objectGeneration, () => activation)
412
429
  });
413
430
  spot = await (0, spot_provider_1.createFreshProviderInstance)(spotType, this.options.providerResolver, context);
414
431
  Object.defineProperty(spot, 'context', {
@@ -421,6 +438,7 @@ class ZLinkSpotActivationLifecycle {
421
438
  spotId,
422
439
  domain: {
423
440
  kind: 'user',
441
+ objectGeneration,
424
442
  executionMode,
425
443
  relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(meshName, spotType) ??
426
444
  contracts_1.ZLinkSpotRelocationCoordinationMode.FrameworkManaged
@@ -437,51 +455,27 @@ class ZLinkSpotActivationLifecycle {
437
455
  });
438
456
  return await this.runCreateLifecycle(activation, spotType, request, locationClaim, undefined, signal);
439
457
  }
440
- contextClose(meshName, spotId, activationProvider) {
441
- return async (signal) => {
458
+ contextClose(objectGeneration, activationProvider) {
459
+ return (signal) => {
442
460
  const activation = activationProvider();
443
- // Native callbacks can cross a promise boundary that does not retain
444
- // the serial turn context. Queue the close before calling the manager
445
- // so the callback never waits for work behind its own serial turn.
446
- if (activation?.serial.isExecuting === true && !activation.serial.isCurrentTurn) {
447
- activation.requestClose();
448
- const retry = activation.serial.post(() => this.options.closeSpot(meshName, spotId, signal));
449
- this.options.detachedTaskRunner?.runDetached(`spot close ${String(spotId)}`, async () => {
450
- await retry;
451
- });
452
- if (this.options.detachedTaskRunner === undefined) {
453
- void retry.catch(() => undefined);
454
- }
455
- return true;
461
+ if (activation === undefined) {
462
+ throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidOperation, 'Spot context Close requires its active generation.');
456
463
  }
457
- return await this.options.closeSpot(meshName, spotId, signal);
464
+ return this.options.requestContextClose(activation, objectGeneration, signal);
458
465
  };
459
466
  }
460
- async close(activation, signal, reason = contracts_1.ZLinkSpotCloseReason.ExplicitClose) {
461
- const seal = activation.sealExecution();
462
- await this.closeAfterSeal(activation, seal, signal, reason);
463
- }
464
- async closeAfterSeal(activation, seal, signal, reason = contracts_1.ZLinkSpotCloseReason.ExplicitClose, deadline) {
465
- try {
466
- await activation.waitForExecutionQuiescence(seal, signal);
467
- }
468
- catch (error) {
469
- activation.abortExecutionSeal(seal);
470
- throw error;
471
- }
472
- // The eager occupancy check that authorized this seal (startClose ->
473
- // canClose()) ran before quiescence, so it can miss an actor join that
474
- // was already queued on the serial executor at that moment. Recheck now
475
- // that every turn admitted before the seal has finished, and release the
476
- // seal instead of closing an occupied Spot.
477
- if (!activation.canClose(reason)) {
478
- activation.abortExecutionSeal(seal);
479
- throw new spot_activation_state_1.ZLinkSpotCloseOccupiedError(activation.spotId);
480
- }
467
+ async sealForClose(activation, seal, signal) {
468
+ await activation.waitForExecutionQuiescence(seal, signal);
481
469
  if (!activation.commitExecutionSeal(seal)) {
482
470
  throw new Error(`Spot '${String(activation.spotId)}' close seal is stale.`);
483
471
  }
484
- await this.cleanupActivation(activation, activation.meshName, true, signal, reason, deadline);
472
+ }
473
+ /** Returns the OnClosing failure, which cleanup records and does not rethrow. */
474
+ async cleanupClosedActivation(activation, reason = contracts_1.ZLinkSpotCloseReason.ExplicitClose, deadline) {
475
+ return await this.cleanupActivation(activation, activation.meshName, true, undefined, reason, deadline, true);
476
+ }
477
+ async cleanupFailedIncarnation(activation) {
478
+ await this.cleanupActivation(activation, activation.meshName, false, undefined, contracts_1.ZLinkSpotCloseReason.ExplicitClose, undefined, true);
485
479
  }
486
480
  async dispatchActorPacket(activation, actorId, parts, returnResponse = false, remoteBoundSessionTarget, fallbackActorRef, requestTerminal, messageFollowOrigin) {
487
481
  return await this.actorAdmission.dispatchActorPacket(activation, actorId, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef, requestTerminal, messageFollowOrigin);
@@ -536,25 +530,28 @@ class ZLinkSpotActivationLifecycle {
536
530
  throw error;
537
531
  }
538
532
  }
539
- async cleanupActivation(activation, locationMeshName, notifyClosing, signal, reason = contracts_1.ZLinkSpotCloseReason.ExplicitClose, deadline) {
533
+ async cleanupActivation(activation, locationMeshName, notifyClosing, signal, reason = contracts_1.ZLinkSpotCloseReason.ExplicitClose, deadline, owningLifecycle = false) {
540
534
  (0, abort_1.throwIfAborted)(signal);
541
535
  const state = this.cleanupStates.get(activation) ?? {
542
536
  closingAttempted: false,
543
537
  timersDisposed: false,
538
+ serialDisposed: false,
544
539
  handlersDisposed: false,
540
+ actorDispatchDisposed: false,
545
541
  nativeDisposed: false,
546
542
  locationReleased: false
547
543
  };
548
544
  this.cleanupStates.set(activation, state);
549
545
  if (state.inFlight !== undefined)
550
546
  return await state.inFlight;
551
- state.inFlight = this.runCleanup(activation, locationMeshName, notifyClosing, reason, state, deadline).finally(() => {
547
+ state.inFlight = this.runCleanup(activation, locationMeshName, notifyClosing, reason, state, deadline, owningLifecycle).finally(() => {
552
548
  state.inFlight = undefined;
553
549
  });
554
550
  return await state.inFlight;
555
551
  }
556
- async runCleanup(activation, locationMeshName, notifyClosing, reason, state, deadline) {
552
+ async runCleanup(activation, locationMeshName, notifyClosing, reason, state, deadline, owningLifecycle = false) {
557
553
  const errors = [];
554
+ let closingFailure;
558
555
  const cleanup = async (operation, completed) => {
559
556
  try {
560
557
  await operation();
@@ -566,26 +563,56 @@ class ZLinkSpotActivationLifecycle {
566
563
  };
567
564
  if (notifyClosing && !state.closingAttempted) {
568
565
  state.closingAttempted = true;
569
- await cleanup(() => (0, spot_closing_1.invokeSpotClosing)(activation.spot.onClosing?.bind(activation.spot), reason, deadline), () => undefined);
566
+ try {
567
+ // OnClosing is user code: it runs as a Framework turn through the
568
+ // execution gate while the Close lifecycle item keeps its FIFO slot.
569
+ await activation.serial.postBarrierTurn(() => (0, spot_closing_1.invokeSpotClosing)(activation.spot.onClosing?.bind(activation.spot), reason, deadline));
570
+ }
571
+ catch (error) {
572
+ // An OnClosing failure is diagnostic and cleanup continues. It is
573
+ // returned so host shutdown can classify its teardown outcome.
574
+ this.options.closeErrorSink?.reportRuntimeTaskException(`spot ${String(activation.spotId)} onClosing`, error);
575
+ closingFailure = error;
576
+ }
570
577
  }
571
578
  if (!state.timersDisposed) {
572
579
  await cleanup(() => activation.timers.dispose(), () => {
573
580
  state.timersDisposed = true;
574
581
  });
575
582
  }
576
- await cleanup(() => activation.serialExecutor.close(), () => undefined);
583
+ if (!state.serialDisposed && state.timersDisposed) {
584
+ await cleanup(() => owningLifecycle
585
+ ? activation.serialExecutor.closeChildren()
586
+ : activation.serialExecutor.close(), () => {
587
+ state.serialDisposed = true;
588
+ });
589
+ }
577
590
  if (!state.handlersDisposed) {
578
- await cleanup(() => (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot), () => {
591
+ await cleanup(() => (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot, this.options.detachedTaskRunner), () => {
579
592
  state.handlersDisposed = true;
580
593
  });
581
594
  }
595
+ if (!state.actorDispatchDisposed) {
596
+ await cleanup(() => activation.actorDispatch?.dispose(), () => {
597
+ state.actorDispatchDisposed = true;
598
+ });
599
+ }
582
600
  if (!state.nativeDisposed) {
583
- await cleanup(() => activation.actorDispatch?.dispose(), () => undefined);
584
601
  await cleanup(() => activation.nativeSpot?.dispose(), () => {
585
602
  state.nativeDisposed = true;
586
603
  });
587
604
  }
588
- if (!state.locationReleased) {
605
+ if (!state.locationReleased &&
606
+ // Spot messaging §7 step 3: an Instance Spot's ExplicitClose releases its authority
607
+ // through the Close operation's Closing fence; a User Spot still releases its location.
608
+ !(owningLifecycle &&
609
+ reason === contracts_1.ZLinkSpotCloseReason.ExplicitClose &&
610
+ activation.domain.kind === 'instance') &&
611
+ state.timersDisposed &&
612
+ state.serialDisposed &&
613
+ state.handlersDisposed &&
614
+ state.actorDispatchDisposed &&
615
+ state.nativeDisposed) {
589
616
  await cleanup(() => this.options.releaseLocation(activation, locationMeshName, activation.spotId), () => {
590
617
  state.locationReleased = true;
591
618
  });
@@ -595,6 +622,7 @@ class ZLinkSpotActivationLifecycle {
595
622
  if (errors.length > 1) {
596
623
  throw new AggregateError(errors, `Spot '${activation.spotId}' cleanup failed.`);
597
624
  }
625
+ return closingFailure;
598
626
  }
599
627
  decodeCreateReply(reply) {
600
628
  if (reply === undefined) {
@@ -610,9 +638,3 @@ class ZLinkSpotActivationLifecycle {
610
638
  }
611
639
  }
612
640
  exports.ZLinkSpotActivationLifecycle = ZLinkSpotActivationLifecycle;
613
- function toContextGeneration(generation) {
614
- if (generation < 0n || generation > BigInt(Number.MAX_SAFE_INTEGER)) {
615
- throw new configuration_1.ZLinkConfigurationException(`Spot object generation '${generation}' cannot be represented by the Node.js public context.`);
616
- }
617
- return Number(generation);
618
- }
@@ -6,14 +6,13 @@ import { type ZLinkRemoteBoundSessionTarget } from '../actors';
6
6
  import type { ZLinkSpotActivationLifecycleOptions } from './spot-activation';
7
7
  import { ZLinkSpotActivation } from './spot-activation-state';
8
8
  import { ZLinkSpotActorJoinDispatch } from './spot-actor-join-dispatch';
9
- type AdmissionOptions = Pick<ZLinkSpotActivationLifecycleOptions, 'actorHandoffRuntime' | 'admission' | 'actorResolver' | 'actorTransferRuntime' | 'boundSessionRuntime' | 'detachedTaskRunner' | 'dispatchErrors' | 'locationClaim' | 'messageSerializers' | 'nativeSpotNodeProvider' | 'createReceived' | 'createTopicMessage' | 'providerResolver' | 'runtimeEventPublisher' | 'routeToActorJoinPrewarm'>;
9
+ type AdmissionOptions = Pick<ZLinkSpotActivationLifecycleOptions, 'actorHandoffRuntime' | 'admission' | 'actorResolver' | 'actorTransferRuntime' | 'boundSessionRuntime' | 'detachedTaskRunner' | 'dispatchErrors' | 'locationClaim' | 'messageSerializers' | 'nativeSpotNodeProvider' | 'createTopicMessage' | 'providerResolver' | 'runtimeEventPublisher' | 'routeToActorJoinPrewarm'>;
10
10
  export declare class ZLinkSpotActorAdmissionCoordinator {
11
11
  private readonly options;
12
12
  constructor(options: AdmissionOptions);
13
13
  dispatchActorPacket(activation: ZLinkSpotActivation, actorId: string, parts: readonly Message[], returnResponse?: boolean, remoteBoundSessionTarget?: ZLinkRemoteBoundSessionTarget, fallbackActorRef?: ActorRef, requestTerminal?: (response: unknown) => Promise<void> | void, messageFollowOrigin?: ZLinkMessageFollowOrigin): Promise<unknown>;
14
14
  attachNativeActorJoinDispatch(activation: ZLinkSpotActivation, nativeSpot: ZLinkBackendSpot | undefined): ZLinkSpotActorJoinDispatch | undefined;
15
15
  private dispatchActorPacketInActorTurn;
16
- private commitNativeActorTransaction;
17
16
  private commitTransferredActorTransaction;
18
17
  private replayActorBacklog;
19
18
  }
@@ -21,7 +21,6 @@ class ZLinkSpotActorAdmissionCoordinator {
21
21
  return undefined;
22
22
  const nativeDispatch = new spot_actor_join_dispatch_1.ZLinkSpotActorJoinDispatch({
23
23
  nativeSpot,
24
- createReceived: requireBackendValueFactory(this.options.createReceived, 'Received'),
25
24
  createTopicMessage: requireBackendValueFactory(this.options.createTopicMessage, 'TopicMessage'),
26
25
  serial: activation.serial,
27
26
  actors: {
@@ -36,9 +35,8 @@ class ZLinkSpotActorAdmissionCoordinator {
36
35
  kind: 'enabled',
37
36
  runtime: this.options.actorTransferRuntime
38
37
  },
39
- commitNativeActor: (actor) => this.commitNativeActorTransaction(activation, actor),
40
38
  commitActorDeparture: (actorId) => activation.commitActorDeparture(actorId),
41
- commitTransferredActor: (actor, backlog) => this.commitTransferredActorTransaction(activation, actor, backlog)
39
+ commitTransferredActor: (actor, backlog, sealedSession) => this.commitTransferredActorTransaction(activation, actor, backlog, sealedSession)
42
40
  },
43
41
  packets: {
44
42
  handle: (delivery) => this.dispatchActorPacket(activation, delivery.actorId, delivery.parts, delivery.returnResponse, delivery.remoteBoundSessionTarget, delivery.fallbackActorRef),
@@ -46,10 +44,6 @@ class ZLinkSpotActorAdmissionCoordinator {
46
44
  const node = this.options.nativeSpotNodeProvider?.(activation.meshName);
47
45
  if (node === undefined || (0, routing_id_1.routingIdsEqual)(sourceNodeRid, node.routingId))
48
46
  return;
49
- const target = this.options.boundSessionRuntime?.resolveRemoteBoundSessionTarget(sourceNodeRid, sourceSessionRid);
50
- if (target !== undefined) {
51
- this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(actor.actorId, target);
52
- }
53
47
  node.bindRemoteActorSession(actor, sourceNodeRid, sourceSessionRid);
54
48
  },
55
49
  replyNoBind: (info, parts, result) => this.options
@@ -106,7 +100,6 @@ class ZLinkSpotActorAdmissionCoordinator {
106
100
  : (activation.resolveJoinedActor(targetActorId) ??
107
101
  this.options.actorResolver?.(targetActorId)),
108
102
  actorLeft: (targetActorId) => activation.hasDepartedActor(targetActorId),
109
- onRemoteBoundSessionTarget: (targetActorId, target) => this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(targetActorId, target),
110
103
  onDisconnectActor: (actor) => activation.serial.execute(() => activation.spot.onDisconnectActor?.(actor)),
111
104
  actorResponseSender: this.options.boundSessionRuntime?.sendActorResponse.bind(this.options.boundSessionRuntime),
112
105
  actorErrorSender: this.options.boundSessionRuntime?.sendActorError.bind(this.options.boundSessionRuntime),
@@ -116,37 +109,7 @@ class ZLinkSpotActorAdmissionCoordinator {
116
109
  routeToActorJoinPrewarm: this.options.routeToActorJoinPrewarm
117
110
  }).dispatch(actorId, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef, requestTerminal);
118
111
  }
119
- async commitNativeActorTransaction(activation, actor) {
120
- const transfer = this.options.actorTransferRuntime;
121
- let snapshot;
122
- let rollbackMembership;
123
- let routeSwitchStarted = false;
124
- try {
125
- snapshot = await transfer?.claimNativeActorLocation(actor, activation.spotId, activation.meshName);
126
- transfer?.commitRoutedActor(actor, activation.spotId, activation.spot);
127
- rollbackMembership = activation.commitActorJoin(actor);
128
- activation.beginActorTransfer(actor.context.actorId);
129
- await activation.serial.execute(() => activation.spot.onJoinedActor(actor));
130
- routeSwitchStarted = true;
131
- await transfer?.publishRoutedActorOwnership(actor);
132
- await transfer?.openRoutedActorSession(actor);
133
- activation.cancelActorTransfer(actor.context.actorId);
134
- }
135
- catch (error) {
136
- if (routeSwitchStarted)
137
- throw error;
138
- rollbackMembership?.();
139
- try {
140
- if (snapshot !== undefined)
141
- await transfer?.rollbackNativeActorJoin(actor, snapshot);
142
- }
143
- catch (rollbackError) {
144
- throw new AggregateError([error, rollbackError], 'Native actor admission and rollback both failed.');
145
- }
146
- throw error;
147
- }
148
- }
149
- async commitTransferredActorTransaction(activation, actor, backlog) {
112
+ async commitTransferredActorTransaction(activation, actor, backlog, sealedSession) {
150
113
  const transfer = this.options.actorTransferRuntime;
151
114
  let routeSwitchStarted = false;
152
115
  try {
@@ -157,7 +120,7 @@ class ZLinkSpotActorAdmissionCoordinator {
157
120
  const results = backlog.length === 0 ? [] : await this.replayActorBacklog(activation, actor, backlog);
158
121
  await transfer?.claimRoutedActorLocation(actor, activation.spotId, activation.meshName);
159
122
  routeSwitchStarted = true;
160
- await transfer?.publishRoutedActorOwnership(actor);
123
+ await transfer?.publishRoutedActorOwnership(actor, sealedSession);
161
124
  await transfer?.openRoutedActorSession(actor);
162
125
  activation.cancelActorTransfer(actor.context.actorId);
163
126
  return results;
@@ -1,17 +1,17 @@
1
1
  import type { RoutingId, ZLinkActor, ZLinkMessage, ZLinkMessageSerializer, ZLinkSpotActorJoinResult } from '../../contracts';
2
- import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
3
- import type { ZLinkBackendActorRef, ZLinkBackendActorRecvInfo, ZLinkBackendReceived, ZLinkBackendSpot, ZLinkBackendTopicMessage } from '../backend/contracts';
4
2
  import type { Message } from '../../contracts/Common/Message';
5
- import type { RequestResult } from '../backend/runtime-values';
6
- type RuntimeMessage = Message;
3
+ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
7
4
  import type { ZLinkRemoteBoundSessionTarget } from '../actors';
8
- import type { ZLinkDispatchErrorReporter } from '../channels';
9
- import type { ZLinkSpotHandlerRegistration } from './spot-handler-registry';
10
- import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
11
- import type { ZLinkApplicationWorkClaim } from '../admission';
12
5
  import type { ZLinkActorHandoffPacket, ZLinkActorHandoffResult } from '../actors/actor-handoff';
6
+ import type { ZLinkApplicationWorkClaim } from '../admission';
7
+ import { type ZLinkBackendActorRecvInfo, type ZLinkBackendActorRef, type ZLinkBackendSpot, type ZLinkBackendTopicMessage } from '../backend/contracts';
8
+ import type { RequestResult } from '../backend/runtime-values';
9
+ import type { ZLinkDispatchErrorReporter } from '../channels';
13
10
  import type { ZLinkActorPacketDelivery } from './spot-actor-packet-dispatch';
11
+ import type { ZLinkSpotHandlerRegistration } from './spot-handler-registry';
14
12
  import type { ZLinkSpotActorTransferRuntime, ZLinkSpotBoundSessionRuntime } from './spot-runtime-ports';
13
+ import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
14
+ type RuntimeMessage = Message;
15
15
  /**
16
16
  * Minimal lifecycle callback surface required by the native join and actor
17
17
  * lifecycle drains. User and Entry Spots differ in ownership policy, but both
@@ -33,13 +33,12 @@ interface ZLinkSpotActorAdmissionRuntime {
33
33
  readonly kind: 'enabled';
34
34
  readonly runtime: ZLinkSpotActorTransferRuntime;
35
35
  };
36
- readonly commitNativeActor?: (actor: ZLinkActor) => Promise<void>;
37
36
  readonly commitActorDeparture?: (actorId: string) => void;
38
- readonly commitTransferredActor?: (actor: ZLinkActor, backlog: readonly ZLinkActorHandoffPacket[]) => Promise<readonly ZLinkActorHandoffResult[]>;
37
+ readonly commitTransferredActor?: (actor: ZLinkActor, backlog: readonly ZLinkActorHandoffPacket[], sealedSession: ZLinkRemoteBoundSessionTarget | undefined) => Promise<readonly ZLinkActorHandoffResult[]>;
39
38
  }
40
39
  interface ZLinkSpotActorPacketRuntime {
41
40
  readonly handle: (delivery: ZLinkActorPacketDelivery) => Promise<unknown>;
42
- readonly bindRemoteSession?: (actor: ZLinkBackendActorRef, sourceNodeRid: RoutingId, sourceSessionRid: RoutingId, declaredTarget?: ZLinkRemoteBoundSessionTarget) => void;
41
+ readonly bindRemoteSession?: (actor: ZLinkBackendActorRef, sourceNodeRid: RoutingId, sourceSessionRid: RoutingId) => void;
43
42
  readonly replyNoBind?: (info: ZLinkBackendActorRecvInfo, parts: readonly Message[], result: RequestResult) => void;
44
43
  }
45
44
  export interface ZLinkDetachedTaskRunner {
@@ -47,7 +46,6 @@ export interface ZLinkDetachedTaskRunner {
47
46
  }
48
47
  interface ZLinkSpotActorJoinDispatchOptions {
49
48
  readonly nativeSpot: ZLinkBackendSpot;
50
- readonly createReceived: () => ZLinkBackendReceived;
51
49
  readonly createTopicMessage: () => ZLinkBackendTopicMessage;
52
50
  readonly serial: ZLinkSpotSerialTurnExecutor;
53
51
  readonly actors: ZLinkSpotActorAdmissionRuntime;
@@ -61,13 +59,10 @@ interface ZLinkSpotActorJoinDispatchOptions {
61
59
  }
62
60
  export declare class ZLinkSpotActorJoinDispatch {
63
61
  private readonly options;
64
- private draining;
65
- private redrainRequested;
66
62
  private readonly nativeSpotId;
67
63
  private readonly subscriptions;
68
64
  private readonly actorLifecycleDrain;
69
65
  private readonly actorPacketDrain;
70
- private readonly nativeActorJoinAdmission;
71
66
  private readonly routedFrames;
72
67
  private readonly nativeSpot;
73
68
  constructor(options: ZLinkSpotActorJoinDispatchOptions);
@@ -76,8 +71,5 @@ export declare class ZLinkSpotActorJoinDispatch {
76
71
  dispose(): void;
77
72
  attach(): void;
78
73
  private runDetached;
79
- private drain;
80
- private redrainWasRequested;
81
- private drainAvailableActorJoins;
82
74
  }
83
75
  export {};