@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,14 +1,22 @@
1
+ import {
2
+ type RoutingId,
3
+ type Type,
4
+ type ZLinkSpot,
5
+ type ZLinkSpotInfo,
6
+ ZLinkSpotCloseReason,
7
+ ZLinkSpotCreateState
8
+ } from '../../contracts';
9
+
10
+ import { createAbortError } from '../abort';
1
11
  import {
2
12
  ZLinkFrameworkInternalErrorKind,
3
13
  createInternalFrameworkException
4
14
  } from '../framework-errors-internal';
5
- import type { RoutingId, Type, ZLinkSpot, ZLinkSpotInfo } from '../../contracts';
6
- import type { ZLinkLocalSpotCreateResult } from './spot-manager-internal-contracts';
7
- import { ZLinkSpotCreateState, ZLinkSpotCloseReason } from '../../contracts';
8
15
  import type { ZLinkSpotActivation } from './spot-activation-state';
9
- import { ZLinkConfigurationException } from '../configuration';
10
- import { createAbortError } from '../abort';
11
16
  import { ZLinkSpotLifecycleMetrics } from './spot-lifecycle-metrics';
17
+ import type { ZLinkLocalSpotCreateResult } from './spot-manager-internal-contracts';
18
+ const DEFAULT_ACTIVE_ACTIVATION_BATCH_SIZE = 64;
19
+
12
20
  export { ZLinkSpotActivation } from './spot-activation-state';
13
21
 
