@zlink-systems/framework 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,7 +1,6 @@
1
- import type { RoutingId, Type, ZLinkSpot, ZLinkSpotInfo } from '../../contracts';
2
- import type { ZLinkLocalSpotCreateResult } from './spot-manager-internal-contracts';
3
- import { ZLinkSpotCloseReason } from '../../contracts';
1
+ import { type RoutingId, type Type, type ZLinkSpot, type ZLinkSpotInfo, ZLinkSpotCloseReason } from '../../contracts';
4
2
  import type { ZLinkSpotActivation } from './spot-activation-state';
3
+ import type { ZLinkLocalSpotCreateResult } from './spot-manager-internal-contracts';
5
4
  export { ZLinkSpotActivation } from './spot-activation-state';
6
5
  export interface ZLinkSpotActivationOperation {
7
6
  readonly owner: boolean;
@@ -14,7 +13,6 @@ export interface ZLinkSpotCloseOperation {
14
13
  readonly started: boolean;
15
14
  }
16
15
  export declare class ZLinkSpotActivationRegistry {
17
- private readonly isCommittedClose;
18
16
  private nextId;
19
17
  private readonly activations;
20
18
  private readonly staged;
@@ -24,7 +22,7 @@ export declare class ZLinkSpotActivationRegistry {
24
22
  private readonly emptyWaiters;
25
23
  private readonly lifecycleMetrics;
26
24
  private activeScan;
27
- constructor(metrics?: import('../diagnostics').ZLinkRuntimeMetrics, isCommittedClose?: (meshName: string, spotId: RoutingId) => boolean);
25
+ constructor(metrics?: import('../diagnostics').ZLinkRuntimeMetrics);
28
26
  allocateSpotId(meshName: string): RoutingId;
29
27
  resolve(meshName: string, spotId: RoutingId): ZLinkSpotActivation | undefined;
30
28
  resolveUnique(spotId: RoutingId): ZLinkSpotActivation | undefined;
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotActivationRegistry = exports.ZLinkSpotActivation = void 0;
4
- const framework_errors_internal_1 = require("../framework-errors-internal");
5
4
  const contracts_1 = require("../../contracts");
6
- const configuration_1 = require("../configuration");
7
5
  const abort_1 = require("../abort");
6
+ const framework_errors_internal_1 = require("../framework-errors-internal");
8
7
  const spot_lifecycle_metrics_1 = require("./spot-lifecycle-metrics");
8
+ const DEFAULT_ACTIVE_ACTIVATION_BATCH_SIZE = 64;
9
9
  var spot_activation_state_1 = require("./spot-activation-state");
10
10
  Object.defineProperty(exports, "ZLinkSpotActivation", { enumerable: true, get: function () { return spot_activation_state_1.ZLinkSpotActivation; } });
11
11
  class ZLinkSpotActivationRegistry {
12
- isCommittedClose;
13
12
  nextId = 1;
14
13
  activations = new Map();
15
14
  staged = new Set();
@@ -19,8 +18,7 @@ class ZLinkSpotActivationRegistry {
19
18
  emptyWaiters = new Set();
20
19
  lifecycleMetrics;
21
20
  activeScan;
22
- constructor(metrics, isCommittedClose = () => false) {
23
- this.isCommittedClose = isCommittedClose;
21
+ constructor(metrics) {
24
22
  this.lifecycleMetrics = new spot_lifecycle_metrics_1.ZLinkSpotLifecycleMetrics(metrics);
25
23
  }
26
24
  allocateSpotId(meshName) {
@@ -33,28 +31,16 @@ class ZLinkSpotActivationRegistry {
33
31
  }
34
32
  resolve(meshName, spotId) {
35
33
  const key = spotActivationKey(meshName, spotId);
36
- return this.isCommittedClose(meshName, spotId) ||
37
- this.closing.has(key) ||
38
- this.failedClose.has(key) ||
39
- this.staged.has(key)
40
- ? undefined
41
- : this.activations.get(key);
34
+ return this.staged.has(key) ? undefined : this.activations.get(key);
42
35
  }
43
36
  resolveUnique(spotId) {
44
37
  const matches = [...this.activations.values()].filter((activation) => String(activation.spotId) === String(spotId) &&
45
- !this.isCommittedClose(activation.meshName, activation.spotId) &&
46
- !this.staged.has(spotActivationKey(activation.meshName, activation.spotId)) &&
47
- !this.closing.has(spotActivationKey(activation.meshName, activation.spotId)) &&
48
- !this.failedClose.has(spotActivationKey(activation.meshName, activation.spotId)));
38
+ !this.staged.has(spotActivationKey(activation.meshName, activation.spotId)));
49
39
  return matches.length === 1 ? matches[0] : undefined;
50
40
  }
51
41
  has(meshName, spotId) {
52
42
  const key = spotActivationKey(meshName, spotId);
53
- return (!this.isCommittedClose(meshName, spotId) &&
54
- !this.staged.has(key) &&
55
- !this.closing.has(key) &&
56
- !this.failedClose.has(key) &&
57
- this.activations.has(key));
43
+ return !this.staged.has(key) && this.activations.has(key);
58
44
  }
59
45
  list(meshName) {
60
46
  return [...this.activations.values()]
@@ -62,10 +48,7 @@ class ZLinkSpotActivationRegistry {
62
48
  if (activation.meshName !== meshName)
63
49
  return false;
64
50
  const key = spotActivationKey(activation.meshName, activation.spotId);
65
- return (!this.isCommittedClose(meshName, activation.spotId) &&
66
- !this.staged.has(key) &&
67
- !this.closing.has(key) &&
68
- !this.failedClose.has(key));
51
+ return !this.staged.has(key);
69
52
  })
70
53
  .map((activation) => String(activation.spotId))
71
54
  .sort((left, right) => left.localeCompare(right))
@@ -88,7 +71,7 @@ class ZLinkSpotActivationRegistry {
88
71
  hasActiveActivations() {
89
72
  return this.activations.size > 0;
90
73
  }
91
- nextActiveActivationBatch(limit = 64) {
74
+ nextActiveActivationBatch(limit = DEFAULT_ACTIVE_ACTIVATION_BATCH_SIZE) {
92
75
  if (!Number.isInteger(limit) || limit <= 0)
93
76
  throw new RangeError('Activation scan limit must be positive.');
94
77
  if (this.activations.size === 0) {
@@ -205,35 +188,16 @@ class ZLinkSpotActivationRegistry {
205
188
  }
206
189
  getOrBegin(meshName, spotType, spotId, create) {
207
190
  const key = spotActivationKey(meshName, spotId);
208
- if (this.isCommittedClose(meshName, spotId)) {
209
- return {
210
- owner: false,
211
- ready: Promise.reject((0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestRejected, `Spot '${String(spotId)}' is Closing.`))
212
- };
213
- }
214
- const closing = this.closing.get(key);
215
- if (closing !== undefined) {
216
- return {
217
- owner: false,
218
- ready: closing.ready
219
- .catch(() => undefined)
220
- .then(() => this.getOrBegin(meshName, spotType, spotId, create).ready)
221
- };
222
- }
223
- if (this.failedClose.has(key)) {
224
- return {
225
- owner: false,
226
- ready: Promise.reject(new configuration_1.ZLinkConfigurationException(`Spot '${spotId}' cleanup has not completed.`))
227
- };
228
- }
229
191
  const existing = this.activations.get(key);
230
192
  if (existing !== undefined) {
231
- if (existing.spotType !== spotType) {
232
- throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotTypeMismatch, `Spot '${spotId}' already exists with a different spot type.`);
233
- }
234
193
  return {
235
194
  owner: false,
236
- ready: Promise.resolve({ spotId, state: contracts_1.ZLinkSpotCreateState.Existing })
195
+ ready: existing.serial.execute(() => {
196
+ if (existing.spotType !== spotType) {
197
+ throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotTypeMismatch, `Spot '${spotId}' already exists with a different spot type.`);
198
+ }
199
+ return { spotId, state: contracts_1.ZLinkSpotCreateState.Existing };
200
+ })
237
201
  };
238
202
  }
239
203
  const pending = this.pending.get(key);
@@ -72,7 +72,7 @@ export declare class ZLinkSpotActivation {
72
72
  completeConsumedRelocationBoundary(outcome: ZLinkSpotRelocationReadyOutcome): Promise<void>;
73
73
  notifyRelocatedBoundary(): Promise<void>;
74
74
  executeActor<T>(actorId: string, operation: (serial: ZLinkSpotSerialTurnExecutor) => Promise<T> | T): Promise<T>;
75
- sealExecution(drainsYieldedTurns?: boolean): ZLinkExecutionBarrierSeal;
75
+ sealExecution(kind?: ZLinkExecutionBarrierSeal['kind']): ZLinkExecutionBarrierSeal;
76
76
  waitForExecutionQuiescence(seal: ZLinkExecutionBarrierSeal, signal?: AbortSignal): Promise<void>;
77
77
  abortExecutionSeal(seal: ZLinkExecutionBarrierSeal): boolean;
78
78
  commitExecutionSeal(seal: ZLinkExecutionBarrierSeal): boolean;
@@ -158,8 +158,8 @@ class ZLinkSpotActivation {
158
158
  admitActorDurablePrefix(actorId, records) {
159
159
  return this.serialExecutor.admitActorDurablePrefix(actorId, records);
160
160
  }
161
- sealExecution(drainsYieldedTurns = false) {
162
- return this.executionBarrier.seal(drainsYieldedTurns);
161
+ sealExecution(kind = 'relocation') {
162
+ return this.executionBarrier.seal(kind);
163
163
  }
164
164
  waitForExecutionQuiescence(seal, signal) {
165
165
  return this.executionBarrier.waitForQuiescence(seal, signal);
@@ -36,7 +36,6 @@ export interface ZLinkSpotActivationLifecycleOptions {
36
36
  readonly routedTransport?: ZLinkSpotRoutedTransport;
37
37
  readonly addressTransport?: ZLinkSpotAddressTransport;
38
38
  readonly spotRouterChannelIdForMesh?: (meshName: string) => string;
39
- readonly channelMeshNameForChannel?: (channelName: string) => string | undefined;
40
39
  readonly providerResolver?: ZLinkProviderResolver;
41
40
  readonly dispatchErrors?: ZLinkDispatchErrorReporter;
42
41
  readonly closeErrorSink?: import('../diagnostics/dispatch-error-port').ZLinkDispatchErrorSink;
@@ -51,13 +50,12 @@ export interface ZLinkSpotActivationLifecycleOptions {
51
50
  readonly actorTransferRuntime?: ZLinkSpotActorTransferRuntime;
52
51
  readonly boundSessionRuntime?: ZLinkSpotBoundSessionRuntime;
53
52
  readonly actorHandoffRuntime?: ZLinkSpotActorHandoffRuntime;
54
- readonly detachedTaskRunner?: ZLinkDetachedTaskRunner;
53
+ readonly detachedTaskRunner: ZLinkDetachedTaskRunner;
55
54
  readonly admission?: ZLinkRuntimeAdmissionGate;
56
55
  readonly statefulExecutionAllowed?: () => boolean;
57
56
  readonly leaveActor: (spotId: RoutingId, actor: ZLinkActor, signal?: AbortSignal, meshName?: string) => Promise<void>;
58
57
  /** Starts a context Close request after its calling turn has ended. */
59
58
  readonly requestContextClose: (activation: ZLinkSpotActivation, objectGeneration: bigint, signal?: AbortSignal) => Promise<boolean>;
60
- readonly isSpotClosing: (activation: ZLinkSpotActivation) => boolean;
61
59
  readonly registerActivation: (activation: ZLinkSpotActivation) => void;
62
60
  readonly routeToActorJoinPrewarm?: ZLinkRouteToActorJoinPrewarm;
63
61
  readonly releaseLocation: (activation: ZLinkSpotActivation, meshName: string, spotId: RoutingId) => Promise<void>;
@@ -75,7 +73,7 @@ export declare class ZLinkSpotActivationLifecycle {
75
73
  private readonly cleanupStates;
76
74
  constructor(options: ZLinkSpotActivationLifecycleOptions);
77
75
  materializeRelocation<TSpot extends ZLinkSpot | ZLinkInstanceSpot>(meshName: string, objectKind: 'user_spot' | 'instance_spot', stableType: string, implementation: Type<TSpot>, spotId: RoutingId, objectGeneration: bigint, authorityOwnerGeneration: bigint, signal?: AbortSignal): Promise<ZLinkSpotActivation>;
78
- materializeInstance<TSpot extends ZLinkInstanceSpot>(meshName: string, instanceType: string, implementation: Type<TSpot>, spotId: RoutingId, objectGeneration: bigint, signal?: AbortSignal): Promise<ZLinkSpotActivation>;
76
+ materializeInstance<TSpot extends ZLinkInstanceSpot>(meshName: string, instanceType: string, implementation: Type<TSpot>, spotId: RoutingId, objectGeneration: bigint, signal?: AbortSignal, serialOwner?: ZLinkSpotActivation): Promise<ZLinkSpotActivation>;
79
77
  discardInstance(activation: ZLinkSpotActivation): Promise<void>;
80
78
  create<TSpot extends ZLinkSpot>(meshName: string, spotType: Type<TSpot>, spotId: RoutingId, request: Message, signal?: AbortSignal, authority?: ZLinkNativeSpotAuthority): Promise<ZLinkLocalSpotCreateResult>;
81
79
  private createWithoutNativeSpot;
@@ -83,6 +81,7 @@ export declare class ZLinkSpotActivationLifecycle {
83
81
  sealForClose(activation: ZLinkSpotActivation, seal: import('../execution').ZLinkExecutionBarrierSeal, signal?: AbortSignal): Promise<void>;
84
82
  /** Returns the OnClosing failure, which cleanup records and does not rethrow. */
85
83
  cleanupClosedActivation(activation: ZLinkSpotActivation, reason?: ZLinkSpotCloseReason, deadline?: Date): Promise<unknown>;
84
+ cleanupFailedIncarnation(activation: ZLinkSpotActivation): Promise<void>;
86
85
  dispatchActorPacket(activation: ZLinkSpotActivation, actorId: string, parts: readonly Message[], returnResponse?: boolean, remoteBoundSessionTarget?: ZLinkRemoteBoundSessionTarget, fallbackActorRef?: ActorRef, requestTerminal?: (response: unknown) => Promise<void> | void, messageFollowOrigin?: ZLinkMessageFollowOrigin): Promise<unknown>;
87
86
  private runCreateLifecycle;
88
87
  private cleanupActivation;
@@ -24,6 +24,9 @@ class ZLinkSpotActivationLifecycle {
24
24
  cleanupStates = new WeakMap();
25
25
  constructor(options) {
26
26
  this.options = options;
27
+ if (options.detachedTaskRunner === undefined) {
28
+ throw new configuration_1.ZLinkConfigurationException('Spot activation requires a detached task runner.');
29
+ }
27
30
  this.actorAdmission = new spot_actor_admission_coordinator_1.ZLinkSpotActorAdmissionCoordinator(options);
28
31
  }
29
32
  async materializeRelocation(meshName, objectKind, stableType, implementation, spotId, objectGeneration, authorityOwnerGeneration, signal) {
@@ -63,7 +66,7 @@ class ZLinkSpotActivationLifecycle {
63
66
  const common = {
64
67
  meshName,
65
68
  spotId,
66
- objectGeneration: toContextGeneration(objectGeneration),
69
+ objectGeneration: objectGeneration,
67
70
  outbound,
68
71
  timers,
69
72
  serial,
@@ -131,16 +134,24 @@ class ZLinkSpotActivationLifecycle {
131
134
  return activation;
132
135
  }
133
136
  catch (error) {
134
- await timers.dispose().catch(() => undefined);
135
- if (instance !== undefined) {
136
- 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.`);
137
149
  }
138
- await nativeSpot?.dispose().catch(() => undefined);
139
150
  throw error;
140
151
  }
141
152
  }
142
- async materializeInstance(meshName, instanceType, implementation, spotId, objectGeneration, signal) {
143
- 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);
144
155
  const serialExecutor = new spot_serial_executor_1.ZLinkSpotSerialExecutor(serial, contracts_1.ZLinkUserSpotExecutionMode.SpotWide, spotId);
145
156
  const actorHandlers = new actors_1.ZLinkSpotActorHandlerRegistryRuntime();
146
157
  const handlers = new spot_handler_registry_1.DefaultZLinkSpotHandlerRegistry(actorHandlers);
@@ -162,7 +173,7 @@ class ZLinkSpotActivationLifecycle {
162
173
  const context = (0, spot_context_1.createInstanceSpotContext)({
163
174
  meshName,
164
175
  spotId,
165
- objectGeneration: toContextGeneration(objectGeneration),
176
+ objectGeneration: objectGeneration,
166
177
  handlers: instanceHandlers,
167
178
  outbound,
168
179
  timers,
@@ -192,6 +203,7 @@ class ZLinkSpotActivationLifecycle {
192
203
  timers,
193
204
  actorHandlers,
194
205
  handlers,
206
+ executionBarrier: serialOwner?.executionBarrier,
195
207
  externalActorCount: () => this.options.actorCountProvider?.(spotId) ?? 0
196
208
  });
197
209
  try {
@@ -201,14 +213,21 @@ class ZLinkSpotActivationLifecycle {
201
213
  runtimeEventPublisher: this.options.runtimeEventPublisher,
202
214
  signal
203
215
  });
204
- await serial.execute(() => instance.onInitialize?.());
216
+ await (serialOwner === undefined
217
+ ? serial.execute(() => instance.onInitialize?.())
218
+ : serial.postBarrierTurn(() => instance.onInitialize?.()));
205
219
  this.options.registerActivation(activation);
206
220
  return activation;
207
221
  }
208
222
  catch (error) {
209
- await timers.dispose();
210
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(instance);
211
- 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)}'.`);
212
231
  }
213
232
  }
214
233
  async discardInstance(activation) {
@@ -232,7 +251,7 @@ class ZLinkSpotActivationLifecycle {
232
251
  errors.push(error);
233
252
  }
234
253
  try {
235
- await (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot);
254
+ await (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot, this.options.detachedTaskRunner);
236
255
  }
237
256
  catch (error) {
238
257
  errors.push(error);
@@ -291,7 +310,7 @@ class ZLinkSpotActivationLifecycle {
291
310
  const context = (0, spot_context_1.createSpotContext)({
292
311
  meshName,
293
312
  spotId,
294
- objectGeneration: toContextGeneration(spotGeneration),
313
+ objectGeneration: spotGeneration,
295
314
  handlers,
296
315
  outbound,
297
316
  timers,
@@ -356,9 +375,11 @@ class ZLinkSpotActivationLifecycle {
356
375
  else {
357
376
  const partialCleanup = await Promise.allSettled([
358
377
  timers.dispose(),
359
- ...(spot === undefined ? [] : [(0, handler_instance_scope_1.disposeLifecycleHandlers)(spot)]),
360
- nativeSpot.dispose(),
361
- 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))
362
383
  ]);
363
384
  const partialErrors = partialCleanup
364
385
  .filter((result) => result.status === 'rejected')
@@ -385,7 +406,7 @@ class ZLinkSpotActivationLifecycle {
385
406
  const context = (0, spot_context_1.createSpotContext)({
386
407
  meshName,
387
408
  spotId,
388
- objectGeneration: toContextGeneration(objectGeneration),
409
+ objectGeneration: objectGeneration,
389
410
  handlers,
390
411
  outbound,
391
412
  timers,
@@ -444,13 +465,7 @@ class ZLinkSpotActivationLifecycle {
444
465
  };
445
466
  }
446
467
  async sealForClose(activation, seal, signal) {
447
- try {
448
- await activation.waitForExecutionQuiescence(seal, signal);
449
- }
450
- catch (error) {
451
- activation.abortExecutionSeal(seal);
452
- throw error;
453
- }
468
+ await activation.waitForExecutionQuiescence(seal, signal);
454
469
  if (!activation.commitExecutionSeal(seal)) {
455
470
  throw new Error(`Spot '${String(activation.spotId)}' close seal is stale.`);
456
471
  }
@@ -459,6 +474,9 @@ class ZLinkSpotActivationLifecycle {
459
474
  async cleanupClosedActivation(activation, reason = contracts_1.ZLinkSpotCloseReason.ExplicitClose, deadline) {
460
475
  return await this.cleanupActivation(activation, activation.meshName, true, undefined, reason, deadline, true);
461
476
  }
477
+ async cleanupFailedIncarnation(activation) {
478
+ await this.cleanupActivation(activation, activation.meshName, false, undefined, contracts_1.ZLinkSpotCloseReason.ExplicitClose, undefined, true);
479
+ }
462
480
  async dispatchActorPacket(activation, actorId, parts, returnResponse = false, remoteBoundSessionTarget, fallbackActorRef, requestTerminal, messageFollowOrigin) {
463
481
  return await this.actorAdmission.dispatchActorPacket(activation, actorId, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef, requestTerminal, messageFollowOrigin);
464
482
  }
@@ -570,7 +588,7 @@ class ZLinkSpotActivationLifecycle {
570
588
  });
571
589
  }
572
590
  if (!state.handlersDisposed) {
573
- await cleanup(() => (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot), () => {
591
+ await cleanup(() => (0, handler_instance_scope_1.disposeLifecycleHandlers)(activation.spot, this.options.detachedTaskRunner), () => {
574
592
  state.handlersDisposed = true;
575
593
  });
576
594
  }
@@ -585,6 +603,11 @@ class ZLinkSpotActivationLifecycle {
585
603
  });
586
604
  }
587
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') &&
588
611
  state.timersDisposed &&
589
612
  state.serialDisposed &&
590
613
  state.handlersDisposed &&
@@ -615,9 +638,3 @@ class ZLinkSpotActivationLifecycle {
615
638
  }
616
639
  }
617
640
  exports.ZLinkSpotActivationLifecycle = ZLinkSpotActivationLifecycle;
618
- function toContextGeneration(generation) {
619
- if (generation < 0n || generation > BigInt(Number.MAX_SAFE_INTEGER)) {
620
- throw new configuration_1.ZLinkConfigurationException(`Spot object generation '${generation}' cannot be represented by the Node.js public context.`);
621
- }
622
- return Number(generation);
623
- }
@@ -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' | 'createTopicMessage' | 'providerResolver' | 'runtimeEventPublisher' | 'routeToActorJoinPrewarm' | 'isSpotClosing'>;
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
  }
@@ -23,7 +23,6 @@ class ZLinkSpotActorAdmissionCoordinator {
23
23
  nativeSpot,
24
24
  createTopicMessage: requireBackendValueFactory(this.options.createTopicMessage, 'TopicMessage'),
25
25
  serial: activation.serial,
26
- isSpotClosing: () => this.options.isSpotClosing(activation),
27
26
  actors: {
28
27
  resolveActor: (actorId) => activation.hasDepartedActor(actorId)
29
28
  ? undefined
@@ -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, 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 {
@@ -49,7 +48,6 @@ interface ZLinkSpotActorJoinDispatchOptions {
49
48
  readonly nativeSpot: ZLinkBackendSpot;
50
49
  readonly createTopicMessage: () => ZLinkBackendTopicMessage;
51
50
  readonly serial: ZLinkSpotSerialTurnExecutor;
52
- readonly isSpotClosing?: () => boolean;
53
51
  readonly actors: ZLinkSpotActorAdmissionRuntime;
54
52
  readonly packets?: ZLinkSpotActorPacketRuntime;
55
53
  readonly boundSessionRuntime?: ZLinkSpotBoundSessionRuntime;
@@ -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 {};