14
22
  interface PendingSpotActivation {
@@ -39,11 +47,7 @@ export class ZLinkSpotActivationRegistry {
39
47
  private readonly lifecycleMetrics: ZLinkSpotLifecycleMetrics;
40
48
  private activeScan: Iterator<ZLinkSpotActivation> | undefined;
41
49
 
42
- constructor(
43
- metrics?: import('../diagnostics').ZLinkRuntimeMetrics,
44
- private readonly isCommittedClose: (meshName: string, spotId: RoutingId) => boolean = () =>
45
- false
46
- ) {
50
+ constructor(metrics?: import('../diagnostics').ZLinkRuntimeMetrics) {
47
51
  this.lifecycleMetrics = new ZLinkSpotLifecycleMetrics(metrics);
48
52
  }
49
53
 
@@ -58,35 +62,21 @@ export class ZLinkSpotActivationRegistry {
58
62
 
59
63
  resolve(meshName: string, spotId: RoutingId): ZLinkSpotActivation | undefined {
60
64
  const key = spotActivationKey(meshName, spotId);
61
- return this.isCommittedClose(meshName, spotId) ||
62
- this.closing.has(key) ||
63
- this.failedClose.has(key) ||
64
- this.staged.has(key)
65
- ? undefined
66
- : this.activations.get(key);
65
+ return this.staged.has(key) ? undefined : this.activations.get(key);
67
66
  }
68
67
 
69
68
  resolveUnique(spotId: RoutingId): ZLinkSpotActivation | undefined {
70
69
  const matches = [...this.activations.values()].filter(
71
70
  (activation) =>
72
71
  String(activation.spotId) === String(spotId) &&
73
- !this.isCommittedClose(activation.meshName, activation.spotId) &&
74
- !this.staged.has(spotActivationKey(activation.meshName, activation.spotId)) &&
75
- !this.closing.has(spotActivationKey(activation.meshName, activation.spotId)) &&
76
- !this.failedClose.has(spotActivationKey(activation.meshName, activation.spotId))
72
+ !this.staged.has(spotActivationKey(activation.meshName, activation.spotId))
77
73
  );
78
74
  return matches.length === 1 ? matches[0] : undefined;
79
75
  }
80
76
 
81
77
  has(meshName: string, spotId: RoutingId): boolean {
82
78
  const key = spotActivationKey(meshName, spotId);
83
- return (
84
- !this.isCommittedClose(meshName, spotId) &&
85
- !this.staged.has(key) &&
86
- !this.closing.has(key) &&
87
- !this.failedClose.has(key) &&
88
- this.activations.has(key)
89
- );
79
+ return !this.staged.has(key) && this.activations.has(key);
90
80
  }
91
81
 
92
82
  list(meshName: string): readonly ZLinkSpotInfo[] {
@@ -94,12 +84,7 @@ export class ZLinkSpotActivationRegistry {
94
84
  .filter((activation) => {
95
85
  if (activation.meshName !== meshName) return false;
96
86
  const key = spotActivationKey(activation.meshName, activation.spotId);
97
- return (
98
- !this.isCommittedClose(meshName, activation.spotId) &&
99
- !this.staged.has(key) &&
100
- !this.closing.has(key) &&
101
- !this.failedClose.has(key)
102
- );
87
+ return !this.staged.has(key);
103
88
  })
104
89
  .map((activation) => String(activation.spotId))
105
90
  .sort((left, right) => left.localeCompare(right))
@@ -126,7 +111,9 @@ export class ZLinkSpotActivationRegistry {
126
111
  return this.activations.size > 0;
127
112
  }
128
113
 
129
- nextActiveActivationBatch(limit = 64): readonly ZLinkSpotActivation[] {
114
+ nextActiveActivationBatch(
115
+ limit: number = DEFAULT_ACTIVE_ACTIVATION_BATCH_SIZE
116
+ ): readonly ZLinkSpotActivation[] {
130
117
  if (!Number.isInteger(limit) || limit <= 0)
131
118
  throw new RangeError('Activation scan limit must be positive.');
132
119
  if (this.activations.size === 0) {
@@ -262,45 +249,19 @@ export class ZLinkSpotActivationRegistry {
262
249
  create: () => Promise<ZLinkLocalSpotCreateResult>
263
250
  ): ZLinkSpotActivationOperation {
264
251
  const key = spotActivationKey(meshName, spotId);
265
- if (this.isCommittedClose(meshName, spotId)) {
266
- return {
267
- owner: false,
268
- ready: Promise.reject(
269
- createInternalFrameworkException(
270
- ZLinkFrameworkInternalErrorKind.RequestRejected,
271
- `Spot '${String(spotId)}' is Closing.`
272
- )
273
- )
274
- };
275
- }
276
- const closing = this.closing.get(key);
277
- if (closing !== undefined) {
278
- return {
279
- owner: false,
280
- ready: closing.ready
281
- .catch(() => undefined)
282
- .then(() => this.getOrBegin(meshName, spotType, spotId, create).ready)
283
- };
284
- }
285
- if (this.failedClose.has(key)) {
286
- return {
287
- owner: false,
288
- ready: Promise.reject(
289
- new ZLinkConfigurationException(`Spot '${spotId}' cleanup has not completed.`)
290
- )
291
- };
292
- }
293
252
  const existing = this.activations.get(key);
294
253
  if (existing !== undefined) {
295
- if (existing.spotType !== spotType) {
296
- throw createInternalFrameworkException(
297
- ZLinkFrameworkInternalErrorKind.SpotTypeMismatch,
298
- `Spot '${spotId}' already exists with a different spot type.`
299
- );
300
- }
301
254
  return {
302
255
  owner: false,
303
- ready: Promise.resolve({ spotId, state: ZLinkSpotCreateState.Existing })
256
+ ready: existing.serial.execute(() => {
257
+ if (existing.spotType !== spotType) {
258
+ throw createInternalFrameworkException(
259
+ ZLinkFrameworkInternalErrorKind.SpotTypeMismatch,
260
+ `Spot '${spotId}' already exists with a different spot type.`
261
+ );
262
+ }
263
+ return { spotId, state: ZLinkSpotCreateState.Existing };
264
+ })
304
265
  };
305
266
  }
306
267
 
@@ -262,8 +262,8 @@ export class ZLinkSpotActivation {
262
262
  return this.serialExecutor.admitActorDurablePrefix(actorId, records);
263
263
  }
264
264
 
265
- sealExecution(drainsYieldedTurns = false): ZLinkExecutionBarrierSeal {
266
- return this.executionBarrier.seal(drainsYieldedTurns);
265
+ sealExecution(kind: ZLinkExecutionBarrierSeal['kind'] = 'relocation'): ZLinkExecutionBarrierSeal {
266
+ return this.executionBarrier.seal(kind);
267
267
  }
268
268
 
269
269
  waitForExecutionQuiescence(seal: ZLinkExecutionBarrierSeal, signal?: AbortSignal): Promise<void> {
@@ -114,7 +114,6 @@ export interface ZLinkSpotActivationLifecycleOptions {
114
114
  readonly routedTransport?: ZLinkSpotRoutedTransport;
115
115
  readonly addressTransport?: ZLinkSpotAddressTransport;
116
116
  readonly spotRouterChannelIdForMesh?: (meshName: string) => string;
117
- readonly channelMeshNameForChannel?: (channelName: string) => string | undefined;
118
117
  readonly providerResolver?: ZLinkProviderResolver;
119
118
  readonly dispatchErrors?: ZLinkDispatchErrorReporter;
120
119
  readonly closeErrorSink?: import('../diagnostics/dispatch-error-port').ZLinkDispatchErrorSink;
@@ -133,7 +132,7 @@ export interface ZLinkSpotActivationLifecycleOptions {
133
132
  readonly actorTransferRuntime?: ZLinkSpotActorTransferRuntime;
134
133
  readonly boundSessionRuntime?: ZLinkSpotBoundSessionRuntime;
135
134
  readonly actorHandoffRuntime?: ZLinkSpotActorHandoffRuntime;
136
- readonly detachedTaskRunner?: ZLinkDetachedTaskRunner;
135
+ readonly detachedTaskRunner: ZLinkDetachedTaskRunner;
137
136
  readonly admission?: ZLinkRuntimeAdmissionGate;
138
137
  readonly statefulExecutionAllowed?: () => boolean;
139
138
  readonly leaveActor: (
@@ -148,7 +147,6 @@ export interface ZLinkSpotActivationLifecycleOptions {
148
147
  objectGeneration: bigint,
149
148
  signal?: AbortSignal
150
149
  ) => Promise<boolean>;
151
- readonly isSpotClosing: (activation: ZLinkSpotActivation) => boolean;
152
150
  readonly registerActivation: (activation: ZLinkSpotActivation) => void;
153
151
  readonly routeToActorJoinPrewarm?: ZLinkRouteToActorJoinPrewarm;
154
152
  readonly releaseLocation: (
@@ -187,6 +185,9 @@ export class ZLinkSpotActivationLifecycle {
187
185
  >();
188
186
 
189
187
  constructor(private readonly options: ZLinkSpotActivationLifecycleOptions) {
188
+ if ((options.detachedTaskRunner as unknown) === undefined) {
189
+ throw new ZLinkConfigurationException('Spot activation requires a detached task runner.');
190
+ }
190
191
  this.actorAdmission = new ZLinkSpotActorAdmissionCoordinator(options);
191
192
  }
192
193
 
@@ -255,7 +256,7 @@ export class ZLinkSpotActivationLifecycle {
255
256
  const common = {
256
257
  meshName,
257
258
  spotId,
258
- objectGeneration: toContextGeneration(objectGeneration),
259
+ objectGeneration: objectGeneration,
259
260
  outbound,
260
261
  timers,
261
262
  serial,
@@ -343,11 +344,22 @@ export class ZLinkSpotActivationLifecycle {
343
344
  this.options.registerActivation(activation);
344
345
  return activation;
345
346
  } catch (error) {
346
- await timers.dispose().catch(() => undefined);
347
- if (instance !== undefined) {
348
- await disposeLifecycleHandlers(instance).catch(() => undefined);
347
+ const cleanup = await Promise.allSettled([
348
+ timers.dispose(),
349
+ ...(instance === undefined
350
+ ? []
351
+ : [disposeLifecycleHandlers(instance, this.options.detachedTaskRunner)]),
352
+ ...(nativeSpot === undefined ? [] : [Promise.resolve().then(() => nativeSpot.dispose())])
353
+ ]);
354
+ const cleanupErrors = cleanup
355
+ .filter((result): result is PromiseRejectedResult => result.status === 'rejected')
356
+ .map((result) => result.reason);
357
+ if (cleanupErrors.length > 0) {
358
+ throw new AggregateError(
359
+ [error, ...cleanupErrors],
360
+ `Spot '${spotId}' relocation materialization cleanup failed.`
361
+ );
349
362
  }
350
- await nativeSpot?.dispose().catch(() => undefined);
351
363
  throw error;
352
364
  }
353
365
  }
@@ -358,9 +370,10 @@ export class ZLinkSpotActivationLifecycle {
358
370
  implementation: Type<TSpot>,
359
371
  spotId: RoutingId,
360
372
  objectGeneration: bigint,
361
- signal?: AbortSignal
373
+ signal?: AbortSignal,
374
+ serialOwner?: ZLinkSpotActivation
362
375
  ): Promise<ZLinkSpotActivation> {
363
- const serial = new ZLinkSpotSerialTurnExecutor(true, spotId);
376
+ const serial = serialOwner?.serial ?? new ZLinkSpotSerialTurnExecutor(true, spotId);
364
377
  const serialExecutor = new ZLinkSpotSerialExecutor(
365
378
  serial,
366
379
  ZLinkUserSpotExecutionMode.SpotWide,
@@ -394,7 +407,7 @@ export class ZLinkSpotActivationLifecycle {
394
407
  const context = createInstanceSpotContext({
395
408
  meshName,
396
409
  spotId,
397
- objectGeneration: toContextGeneration(objectGeneration),
410
+ objectGeneration: objectGeneration,
398
411
  handlers: instanceHandlers,
399
412
  outbound,
400
413
  timers,
@@ -428,6 +441,7 @@ export class ZLinkSpotActivationLifecycle {
428
441
  timers,
429
442
  actorHandlers,
430
443
  handlers,
444
+ executionBarrier: serialOwner?.executionBarrier,
431
445
  externalActorCount: () => this.options.actorCountProvider?.(spotId) ?? 0
432
446
  });
433
447
  try {
@@ -445,14 +459,21 @@ export class ZLinkSpotActivationLifecycle {
445
459
  signal
446
460
  }
447
461
  );
448
- await serial.execute(() => instance!.onInitialize?.());
462
+ await (serialOwner === undefined
463
+ ? serial.execute(() => instance!.onInitialize?.())
464
+ : serial.postBarrierTurn(() => instance!.onInitialize?.()));
449
465
  this.options.registerActivation(activation);
450
466
  return activation;
451
467
  } catch (error) {
452
- await timers.dispose();
453
- await disposeLifecycleHandlers(instance);
468
+ const cleanup = await Promise.allSettled([
469
+ timers.dispose(),
470
+ disposeLifecycleHandlers(instance, this.options.detachedTaskRunner)
471
+ ]);
472
+ const cleanupErrors = cleanup
473
+ .filter((result): result is PromiseRejectedResult => result.status === 'rejected')
474
+ .map((result) => result.reason);
454
475
  throw new AggregateError(
455
- [error],
476
+ [error, ...cleanupErrors],
456
477
  `Instance Spot '${instanceType}' materialization failed for '${String(spotId)}'.`
457
478
  );
458
479
  }
@@ -481,7 +502,7 @@ export class ZLinkSpotActivationLifecycle {
481
502
  errors.push(error);
482
503
  }
483
504
  try {
484
- await disposeLifecycleHandlers(activation.spot);
505
+ await disposeLifecycleHandlers(activation.spot, this.options.detachedTaskRunner);
485
506
  } catch (error) {
486
507
  errors.push(error);
487
508
  }
@@ -582,7 +603,7 @@ export class ZLinkSpotActivationLifecycle {
582
603
  const context = createSpotContext({
583
604
  meshName,
584
605
  spotId,
585
- objectGeneration: toContextGeneration(spotGeneration),
606
+ objectGeneration: spotGeneration,
586
607
  handlers,
587
608
  outbound,
588
609
  timers,
@@ -665,9 +686,13 @@ export class ZLinkSpotActivationLifecycle {
665
686
  } else {
666
687
  const partialCleanup = await Promise.allSettled([
667
688
  timers.dispose(),
668
- ...(spot === undefined ? [] : [disposeLifecycleHandlers(spot)]),
669
- nativeSpot.dispose(),
670
- this.options.locationClaim.release(locationClaim.meshName, spotId)
689
+ ...(spot === undefined
690
+ ? []
691
+ : [disposeLifecycleHandlers(spot, this.options.detachedTaskRunner)]),
692
+ Promise.resolve().then(() => nativeSpot.dispose()),
693
+ Promise.resolve().then(() =>
694
+ this.options.locationClaim.release(locationClaim.meshName, spotId)
695
+ )
671
696
  ]);
672
697
  const partialErrors = partialCleanup
673
698
  .filter((result): result is PromiseRejectedResult => result.status === 'rejected')
@@ -714,7 +739,7 @@ export class ZLinkSpotActivationLifecycle {
714
739
  const context = createSpotContext({
715
740
  meshName,
716
741
  spotId,
717
- objectGeneration: toContextGeneration(objectGeneration),
742
+ objectGeneration: objectGeneration,
718
743
  handlers,
719
744
  outbound,
720
745
  timers,
@@ -796,12 +821,7 @@ export class ZLinkSpotActivationLifecycle {
796
821
  seal: import('../execution').ZLinkExecutionBarrierSeal,
797
822
  signal?: AbortSignal
798
823
  ): Promise<void> {
799
- try {
800
- await activation.waitForExecutionQuiescence(seal, signal);
801
- } catch (error) {
802
- activation.abortExecutionSeal(seal);
803
- throw error;
804
- }
824
+ await activation.waitForExecutionQuiescence(seal, signal);
805
825
  if (!activation.commitExecutionSeal(seal)) {
806
826
  throw new Error(`Spot '${String(activation.spotId)}' close seal is stale.`);
807
827
  }
@@ -824,6 +844,18 @@ export class ZLinkSpotActivationLifecycle {
824
844
  );
825
845
  }
826
846
 
847
+ async cleanupFailedIncarnation(activation: ZLinkSpotActivation): Promise<void> {
848
+ await this.cleanupActivation(
849
+ activation,
850
+ activation.meshName,
851
+ false,
852
+ undefined,
853
+ ZLinkSpotCloseReason.ExplicitClose,
854
+ undefined,
855
+ true
856
+ );
857
+ }
858
+
827
859
  async dispatchActorPacket(
828
860
  activation: ZLinkSpotActivation,
829
861
  actorId: string,
@@ -1040,7 +1072,7 @@ export class ZLinkSpotActivationLifecycle {
1040
1072
  }
1041
1073
  if (!state.handlersDisposed) {
1042
1074
  await cleanup(
1043
- () => disposeLifecycleHandlers(activation.spot),
1075
+ () => disposeLifecycleHandlers(activation.spot, this.options.detachedTaskRunner),
1044
1076
  () => {
1045
1077
  state.handlersDisposed = true;
1046
1078
  }
@@ -1064,6 +1096,13 @@ export class ZLinkSpotActivationLifecycle {
1064
1096
  }
1065
1097
  if (
1066
1098
  !state.locationReleased &&
1099
+ // Spot messaging §7 step 3: an Instance Spot's ExplicitClose releases its authority
1100
+ // through the Close operation's Closing fence; a User Spot still releases its location.
1101
+ !(
1102
+ owningLifecycle &&
1103
+ reason === ZLinkSpotCloseReason.ExplicitClose &&
1104
+ activation.domain.kind === 'instance'
1105
+ ) &&
1067
1106
  state.timersDisposed &&
1068
1107
  state.serialDisposed &&
1069
1108
  state.handlersDisposed &&
@@ -1101,12 +1140,3 @@ export class ZLinkSpotActivationLifecycle {
1101
1140
  }
1102
1141
  }
1103
1142
  }
1104
-
1105
- function toContextGeneration(generation: bigint): number {
1106
- if (generation < 0n || generation > BigInt(Number.MAX_SAFE_INTEGER)) {
1107
- throw new ZLinkConfigurationException(
1108
- `Spot object generation '${generation}' cannot be represented by the Node.js public context.`
1109
- );
1110
- }
1111
- return Number(generation);
1112
- }
@@ -16,7 +16,6 @@ import { ZLinkSpotActivation } from './spot-activation-state';
16
16
  import { ZLinkSpotActorJoinDispatch } from './spot-actor-join-dispatch';
17
17
  import { ZLinkSpotActorPacketDispatch } from './spot-actor-packet-dispatch';
18
18
  import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
19
- import type { ZLinkNativeActorJoinSnapshot } from './spot-runtime-ports';
20
19
 
21
20
  type AdmissionOptions = Pick<
22
21
  ZLinkSpotActivationLifecycleOptions,
@@ -34,7 +33,6 @@ type AdmissionOptions = Pick<
34
33
  | 'providerResolver'
35
34
  | 'runtimeEventPublisher'
36
35
  | 'routeToActorJoinPrewarm'
37
- | 'isSpotClosing'
38
36
  >;
39
37
 
40
38
  export class ZLinkSpotActorAdmissionCoordinator {
@@ -97,7 +95,6 @@ export class ZLinkSpotActorAdmissionCoordinator {
97
95
  'TopicMessage'
98
96
  ),
99
97
  serial: activation.serial,
100
- isSpotClosing: () => this.options.isSpotClosing(activation),
101
98
  actors: {
102
99
  resolveActor: (actorId) =>
103
100
  activation.hasDepartedActor(actorId)
@@ -112,10 +109,9 @@ export class ZLinkSpotActorAdmissionCoordinator {
112
109
  kind: 'enabled',
113
110
  runtime: this.options.actorTransferRuntime
114
111
  },
115
- commitNativeActor: (actor) => this.commitNativeActorTransaction(activation, actor),
116
112
  commitActorDeparture: (actorId) => activation.commitActorDeparture(actorId),
117
- commitTransferredActor: (actor, backlog) =>
118
- this.commitTransferredActorTransaction(activation, actor, backlog)
113
+ commitTransferredActor: (actor, backlog, sealedSession) =>
114
+ this.commitTransferredActorTransaction(activation, actor, backlog, sealedSession)
119
115
  },
120
116
  packets: {
121
117
  handle: (delivery) =>
@@ -130,16 +126,6 @@ export class ZLinkSpotActorAdmissionCoordinator {
130
126
  bindRemoteSession: (actor, sourceNodeRid, sourceSessionRid) => {
131
127
  const node = this.options.nativeSpotNodeProvider?.(activation.meshName);
132
128
  if (node === undefined || routingIdsEqual(sourceNodeRid, node.routingId)) return;
133
- const target = this.options.boundSessionRuntime?.resolveRemoteBoundSessionTarget(
134
- sourceNodeRid,
135
- sourceSessionRid
136
- );
137
- if (target !== undefined) {
138
- this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(
139
- actor.actorId,
140
- target
141
- );
142
- }
143
129
  node.bindRemoteActorSession(actor, sourceNodeRid, sourceSessionRid);
144
130
  },
145
131
  replyNoBind: (info, parts, result) =>
@@ -251,8 +237,6 @@ export class ZLinkSpotActorAdmissionCoordinator {
251
237
  : (activation.resolveJoinedActor(targetActorId) ??
252
238
  this.options.actorResolver?.(targetActorId)),
253
239
  actorLeft: (targetActorId) => activation.hasDepartedActor(targetActorId),
254
- onRemoteBoundSessionTarget: (targetActorId, target) =>
255
- this.options.boundSessionRuntime?.rememberRemoteBoundSessionTarget(targetActorId, target),
256
240
  onDisconnectActor: (actor) =>
257
241
  activation.serial.execute(() => activation.spot.onDisconnectActor?.(actor)),
258
242
  actorResponseSender: this.options.boundSessionRuntime?.sendActorResponse.bind(
@@ -275,47 +259,11 @@ export class ZLinkSpotActorAdmissionCoordinator {
275
259
  );
276
260
  }
277
261
 
278
- private async commitNativeActorTransaction(
279
- activation: ZLinkSpotActivation,
280
- actor: ZLinkActor
281
- ): Promise<void> {
282
- const transfer = this.options.actorTransferRuntime;
283
- let snapshot: ZLinkNativeActorJoinSnapshot | undefined;
284
- let rollbackMembership: (() => void) | undefined;
285
- let routeSwitchStarted = false;
286
- try {
287
- snapshot = await transfer?.claimNativeActorLocation(
288
- actor,
289
- activation.spotId,
290
- activation.meshName
291
- );
292
- transfer?.commitRoutedActor(actor, activation.spotId, activation.spot);
293
- rollbackMembership = activation.commitActorJoin(actor);
294
- activation.beginActorTransfer(actor.context.actorId);
295
- await activation.serial.execute(() => activation.spot.onJoinedActor(actor));
296
- routeSwitchStarted = true;
297
- await transfer?.publishRoutedActorOwnership(actor);
298
- await transfer?.openRoutedActorSession(actor);
299
- activation.cancelActorTransfer(actor.context.actorId);
300
- } catch (error) {
301
- if (routeSwitchStarted) throw error;
302
- rollbackMembership?.();
303
- try {
304
- if (snapshot !== undefined) await transfer?.rollbackNativeActorJoin(actor, snapshot);
305
- } catch (rollbackError) {
306
- throw new AggregateError(
307
- [error, rollbackError],
308
- 'Native actor admission and rollback both failed.'
309
- );
310
- }
311
- throw error;
312
- }
313
- }
314
-
315
262
  private async commitTransferredActorTransaction(
316
263
  activation: ZLinkSpotActivation,
317
264
  actor: ZLinkActor,
318
- backlog: readonly ZLinkActorHandoffPacket[]
265
+ backlog: readonly ZLinkActorHandoffPacket[],
266
+ sealedSession: ZLinkRemoteBoundSessionTarget | undefined
319
267
  ): Promise<readonly ZLinkActorHandoffResult[]> {
320
268
  const transfer = this.options.actorTransferRuntime;
321
269
  let routeSwitchStarted = false;
@@ -328,7 +276,7 @@ export class ZLinkSpotActorAdmissionCoordinator {
328
276
  backlog.length === 0 ? [] : await this.replayActorBacklog(activation, actor, backlog);
329
277
  await transfer?.claimRoutedActorLocation(actor, activation.spotId, activation.meshName);
330
278
  routeSwitchStarted = true;
331
- await transfer?.publishRoutedActorOwnership(actor);
279
+ await transfer?.publishRoutedActorOwnership(actor, sealedSession);
332
280
  await transfer?.openRoutedActorSession(actor);
333
281
  activation.cancelActorTransfer(actor.context.actorId);
334
282
  return results;