@zlink-systems/framework 0.10.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 (1121) hide show
  1. package/LICENSE +105 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/contracts/Actors/ZLinkActor.d.ts +7 -0
  4. package/dist/contracts/Actors/ZLinkActor.js +2 -0
  5. package/dist/contracts/Actors/ZLinkActorClient.d.ts +15 -0
  6. package/dist/contracts/Actors/ZLinkActorClient.js +2 -0
  7. package/dist/contracts/Actors/ZLinkActorContext.d.ts +14 -0
  8. package/dist/contracts/Actors/ZLinkActorContext.js +2 -0
  9. package/dist/contracts/Actors/ZLinkActorFactory.d.ts +34 -0
  10. package/dist/contracts/Actors/ZLinkActorFactory.js +2 -0
  11. package/dist/contracts/Actors/ZLinkActorManager.d.ts +34 -0
  12. package/dist/contracts/Actors/ZLinkActorManager.js +2 -0
  13. package/dist/contracts/Actors/index.d.ts +5 -0
  14. package/dist/contracts/Actors/index.js +21 -0
  15. package/dist/contracts/Channels/Calls.d.ts +28 -0
  16. package/dist/contracts/Channels/Calls.js +2 -0
  17. package/dist/contracts/Channels/IZLinkChannelClient.d.ts +5 -0
  18. package/dist/contracts/Channels/IZLinkChannelClient.js +2 -0
  19. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +11 -0
  20. package/dist/contracts/Channels/IZLinkFanoutClient.js +2 -0
  21. package/dist/contracts/Channels/RouteCalls.d.ts +11 -0
  22. package/dist/contracts/Channels/RouteCalls.js +2 -0
  23. package/dist/contracts/Channels/index.d.ts +4 -0
  24. package/dist/contracts/Channels/index.js +20 -0
  25. package/dist/contracts/Codecs/IZLinkCodecRegistryBuilder.d.ts +14 -0
  26. package/dist/contracts/Codecs/IZLinkCodecRegistryBuilder.js +2 -0
  27. package/dist/contracts/Codecs/ZLinkMessageSerializer.d.ts +5 -0
  28. package/dist/contracts/Codecs/ZLinkMessageSerializer.js +2 -0
  29. package/dist/contracts/Codecs/index.d.ts +2 -0
  30. package/dist/contracts/Codecs/index.js +18 -0
  31. package/dist/contracts/Common/ActorRef.d.ts +7 -0
  32. package/dist/contracts/Common/ActorRef.js +2 -0
  33. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  34. package/dist/contracts/Common/CoreTypes.js +2 -0
  35. package/dist/contracts/Common/Message.d.ts +9 -0
  36. package/dist/contracts/Common/Message.js +2 -0
  37. package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +12 -0
  38. package/dist/contracts/Common/ZLinkEncodedPayload.js +41 -0
  39. package/dist/contracts/Common/ZLinkMessage.d.ts +25 -0
  40. package/dist/contracts/Common/ZLinkMessage.js +127 -0
  41. package/dist/contracts/Common/ZLinkMessageMetadata.d.ts +10 -0
  42. package/dist/contracts/Common/ZLinkMessageMetadata.js +49 -0
  43. package/dist/contracts/Common/ZLinkProviderResolver.d.ts +5 -0
  44. package/dist/contracts/Common/ZLinkProviderResolver.js +2 -0
  45. package/dist/contracts/Common/encoded-payload-storage.d.ts +3 -0
  46. package/dist/contracts/Common/encoded-payload-storage.js +18 -0
  47. package/dist/contracts/Common/index.d.ts +5 -0
  48. package/dist/contracts/Common/index.js +24 -0
  49. package/dist/contracts/Configuration/Builders.d.ts +153 -0
  50. package/dist/contracts/Configuration/Builders.js +2 -0
  51. package/dist/contracts/Configuration/CodecContentType.d.ts +2 -0
  52. package/dist/contracts/Configuration/CodecContentType.js +68 -0
  53. package/dist/contracts/Configuration/CodecSerializerSelection.d.ts +9 -0
  54. package/dist/contracts/Configuration/CodecSerializerSelection.js +15 -0
  55. package/dist/contracts/Configuration/Configs.d.ts +23 -0
  56. package/dist/contracts/Configuration/Configs.js +2 -0
  57. package/dist/contracts/Configuration/ConfigurationException.d.ts +3 -0
  58. package/dist/contracts/Configuration/ConfigurationException.js +10 -0
  59. package/dist/contracts/Configuration/Connections.d.ts +5 -0
  60. package/dist/contracts/Configuration/Connections.js +2 -0
  61. package/dist/contracts/Configuration/DiagnosticsValidation.d.ts +3 -0
  62. package/dist/contracts/Configuration/DiagnosticsValidation.js +23 -0
  63. package/dist/contracts/Configuration/EndpointNotation.d.ts +77 -0
  64. package/dist/contracts/Configuration/EndpointNotation.js +218 -0
  65. package/dist/contracts/Configuration/InternalDefaults.d.ts +7 -0
  66. package/dist/contracts/Configuration/InternalDefaults.js +47 -0
  67. package/dist/contracts/Configuration/ObjectRoles.d.ts +38 -0
  68. package/dist/contracts/Configuration/ObjectRoles.js +13 -0
  69. package/dist/contracts/Configuration/Registration.d.ts +11 -0
  70. package/dist/contracts/Configuration/Registration.js +162 -0
  71. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +14 -0
  72. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +61 -0
  73. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +61 -0
  74. package/dist/contracts/Configuration/RegistrationBuilders.js +1181 -0
  75. package/dist/contracts/Configuration/RegistrationCodecRegistry.d.ts +19 -0
  76. package/dist/contracts/Configuration/RegistrationCodecRegistry.js +79 -0
  77. package/dist/contracts/Configuration/RegistrationNormalizers.d.ts +23 -0
  78. package/dist/contracts/Configuration/RegistrationNormalizers.js +319 -0
  79. package/dist/contracts/Configuration/RegistrationTypes.d.ts +414 -0
  80. package/dist/contracts/Configuration/RegistrationTypes.js +2 -0
  81. package/dist/contracts/Configuration/RegistrationValidators.d.ts +2 -0
  82. package/dist/contracts/Configuration/RegistrationValidators.js +461 -0
  83. package/dist/contracts/Configuration/RouteChannelInternalState.d.ts +10 -0
  84. package/dist/contracts/Configuration/RouteChannelInternalState.js +39 -0
  85. package/dist/contracts/Configuration/RuntimeEndpointConnections.d.ts +9 -0
  86. package/dist/contracts/Configuration/RuntimeEndpointConnections.js +80 -0
  87. package/dist/contracts/Configuration/SendTimeoutValidation.d.ts +2 -0
  88. package/dist/contracts/Configuration/SendTimeoutValidation.js +16 -0
  89. package/dist/contracts/Configuration/TimerRegistrationValidator.d.ts +2 -0
  90. package/dist/contracts/Configuration/TimerRegistrationValidator.js +24 -0
  91. package/dist/contracts/Configuration/index.d.ts +5 -0
  92. package/dist/contracts/Configuration/index.js +18 -0
  93. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +181 -0
  94. package/dist/contracts/Dispatch/ZLinkDispatchOptions.js +89 -0
  95. package/dist/contracts/Dispatch/ZLinkFlowOrigin.d.ts +1 -0
  96. package/dist/contracts/Dispatch/ZLinkFlowOrigin.js +2 -0
  97. package/dist/contracts/Dispatch/index.d.ts +2 -0
  98. package/dist/contracts/Dispatch/index.js +18 -0
  99. package/dist/contracts/Errors/ZLinkFrameworkException.d.ts +20 -0
  100. package/dist/contracts/Errors/ZLinkFrameworkException.js +29 -0
  101. package/dist/contracts/Errors/index.d.ts +1 -0
  102. package/dist/contracts/Errors/index.js +6 -0
  103. package/dist/contracts/Eventing/Metrics.d.ts +29 -0
  104. package/dist/contracts/Eventing/Metrics.js +4 -0
  105. package/dist/contracts/Eventing/index.d.ts +1 -0
  106. package/dist/contracts/Eventing/index.js +17 -0
  107. package/dist/contracts/Handlers/Attributes.d.ts +24 -0
  108. package/dist/contracts/Handlers/Attributes.js +84 -0
  109. package/dist/contracts/Handlers/Contexts.d.ts +18 -0
  110. package/dist/contracts/Handlers/Contexts.js +2 -0
  111. package/dist/contracts/Handlers/IZLinkChannelHandlers.d.ts +43 -0
  112. package/dist/contracts/Handlers/IZLinkChannelHandlers.js +2 -0
  113. package/dist/contracts/Handlers/IZLinkHandlerFilter.d.ts +15 -0
  114. package/dist/contracts/Handlers/IZLinkHandlerFilter.js +11 -0
  115. package/dist/contracts/Handlers/JsonContract.d.ts +46 -0
  116. package/dist/contracts/Handlers/JsonContract.js +137 -0
  117. package/dist/contracts/Handlers/ZLinkHandlerFilterNext.d.ts +1 -0
  118. package/dist/contracts/Handlers/ZLinkHandlerFilterNext.js +2 -0
  119. package/dist/contracts/Handlers/index.d.ts +5 -0
  120. package/dist/contracts/Handlers/index.js +33 -0
  121. package/dist/contracts/Locations/ActorTransfer.d.ts +41 -0
  122. package/dist/contracts/Locations/ActorTransfer.js +2 -0
  123. package/dist/contracts/Locations/Authority.d.ts +296 -0
  124. package/dist/contracts/Locations/Authority.js +17 -0
  125. package/dist/contracts/Locations/Diagnostics.d.ts +42 -0
  126. package/dist/contracts/Locations/Diagnostics.js +12 -0
  127. package/dist/contracts/Locations/Keys.d.ts +86 -0
  128. package/dist/contracts/Locations/Keys.js +2 -0
  129. package/dist/contracts/Locations/Models.d.ts +7 -0
  130. package/dist/contracts/Locations/Models.js +23 -0
  131. package/dist/contracts/Locations/Options.d.ts +23 -0
  132. package/dist/contracts/Locations/Options.js +20 -0
  133. package/dist/contracts/Locations/Readiness.d.ts +5 -0
  134. package/dist/contracts/Locations/Readiness.js +2 -0
  135. package/dist/contracts/Locations/RelocationStore.d.ts +38 -0
  136. package/dist/contracts/Locations/RelocationStore.js +2 -0
  137. package/dist/contracts/Locations/Resolvers.d.ts +4 -0
  138. package/dist/contracts/Locations/Resolvers.js +2 -0
  139. package/dist/contracts/Locations/Rows.d.ts +152 -0
  140. package/dist/contracts/Locations/Rows.js +19 -0
  141. package/dist/contracts/Locations/RuntimeQuery.d.ts +25 -0
  142. package/dist/contracts/Locations/RuntimeQuery.js +2 -0
  143. package/dist/contracts/Locations/Stores.d.ts +88 -0
  144. package/dist/contracts/Locations/Stores.js +2 -0
  145. package/dist/contracts/Locations/Values.d.ts +27 -0
  146. package/dist/contracts/Locations/Values.js +36 -0
  147. package/dist/contracts/Locations/Watch.d.ts +14 -0
  148. package/dist/contracts/Locations/Watch.js +12 -0
  149. package/dist/contracts/Locations/Writes.d.ts +48 -0
  150. package/dist/contracts/Locations/Writes.js +15 -0
  151. package/dist/contracts/Locations/index.d.ts +12 -0
  152. package/dist/contracts/Locations/index.js +30 -0
  153. package/dist/contracts/RouteMesh/Contracts.d.ts +102 -0
  154. package/dist/contracts/RouteMesh/Contracts.js +39 -0
  155. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +165 -0
  156. package/dist/contracts/RouteMesh/RuntimeTopology.js +38 -0
  157. package/dist/contracts/RouteMesh/index.d.ts +2 -0
  158. package/dist/contracts/RouteMesh/index.js +18 -0
  159. package/dist/contracts/Spots/Builders.d.ts +10 -0
  160. package/dist/contracts/Spots/Builders.js +2 -0
  161. package/dist/contracts/Spots/Contracts.d.ts +110 -0
  162. package/dist/contracts/Spots/Contracts.js +9 -0
  163. package/dist/contracts/Spots/SpotKind.d.ts +8 -0
  164. package/dist/contracts/Spots/SpotKind.js +28 -0
  165. package/dist/contracts/Spots/ZLinkSpot.d.ts +62 -0
  166. package/dist/contracts/Spots/ZLinkSpot.js +15 -0
  167. package/dist/contracts/Spots/index.d.ts +3 -0
  168. package/dist/contracts/Spots/index.js +19 -0
  169. package/dist/contracts/Streams/BoundSessionContracts.d.ts +8 -0
  170. package/dist/contracts/Streams/BoundSessionContracts.js +2 -0
  171. package/dist/contracts/Streams/IZLinkSession.d.ts +44 -0
  172. package/dist/contracts/Streams/IZLinkSession.js +2 -0
  173. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +15 -0
  174. package/dist/contracts/Streams/IZLinkSessionActor.js +2 -0
  175. package/dist/contracts/Streams/IZLinkSessionPacketHandler.d.ts +9 -0
  176. package/dist/contracts/Streams/IZLinkSessionPacketHandler.js +2 -0
  177. package/dist/contracts/Streams/IZLinkStream.d.ts +9 -0
  178. package/dist/contracts/Streams/IZLinkStream.js +2 -0
  179. package/dist/contracts/Streams/ZLinkMessageMetadata.d.ts +1 -0
  180. package/dist/contracts/Streams/ZLinkMessageMetadata.js +2 -0
  181. package/dist/contracts/Streams/ZLinkStreamCompression.d.ts +8 -0
  182. package/dist/contracts/Streams/ZLinkStreamCompression.js +2 -0
  183. package/dist/contracts/Streams/ZLinkStreamError.d.ts +8 -0
  184. package/dist/contracts/Streams/ZLinkStreamError.js +8 -0
  185. package/dist/contracts/Streams/index.d.ts +8 -0
  186. package/dist/contracts/Streams/index.js +24 -0
  187. package/dist/contracts/Timers/IZLinkTimer.d.ts +5 -0
  188. package/dist/contracts/Timers/IZLinkTimer.js +2 -0
  189. package/dist/contracts/Timers/ZLinkTimerOptions.d.ts +10 -0
  190. package/dist/contracts/Timers/ZLinkTimerOptions.js +9 -0
  191. package/dist/contracts/Timers/ZLinkTimerTick.d.ts +12 -0
  192. package/dist/contracts/Timers/ZLinkTimerTick.js +2 -0
  193. package/dist/contracts/Timers/index.d.ts +3 -0
  194. package/dist/contracts/Timers/index.js +19 -0
  195. package/dist/contracts/index.d.ts +25 -0
  196. package/dist/contracts/index.js +45 -0
  197. package/dist/index.d.ts +1 -0
  198. package/dist/index.js +17 -0
  199. package/dist/internal.d.ts +26 -0
  200. package/dist/internal.js +48 -0
  201. package/dist/location-store-integration.d.ts +5 -0
  202. package/dist/location-store-integration.js +31 -0
  203. package/dist/nest-integration.d.ts +49 -0
  204. package/dist/nest-integration.js +143 -0
  205. package/dist/runtime/abort.d.ts +13 -0
  206. package/dist/runtime/abort.js +71 -0
  207. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +33 -0
  208. package/dist/runtime/actors/actor-authority-payload-codec.js +366 -0
  209. package/dist/runtime/actors/actor-authority-publication.d.ts +28 -0
  210. package/dist/runtime/actors/actor-authority-publication.js +207 -0
  211. package/dist/runtime/actors/actor-client.d.ts +36 -0
  212. package/dist/runtime/actors/actor-client.js +612 -0
  213. package/dist/runtime/actors/actor-context.d.ts +26 -0
  214. package/dist/runtime/actors/actor-context.js +433 -0
  215. package/dist/runtime/actors/actor-creation.d.ts +19 -0
  216. package/dist/runtime/actors/actor-creation.js +158 -0
  217. package/dist/runtime/actors/actor-execution-context.d.ts +6 -0
  218. package/dist/runtime/actors/actor-execution-context.js +27 -0
  219. package/dist/runtime/actors/actor-handoff.d.ts +191 -0
  220. package/dist/runtime/actors/actor-handoff.js +1252 -0
  221. package/dist/runtime/actors/actor-join-deferred-scope.d.ts +11 -0
  222. package/dist/runtime/actors/actor-join-deferred-scope.js +144 -0
  223. package/dist/runtime/actors/actor-join-relocation.d.ts +38 -0
  224. package/dist/runtime/actors/actor-join-relocation.js +2 -0
  225. package/dist/runtime/actors/actor-lifecycle-snapshot.d.ts +21 -0
  226. package/dist/runtime/actors/actor-lifecycle-snapshot.js +58 -0
  227. package/dist/runtime/actors/actor-local-native-join.d.ts +27 -0
  228. package/dist/runtime/actors/actor-local-native-join.js +409 -0
  229. package/dist/runtime/actors/actor-mailbox.d.ts +10 -0
  230. package/dist/runtime/actors/actor-mailbox.js +53 -0
  231. package/dist/runtime/actors/actor-message-follow-context.d.ts +46 -0
  232. package/dist/runtime/actors/actor-message-follow-context.js +257 -0
  233. package/dist/runtime/actors/actor-native-lookup.d.ts +4 -0
  234. package/dist/runtime/actors/actor-native-lookup.js +30 -0
  235. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +73 -0
  236. package/dist/runtime/actors/actor-packet-relay-wire.js +144 -0
  237. package/dist/runtime/actors/actor-remote-joiner.d.ts +37 -0
  238. package/dist/runtime/actors/actor-remote-joiner.js +122 -0
  239. package/dist/runtime/actors/actor-remote-wire.d.ts +73 -0
  240. package/dist/runtime/actors/actor-remote-wire.js +84 -0
  241. package/dist/runtime/actors/actor-retry-delay.d.ts +5 -0
  242. package/dist/runtime/actors/actor-retry-delay.js +40 -0
  243. package/dist/runtime/actors/actor-routed-join-transport.d.ts +33 -0
  244. package/dist/runtime/actors/actor-routed-join-transport.js +2 -0
  245. package/dist/runtime/actors/actor-routed-json-request.d.ts +11 -0
  246. package/dist/runtime/actors/actor-routed-json-request.js +39 -0
  247. package/dist/runtime/actors/actor-runtime-contracts.d.ts +63 -0
  248. package/dist/runtime/actors/actor-runtime-contracts.js +2 -0
  249. package/dist/runtime/actors/actor-runtime-state.d.ts +152 -0
  250. package/dist/runtime/actors/actor-runtime-state.js +545 -0
  251. package/dist/runtime/actors/actor-source-transfer.d.ts +27 -0
  252. package/dist/runtime/actors/actor-source-transfer.js +2 -0
  253. package/dist/runtime/actors/actor-transfer-registry.d.ts +18 -0
  254. package/dist/runtime/actors/actor-transfer-registry.js +71 -0
  255. package/dist/runtime/actors/actor-transport-delivery-gate.d.ts +6 -0
  256. package/dist/runtime/actors/actor-transport-delivery-gate.js +4 -0
  257. package/dist/runtime/actors/bound-session-wire.d.ts +81 -0
  258. package/dist/runtime/actors/bound-session-wire.js +184 -0
  259. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +47 -0
  260. package/dist/runtime/actors/deferred-join-accepted-journal.js +962 -0
  261. package/dist/runtime/actors/index.d.ts +79 -0
  262. package/dist/runtime/actors/index.js +639 -0
  263. package/dist/runtime/actors/post-commit-actor-binder.d.ts +18 -0
  264. package/dist/runtime/actors/post-commit-actor-binder.js +68 -0
  265. package/dist/runtime/actors/post-commit-actor-location.d.ts +19 -0
  266. package/dist/runtime/actors/post-commit-actor-location.js +72 -0
  267. package/dist/runtime/actors/spot-actor-dispatch.d.ts +59 -0
  268. package/dist/runtime/actors/spot-actor-dispatch.js +179 -0
  269. package/dist/runtime/actors/transferred-actor-rollback.d.ts +16 -0
  270. package/dist/runtime/actors/transferred-actor-rollback.js +91 -0
  271. package/dist/runtime/admission.d.ts +20 -0
  272. package/dist/runtime/admission.js +166 -0
  273. package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +57 -0
  274. package/dist/runtime/application-jobs/application-ingress-record-owner.js +185 -0
  275. package/dist/runtime/application-jobs/application-job-queue-handler-start-gate.d.ts +8 -0
  276. package/dist/runtime/application-jobs/application-job-queue-handler-start-gate.js +8 -0
  277. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +17 -0
  278. package/dist/runtime/application-jobs/application-job-queue-scope.js +57 -0
  279. package/dist/runtime/application-jobs/contracts.d.ts +19 -0
  280. package/dist/runtime/application-jobs/contracts.js +2 -0
  281. package/dist/runtime/application-jobs/receive-flow-controller.d.ts +32 -0
  282. package/dist/runtime/application-jobs/receive-flow-controller.js +165 -0
  283. package/dist/runtime/backend/contracts/index.d.ts +487 -0
  284. package/dist/runtime/backend/contracts/index.js +29 -0
  285. package/dist/runtime/backend/index.d.ts +9 -0
  286. package/dist/runtime/backend/index.js +25 -0
  287. package/dist/runtime/backend/mesh-actor-session-node-adapter.d.ts +3 -0
  288. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +51 -0
  289. package/dist/runtime/backend/mesh-completion-table.d.ts +34 -0
  290. package/dist/runtime/backend/mesh-completion-table.js +124 -0
  291. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +48 -0
  292. package/dist/runtime/backend/mesh-dispatch-pump.js +322 -0
  293. package/dist/runtime/backend/mesh-record-dispatcher.d.ts +19 -0
  294. package/dist/runtime/backend/mesh-record-dispatcher.js +53 -0
  295. package/dist/runtime/backend/node/index.d.ts +4 -0
  296. package/dist/runtime/backend/node/index.js +22 -0
  297. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +12 -0
  298. package/dist/runtime/backend/node/node-backend-adapter-factory.js +161 -0
  299. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +52 -0
  300. package/dist/runtime/backend/node/node-backend-adapter-support.js +203 -0
  301. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +13 -0
  302. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +52 -0
  303. package/dist/runtime/backend/node/node-mesh-backend-adapter.d.ts +11 -0
  304. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +23 -0
  305. package/dist/runtime/backend/node/node-monitor-backend-adapter.d.ts +6 -0
  306. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +38 -0
  307. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +8 -0
  308. package/dist/runtime/backend/node/node-raw-binding-port.js +411 -0
  309. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +266 -0
  310. package/dist/runtime/backend/node/node-raw-mesh-backend.js +1707 -0
  311. package/dist/runtime/backend/node/node-socket-backend-adapter.d.ts +9 -0
  312. package/dist/runtime/backend/node/node-socket-backend-adapter.js +286 -0
  313. package/dist/runtime/backend/node-backend-adapter.d.ts +9 -0
  314. package/dist/runtime/backend/node-backend-adapter.js +12 -0
  315. package/dist/runtime/backend/raw-binding-port.d.ts +58 -0
  316. package/dist/runtime/backend/raw-binding-port.js +2 -0
  317. package/dist/runtime/backend/runtime-message.d.ts +14 -0
  318. package/dist/runtime/backend/runtime-message.js +44 -0
  319. package/dist/runtime/backend/runtime-values.d.ts +78 -0
  320. package/dist/runtime/backend/runtime-values.js +66 -0
  321. package/dist/runtime/channels/channel-autoconnect.d.ts +14 -0
  322. package/dist/runtime/channels/channel-autoconnect.js +23 -0
  323. package/dist/runtime/channels/channel-clients.d.ts +50 -0
  324. package/dist/runtime/channels/channel-clients.js +329 -0
  325. package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +76 -0
  326. package/dist/runtime/channels/channel-dispatch-pipeline.js +237 -0
  327. package/dist/runtime/channels/channel-dispatch-services.d.ts +52 -0
  328. package/dist/runtime/channels/channel-dispatch-services.js +132 -0
  329. package/dist/runtime/channels/channel-dispatchers.d.ts +125 -0
  330. package/dist/runtime/channels/channel-dispatchers.js +575 -0
  331. package/dist/runtime/channels/channel-envelope-inspection.d.ts +25 -0
  332. package/dist/runtime/channels/channel-envelope-inspection.js +96 -0
  333. package/dist/runtime/channels/channel-envelope.d.ts +73 -0
  334. package/dist/runtime/channels/channel-envelope.js +546 -0
  335. package/dist/runtime/channels/channel-framework-packets.d.ts +2 -0
  336. package/dist/runtime/channels/channel-framework-packets.js +6 -0
  337. package/dist/runtime/channels/channel-multipart.d.ts +16 -0
  338. package/dist/runtime/channels/channel-multipart.js +31 -0
  339. package/dist/runtime/channels/channel-outbound-operations.d.ts +33 -0
  340. package/dist/runtime/channels/channel-outbound-operations.js +343 -0
  341. package/dist/runtime/channels/channel-receive-loops.d.ts +151 -0
  342. package/dist/runtime/channels/channel-receive-loops.js +728 -0
  343. package/dist/runtime/channels/channel-receive-task-tracker.d.ts +14 -0
  344. package/dist/runtime/channels/channel-receive-task-tracker.js +37 -0
  345. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +77 -0
  346. package/dist/runtime/channels/channel-runtime-lifecycle.js +630 -0
  347. package/dist/runtime/channels/channel-runtime-manager.d.ts +84 -0
  348. package/dist/runtime/channels/channel-runtime-manager.js +193 -0
  349. package/dist/runtime/channels/channel-socket-options.d.ts +18 -0
  350. package/dist/runtime/channels/channel-socket-options.js +119 -0
  351. package/dist/runtime/channels/channel-socket-registry.d.ts +157 -0
  352. package/dist/runtime/channels/channel-socket-registry.js +1428 -0
  353. package/dist/runtime/channels/channel-transports.d.ts +126 -0
  354. package/dist/runtime/channels/channel-transports.js +448 -0
  355. package/dist/runtime/channels/client-server-location-runtime.d.ts +41 -0
  356. package/dist/runtime/channels/client-server-location-runtime.js +465 -0
  357. package/dist/runtime/channels/client-server-service-wire.d.ts +48 -0
  358. package/dist/runtime/channels/client-server-service-wire.js +306 -0
  359. package/dist/runtime/channels/dispatch-error-reporter.d.ts +22 -0
  360. package/dist/runtime/channels/dispatch-error-reporter.js +133 -0
  361. package/dist/runtime/channels/fanout-location-runtime.d.ts +38 -0
  362. package/dist/runtime/channels/fanout-location-runtime.js +356 -0
  363. package/dist/runtime/channels/fanout-service-wire.d.ts +12 -0
  364. package/dist/runtime/channels/fanout-service-wire.js +29 -0
  365. package/dist/runtime/channels/handler-filter-scope.d.ts +8 -0
  366. package/dist/runtime/channels/handler-filter-scope.js +11 -0
  367. package/dist/runtime/channels/index.d.ts +9 -0
  368. package/dist/runtime/channels/index.js +30 -0
  369. package/dist/runtime/channels/local-spot-route-transport.d.ts +9 -0
  370. package/dist/runtime/channels/local-spot-route-transport.js +40 -0
  371. package/dist/runtime/channels/route-disconnected-error.d.ts +3 -0
  372. package/dist/runtime/channels/route-disconnected-error.js +10 -0
  373. package/dist/runtime/channels/route-member-snapshot.d.ts +10 -0
  374. package/dist/runtime/channels/route-member-snapshot.js +55 -0
  375. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +12 -0
  376. package/dist/runtime/channels/router-socket-spot-route-transport.js +43 -0
  377. package/dist/runtime/channels/source-spot-router.d.ts +10 -0
  378. package/dist/runtime/channels/source-spot-router.js +46 -0
  379. package/dist/runtime/channels/spot-direct-envelope.d.ts +5 -0
  380. package/dist/runtime/channels/spot-direct-envelope.js +29 -0
  381. package/dist/runtime/channels/spot-node-route-transport.d.ts +13 -0
  382. package/dist/runtime/channels/spot-node-route-transport.js +60 -0
  383. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +14 -0
  384. package/dist/runtime/channels/spot-route-bridge-transport.js +58 -0
  385. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +50 -0
  386. package/dist/runtime/channels/spot-route-dispatch-strategy.js +128 -0
  387. package/dist/runtime/channels/spot-route-target-resolver.d.ts +16 -0
  388. package/dist/runtime/channels/spot-route-target-resolver.js +92 -0
  389. package/dist/runtime/codecs/index.d.ts +14 -0
  390. package/dist/runtime/codecs/index.js +44 -0
  391. package/dist/runtime/configuration/index.d.ts +1 -0
  392. package/dist/runtime/configuration/index.js +17 -0
  393. package/dist/runtime/diagnostics/dispatch-error-port.d.ts +8 -0
  394. package/dist/runtime/diagnostics/dispatch-error-port.js +2 -0
  395. package/dist/runtime/diagnostics/flow-context.d.ts +21 -0
  396. package/dist/runtime/diagnostics/flow-context.js +68 -0
  397. package/dist/runtime/diagnostics/index.d.ts +82 -0
  398. package/dist/runtime/diagnostics/index.js +335 -0
  399. package/dist/runtime/diagnostics/internal-event-contracts.d.ts +139 -0
  400. package/dist/runtime/diagnostics/internal-event-contracts.js +68 -0
  401. package/dist/runtime/diagnostics/message-flow.d.ts +55 -0
  402. package/dist/runtime/diagnostics/message-flow.js +420 -0
  403. package/dist/runtime/diagnostics/runtime-metrics.d.ts +123 -0
  404. package/dist/runtime/diagnostics/runtime-metrics.js +454 -0
  405. package/dist/runtime/diagnostics/runtime-observation-queue.d.ts +58 -0
  406. package/dist/runtime/diagnostics/runtime-observation-queue.js +324 -0
  407. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +33 -0
  408. package/dist/runtime/diagnostics/topology-runtime-projections.js +255 -0
  409. package/dist/runtime/execution/index.d.ts +114 -0
  410. package/dist/runtime/execution/index.js +363 -0
  411. package/dist/runtime/execution/serial-execution-queue.d.ts +94 -0
  412. package/dist/runtime/execution/serial-execution-queue.js +411 -0
  413. package/dist/runtime/execution/serial-work-size.d.ts +4 -0
  414. package/dist/runtime/execution/serial-work-size.js +28 -0
  415. package/dist/runtime/execution/state-lane.d.ts +28 -0
  416. package/dist/runtime/execution/state-lane.js +105 -0
  417. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +72 -0
  418. package/dist/runtime/foundation/actor-join-recovery-codec.js +333 -0
  419. package/dist/runtime/foundation/event-loop-resources.d.ts +37 -0
  420. package/dist/runtime/foundation/event-loop-resources.js +163 -0
  421. package/dist/runtime/foundation/index.d.ts +18 -0
  422. package/dist/runtime/foundation/index.js +34 -0
  423. package/dist/runtime/foundation/message-follow-suppression-registry.d.ts +38 -0
  424. package/dist/runtime/foundation/message-follow-suppression-registry.js +89 -0
  425. package/dist/runtime/foundation/operation-identity.d.ts +12 -0
  426. package/dist/runtime/foundation/operation-identity.js +33 -0
  427. package/dist/runtime/foundation/operation-registry.d.ts +42 -0
  428. package/dist/runtime/foundation/operation-registry.js +146 -0
  429. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +143 -0
  430. package/dist/runtime/foundation/raw-service-mesh-runtime.js +1349 -0
  431. package/dist/runtime/foundation/route-mesh-connection-policy.d.ts +3 -0
  432. package/dist/runtime/foundation/route-mesh-connection-policy.js +13 -0
  433. package/dist/runtime/foundation/runtime-state-projections.d.ts +13 -0
  434. package/dist/runtime/foundation/runtime-state-projections.js +44 -0
  435. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +56 -0
  436. package/dist/runtime/foundation/service-authority-payload-codec.js +411 -0
  437. package/dist/runtime/foundation/service-discovery-registry.d.ts +42 -0
  438. package/dist/runtime/foundation/service-discovery-registry.js +175 -0
  439. package/dist/runtime/foundation/service-instance-activation-recovery-codec.d.ts +19 -0
  440. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +287 -0
  441. package/dist/runtime/foundation/service-liveness-registry.d.ts +28 -0
  442. package/dist/runtime/foundation/service-liveness-registry.js +109 -0
  443. package/dist/runtime/foundation/service-mailbox.d.ts +60 -0
  444. package/dist/runtime/foundation/service-mailbox.js +283 -0
  445. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +45 -0
  446. package/dist/runtime/foundation/service-maintenance-runtime.js +198 -0
  447. package/dist/runtime/foundation/service-metadata-codec.d.ts +2 -0
  448. package/dist/runtime/foundation/service-metadata-codec.js +69 -0
  449. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +35 -0
  450. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +139 -0
  451. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +19 -0
  452. package/dist/runtime/foundation/service-relocation-coordinator.js +16 -0
  453. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +71 -0
  454. package/dist/runtime/foundation/service-relocation-object-owner.js +242 -0
  455. package/dist/runtime/foundation/service-relocation-runtime.d.ts +143 -0
  456. package/dist/runtime/foundation/service-relocation-runtime.js +1080 -0
  457. package/dist/runtime/foundation/service-runtime-contracts.d.ts +332 -0
  458. package/dist/runtime/foundation/service-runtime-contracts.js +66 -0
  459. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +23 -0
  460. package/dist/runtime/foundation/service-session-binding-ingress-port.js +11 -0
  461. package/dist/runtime/foundation/service-stateful-registry.d.ts +142 -0
  462. package/dist/runtime/foundation/service-stateful-registry.js +465 -0
  463. package/dist/runtime/foundation/service-stateful-runtime.d.ts +393 -0
  464. package/dist/runtime/foundation/service-stateful-runtime.js +3898 -0
  465. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +597 -0
  466. package/dist/runtime/foundation/service-stateful-wire-codec.js +2006 -0
  467. package/dist/runtime/foundation/service-topology-registry.d.ts +68 -0
  468. package/dist/runtime/foundation/service-topology-registry.js +393 -0
  469. package/dist/runtime/foundation/service-weighted-selection.d.ts +14 -0
  470. package/dist/runtime/foundation/service-weighted-selection.js +128 -0
  471. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +10 -0
  472. package/dist/runtime/foundation/service-wire-binary-primitives.js +53 -0
  473. package/dist/runtime/foundation/service-wire-codec.d.ts +22 -0
  474. package/dist/runtime/foundation/service-wire-codec.js +67 -0
  475. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +110 -0
  476. package/dist/runtime/foundation/service-wire-constants.generated.js +132 -0
  477. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +102 -0
  478. package/dist/runtime/foundation/service-wire-m6a-codec.js +568 -0
  479. package/dist/runtime/framework-errors-internal.d.ts +95 -0
  480. package/dist/runtime/framework-errors-internal.js +301 -0
  481. package/dist/runtime/handlers/handler-instance-scope.d.ts +11 -0
  482. package/dist/runtime/handlers/handler-instance-scope.js +284 -0
  483. package/dist/runtime/handlers/index.d.ts +13 -0
  484. package/dist/runtime/handlers/index.js +57 -0
  485. package/dist/runtime/host/actor-packet-relay.d.ts +60 -0
  486. package/dist/runtime/host/actor-packet-relay.js +664 -0
  487. package/dist/runtime/host/actor-placement-coordinator.d.ts +32 -0
  488. package/dist/runtime/host/actor-placement-coordinator.js +386 -0
  489. package/dist/runtime/host/actor-runtime-options-factory.d.ts +65 -0
  490. package/dist/runtime/host/actor-runtime-options-factory.js +160 -0
  491. package/dist/runtime/host/actor-transfer-authority-runtime.d.ts +26 -0
  492. package/dist/runtime/host/actor-transfer-authority-runtime.js +138 -0
  493. package/dist/runtime/host/actor-transfer-runtime.d.ts +149 -0
  494. package/dist/runtime/host/actor-transfer-runtime.js +1245 -0
  495. package/dist/runtime/host/application-job-queue.d.ts +99 -0
  496. package/dist/runtime/host/application-job-queue.js +409 -0
  497. package/dist/runtime/host/bound-session-relay.d.ts +41 -0
  498. package/dist/runtime/host/bound-session-relay.js +52 -0
  499. package/dist/runtime/host/bounded-replay-map.d.ts +12 -0
  500. package/dist/runtime/host/bounded-replay-map.js +42 -0
  501. package/dist/runtime/host/channel-runtime-options-factory.d.ts +22 -0
  502. package/dist/runtime/host/channel-runtime-options-factory.js +76 -0
  503. package/dist/runtime/host/entry-actor-runtime.d.ts +30 -0
  504. package/dist/runtime/host/entry-actor-runtime.js +80 -0
  505. package/dist/runtime/host/host-capacity-status.d.ts +11 -0
  506. package/dist/runtime/host/host-capacity-status.js +85 -0
  507. package/dist/runtime/host/index.d.ts +188 -0
  508. package/dist/runtime/host/index.js +2552 -0
  509. package/dist/runtime/host/instance-activation-authority.d.ts +33 -0
  510. package/dist/runtime/host/instance-activation-authority.js +496 -0
  511. package/dist/runtime/host/location-runtime-owner.d.ts +48 -0
  512. package/dist/runtime/host/location-runtime-owner.js +227 -0
  513. package/dist/runtime/host/mesh-router-resolver.d.ts +16 -0
  514. package/dist/runtime/host/mesh-router-resolver.js +108 -0
  515. package/dist/runtime/host/relocation-direct-transfer.d.ts +81 -0
  516. package/dist/runtime/host/relocation-direct-transfer.js +240 -0
  517. package/dist/runtime/host/relocation-integrity-fault-gate.d.ts +6 -0
  518. package/dist/runtime/host/relocation-integrity-fault-gate.js +5 -0
  519. package/dist/runtime/host/relocation-state-adapter.d.ts +8 -0
  520. package/dist/runtime/host/relocation-state-adapter.js +13 -0
  521. package/dist/runtime/host/remote-actor-join-receiver.d.ts +47 -0
  522. package/dist/runtime/host/remote-actor-join-receiver.js +161 -0
  523. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +29 -0
  524. package/dist/runtime/host/remote-actor-packet-target-store.js +185 -0
  525. package/dist/runtime/host/remote-bound-session-relay.d.ts +58 -0
  526. package/dist/runtime/host/remote-bound-session-relay.js +540 -0
  527. package/dist/runtime/host/route-mesh-runtime-options.d.ts +9 -0
  528. package/dist/runtime/host/route-mesh-runtime-options.js +41 -0
  529. package/dist/runtime/host/route-mesh-runtime.d.ts +76 -0
  530. package/dist/runtime/host/route-mesh-runtime.js +746 -0
  531. package/dist/runtime/host/runtime-shutdown.d.ts +33 -0
  532. package/dist/runtime/host/runtime-shutdown.js +68 -0
  533. package/dist/runtime/host/service-relocation-control.d.ts +7 -0
  534. package/dist/runtime/host/service-relocation-control.js +24 -0
  535. package/dist/runtime/host/service-relocation-host-runtime.d.ts +241 -0
  536. package/dist/runtime/host/service-relocation-host-runtime.js +4113 -0
  537. package/dist/runtime/host/spot-address-transport.d.ts +47 -0
  538. package/dist/runtime/host/spot-address-transport.js +601 -0
  539. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +38 -0
  540. package/dist/runtime/host/spot-node-runtime-options-factory.js +36 -0
  541. package/dist/runtime/host/spot-runtime-options-factory.d.ts +48 -0
  542. package/dist/runtime/host/spot-runtime-options-factory.js +169 -0
  543. package/dist/runtime/host/stateful-authority-route-runtime.d.ts +34 -0
  544. package/dist/runtime/host/stateful-authority-route-runtime.js +440 -0
  545. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +69 -0
  546. package/dist/runtime/host/user-spot-creation-coordinator.js +759 -0
  547. package/dist/runtime/locations/actor-location-claims.d.ts +43 -0
  548. package/dist/runtime/locations/actor-location-claims.js +319 -0
  549. package/dist/runtime/locations/actor-session-route-claims.d.ts +10 -0
  550. package/dist/runtime/locations/actor-session-route-claims.js +51 -0
  551. package/dist/runtime/locations/aggregate-inventory-store.d.ts +18 -0
  552. package/dist/runtime/locations/aggregate-inventory-store.js +399 -0
  553. package/dist/runtime/locations/authority-key-codec.d.ts +6 -0
  554. package/dist/runtime/locations/authority-key-codec.js +78 -0
  555. package/dist/runtime/locations/auto-connect-loop.d.ts +37 -0
  556. package/dist/runtime/locations/auto-connect-loop.js +112 -0
  557. package/dist/runtime/locations/auto-connect-planner.d.ts +9 -0
  558. package/dist/runtime/locations/auto-connect-planner.js +137 -0
  559. package/dist/runtime/locations/auto-connect-reconciler.d.ts +57 -0
  560. package/dist/runtime/locations/auto-connect-reconciler.js +358 -0
  561. package/dist/runtime/locations/auto-connect-types.d.ts +42 -0
  562. package/dist/runtime/locations/auto-connect-types.js +2 -0
  563. package/dist/runtime/locations/auto-connect.d.ts +4 -0
  564. package/dist/runtime/locations/auto-connect.js +20 -0
  565. package/dist/runtime/locations/canonical-codec.d.ts +7 -0
  566. package/dist/runtime/locations/canonical-codec.js +48 -0
  567. package/dist/runtime/locations/domain-store-contract.d.ts +34 -0
  568. package/dist/runtime/locations/domain-store-contract.js +2 -0
  569. package/dist/runtime/locations/in-memory-authority-store.d.ts +51 -0
  570. package/dist/runtime/locations/in-memory-authority-store.js +895 -0
  571. package/dist/runtime/locations/in-memory-location-store.d.ts +78 -0
  572. package/dist/runtime/locations/in-memory-location-store.js +1008 -0
  573. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +19 -0
  574. package/dist/runtime/locations/in-memory-provider-location-store.js +183 -0
  575. package/dist/runtime/locations/index.d.ts +11 -0
  576. package/dist/runtime/locations/index.js +27 -0
  577. package/dist/runtime/locations/internal-location-contracts.d.ts +7 -0
  578. package/dist/runtime/locations/internal-location-contracts.js +21 -0
  579. package/dist/runtime/locations/internal-store-contracts.d.ts +35 -0
  580. package/dist/runtime/locations/internal-store-contracts.js +2 -0
  581. package/dist/runtime/locations/key-codec.d.ts +13 -0
  582. package/dist/runtime/locations/key-codec.js +41 -0
  583. package/dist/runtime/locations/lease-tracker.d.ts +36 -0
  584. package/dist/runtime/locations/lease-tracker.js +155 -0
  585. package/dist/runtime/locations/lifecycle-runtime.d.ts +19 -0
  586. package/dist/runtime/locations/lifecycle-runtime.js +2 -0
  587. package/dist/runtime/locations/lifecycle.d.ts +40 -0
  588. package/dist/runtime/locations/lifecycle.js +120 -0
  589. package/dist/runtime/locations/location-store-repository.d.ts +72 -0
  590. package/dist/runtime/locations/location-store-repository.js +3198 -0
  591. package/dist/runtime/locations/relocation-blob.d.ts +7 -0
  592. package/dist/runtime/locations/relocation-blob.js +24 -0
  593. package/dist/runtime/locations/resolvers.d.ts +145 -0
  594. package/dist/runtime/locations/resolvers.js +693 -0
  595. package/dist/runtime/locations/runtime.d.ts +144 -0
  596. package/dist/runtime/locations/runtime.js +792 -0
  597. package/dist/runtime/locations/spot-location-claims.d.ts +36 -0
  598. package/dist/runtime/locations/spot-location-claims.js +305 -0
  599. package/dist/runtime/messaging/creation-payload-codec.d.ts +4 -0
  600. package/dist/runtime/messaging/creation-payload-codec.js +40 -0
  601. package/dist/runtime/messaging/framework-json-v1.d.ts +7 -0
  602. package/dist/runtime/messaging/framework-json-v1.js +296 -0
  603. package/dist/runtime/messaging/index.d.ts +1 -0
  604. package/dist/runtime/messaging/index.js +2 -0
  605. package/dist/runtime/messaging/packet-name.d.ts +4 -0
  606. package/dist/runtime/messaging/packet-name.js +79 -0
  607. package/dist/runtime/messaging/payload-codec.d.ts +25 -0
  608. package/dist/runtime/messaging/payload-codec.js +255 -0
  609. package/dist/runtime/messaging/submission-result.d.ts +15 -0
  610. package/dist/runtime/messaging/submission-result.js +37 -0
  611. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +395 -0
  612. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +645 -0
  613. package/dist/runtime/routing-id.d.ts +8 -0
  614. package/dist/runtime/routing-id.js +112 -0
  615. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +124 -0
  616. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +269 -0
  617. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +33 -0
  618. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +94 -0
  619. package/dist/runtime/spots/index.d.ts +247 -0
  620. package/dist/runtime/spots/index.js +2090 -0
  621. package/dist/runtime/spots/spot-activation-registry.d.ts +47 -0
  622. package/dist/runtime/spots/spot-activation-registry.js +272 -0
  623. package/dist/runtime/spots/spot-activation-state.d.ts +104 -0
  624. package/dist/runtime/spots/spot-activation-state.js +288 -0
  625. package/dist/runtime/spots/spot-activation.d.ts +89 -0
  626. package/dist/runtime/spots/spot-activation.js +601 -0
  627. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +20 -0
  628. package/dist/runtime/spots/spot-actor-admission-coordinator.js +194 -0
  629. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +83 -0
  630. package/dist/runtime/spots/spot-actor-join-dispatch.js +185 -0
  631. package/dist/runtime/spots/spot-actor-lifecycle-drain.d.ts +22 -0
  632. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +51 -0
  633. package/dist/runtime/spots/spot-actor-membership.d.ts +39 -0
  634. package/dist/runtime/spots/spot-actor-membership.js +179 -0
  635. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +91 -0
  636. package/dist/runtime/spots/spot-actor-packet-dispatch.js +315 -0
  637. package/dist/runtime/spots/spot-actor-packet-drain.d.ts +40 -0
  638. package/dist/runtime/spots/spot-actor-packet-drain.js +235 -0
  639. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +18 -0
  640. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +110 -0
  641. package/dist/runtime/spots/spot-closing.d.ts +2 -0
  642. package/dist/runtime/spots/spot-closing.js +30 -0
  643. package/dist/runtime/spots/spot-context.d.ts +46 -0
  644. package/dist/runtime/spots/spot-context.js +113 -0
  645. package/dist/runtime/spots/spot-entry-activation.d.ts +107 -0
  646. package/dist/runtime/spots/spot-entry-activation.js +342 -0
  647. package/dist/runtime/spots/spot-handle.d.ts +28 -0
  648. package/dist/runtime/spots/spot-handle.js +38 -0
  649. package/dist/runtime/spots/spot-handler-registry.d.ts +52 -0
  650. package/dist/runtime/spots/spot-handler-registry.js +155 -0
  651. package/dist/runtime/spots/spot-lifecycle-metrics.d.ts +8 -0
  652. package/dist/runtime/spots/spot-lifecycle-metrics.js +16 -0
  653. package/dist/runtime/spots/spot-location-claim.d.ts +25 -0
  654. package/dist/runtime/spots/spot-location-claim.js +55 -0
  655. package/dist/runtime/spots/spot-manager-internal-contracts.d.ts +10 -0
  656. package/dist/runtime/spots/spot-manager-internal-contracts.js +2 -0
  657. package/dist/runtime/spots/spot-manager-public.d.ts +32 -0
  658. package/dist/runtime/spots/spot-manager-public.js +219 -0
  659. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +26 -0
  660. package/dist/runtime/spots/spot-native-actor-join-admission.js +105 -0
  661. package/dist/runtime/spots/spot-native-flags.d.ts +2 -0
  662. package/dist/runtime/spots/spot-native-flags.js +5 -0
  663. package/dist/runtime/spots/spot-node-autoconnect.d.ts +23 -0
  664. package/dist/runtime/spots/spot-node-autoconnect.js +246 -0
  665. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +137 -0
  666. package/dist/runtime/spots/spot-node-runtime-manager.js +1111 -0
  667. package/dist/runtime/spots/spot-outbound.d.ts +78 -0
  668. package/dist/runtime/spots/spot-outbound.js +460 -0
  669. package/dist/runtime/spots/spot-provider.d.ts +4 -0
  670. package/dist/runtime/spots/spot-provider.js +28 -0
  671. package/dist/runtime/spots/spot-publisher-transport.d.ts +14 -0
  672. package/dist/runtime/spots/spot-publisher-transport.js +28 -0
  673. package/dist/runtime/spots/spot-remote-codec.d.ts +50 -0
  674. package/dist/runtime/spots/spot-remote-codec.js +190 -0
  675. package/dist/runtime/spots/spot-remote-route-codec.d.ts +47 -0
  676. package/dist/runtime/spots/spot-remote-route-codec.js +168 -0
  677. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +25 -0
  678. package/dist/runtime/spots/spot-route-packet-dispatch.js +238 -0
  679. package/dist/runtime/spots/spot-route-replies.d.ts +17 -0
  680. package/dist/runtime/spots/spot-route-replies.js +76 -0
  681. package/dist/runtime/spots/spot-route-reply-wire.d.ts +10 -0
  682. package/dist/runtime/spots/spot-route-reply-wire.js +6 -0
  683. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +36 -0
  684. package/dist/runtime/spots/spot-routed-actor-admission.js +240 -0
  685. package/dist/runtime/spots/spot-routed-bound-session-dispatch.d.ts +19 -0
  686. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +46 -0
  687. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +54 -0
  688. package/dist/runtime/spots/spot-routed-frame-dispatch.js +162 -0
  689. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +43 -0
  690. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +152 -0
  691. package/dist/runtime/spots/spot-routing-internal.d.ts +28 -0
  692. package/dist/runtime/spots/spot-routing-internal.js +2 -0
  693. package/dist/runtime/spots/spot-runtime-ports.d.ts +64 -0
  694. package/dist/runtime/spots/spot-runtime-ports.js +2 -0
  695. package/dist/runtime/spots/spot-serial-executor.d.ts +38 -0
  696. package/dist/runtime/spots/spot-serial-executor.js +133 -0
  697. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +54 -0
  698. package/dist/runtime/spots/spot-serial-turn-executor.js +219 -0
  699. package/dist/runtime/spots/spot-subscription-dispatch.d.ts +32 -0
  700. package/dist/runtime/spots/spot-subscription-dispatch.js +194 -0
  701. package/dist/runtime/spots/spot-timer.d.ts +110 -0
  702. package/dist/runtime/spots/spot-timer.js +419 -0
  703. package/dist/runtime/streams/actor-session-binding-registry.d.ts +193 -0
  704. package/dist/runtime/streams/actor-session-binding-registry.js +1127 -0
  705. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +20 -0
  706. package/dist/runtime/streams/actor-session-binding-runtime-owner.js +19 -0
  707. package/dist/runtime/streams/actor-session-lifecycle-coordinator.d.ts +4 -0
  708. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +24 -0
  709. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +29 -0
  710. package/dist/runtime/streams/bound-actor-relay-sender.js +181 -0
  711. package/dist/runtime/streams/bound-session-response-target.d.ts +25 -0
  712. package/dist/runtime/streams/bound-session-response-target.js +54 -0
  713. package/dist/runtime/streams/bound-session-service.d.ts +48 -0
  714. package/dist/runtime/streams/bound-session-service.js +201 -0
  715. package/dist/runtime/streams/index.d.ts +152 -0
  716. package/dist/runtime/streams/index.js +338 -0
  717. package/dist/runtime/streams/managed-stream.d.ts +53 -0
  718. package/dist/runtime/streams/managed-stream.js +329 -0
  719. package/dist/runtime/streams/native-fallback-bound-session.d.ts +24 -0
  720. package/dist/runtime/streams/native-fallback-bound-session.js +201 -0
  721. package/dist/runtime/streams/protocol.d.ts +67 -0
  722. package/dist/runtime/streams/protocol.js +244 -0
  723. package/dist/runtime/streams/session-actor-coordinator.d.ts +56 -0
  724. package/dist/runtime/streams/session-actor-coordinator.js +371 -0
  725. package/dist/runtime/streams/session-calls.d.ts +59 -0
  726. package/dist/runtime/streams/session-calls.js +123 -0
  727. package/dist/runtime/streams/session-context.d.ts +108 -0
  728. package/dist/runtime/streams/session-context.js +377 -0
  729. package/dist/runtime/streams/session-local-actors.d.ts +10 -0
  730. package/dist/runtime/streams/session-local-actors.js +26 -0
  731. package/dist/runtime/streams/session-provider.d.ts +4 -0
  732. package/dist/runtime/streams/session-provider.js +30 -0
  733. package/dist/runtime/streams/session-requests.d.ts +25 -0
  734. package/dist/runtime/streams/session-requests.js +100 -0
  735. package/dist/runtime/streams/session-serial-executor.d.ts +12 -0
  736. package/dist/runtime/streams/session-serial-executor.js +58 -0
  737. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +62 -0
  738. package/dist/runtime/streams/stream-binding-runtime-ports.js +2 -0
  739. package/dist/runtime/streams/stream-frame-factory.d.ts +44 -0
  740. package/dist/runtime/streams/stream-frame-factory.js +149 -0
  741. package/dist/runtime/streams/stream-message-utils.d.ts +5 -0
  742. package/dist/runtime/streams/stream-message-utils.js +74 -0
  743. package/dist/runtime/streams/stream-session-runtime.d.ts +166 -0
  744. package/dist/runtime/streams/stream-session-runtime.js +1144 -0
  745. package/dist/runtime/workers/index.d.ts +38 -0
  746. package/dist/runtime/workers/index.js +474 -0
  747. package/package.json +19 -0
  748. package/src/contracts/Actors/ZLinkActor.ts +8 -0
  749. package/src/contracts/Actors/ZLinkActorClient.ts +18 -0
  750. package/src/contracts/Actors/ZLinkActorContext.ts +15 -0
  751. package/src/contracts/Actors/ZLinkActorFactory.ts +41 -0
  752. package/src/contracts/Actors/ZLinkActorManager.ts +31 -0
  753. package/src/contracts/Actors/index.ts +5 -0
  754. package/src/contracts/Channels/Calls.ts +33 -0
  755. package/src/contracts/Channels/IZLinkChannelClient.ts +6 -0
  756. package/src/contracts/Channels/IZLinkFanoutClient.ts +13 -0
  757. package/src/contracts/Channels/RouteCalls.ts +13 -0
  758. package/src/contracts/Channels/index.ts +4 -0
  759. package/src/contracts/Codecs/IZLinkCodecRegistryBuilder.ts +22 -0
  760. package/src/contracts/Codecs/ZLinkMessageSerializer.ts +6 -0
  761. package/src/contracts/Codecs/index.ts +2 -0
  762. package/src/contracts/Common/ActorRef.ts +8 -0
  763. package/src/contracts/Common/CoreTypes.ts +6 -0
  764. package/src/contracts/Common/Message.ts +9 -0
  765. package/src/contracts/Common/ZLinkEncodedPayload.ts +47 -0
  766. package/src/contracts/Common/ZLinkMessage.ts +135 -0
  767. package/src/contracts/Common/ZLinkMessageMetadata.ts +77 -0
  768. package/src/contracts/Common/ZLinkProviderResolver.ts +6 -0
  769. package/src/contracts/Common/encoded-payload-storage.ts +16 -0
  770. package/src/contracts/Common/index.ts +5 -0
  771. package/src/contracts/Configuration/Builders.ts +200 -0
  772. package/src/contracts/Configuration/CodecContentType.ts +68 -0
  773. package/src/contracts/Configuration/CodecSerializerSelection.ts +28 -0
  774. package/src/contracts/Configuration/Configs.ts +27 -0
  775. package/src/contracts/Configuration/ConfigurationException.ts +6 -0
  776. package/src/contracts/Configuration/Connections.ts +5 -0
  777. package/src/contracts/Configuration/DiagnosticsValidation.ts +25 -0
  778. package/src/contracts/Configuration/EndpointNotation.ts +232 -0
  779. package/src/contracts/Configuration/InternalDefaults.ts +13 -0
  780. package/src/contracts/Configuration/ObjectRoles.ts +47 -0
  781. package/src/contracts/Configuration/Registration.ts +191 -0
  782. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +76 -0
  783. package/src/contracts/Configuration/RegistrationBuilders.ts +1705 -0
  784. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +118 -0
  785. package/src/contracts/Configuration/RegistrationNormalizers.ts +404 -0
  786. package/src/contracts/Configuration/RegistrationTypes.ts +499 -0
  787. package/src/contracts/Configuration/RegistrationValidators.ts +698 -0
  788. package/src/contracts/Configuration/RouteChannelInternalState.ts +50 -0
  789. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +91 -0
  790. package/src/contracts/Configuration/SendTimeoutValidation.ts +15 -0
  791. package/src/contracts/Configuration/TimerRegistrationValidator.ts +37 -0
  792. package/src/contracts/Configuration/index.ts +35 -0
  793. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +222 -0
  794. package/src/contracts/Dispatch/ZLinkFlowOrigin.ts +1 -0
  795. package/src/contracts/Dispatch/index.ts +2 -0
  796. package/src/contracts/Errors/ZLinkFrameworkException.ts +27 -0
  797. package/src/contracts/Errors/index.ts +4 -0
  798. package/src/contracts/Eventing/Metrics.ts +27 -0
  799. package/src/contracts/Eventing/index.ts +1 -0
  800. package/src/contracts/Handlers/Attributes.ts +111 -0
  801. package/src/contracts/Handlers/Contexts.ts +21 -0
  802. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +69 -0
  803. package/src/contracts/Handlers/IZLinkHandlerFilter.ts +22 -0
  804. package/src/contracts/Handlers/JsonContract.ts +172 -0
  805. package/src/contracts/Handlers/ZLinkHandlerFilterNext.ts +1 -0
  806. package/src/contracts/Handlers/index.ts +17 -0
  807. package/src/contracts/Locations/ActorTransfer.ts +84 -0
  808. package/src/contracts/Locations/Authority.ts +308 -0
  809. package/src/contracts/Locations/Diagnostics.ts +48 -0
  810. package/src/contracts/Locations/Keys.ts +93 -0
  811. package/src/contracts/Locations/Models.ts +7 -0
  812. package/src/contracts/Locations/Options.ts +42 -0
  813. package/src/contracts/Locations/Readiness.ts +11 -0
  814. package/src/contracts/Locations/RelocationStore.ts +51 -0
  815. package/src/contracts/Locations/Resolvers.ts +8 -0
  816. package/src/contracts/Locations/Rows.ts +164 -0
  817. package/src/contracts/Locations/RuntimeQuery.ts +56 -0
  818. package/src/contracts/Locations/Stores.ts +92 -0
  819. package/src/contracts/Locations/Values.ts +32 -0
  820. package/src/contracts/Locations/Watch.ts +16 -0
  821. package/src/contracts/Locations/Writes.ts +56 -0
  822. package/src/contracts/Locations/index.ts +48 -0
  823. package/src/contracts/RouteMesh/Contracts.ts +145 -0
  824. package/src/contracts/RouteMesh/RuntimeTopology.ts +201 -0
  825. package/src/contracts/RouteMesh/index.ts +2 -0
  826. package/src/contracts/Spots/Builders.ts +11 -0
  827. package/src/contracts/Spots/Contracts.ts +150 -0
  828. package/src/contracts/Spots/SpotKind.ts +24 -0
  829. package/src/contracts/Spots/ZLinkSpot.ts +88 -0
  830. package/src/contracts/Spots/index.ts +3 -0
  831. package/src/contracts/Streams/BoundSessionContracts.ts +9 -0
  832. package/src/contracts/Streams/IZLinkSession.ts +52 -0
  833. package/src/contracts/Streams/IZLinkSessionActor.ts +17 -0
  834. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +11 -0
  835. package/src/contracts/Streams/IZLinkStream.ts +10 -0
  836. package/src/contracts/Streams/ZLinkMessageMetadata.ts +1 -0
  837. package/src/contracts/Streams/ZLinkStreamCompression.ts +9 -0
  838. package/src/contracts/Streams/ZLinkStreamError.ts +9 -0
  839. package/src/contracts/Streams/index.ts +8 -0
  840. package/src/contracts/Timers/IZLinkTimer.ts +5 -0
  841. package/src/contracts/Timers/ZLinkTimerOptions.ts +11 -0
  842. package/src/contracts/Timers/ZLinkTimerTick.ts +12 -0
  843. package/src/contracts/Timers/index.ts +3 -0
  844. package/src/contracts/index.ts +71 -0
  845. package/src/index.ts +1 -0
  846. package/src/internal.ts +29 -0
  847. package/src/location-store-integration.ts +51 -0
  848. package/src/nest-integration.ts +251 -0
  849. package/src/runtime/abort.ts +70 -0
  850. package/src/runtime/actors/actor-authority-payload-codec.ts +454 -0
  851. package/src/runtime/actors/actor-authority-publication.ts +277 -0
  852. package/src/runtime/actors/actor-client.ts +1018 -0
  853. package/src/runtime/actors/actor-context.ts +583 -0
  854. package/src/runtime/actors/actor-creation.ts +254 -0
  855. package/src/runtime/actors/actor-execution-context.ts +38 -0
  856. package/src/runtime/actors/actor-handoff.ts +1911 -0
  857. package/src/runtime/actors/actor-join-deferred-scope.ts +183 -0
  858. package/src/runtime/actors/actor-join-relocation.ts +39 -0
  859. package/src/runtime/actors/actor-lifecycle-snapshot.ts +90 -0
  860. package/src/runtime/actors/actor-local-native-join.ts +725 -0
  861. package/src/runtime/actors/actor-mailbox.ts +92 -0
  862. package/src/runtime/actors/actor-message-follow-context.ts +347 -0
  863. package/src/runtime/actors/actor-native-lookup.ts +38 -0
  864. package/src/runtime/actors/actor-packet-relay-wire.ts +223 -0
  865. package/src/runtime/actors/actor-remote-joiner.ts +238 -0
  866. package/src/runtime/actors/actor-remote-wire.ts +169 -0
  867. package/src/runtime/actors/actor-retry-delay.ts +37 -0
  868. package/src/runtime/actors/actor-routed-join-transport.ts +58 -0
  869. package/src/runtime/actors/actor-routed-json-request.ts +44 -0
  870. package/src/runtime/actors/actor-runtime-contracts.ts +126 -0
  871. package/src/runtime/actors/actor-runtime-state.ts +805 -0
  872. package/src/runtime/actors/actor-source-transfer.ts +62 -0
  873. package/src/runtime/actors/actor-transfer-registry.ts +112 -0
  874. package/src/runtime/actors/actor-transport-delivery-gate.ts +17 -0
  875. package/src/runtime/actors/bound-session-wire.ts +257 -0
  876. package/src/runtime/actors/deferred-join-accepted-journal.ts +1319 -0
  877. package/src/runtime/actors/index.ts +972 -0
  878. package/src/runtime/actors/post-commit-actor-binder.ts +70 -0
  879. package/src/runtime/actors/post-commit-actor-location.ts +114 -0
  880. package/src/runtime/actors/spot-actor-dispatch.ts +362 -0
  881. package/src/runtime/actors/transferred-actor-rollback.ts +123 -0
  882. package/src/runtime/admission.ts +192 -0
  883. package/src/runtime/application-jobs/application-ingress-record-owner.ts +216 -0
  884. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +10 -0
  885. package/src/runtime/application-jobs/application-job-queue-scope.ts +64 -0
  886. package/src/runtime/application-jobs/contracts.ts +26 -0
  887. package/src/runtime/application-jobs/receive-flow-controller.ts +188 -0
  888. package/src/runtime/backend/contracts/index.ts +765 -0
  889. package/src/runtime/backend/index.ts +9 -0
  890. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +73 -0
  891. package/src/runtime/backend/mesh-completion-table.ts +165 -0
  892. package/src/runtime/backend/mesh-dispatch-pump.ts +363 -0
  893. package/src/runtime/backend/mesh-record-dispatcher.ts +65 -0
  894. package/src/runtime/backend/node/index.ts +4 -0
  895. package/src/runtime/backend/node/node-backend-adapter-factory.ts +204 -0
  896. package/src/runtime/backend/node/node-backend-adapter-support.ts +257 -0
  897. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +133 -0
  898. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +44 -0
  899. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +39 -0
  900. package/src/runtime/backend/node/node-raw-binding-port.contract.ts +21 -0
  901. package/src/runtime/backend/node/node-raw-binding-port.ts +518 -0
  902. package/src/runtime/backend/node/node-raw-mesh-backend.ts +2669 -0
  903. package/src/runtime/backend/node/node-socket-backend-adapter.ts +372 -0
  904. package/src/runtime/backend/node-backend-adapter.ts +19 -0
  905. package/src/runtime/backend/raw-binding-port.ts +69 -0
  906. package/src/runtime/backend/runtime-message.ts +51 -0
  907. package/src/runtime/backend/runtime-values.ts +107 -0
  908. package/src/runtime/channels/channel-autoconnect.ts +46 -0
  909. package/src/runtime/channels/channel-clients.ts +527 -0
  910. package/src/runtime/channels/channel-dispatch-pipeline.ts +408 -0
  911. package/src/runtime/channels/channel-dispatch-services.ts +234 -0
  912. package/src/runtime/channels/channel-dispatchers.ts +790 -0
  913. package/src/runtime/channels/channel-envelope-inspection.ts +125 -0
  914. package/src/runtime/channels/channel-envelope.ts +743 -0
  915. package/src/runtime/channels/channel-framework-packets.ts +8 -0
  916. package/src/runtime/channels/channel-multipart.ts +61 -0
  917. package/src/runtime/channels/channel-outbound-operations.ts +584 -0
  918. package/src/runtime/channels/channel-receive-loops.ts +901 -0
  919. package/src/runtime/channels/channel-receive-task-tracker.ts +39 -0
  920. package/src/runtime/channels/channel-runtime-lifecycle.ts +969 -0
  921. package/src/runtime/channels/channel-runtime-manager.ts +444 -0
  922. package/src/runtime/channels/channel-socket-options.ts +153 -0
  923. package/src/runtime/channels/channel-socket-registry.ts +1837 -0
  924. package/src/runtime/channels/channel-transports.ts +1154 -0
  925. package/src/runtime/channels/client-server-location-runtime.ts +576 -0
  926. package/src/runtime/channels/client-server-service-wire.ts +390 -0
  927. package/src/runtime/channels/dispatch-error-reporter.ts +165 -0
  928. package/src/runtime/channels/fanout-location-runtime.ts +459 -0
  929. package/src/runtime/channels/fanout-service-wire.ts +43 -0
  930. package/src/runtime/channels/handler-filter-scope.ts +29 -0
  931. package/src/runtime/channels/index.ts +45 -0
  932. package/src/runtime/channels/local-spot-route-transport.ts +59 -0
  933. package/src/runtime/channels/route-disconnected-error.ts +6 -0
  934. package/src/runtime/channels/route-member-snapshot.ts +55 -0
  935. package/src/runtime/channels/router-socket-spot-route-transport.ts +77 -0
  936. package/src/runtime/channels/source-spot-router.ts +89 -0
  937. package/src/runtime/channels/spot-direct-envelope.ts +44 -0
  938. package/src/runtime/channels/spot-node-route-transport.ts +92 -0
  939. package/src/runtime/channels/spot-route-bridge-transport.ts +75 -0
  940. package/src/runtime/channels/spot-route-dispatch-strategy.ts +329 -0
  941. package/src/runtime/channels/spot-route-target-resolver.ts +101 -0
  942. package/src/runtime/codecs/index.ts +69 -0
  943. package/src/runtime/configuration/index.ts +1 -0
  944. package/src/runtime/diagnostics/dispatch-error-port.ts +8 -0
  945. package/src/runtime/diagnostics/flow-context.ts +84 -0
  946. package/src/runtime/diagnostics/index.ts +441 -0
  947. package/src/runtime/diagnostics/internal-event-contracts.ts +135 -0
  948. package/src/runtime/diagnostics/message-flow.ts +560 -0
  949. package/src/runtime/diagnostics/runtime-metrics.ts +601 -0
  950. package/src/runtime/diagnostics/runtime-observation-queue.ts +362 -0
  951. package/src/runtime/diagnostics/topology-runtime-projections.ts +298 -0
  952. package/src/runtime/execution/index.ts +466 -0
  953. package/src/runtime/execution/serial-execution-queue.ts +534 -0
  954. package/src/runtime/execution/serial-work-size.ts +31 -0
  955. package/src/runtime/execution/state-lane.ts +116 -0
  956. package/src/runtime/foundation/actor-join-recovery-codec.ts +465 -0
  957. package/src/runtime/foundation/event-loop-resources.ts +162 -0
  958. package/src/runtime/foundation/index.ts +18 -0
  959. package/src/runtime/foundation/message-follow-suppression-registry.ts +130 -0
  960. package/src/runtime/foundation/operation-identity.ts +49 -0
  961. package/src/runtime/foundation/operation-registry.ts +162 -0
  962. package/src/runtime/foundation/raw-service-mesh-runtime.ts +1771 -0
  963. package/src/runtime/foundation/route-mesh-connection-policy.ts +28 -0
  964. package/src/runtime/foundation/runtime-state-projections.ts +68 -0
  965. package/src/runtime/foundation/service-authority-payload-codec.ts +566 -0
  966. package/src/runtime/foundation/service-discovery-registry.ts +263 -0
  967. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +329 -0
  968. package/src/runtime/foundation/service-liveness-registry.ts +144 -0
  969. package/src/runtime/foundation/service-mailbox.ts +369 -0
  970. package/src/runtime/foundation/service-maintenance-runtime.ts +242 -0
  971. package/src/runtime/foundation/service-metadata-codec.ts +75 -0
  972. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +218 -0
  973. package/src/runtime/foundation/service-relocation-coordinator.ts +37 -0
  974. package/src/runtime/foundation/service-relocation-object-owner.ts +428 -0
  975. package/src/runtime/foundation/service-relocation-runtime.ts +1407 -0
  976. package/src/runtime/foundation/service-runtime-contracts.ts +423 -0
  977. package/src/runtime/foundation/service-session-binding-ingress-port.ts +45 -0
  978. package/src/runtime/foundation/service-stateful-registry.ts +664 -0
  979. package/src/runtime/foundation/service-stateful-runtime.ts +5753 -0
  980. package/src/runtime/foundation/service-stateful-wire-codec.ts +3008 -0
  981. package/src/runtime/foundation/service-topology-registry.ts +599 -0
  982. package/src/runtime/foundation/service-weighted-selection.ts +166 -0
  983. package/src/runtime/foundation/service-wire-binary-primitives.ts +80 -0
  984. package/src/runtime/foundation/service-wire-codec.ts +91 -0
  985. package/src/runtime/foundation/service-wire-constants.generated.ts +131 -0
  986. package/src/runtime/foundation/service-wire-m6a-codec.ts +647 -0
  987. package/src/runtime/framework-errors-internal.ts +338 -0
  988. package/src/runtime/handlers/handler-instance-scope.ts +372 -0
  989. package/src/runtime/handlers/index.ts +93 -0
  990. package/src/runtime/host/actor-packet-relay.ts +1070 -0
  991. package/src/runtime/host/actor-placement-coordinator.ts +573 -0
  992. package/src/runtime/host/actor-runtime-options-factory.ts +282 -0
  993. package/src/runtime/host/actor-transfer-authority-runtime.ts +225 -0
  994. package/src/runtime/host/actor-transfer-runtime.ts +1958 -0
  995. package/src/runtime/host/application-job-queue.ts +518 -0
  996. package/src/runtime/host/bound-session-relay.ts +94 -0
  997. package/src/runtime/host/bounded-replay-map.ts +42 -0
  998. package/src/runtime/host/channel-runtime-options-factory.ts +104 -0
  999. package/src/runtime/host/entry-actor-runtime.ts +115 -0
  1000. package/src/runtime/host/host-capacity-status.ts +103 -0
  1001. package/src/runtime/host/index.ts +3492 -0
  1002. package/src/runtime/host/instance-activation-authority.ts +658 -0
  1003. package/src/runtime/host/location-runtime-owner.ts +313 -0
  1004. package/src/runtime/host/mesh-router-resolver.ts +114 -0
  1005. package/src/runtime/host/relocation-direct-transfer.ts +273 -0
  1006. package/src/runtime/host/relocation-integrity-fault-gate.ts +8 -0
  1007. package/src/runtime/host/relocation-state-adapter.ts +24 -0
  1008. package/src/runtime/host/remote-actor-join-receiver.ts +264 -0
  1009. package/src/runtime/host/remote-actor-packet-target-store.ts +244 -0
  1010. package/src/runtime/host/remote-bound-session-relay.ts +900 -0
  1011. package/src/runtime/host/route-mesh-runtime-options.ts +46 -0
  1012. package/src/runtime/host/route-mesh-runtime.ts +891 -0
  1013. package/src/runtime/host/runtime-shutdown.ts +101 -0
  1014. package/src/runtime/host/service-relocation-control.ts +28 -0
  1015. package/src/runtime/host/service-relocation-host-runtime.ts +5817 -0
  1016. package/src/runtime/host/spot-address-transport.ts +997 -0
  1017. package/src/runtime/host/spot-node-runtime-options-factory.ts +82 -0
  1018. package/src/runtime/host/spot-runtime-options-factory.ts +286 -0
  1019. package/src/runtime/host/stateful-authority-route-runtime.ts +662 -0
  1020. package/src/runtime/host/user-spot-creation-coordinator.ts +1176 -0
  1021. package/src/runtime/locations/actor-location-claims.ts +426 -0
  1022. package/src/runtime/locations/actor-session-route-claims.ts +64 -0
  1023. package/src/runtime/locations/aggregate-inventory-store.ts +581 -0
  1024. package/src/runtime/locations/authority-key-codec.ts +80 -0
  1025. package/src/runtime/locations/auto-connect-loop.ts +131 -0
  1026. package/src/runtime/locations/auto-connect-planner.ts +178 -0
  1027. package/src/runtime/locations/auto-connect-reconciler.ts +425 -0
  1028. package/src/runtime/locations/auto-connect-types.ts +62 -0
  1029. package/src/runtime/locations/auto-connect.ts +4 -0
  1030. package/src/runtime/locations/canonical-codec.ts +54 -0
  1031. package/src/runtime/locations/domain-store-contract.ts +149 -0
  1032. package/src/runtime/locations/in-memory-authority-store.ts +1172 -0
  1033. package/src/runtime/locations/in-memory-location-store.ts +1467 -0
  1034. package/src/runtime/locations/in-memory-provider-location-store.ts +213 -0
  1035. package/src/runtime/locations/index.ts +11 -0
  1036. package/src/runtime/locations/internal-location-contracts.ts +22 -0
  1037. package/src/runtime/locations/internal-store-contracts.ts +90 -0
  1038. package/src/runtime/locations/key-codec.ts +61 -0
  1039. package/src/runtime/locations/lease-tracker.ts +221 -0
  1040. package/src/runtime/locations/lifecycle-runtime.ts +44 -0
  1041. package/src/runtime/locations/lifecycle.ts +272 -0
  1042. package/src/runtime/locations/location-store-repository.ts +4211 -0
  1043. package/src/runtime/locations/relocation-blob.ts +36 -0
  1044. package/src/runtime/locations/resolvers.ts +1054 -0
  1045. package/src/runtime/locations/runtime.ts +1126 -0
  1046. package/src/runtime/locations/spot-location-claims.ts +435 -0
  1047. package/src/runtime/messaging/creation-payload-codec.ts +59 -0
  1048. package/src/runtime/messaging/framework-json-v1.ts +307 -0
  1049. package/src/runtime/messaging/index.ts +1 -0
  1050. package/src/runtime/messaging/packet-name.ts +94 -0
  1051. package/src/runtime/messaging/payload-codec.ts +418 -0
  1052. package/src/runtime/messaging/submission-result.ts +61 -0
  1053. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +189 -0
  1054. package/src/runtime/routing-id.ts +125 -0
  1055. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +418 -0
  1056. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +147 -0
  1057. package/src/runtime/spots/index.ts +3303 -0
  1058. package/src/runtime/spots/spot-activation-registry.ts +335 -0
  1059. package/src/runtime/spots/spot-activation-state.ts +414 -0
  1060. package/src/runtime/spots/spot-activation.ts +1027 -0
  1061. package/src/runtime/spots/spot-actor-admission-coordinator.ts +354 -0
  1062. package/src/runtime/spots/spot-actor-join-dispatch.ts +303 -0
  1063. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +79 -0
  1064. package/src/runtime/spots/spot-actor-membership.ts +266 -0
  1065. package/src/runtime/spots/spot-actor-packet-dispatch.ts +593 -0
  1066. package/src/runtime/spots/spot-actor-packet-drain.ts +328 -0
  1067. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +162 -0
  1068. package/src/runtime/spots/spot-closing.ts +34 -0
  1069. package/src/runtime/spots/spot-context.ts +259 -0
  1070. package/src/runtime/spots/spot-entry-activation.ts +551 -0
  1071. package/src/runtime/spots/spot-handle.ts +101 -0
  1072. package/src/runtime/spots/spot-handler-registry.ts +273 -0
  1073. package/src/runtime/spots/spot-lifecycle-metrics.ts +15 -0
  1074. package/src/runtime/spots/spot-location-claim.ts +86 -0
  1075. package/src/runtime/spots/spot-manager-internal-contracts.ts +11 -0
  1076. package/src/runtime/spots/spot-manager-public.ts +361 -0
  1077. package/src/runtime/spots/spot-native-actor-join-admission.ts +151 -0
  1078. package/src/runtime/spots/spot-native-flags.ts +4 -0
  1079. package/src/runtime/spots/spot-node-autoconnect.ts +325 -0
  1080. package/src/runtime/spots/spot-node-runtime-manager.ts +1573 -0
  1081. package/src/runtime/spots/spot-outbound.ts +761 -0
  1082. package/src/runtime/spots/spot-provider.ts +36 -0
  1083. package/src/runtime/spots/spot-publisher-transport.ts +69 -0
  1084. package/src/runtime/spots/spot-remote-codec.ts +308 -0
  1085. package/src/runtime/spots/spot-remote-route-codec.ts +284 -0
  1086. package/src/runtime/spots/spot-route-packet-dispatch.ts +359 -0
  1087. package/src/runtime/spots/spot-route-replies.ts +126 -0
  1088. package/src/runtime/spots/spot-route-reply-wire.ts +15 -0
  1089. package/src/runtime/spots/spot-routed-actor-admission.ts +351 -0
  1090. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +132 -0
  1091. package/src/runtime/spots/spot-routed-frame-dispatch.ts +250 -0
  1092. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +254 -0
  1093. package/src/runtime/spots/spot-routing-internal.ts +33 -0
  1094. package/src/runtime/spots/spot-runtime-ports.ts +196 -0
  1095. package/src/runtime/spots/spot-serial-executor.ts +170 -0
  1096. package/src/runtime/spots/spot-serial-turn-executor.ts +319 -0
  1097. package/src/runtime/spots/spot-subscription-dispatch.ts +252 -0
  1098. package/src/runtime/spots/spot-timer.ts +609 -0
  1099. package/src/runtime/streams/actor-session-binding-registry.ts +1691 -0
  1100. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +78 -0
  1101. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +20 -0
  1102. package/src/runtime/streams/bound-actor-relay-sender.ts +275 -0
  1103. package/src/runtime/streams/bound-session-response-target.ts +91 -0
  1104. package/src/runtime/streams/bound-session-service.ts +500 -0
  1105. package/src/runtime/streams/index.ts +706 -0
  1106. package/src/runtime/streams/managed-stream.ts +509 -0
  1107. package/src/runtime/streams/native-fallback-bound-session.ts +321 -0
  1108. package/src/runtime/streams/protocol.ts +291 -0
  1109. package/src/runtime/streams/session-actor-coordinator.ts +605 -0
  1110. package/src/runtime/streams/session-calls.ts +221 -0
  1111. package/src/runtime/streams/session-context.ts +609 -0
  1112. package/src/runtime/streams/session-local-actors.ts +30 -0
  1113. package/src/runtime/streams/session-provider.ts +50 -0
  1114. package/src/runtime/streams/session-requests.ts +109 -0
  1115. package/src/runtime/streams/session-serial-executor.ts +97 -0
  1116. package/src/runtime/streams/stream-binding-runtime-ports.ts +106 -0
  1117. package/src/runtime/streams/stream-frame-factory.ts +255 -0
  1118. package/src/runtime/streams/stream-message-utils.ts +89 -0
  1119. package/src/runtime/streams/stream-session-runtime.ts +1420 -0
  1120. package/src/runtime/workers/index.ts +580 -0
  1121. package/tsconfig.json +17 -0
@@ -0,0 +1,1245 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZLinkActorTransferRuntime = void 0;
4
+ exports.committedActorOwnerFence = committedActorOwnerFence;
5
+ const node_crypto_1 = require("node:crypto");
6
+ const contracts_1 = require("../../contracts");
7
+ const authority_key_codec_1 = require("../locations/authority-key-codec");
8
+ const actors_1 = require("../actors");
9
+ const actor_retry_delay_1 = require("../actors/actor-retry-delay");
10
+ const routing_id_1 = require("../routing-id");
11
+ const payload_codec_1 = require("../messaging/payload-codec");
12
+ const actor_message_follow_context_1 = require("../actors/actor-message-follow-context");
13
+ const service_stateful_wire_codec_1 = require("../foundation/service-stateful-wire-codec");
14
+ const operation_identity_1 = require("../foundation/operation-identity");
15
+ const bounded_replay_map_1 = require("./bounded-replay-map");
16
+ const DEFERRED_JOIN_TERMINAL_CAPACITY = 4096;
17
+ /** Converts only committed actor authority evidence into a Message Follow fence. */
18
+ function committedActorOwnerFence(actorId, targetActorRef, authority) {
19
+ if (targetActorRef.actorId !== actorId
20
+ || targetActorRef.objectGeneration <= 0n
21
+ || authority.objectGeneration !== targetActorRef.objectGeneration
22
+ || authority.allocation.state !== 'active'
23
+ || authority.allocation.objectKind !== 'actor'
24
+ || authority.allocation.descriptor.meshName !== targetActorRef.meshName
25
+ || !(0, routing_id_1.routingIdsEqual)(authority.allocation.descriptor.rid, targetActorRef.nodeRid)
26
+ || authority.ownerId.length === 0
27
+ || authority.ownerLeaseGeneration <= 0n
28
+ || authority.allocation.descriptorLifecycleGeneration <= 0n
29
+ || authority.authorityOwnerGeneration <= 0n) {
30
+ throw new Error(`Actor '${actorId}' handoff target does not match the committed authority snapshot.`);
31
+ }
32
+ return (0, actor_message_follow_context_1.ownerFence)({
33
+ ownerId: authority.ownerId,
34
+ ownerLeaseGeneration: authority.ownerLeaseGeneration,
35
+ nodeRid: String(authority.allocation.descriptor.rid),
36
+ nodeRidHex: (0, routing_id_1.encodeRoutingIdStorageHex)(authority.allocation.descriptor.rid),
37
+ nodeGeneration: authority.allocation.descriptorLifecycleGeneration,
38
+ authorityOwnerGeneration: authority.authorityOwnerGeneration
39
+ });
40
+ }
41
+ function requireSourceObjectGeneration(actorId, state) {
42
+ const generation = state.nativeActorRef?.generation;
43
+ if (generation === undefined || generation <= 0n) {
44
+ throw new Error(`Actor '${actorId}' handoff requires a positive source ObjectGeneration.`);
45
+ }
46
+ return generation;
47
+ }
48
+ function createHandoffReplayGate() {
49
+ let open;
50
+ const start = new Promise(resolve => {
51
+ open = resolve;
52
+ });
53
+ return { start, open };
54
+ }
55
+ class ZLinkActorTransferRuntime {
56
+ options;
57
+ sourceDepartureTasks = new Map();
58
+ coreSourceLeaves = new Map();
59
+ activeDeferredJoinTerminals = new Map();
60
+ deferredJoinTerminals = new bounded_replay_map_1.BoundedReplayMap(DEFERRED_JOIN_TERMINAL_CAPACITY);
61
+ constructor(options) {
62
+ this.options = options;
63
+ }
64
+ beginDeferredActorHandoff(actor, state, operationId) {
65
+ const actorId = actor.context.actorId;
66
+ this.options.actorHandoff.beginProvisional(actorId, operationId, requireSourceObjectGeneration(actorId, state));
67
+ }
68
+ promoteDeferredActorHandoff(actor, _state, operationId) {
69
+ this.options.actorHandoff.promoteProvisional(actor.context.actorId, operationId);
70
+ }
71
+ async completeDeferredActorHandoff(actor, target, _targetActorRef, operationId) {
72
+ const actorId = actor.context.actorId;
73
+ if (!this.options.actorHandoff.isProvisional(actorId))
74
+ return;
75
+ const manager = this.options.spotManager();
76
+ if (manager === undefined) {
77
+ throw new Error(`Actor '${actorId}' same-node Join has no local Spot manager.`);
78
+ }
79
+ const admitted = this.options.actorHandoff.admitDeferredPrefix(actorId, operationId, drain => manager.admitRoutedActorPacketPrefix(target.spotId, actorId, drain), this.options.prepareApplicationJob);
80
+ void this.observeHandoffReplay(admitted.terminal);
81
+ }
82
+ async cancelDeferredActorHandoff(actor, _state, operationId) {
83
+ const admitted = this.admitDeferredSourcePrefix(actor, _state, operationId);
84
+ void this.observeHandoffReplay(admitted.terminal);
85
+ }
86
+ async prepareDeferredJoinAccepted(actorId, operationId, actorRef, rawReply, replyContentType, signal, canonicalInventoryDigest) {
87
+ return await this.requireDeferredJoinJournal().prepare(actorId, operationId, actorRef, rawReply, replyContentType, signal, canonicalInventoryDigest);
88
+ }
89
+ async isDeferredJoinAcceptedRootPublication(reference, checksumCrc32c, expected, signal) {
90
+ const relocation = this.options.relocationStore();
91
+ return relocation === undefined
92
+ ? false
93
+ : await (0, actors_1.isDeferredJoinAcceptedRootPublication)(relocation, reference, checksumCrc32c, expected, signal);
94
+ }
95
+ async discardDeferredJoinAccepted(root, signal) {
96
+ await this.requireDeferredJoinJournal().discardPrepared(root, signal);
97
+ }
98
+ markDeferredJoinAcceptedCommitted(root, actorRef, signal) {
99
+ return this.requireDeferredJoinJournal().markCommitted(root, actorRef, signal);
100
+ }
101
+ async commitAndDeliverDeferredJoinAccepted(root, actor, actorRef, submitMailbox, signal) {
102
+ const terminalKey = deferredJoinTerminalKey(root);
103
+ const terminal = this.deferredJoinTerminals.get(terminalKey);
104
+ if (terminal !== undefined) {
105
+ this.deferredJoinTerminals.touch(terminalKey);
106
+ return terminal;
107
+ }
108
+ const active = this.activeDeferredJoinTerminals.get(terminalKey);
109
+ if (active !== undefined)
110
+ return await waitForOperation(active, signal);
111
+ const completion = this.commitAndDeliverDeferredJoinAcceptedCore(root, actor, actorRef, submitMailbox);
112
+ this.activeDeferredJoinTerminals.set(terminalKey, completion);
113
+ void completion.then(completed => {
114
+ this.deferredJoinTerminals.remember(terminalKey, completed);
115
+ if (this.activeDeferredJoinTerminals.get(terminalKey) === completion) {
116
+ this.activeDeferredJoinTerminals.delete(terminalKey);
117
+ }
118
+ }, () => {
119
+ if (this.activeDeferredJoinTerminals.get(terminalKey) === completion) {
120
+ this.activeDeferredJoinTerminals.delete(terminalKey);
121
+ }
122
+ });
123
+ return await waitForOperation(completion, signal);
124
+ }
125
+ async commitAndDeliverDeferredJoinAcceptedCore(root, actor, actorRef, submitMailbox) {
126
+ const targetActorRef = this.options.actorManager()
127
+ ?.getState(actor.context.actorId)
128
+ ?.nativeActorRef;
129
+ const currentActorRef = targetActorRef === undefined
130
+ ? actorRef
131
+ : (0, actors_1.toFrameworkActorRef)(targetActorRef, actor.context.meshName);
132
+ let current = root.cursor === 'prepared'
133
+ ? await this.requireDeferredJoinJournal().markCommitted(root, currentActorRef)
134
+ : root;
135
+ if (current.cursor === 'delivered')
136
+ return current;
137
+ let lastError;
138
+ for (let attempt = 0; attempt < 3; attempt++) {
139
+ try {
140
+ current = await this.requireDeferredJoinJournal().deliver(current, actor, currentActorRef, submitMailbox);
141
+ return current;
142
+ }
143
+ catch (error) {
144
+ lastError = error;
145
+ if (attempt < 2) {
146
+ await new Promise(resolve => {
147
+ const timer = setTimeout(resolve, 10 << attempt);
148
+ timer.unref();
149
+ });
150
+ current = await this.requireDeferredJoinJournal().recover(currentActorRef.actorId) ?? current;
151
+ }
152
+ }
153
+ }
154
+ throw lastError;
155
+ }
156
+ requireDeferredJoinJournal() {
157
+ const authority = this.options.authorityStore();
158
+ const relocation = this.options.relocationStore();
159
+ if (authority === undefined || relocation === undefined) {
160
+ throw new Error('Cross-node deferred Actor Join requires Location and Relocation Stores.');
161
+ }
162
+ return new actors_1.ZLinkDeferredJoinAcceptedJournal(authority, relocation, this.options.messageSerializers);
163
+ }
164
+ async prepareSourceActorLeave(actor, sourceSpotId, signal) {
165
+ if (sourceSpotId !== undefined) {
166
+ const manager = this.options.spotManager();
167
+ if (manager !== undefined) {
168
+ await manager.prepareActorLeaveForTransfer(sourceSpotId, actor, signal);
169
+ return;
170
+ }
171
+ }
172
+ await this.options.notifyEntrySpotActorLeft(actor, signal);
173
+ }
174
+ async restoreSourceActor(actor, sourceSpotId, signal) {
175
+ if (sourceSpotId !== undefined) {
176
+ const manager = this.options.spotManager();
177
+ if (manager !== undefined) {
178
+ await manager.restoreActorAfterFailedTransfer(sourceSpotId, actor, signal);
179
+ return;
180
+ }
181
+ }
182
+ await this.options.restoreEntrySpotActorJoined(actor, signal);
183
+ }
184
+ async beginSourceActorMove(actor, state, deferredOperationId) {
185
+ if (deferredOperationId !== undefined && this.options.actorHandoff.isProvisional(actor.context.actorId)) {
186
+ this.promoteDeferredActorHandoff(actor, state, deferredOperationId);
187
+ }
188
+ state.beginMove();
189
+ if (!this.options.actorHandoff.isActive(actor.context.actorId)) {
190
+ this.options.actorHandoff.begin(actor.context.actorId, requireSourceObjectGeneration(actor.context.actorId, state));
191
+ }
192
+ try {
193
+ if (state.spotId !== undefined) {
194
+ relocationDebug('source_actor_move.await_spot_transfer', {
195
+ actorId: actor.context.actorId,
196
+ spotId: String(state.spotId)
197
+ });
198
+ await this.options.spotManager()?.beginActorTransfer(state.spotId, actor.context.actorId);
199
+ relocationDebug('source_actor_move.spot_transfer_complete', {
200
+ actorId: actor.context.actorId,
201
+ spotId: String(state.spotId)
202
+ });
203
+ }
204
+ }
205
+ catch (error) {
206
+ if (deferredOperationId === undefined) {
207
+ this.options.actorHandoff.cancel(actor.context.actorId);
208
+ }
209
+ else {
210
+ const admitted = this.admitDeferredSourcePrefix(actor, state, deferredOperationId);
211
+ void this.observeHandoffReplay(admitted.terminal);
212
+ }
213
+ state.endMove();
214
+ throw error;
215
+ }
216
+ }
217
+ async cancelSourceActorMove(actor, state, deferredOperationId, replayStart = Promise.resolve()) {
218
+ try {
219
+ if (state.spotId !== undefined) {
220
+ await this.options.spotManager()?.cancelActorTransfer(state.spotId, actor.context.actorId);
221
+ }
222
+ }
223
+ finally {
224
+ try {
225
+ if (deferredOperationId === undefined) {
226
+ const admitted = this.admitCanceledSourcePrefix(actor, state, replayStart);
227
+ void this.observeHandoffReplay(admitted.terminal);
228
+ }
229
+ else {
230
+ const admitted = this.admitDeferredSourcePrefix(actor, state, deferredOperationId, replayStart);
231
+ void this.observeHandoffReplay(admitted.terminal);
232
+ }
233
+ }
234
+ finally {
235
+ state.endMove();
236
+ }
237
+ }
238
+ }
239
+ admitCanceledSourcePrefix(actor, state, replayStart = Promise.resolve()) {
240
+ // The seal-era ingress hold returns to the source queue on a precommit
241
+ // abort. Rejection stays reserved for a source Actor whose dispatch is
242
+ // gone, because held packets then have no queue left to return to.
243
+ const queue = this.sourceHandoffPrefixQueue(actor, state);
244
+ if (queue === undefined) {
245
+ this.options.actorHandoff.cancel(actor.context.actorId);
246
+ return { terminal: Promise.resolve() };
247
+ }
248
+ return this.options.actorHandoff.admitCanceledPrefix(actor.context.actorId, queue, this.options.prepareApplicationJob, replayStart);
249
+ }
250
+ admitDeferredSourcePrefix(actor, state, operationId, replayStart = Promise.resolve()) {
251
+ const queue = this.sourceHandoffPrefixQueue(actor, state);
252
+ if (queue === undefined) {
253
+ this.options.actorHandoff.cancel(actor.context.actorId);
254
+ return { terminal: Promise.resolve() };
255
+ }
256
+ return this.options.actorHandoff.admitDeferredPrefix(actor.context.actorId, operationId, queue, this.options.prepareApplicationJob, replayStart);
257
+ }
258
+ async observeHandoffReplay(release) {
259
+ try {
260
+ await release;
261
+ }
262
+ catch (error) {
263
+ // Release drains every held record before rejecting. Lifecycle cleanup
264
+ // must continue, while the existing runtime task boundary retains the
265
+ // one-way/invariant failure for diagnostics.
266
+ try {
267
+ this.options.reportPostCommitError?.(error);
268
+ }
269
+ catch {
270
+ // Diagnostics cannot interrupt the relocation terminal lifecycle.
271
+ }
272
+ }
273
+ }
274
+ sourceHandoffPrefixQueue(actor, state) {
275
+ const sourceSpotId = state.spotId;
276
+ const manager = this.options.spotManager();
277
+ if (sourceSpotId === undefined || manager === undefined) {
278
+ return undefined;
279
+ }
280
+ return drain => manager.admitRoutedActorPacketPrefix(sourceSpotId, actor.context.actorId, drain);
281
+ }
282
+ async prepareSource(actor, state, signal, lifecycleAuthority = 'framework', deferredOperationId, relocation) {
283
+ await this.beginSourceActorMove(actor, state, deferredOperationId);
284
+ const relocationMetric = state.meshName === undefined
285
+ ? undefined
286
+ : this.options.metrics?.startRelocation(state.meshName, 'actor', this.options.actorTransferRegistry.policy(state.actorType));
287
+ const sourceSpotId = state.spotId;
288
+ let sourceLeaveStarted = false;
289
+ let sealId;
290
+ try {
291
+ if (state.remoteBoundSessionTarget !== undefined) {
292
+ sealId = (0, node_crypto_1.randomUUID)();
293
+ const sealedTarget = await this.sealBoundSessionRoute(actor, state, signal, relocation);
294
+ state.setRemoteBoundSessionTarget(sealedTarget);
295
+ this.options.actorHandoff.sealConnectionBoundIngress(actor.context.actorId);
296
+ }
297
+ const transfer = await this.options.actorTransferRegistry.transferOut(actor, state.actorType, signal);
298
+ // The captured state is handed off inline with the join request; the
299
+ // Relocation Store no longer carries relocation state payloads
300
+ // (spec 28 §2 — direct transfer is the only handoff original).
301
+ relocationMetric?.recordBytes(transfer.state.toEncodedPayload().toBytes().byteLength);
302
+ if (lifecycleAuthority === 'framework') {
303
+ sourceLeaveStarted = true;
304
+ await this.prepareSourceActorLeave(actor, sourceSpotId, signal);
305
+ }
306
+ const coreSourceLeave = lifecycleAuthority === 'core'
307
+ ? this.beginCoreSourceLeave(actor.context.actorId)
308
+ : undefined;
309
+ const sourceLeaveCompletion = coreSourceLeave?.completion;
310
+ const handoffBacklog = lifecycleAuthority === 'core'
311
+ ? this.options.actorHandoff.snapshotCoreBacklog(actor.context.actorId)
312
+ : this.options.actorHandoff.snapshot(actor.context.actorId);
313
+ let phase = 'prepared';
314
+ let committedTargetOwnerFence;
315
+ return {
316
+ ...transfer,
317
+ handoffBacklog,
318
+ sourceLeaveCompletion,
319
+ sourceLeaveSubmitted: coreSourceLeave?.submitted,
320
+ onSourceLeaveSubmitted: (notify) => {
321
+ const pending = this.coreSourceLeaves.get(actor.context.actorId);
322
+ if (pending === undefined) {
323
+ throw new Error(`Actor '${actor.context.actorId}' has no pending Core source leave.`);
324
+ }
325
+ pending.notifySubmitted = notify;
326
+ },
327
+ observeTargetAuthority: async (target, targetActorRef, observeSignal) => {
328
+ const authority = this.options.authorityStore();
329
+ if (authority === undefined
330
+ || target.targetOwnerId === undefined
331
+ || target.ownerLeaseGeneration === undefined
332
+ || target.targetNodeGeneration === undefined) {
333
+ throw new Error(`Actor '${actor.context.actorId}' relocation target has no complete authority fence.`);
334
+ }
335
+ const committed = await authority.readAuthority((0, authority_key_codec_1.encodeAuthorityKey)('actor', actor.context.actorId), observeSignal);
336
+ if (committed.kind !== 'snapshot'
337
+ || committed.ownerId !== target.targetOwnerId
338
+ || committed.ownerLeaseGeneration !== target.ownerLeaseGeneration
339
+ || committed.allocation.descriptorLifecycleGeneration !== target.targetNodeGeneration
340
+ || !(0, routing_id_1.routingIdsEqual)(committed.allocation.descriptor.rid, target.targetNodeRid)
341
+ || committed.objectGeneration !== targetActorRef.objectGeneration) {
342
+ throw new Error(`Actor '${actor.context.actorId}' relocation target authority was not committed exactly.`);
343
+ }
344
+ committedTargetOwnerFence = committedActorOwnerFence(actor.context.actorId, targetActorRef, committed);
345
+ },
346
+ commit: (target, targetActorRef, results, releaseLocation = true) => {
347
+ if (phase !== 'prepared')
348
+ return;
349
+ if (committedTargetOwnerFence === undefined) {
350
+ throw new Error(`Actor '${actor.context.actorId}' handoff has no committed target authority fence.`);
351
+ }
352
+ phase = 'committed';
353
+ relocationMetric?.complete('completed');
354
+ try {
355
+ this.options.actorHandoff.complete(actor.context.actorId, target, targetActorRef, results, committedTargetOwnerFence);
356
+ }
357
+ catch (error) {
358
+ // The target has already committed. Local Message Follow setup is now
359
+ // post-commit work and must not turn the accepted transfer into a
360
+ // source rollback that can no longer undo the target.
361
+ this.options.reportPostCommitError?.(error);
362
+ }
363
+ finally {
364
+ const releaseSourceLocation = lifecycleAuthority === 'core' && releaseLocation;
365
+ if (releaseSourceLocation && sourceLeaveCompletion !== undefined) {
366
+ // Core sends the source leave control after the authority
367
+ // transition. Keep the source shell available for that
368
+ // callback, then release the old location and registry entry.
369
+ void sourceLeaveCompletion.then(() => this.scheduleSourceDeparture(actor, sourceSpotId, true), error => {
370
+ this.options.reportPostCommitError?.(error);
371
+ this.scheduleSourceDeparture(actor, sourceSpotId, true);
372
+ });
373
+ }
374
+ else {
375
+ this.scheduleSourceDeparture(actor, sourceSpotId, releaseSourceLocation);
376
+ }
377
+ }
378
+ },
379
+ rollback: async () => {
380
+ if (phase !== 'prepared')
381
+ return;
382
+ phase = 'rolledBack';
383
+ relocationMetric?.complete('aborted');
384
+ this.coreSourceLeaves.delete(actor.context.actorId);
385
+ const replayGate = createHandoffReplayGate();
386
+ try {
387
+ await this.cancelSourceActorMove(actor, state, deferredOperationId, replayGate.start);
388
+ await this.restoreSourceActor(actor, sourceSpotId);
389
+ if (sealId !== undefined) {
390
+ await this.observeBoundSessionSealAbort(actor, state);
391
+ }
392
+ }
393
+ finally {
394
+ replayGate.open();
395
+ }
396
+ }
397
+ };
398
+ }
399
+ catch (error) {
400
+ relocationMetric?.complete('failed');
401
+ const replayGate = createHandoffReplayGate();
402
+ try {
403
+ await this.cancelSourceActorMove(actor, state, deferredOperationId, replayGate.start);
404
+ if (sourceLeaveStarted)
405
+ await this.restoreSourceActor(actor, sourceSpotId);
406
+ if (sealId !== undefined) {
407
+ await this.observeBoundSessionSealAbort(actor, state);
408
+ }
409
+ }
410
+ catch (rollbackError) {
411
+ throw new AggregateError([error, rollbackError], 'Actor source leave and rollback both failed.');
412
+ }
413
+ finally {
414
+ replayGate.open();
415
+ }
416
+ throw error;
417
+ }
418
+ }
419
+ async prepareMaintenanceSession(actor, state, signal, manageMembership = true, relocation) {
420
+ relocationDebug('maintenance_session.begin', {
421
+ actorId: actor.context.actorId,
422
+ spotId: state.spotId === undefined ? undefined : String(state.spotId)
423
+ });
424
+ if (manageMembership) {
425
+ await this.beginSourceActorMove(actor, state);
426
+ }
427
+ else {
428
+ state.beginMove();
429
+ this.options.actorHandoff.begin(actor.context.actorId, requireSourceObjectGeneration(actor.context.actorId, state));
430
+ }
431
+ relocationDebug('maintenance_session.source_move_complete', {
432
+ actorId: actor.context.actorId
433
+ });
434
+ let sealId;
435
+ try {
436
+ if (state.remoteBoundSessionTarget !== undefined) {
437
+ sealId = (0, node_crypto_1.randomUUID)();
438
+ state.setRemoteBoundSessionTarget(await this.sealBoundSessionRoute(actor, state, signal, relocation));
439
+ this.options.actorHandoff.sealConnectionBoundIngress(actor.context.actorId);
440
+ }
441
+ const handoffBacklog = this.options.actorHandoff.snapshot(actor.context.actorId);
442
+ let terminal = 'prepared';
443
+ let replayResults = [];
444
+ return {
445
+ target: state.remoteBoundSessionTarget,
446
+ handoffBacklog,
447
+ takeRelocationRelay: () => this.options.actorHandoff.takeRelocationRelay(actor.context.actorId),
448
+ setReplayResults: results => {
449
+ if (terminal === 'prepared')
450
+ replayResults = [...results];
451
+ },
452
+ commit: async (target, targetActorRef, targetOwnerFence) => {
453
+ if (terminal === 'rolledBack')
454
+ return;
455
+ if (terminal === 'prepared') {
456
+ this.options.actorHandoff.complete(actor.context.actorId, target, targetActorRef, replayResults, targetOwnerFence);
457
+ if (manageMembership && state.spotId !== undefined) {
458
+ await this.options.spotManager()
459
+ ?.commitActorLeaveAfterTransfer(state.spotId, actor.context.actorId);
460
+ }
461
+ state.endMove();
462
+ terminal = 'committed';
463
+ }
464
+ },
465
+ rollback: async () => {
466
+ if (terminal !== 'prepared')
467
+ return;
468
+ terminal = 'rolledBack';
469
+ const replayGate = createHandoffReplayGate();
470
+ try {
471
+ if (manageMembership) {
472
+ await this.cancelSourceActorMove(actor, state, undefined, replayGate.start);
473
+ }
474
+ else {
475
+ try {
476
+ const admitted = this.admitCanceledSourcePrefix(actor, state, replayGate.start);
477
+ void this.observeHandoffReplay(admitted.terminal);
478
+ }
479
+ finally {
480
+ state.endMove();
481
+ }
482
+ }
483
+ if (sealId !== undefined) {
484
+ await this.observeBoundSessionSealAbort(actor, state);
485
+ }
486
+ }
487
+ finally {
488
+ replayGate.open();
489
+ }
490
+ }
491
+ };
492
+ }
493
+ catch (error) {
494
+ let sourceRestored = false;
495
+ const replayGate = createHandoffReplayGate();
496
+ try {
497
+ if (manageMembership) {
498
+ try {
499
+ await this.cancelSourceActorMove(actor, state, undefined, replayGate.start);
500
+ sourceRestored = true;
501
+ }
502
+ catch { }
503
+ }
504
+ else {
505
+ try {
506
+ const admitted = this.admitCanceledSourcePrefix(actor, state, replayGate.start);
507
+ void this.observeHandoffReplay(admitted.terminal);
508
+ sourceRestored = true;
509
+ }
510
+ catch {
511
+ // The Session owner keeps the seal until timeout when the source
512
+ // queue could not be restored.
513
+ }
514
+ finally {
515
+ state.endMove();
516
+ }
517
+ }
518
+ if (sourceRestored && sealId !== undefined) {
519
+ await this.observeBoundSessionSealAbort(actor, state);
520
+ }
521
+ }
522
+ finally {
523
+ replayGate.open();
524
+ }
525
+ throw error;
526
+ }
527
+ }
528
+ async notifyCoreSourceLeave(actor, callback) {
529
+ const pending = this.coreSourceLeaves.get(actor.context.actorId);
530
+ let callbackResult;
531
+ try {
532
+ callbackResult = Promise.resolve(callback());
533
+ }
534
+ catch (error) {
535
+ callbackResult = Promise.reject(error);
536
+ }
537
+ // Submission, not the callback result, releases the target Join. Observe
538
+ // a fast rejection while the submission ACK is in flight without making
539
+ // that rejection an unhandled promise.
540
+ void callbackResult.catch(() => { });
541
+ try {
542
+ if (pending !== undefined) {
543
+ if (pending.notifySubmitted === undefined) {
544
+ throw new Error(`Actor '${actor.context.actorId}' has no Core source leave submission notifier.`);
545
+ }
546
+ await pending.notifySubmitted();
547
+ pending.resolveSubmitted();
548
+ }
549
+ await callbackResult;
550
+ pending?.resolve();
551
+ }
552
+ catch (error) {
553
+ pending?.rejectSubmitted(error);
554
+ pending?.reject(error);
555
+ throw error;
556
+ }
557
+ finally {
558
+ this.coreSourceLeaves.delete(actor.context.actorId);
559
+ }
560
+ }
561
+ async completeRelocationSourceLeave(actor, sourceSpotId, signal) {
562
+ await this.prepareSourceActorLeave(actor, sourceSpotId, signal);
563
+ }
564
+ relayMaintenanceTerminal(actorId, packet, result, sourceNodeRid, targetAuthorityOwnerGeneration) {
565
+ return this.options.actorHandoff.acceptRelocatedTerminal(actorId, packet, result, sourceNodeRid, targetAuthorityOwnerGeneration);
566
+ }
567
+ relayCanonicalMaintenanceTerminal(operationId, replyRouteId, result, sourceNodeRid, targetAuthorityOwnerGeneration) {
568
+ return this.options.actorHandoff.acceptRelocatedTerminalRelay(operationId, replyRouteId, undefined, result, sourceNodeRid, targetAuthorityOwnerGeneration);
569
+ }
570
+ async sealBoundSessionRoute(actor, state, signal, relocation) {
571
+ const target = state.remoteBoundSessionTarget;
572
+ const actorRef = state.nativeActorRef;
573
+ if (target === undefined || actorRef === undefined ||
574
+ target.bindingGeneration === undefined || target.bindingGeneration <= 0n ||
575
+ state.locationGeneration === undefined || state.locationGeneration < 0n ||
576
+ state.ownerLeaseGeneration === undefined || state.ownerLeaseGeneration <= 0n) {
577
+ throw new Error(`Actor '${actor.context.actorId}' Session route cannot be sealed without its exact source fence.`);
578
+ }
579
+ const serviceWire = this.options.sessionRelocationWire?.();
580
+ const authorityStore = this.options.authorityStore();
581
+ const descriptors = this.options.liveDescriptors;
582
+ if (relocation === undefined
583
+ || serviceWire === undefined
584
+ || authorityStore === undefined
585
+ || descriptors === undefined
586
+ || target.sessionRid === undefined) {
587
+ throw new Error(`Actor '${actor.context.actorId}' Session relocation requires the command 42/43 service-wire path.`);
588
+ }
589
+ const [authority, live] = await Promise.all([
590
+ authorityStore.readAuthority((0, authority_key_codec_1.encodeAuthorityKey)('actor', actor.context.actorId), signal),
591
+ descriptors(target.routerChannelId, signal)
592
+ ]);
593
+ const local = this.options.primaryMeshNode().status();
594
+ const sessionOwner = live.find(value => String(value.rid) === String(target.targetNodeRid));
595
+ if (authority.kind !== 'snapshot'
596
+ || sessionOwner === undefined
597
+ || String(local.routingId) !== String(actorRef.nodeRid)
598
+ || authority.objectGeneration !== actorRef.generation
599
+ || authority.authorityOwnerGeneration !== state.locationGeneration
600
+ || authority.ownerLeaseGeneration !== state.ownerLeaseGeneration
601
+ || String(authority.allocation.descriptor.rid) !== String(actorRef.nodeRid)
602
+ || authority.allocation.descriptorLifecycleGeneration !== local.lifecycleGeneration
603
+ || (target.sessionNodeRid !== undefined
604
+ && String(target.sessionNodeRid) !== String(target.targetNodeRid))) {
605
+ throw new Error(`Actor '${actor.context.actorId}' Session route service-wire source fence is stale.`);
606
+ }
607
+ const coordinator = {
608
+ ownerId: authority.ownerId,
609
+ leaseGeneration: authority.ownerLeaseGeneration,
610
+ nodeRid: String(local.routingId),
611
+ nodeGeneration: local.lifecycleGeneration,
612
+ expectedAuthorityStoreVersion: authority.storeVersion.value
613
+ };
614
+ const session = {
615
+ sessionOwnerNodeRid: String(target.targetNodeRid),
616
+ sessionOwnerNodeGeneration: sessionOwner.lifecycleGeneration,
617
+ sessionOwnerId: sessionOwner.ownerId,
618
+ sessionOwnerLeaseGeneration: sessionOwner.leaseGeneration,
619
+ sessionRid: String(target.sessionRid),
620
+ bindingGeneration: target.bindingGeneration
621
+ };
622
+ const request = {
623
+ relocation,
624
+ coordinator,
625
+ senderRole: 'source',
626
+ actor: {
627
+ actor: {
628
+ actorId: actor.context.actorId,
629
+ generation: actorRef.generation,
630
+ nodeRid: String(actorRef.nodeRid)
631
+ },
632
+ targetNodeGeneration: local.lifecycleGeneration,
633
+ authorityOwnerGeneration: authority.authorityOwnerGeneration,
634
+ ownerLeaseGeneration: authority.ownerLeaseGeneration
635
+ },
636
+ session
637
+ };
638
+ await serviceWire.requestSessionRelocationSeal(target.routerChannelId, target.targetNodeRid, request, signal);
639
+ return {
640
+ ...target,
641
+ previousAuthorityOwnerGeneration: authority.authorityOwnerGeneration,
642
+ previousOwnerLeaseGeneration: authority.ownerLeaseGeneration,
643
+ relocationSealId: (0, service_stateful_wire_codec_1.serviceSessionRelocationIdentityKey)(request),
644
+ serviceWireRelocation: { relocation, coordinator, session }
645
+ };
646
+ }
647
+ async abortBoundSessionRouteSeal(actor, state, targetOverride) {
648
+ const target = targetOverride ?? (0, actors_1.preferredRemoteBoundSessionTarget)(state.remoteBoundSessionTarget, state.boundSessionTransferTarget);
649
+ const actorRef = state.nativeActorRef;
650
+ if (target === undefined || actorRef === undefined || target.bindingGeneration === undefined ||
651
+ target.previousAuthorityOwnerGeneration === undefined || target.previousOwnerLeaseGeneration === undefined) {
652
+ throw new Error(`Actor '${actor.context.actorId}' Session route seal cannot be released without its exact fence.`);
653
+ }
654
+ const serviceFence = target.serviceWireRelocation;
655
+ const serviceWire = this.options.sessionRelocationWire?.();
656
+ if (serviceFence === undefined || serviceWire === undefined) {
657
+ throw new Error(`Actor '${actor.context.actorId}' Session route service-wire release is unavailable.`);
658
+ }
659
+ const route = {
660
+ relocation: serviceFence.relocation,
661
+ coordinator: serviceFence.coordinator,
662
+ senderRole: 'source',
663
+ actor: {
664
+ actorId: actor.context.actorId,
665
+ generation: actorRef.generation,
666
+ nodeRid: String(actorRef.nodeRid)
667
+ },
668
+ session: serviceFence.session,
669
+ route: {
670
+ action: 'abort',
671
+ currentAuthorityOwnerGeneration: target.previousAuthorityOwnerGeneration
672
+ }
673
+ };
674
+ if (target.relocationSealId !== (0, service_stateful_wire_codec_1.serviceSessionRelocationIdentityKey)(route)) {
675
+ throw new Error(`Actor '${actor.context.actorId}' Session route seal release changed its seal identity.`);
676
+ }
677
+ await serviceWire.sendSessionRelocationRoute(target.routerChannelId, target.targetNodeRid, route, this.options.shutdownSignal?.());
678
+ }
679
+ async observeBoundSessionSealAbort(actor, state) {
680
+ try {
681
+ await this.abortBoundSessionRouteSeal(actor, state);
682
+ }
683
+ catch (error) {
684
+ try {
685
+ this.options.reportPostCommitError?.(error);
686
+ }
687
+ catch {
688
+ // Diagnostics cannot replace the relocation failure terminal.
689
+ }
690
+ }
691
+ }
692
+ beginCoreSourceLeave(actorId) {
693
+ let resolve;
694
+ let reject;
695
+ const promise = new Promise((accept, fail) => {
696
+ resolve = accept;
697
+ reject = fail;
698
+ });
699
+ let resolveSubmitted;
700
+ let rejectSubmitted;
701
+ const submitted = new Promise((accept, fail) => {
702
+ resolveSubmitted = accept;
703
+ rejectSubmitted = fail;
704
+ });
705
+ void promise.catch(() => { });
706
+ void submitted.catch(() => { });
707
+ this.coreSourceLeaves.set(actorId, {
708
+ promise,
709
+ resolve,
710
+ reject,
711
+ submitted,
712
+ resolveSubmitted,
713
+ rejectSubmitted
714
+ });
715
+ return { completion: promise, submitted };
716
+ }
717
+ scheduleSourceDeparture(actor, sourceSpotId, releaseLocation) {
718
+ if (this.sourceDepartureTasks.has(actor.context.actorId))
719
+ return;
720
+ const task = this.finishSourceDeparture(actor, sourceSpotId, releaseLocation)
721
+ .finally(() => this.sourceDepartureTasks.delete(actor.context.actorId));
722
+ this.sourceDepartureTasks.set(actor.context.actorId, task);
723
+ }
724
+ async finishSourceDeparture(actor, sourceSpotId, releaseLocation) {
725
+ const retry = new actor_retry_delay_1.ZLinkActorRetryDelay();
726
+ while (this.options.shutdownSignal?.()?.aborted !== true) {
727
+ try {
728
+ if (sourceSpotId !== undefined) {
729
+ await this.options.spotManager()?.commitActorLeaveAfterTransfer(sourceSpotId, actor.context.actorId);
730
+ }
731
+ if (releaseLocation) {
732
+ const state = this.options.actorManager()?.getState(actor.context.actorId);
733
+ if (state?.actorType !== undefined && state.ownsLocation) {
734
+ await this.options.locationLifecycle()?.releaseActor(state.actorType, actor.context.actorId);
735
+ state.markLocationReleased();
736
+ }
737
+ // Message Follow owns the bounded stale route after the native leave.
738
+ // The source Actor shell must therefore be removed from the process
739
+ // registry so a later relocation can materialize the same Actor ID on
740
+ // this node without colliding with its previous incarnation.
741
+ await this.options.actorManager()?.completeCoreRelocationSource(actor.context.actorId);
742
+ }
743
+ this.options.onSourceDepartureCompleted?.(actor.context.actorId);
744
+ return;
745
+ }
746
+ catch (error) {
747
+ this.options.reportPostCommitError?.(error);
748
+ if (!await retry.wait(this.options.shutdownSignal?.()))
749
+ return;
750
+ }
751
+ }
752
+ }
753
+ async getOrCreateRoutedActor(actorId, actorType, actorRef, remoteBoundSessionTarget, actorCreateRequest, signal) {
754
+ const actorManager = this.requireActorManager('Routed actor join requires ZLINK_ACTOR_MANAGER.');
755
+ const actor = actorRef === undefined
756
+ ? await actorManager.getOrCreateActor(actorId, actorType, signal)
757
+ : await actorManager.getOrCreateWithNativeRef(actorId, actorType, actorRef, actorCreateRequest === undefined
758
+ ? undefined
759
+ : (0, payload_codec_1.wrapFrameworkPayloadMessage)(actorCreateRequest, this.options.messageSerializers), signal);
760
+ const state = actorManager.getState(actorId);
761
+ if (state === undefined) {
762
+ throw new Error(`Actor '${actorId}' state was not created.`);
763
+ }
764
+ if (actorRef !== undefined) {
765
+ state.setNativeActorRef(actorRef);
766
+ state.setRemoteBoundSessionTarget(remoteBoundSessionTarget);
767
+ return { actor, actorRef: actorRef };
768
+ }
769
+ return { actor, actorRef: state.ensureNativeActorRef(this.options.primaryMeshNode()) };
770
+ }
771
+ async materializeRoutedActor(actorId, actorType, adapterKey, transferState, actorEntryNodeRid, remoteBoundSessionTarget, signal) {
772
+ const actorManager = this.requireActorManager('Routed actor transfer requires ZLINK_ACTOR_MANAGER.');
773
+ const materialized = await actorManager.materializeTransferredActor(actorId, actorType, adapterKey, (0, payload_codec_1.wrapFrameworkPayloadMessage)(transferState, this.options.messageSerializers), signal);
774
+ const state = actorManager.getState(actorId);
775
+ if (state === undefined) {
776
+ throw new Error(`Actor '${actorId}' transfer state was not created.`);
777
+ }
778
+ if (actorEntryNodeRid !== undefined)
779
+ state.setEntryNodeRid(actorEntryNodeRid);
780
+ state.setBoundSessionTransferTarget(remoteBoundSessionTarget);
781
+ if (remoteBoundSessionTarget !== undefined) {
782
+ state.setRemoteBoundSessionTarget((0, actors_1.mergeRemoteBoundSessionTarget)(remoteBoundSessionTarget, state.remoteBoundSessionTarget));
783
+ }
784
+ if (remoteBoundSessionTarget?.bindingGeneration !== undefined) {
785
+ state.setBoundSessionBindingGeneration(remoteBoundSessionTarget.bindingGeneration);
786
+ }
787
+ return {
788
+ actor: materialized.actor,
789
+ actorRef: materialized.actorRef
790
+ };
791
+ }
792
+ async commitRoutedActorAuthority(actor, sourceActorRef, transferId, spotId, spotGeneration, membershipEpoch, deadlineUnixMs, signal) {
793
+ const deadlineAtMs = performance.now() + (deadlineUnixMs - Date.now());
794
+ const store = this.options.authorityStore();
795
+ const owner = this.options.currentOwner();
796
+ const state = this.options.actorManager()?.getState(actor.context.actorId);
797
+ const actorType = state?.actorType;
798
+ const local = this.options.primaryMeshNode().status();
799
+ const targetActorRef = state?.nativeActorRef === undefined
800
+ ? undefined
801
+ : (0, actors_1.toFrameworkActorRef)(state.nativeActorRef, actor.context.meshName);
802
+ if (store === undefined
803
+ || owner === undefined
804
+ || state === undefined
805
+ || actorType === undefined
806
+ || targetActorRef === undefined
807
+ || local.lifecycleGeneration <= 0n
808
+ || spotGeneration <= 0n
809
+ || membershipEpoch <= 0n
810
+ || !Number.isSafeInteger(deadlineUnixMs)) {
811
+ throw new Error(`Actor '${actor.context.actorId}' target authority commit has an incomplete materialization fence.`);
812
+ }
813
+ const key = (0, authority_key_codec_1.encodeAuthorityKey)('actor', actor.context.actorId);
814
+ const expected = await store.readAuthority(key, signal);
815
+ if (expected.kind !== 'snapshot') {
816
+ throw new Error(`Actor '${actor.context.actorId}' source authority is missing at the target.`);
817
+ }
818
+ const exactTarget = (value) => value.allocation.state === 'active'
819
+ && value.allocation.objectKind === 'actor'
820
+ && value.allocation.stableType === actorType
821
+ && value.objectGeneration === targetActorRef.objectGeneration
822
+ && value.ownerId === owner.ownerId
823
+ && value.ownerLeaseGeneration === owner.leaseGeneration
824
+ && value.allocation.descriptor.meshName === actor.context.meshName
825
+ && (0, routing_id_1.routingIdsEqual)(value.allocation.descriptor.rid, local.routingId)
826
+ && value.allocation.descriptorLifecycleGeneration === local.lifecycleGeneration;
827
+ const adopt = (value) => {
828
+ state.setLocationGeneration(value.authorityOwnerGeneration);
829
+ state.setOwnerLeaseGeneration(value.ownerLeaseGeneration);
830
+ state.setJoinedSpot(spotId, state.spot, membershipEpoch, spotGeneration);
831
+ state.markLocationOwned();
832
+ return value;
833
+ };
834
+ if (exactTarget(expected))
835
+ return adopt(expected);
836
+ if (expected.allocation.state !== 'active'
837
+ || expected.allocation.objectKind !== 'actor'
838
+ || expected.allocation.stableType !== actorType
839
+ || expected.objectGeneration !== sourceActorRef.objectGeneration
840
+ || expected.allocation.descriptor.meshName !== sourceActorRef.meshName
841
+ || !(0, routing_id_1.routingIdsEqual)(expected.allocation.descriptor.rid, sourceActorRef.nodeRid)) {
842
+ throw new Error(`Actor '${actor.context.actorId}' relocation source authority is stale at the target.`);
843
+ }
844
+ const membershipMutation = Buffer.from(JSON.stringify({
845
+ actorId: actor.context.actorId,
846
+ actorGeneration: targetActorRef.objectGeneration.toString(),
847
+ spotId: String(spotId),
848
+ spotGeneration: spotGeneration.toString(),
849
+ membershipEpoch: membershipEpoch.toString()
850
+ }), 'utf8');
851
+ const request = {
852
+ aggregateId: { value: transferId },
853
+ aggregateGeneration: local.lifecycleGeneration,
854
+ participants: [{
855
+ authorityKey: key,
856
+ expectedStoreVersion: expected.storeVersion,
857
+ ownerTransition: 'newOwner',
858
+ authorityPayload: (0, actors_1.rewriteActorAuthorityRoute)(expected.payload, targetActorRef, String(spotId), spotGeneration, contracts_1.ZLinkSpotKind.User, local.lifecycleGeneration, owner),
859
+ membershipMutation
860
+ }],
861
+ inventoryDigest: (0, node_crypto_1.createHash)('sha256').update(membershipMutation).digest(),
862
+ targetDescriptor: {
863
+ meshName: actor.context.meshName,
864
+ rid: local.routingId
865
+ },
866
+ targetDescriptorLifecycleGeneration: local.lifecycleGeneration,
867
+ capacity: expected.allocation.capacity,
868
+ targetOwner: owner
869
+ };
870
+ let prepared;
871
+ let firstError;
872
+ for (;;) {
873
+ signal?.throwIfAborted();
874
+ try {
875
+ prepared = await store.prepareAggregate(request, signal);
876
+ }
877
+ catch (error) {
878
+ firstError ??= error;
879
+ }
880
+ if (prepared?.kind === 'prepared' || prepared?.kind === 'alreadyPrepared')
881
+ break;
882
+ const observed = await this.readActorAuthorityForRelocation(store, key, signal);
883
+ if (observed !== undefined && exactTarget(observed))
884
+ return adopt(observed);
885
+ if (prepared !== undefined || observed !== undefined && !sameSourceActorAuthority(observed, expected)) {
886
+ throw new Error(`Actor '${actor.context.actorId}' target authority prepare was rejected.`, { cause: firstError });
887
+ }
888
+ await waitForActorAuthorityRetry(deadlineAtMs, signal, firstError);
889
+ }
890
+ for (;;) {
891
+ signal?.throwIfAborted();
892
+ let committed;
893
+ try {
894
+ committed = await store.commitAggregate(prepared.fence, signal);
895
+ }
896
+ catch (error) {
897
+ firstError ??= error;
898
+ }
899
+ const observed = await this.readActorAuthorityForRelocation(store, key, signal);
900
+ if (observed !== undefined && exactTarget(observed))
901
+ return adopt(observed);
902
+ if (committed?.kind === 'stale'
903
+ || committed?.kind === 'generationExhausted'
904
+ || observed !== undefined && !sameSourceActorAuthority(observed, expected)) {
905
+ throw new Error(`Actor '${actor.context.actorId}' target authority commit did not converge.`, { cause: firstError });
906
+ }
907
+ await waitForActorAuthorityRetry(deadlineAtMs, signal, firstError);
908
+ }
909
+ }
910
+ async readActorAuthorityForRelocation(store, key, signal) {
911
+ try {
912
+ const current = await store.readAuthority(key, signal);
913
+ return current.kind === 'snapshot' ? current : undefined;
914
+ }
915
+ catch {
916
+ return undefined;
917
+ }
918
+ }
919
+ rememberRoutedActorTransferTarget(actorId, target) {
920
+ if (target === undefined)
921
+ return;
922
+ const state = this.options.actorManager()?.getState(actorId);
923
+ if (state === undefined) {
924
+ return;
925
+ }
926
+ state.setBoundSessionTransferTarget(target);
927
+ state.setRemoteBoundSessionTarget((0, actors_1.mergeRemoteBoundSessionTarget)(target, state.remoteBoundSessionTarget));
928
+ if (target.bindingGeneration !== undefined) {
929
+ state.setBoundSessionBindingGeneration(target.bindingGeneration);
930
+ }
931
+ }
932
+ commitRoutedActor(actor, spotId, spot) {
933
+ const state = this.options.actorManager()?.getState(actor.context.actorId);
934
+ state?.setJoinedSpot(spotId, spot);
935
+ const actorRef = state?.nativeActorRef;
936
+ const binding = state?.boundSessionTransferTarget;
937
+ if (actorRef !== undefined
938
+ && binding?.sessionNodeRid !== undefined
939
+ && binding.sessionRid !== undefined
940
+ && binding.bindingGeneration !== undefined) {
941
+ this.options.primaryMeshNode().restoreActorSessionBinding?.(actorRef, binding.sessionNodeRid, binding.sessionRid, binding.bindingGeneration);
942
+ }
943
+ }
944
+ bindRoutedActorRef(actor, actorRef) {
945
+ const node = this.options.primaryMeshNode();
946
+ const localActorRef = node.actorLookup(actor.context.actorId).actor;
947
+ const targetActorRef = {
948
+ actorId: actorRef.actorId,
949
+ nodeRid: node.status().routingId,
950
+ generation: localActorRef.generation > 0n
951
+ ? localActorRef.generation
952
+ : actorRef.objectGeneration
953
+ };
954
+ this.options.actorManager()?.getState(actor.context.actorId)?.setNativeActorRef(targetActorRef);
955
+ }
956
+ async claimRoutedActorLocation(actor, spotId, spotMeshName, joinedLocation) {
957
+ const state = this.options.actorManager()?.getState(actor.context.actorId);
958
+ const actorType = state?.actorType;
959
+ const lifecycle = this.options.locationLifecycle();
960
+ if (state === undefined || actorType === undefined || lifecycle === undefined) {
961
+ return;
962
+ }
963
+ const node = this.options.primaryMeshNode();
964
+ const location = node.actorLookup(actor.context.actorId);
965
+ const spotGeneration = joinedLocation?.spotGeneration ?? location.spotGeneration;
966
+ const membershipEpoch = joinedLocation?.membershipEpoch ?? location.membershipEpoch;
967
+ if (spotGeneration <= 0n || membershipEpoch <= 0n) {
968
+ throw new Error(`Actor '${actor.context.actorId}' committed target location has invalid lifecycle generations.`);
969
+ }
970
+ // RoutingId is an opaque byte value, so the committed target is compared by
971
+ // value. Reference equality would reject a matching SPOT read back from the
972
+ // Core lookup.
973
+ if (joinedLocation === undefined
974
+ && (location.spotId === null
975
+ || location.spotId === undefined
976
+ || (0, routing_id_1.encodeRoutingIdStorageHex)(location.spotId)
977
+ !== (0, routing_id_1.encodeRoutingIdStorageHex)(spotId))) {
978
+ throw new Error(`Actor '${actor.context.actorId}' Core location does not match the committed target SPOT.`);
979
+ }
980
+ const deadline = performance.now() + 5_000;
981
+ const ownerNodeGeneration = node.status().lifecycleGeneration;
982
+ if (ownerNodeGeneration <= 0n) {
983
+ throw new Error(`Actor '${actor.context.actorId}' owner MeshNode has no valid lifecycle generation.`);
984
+ }
985
+ const authority = await this.options.authorityStore()?.readAuthority((0, authority_key_codec_1.encodeAuthorityKey)('actor', actor.context.actorId));
986
+ if (authority?.kind === 'snapshot'
987
+ && authority.allocation.state === 'active'
988
+ && String(authority.allocation.descriptor.rid) === String(node.status().routingId)
989
+ && authority.allocation.descriptorLifecycleGeneration === ownerNodeGeneration) {
990
+ state.setLocationGeneration(authority.authorityOwnerGeneration);
991
+ state.setOwnerLeaseGeneration(authority.ownerLeaseGeneration);
992
+ state.setJoinedSpot(spotId, state.spot, membershipEpoch, spotGeneration);
993
+ await this.installNativeActorPacketTarget(state, spotId, spotGeneration, node);
994
+ return;
995
+ }
996
+ let claim;
997
+ for (;;) {
998
+ claim = await lifecycle.takeoverActorJoinedSpot(actorType, actor.context.actorId, (0, actors_1.toFrameworkActorRef)(state.nativeActorRef ?? location.actor, spotMeshName), spotMeshName, spotId, spotGeneration, membershipEpoch, ownerNodeGeneration, async () => state.clearAfterDestroy());
999
+ if (claim.status !== 'conflict' || performance.now() >= deadline) {
1000
+ break;
1001
+ }
1002
+ await new Promise((resolve) => setTimeout(resolve, 10));
1003
+ }
1004
+ if (claim.status === 'conflict') {
1005
+ throw new Error(`Actor '${actor.context.actorId}' target location takeover was rejected.`);
1006
+ }
1007
+ if (claim.generation !== undefined) {
1008
+ state.setLocationGeneration(claim.generation);
1009
+ }
1010
+ if (claim.claimed !== undefined) {
1011
+ state.setOwnerLeaseGeneration(claim.claimed.leaseGeneration);
1012
+ }
1013
+ state.setJoinedSpot(spotId, state.spot, membershipEpoch, spotGeneration);
1014
+ state.markLocationOwned();
1015
+ await this.installNativeActorPacketTarget(state, spotId, spotGeneration, node);
1016
+ }
1017
+ async installNativeActorPacketTarget(state, spotId, spotGeneration, node) {
1018
+ const target = await this.options.spotRouteResolver?.()?.resolve(spotId);
1019
+ if (target === undefined || target.spotKind === 'entry')
1020
+ return;
1021
+ if (!(0, routing_id_1.routingIdsEqual)(target.spotId, spotId)
1022
+ || !(0, routing_id_1.routingIdsEqual)(target.targetNodeRid, node.status().routingId)
1023
+ || target.targetSpotGeneration !== spotGeneration) {
1024
+ throw new Error('Committed native Actor target does not match its Ready Spot route.');
1025
+ }
1026
+ state.setRemoteActorPacketTarget(target);
1027
+ }
1028
+ async claimNativeActorLocation(actor, spotId, spotMeshName) {
1029
+ const state = this.options.actorManager()?.getState(actor.context.actorId);
1030
+ const previousLocation = this.options.locationLifecycle()?.actorLocationSnapshot(actor.context.actorId);
1031
+ const snapshot = {
1032
+ spotId: state?.spotId,
1033
+ spot: state?.spot,
1034
+ locationSpotId: previousLocation?.spotId,
1035
+ spotMeshName: previousLocation?.meshName,
1036
+ actorRef: previousLocation?.actorRef,
1037
+ spotGeneration: previousLocation?.spotGeneration,
1038
+ membershipEpoch: previousLocation?.membershipEpoch,
1039
+ ownerNodeGeneration: previousLocation?.ownerNodeGeneration
1040
+ };
1041
+ await this.claimRoutedActorLocation(actor, spotId, spotMeshName);
1042
+ return snapshot;
1043
+ }
1044
+ async publishRoutedActorOwnership(actor) {
1045
+ const state = this.options.actorManager()?.getState(actor.context.actorId);
1046
+ const actorRef = state?.nativeActorRef;
1047
+ const generation = state?.locationGeneration;
1048
+ if (state === undefined || actorRef === undefined || generation === undefined)
1049
+ return;
1050
+ const boundSessionTarget = (0, actors_1.preferredRemoteBoundSessionTarget)(state.remoteBoundSessionTarget, state.boundSessionTransferTarget);
1051
+ if (boundSessionTarget?.serviceWireRelocation === undefined)
1052
+ return;
1053
+ await this.publishBoundSessionOwnership(actor.context.actorId, actorRef, generation, boundSessionTarget, state.ownerLeaseGeneration);
1054
+ }
1055
+ async openRoutedActorSession(_actor) { }
1056
+ clearRoutedActor(actor) {
1057
+ this.options.actorManager()?.getState(actor.context.actorId)?.clearJoinedSpot();
1058
+ this.options.clearRemoteActorPacketTarget(actor.context.actorId);
1059
+ }
1060
+ async rollbackNativeActorJoin(actor, snapshot) {
1061
+ const state = this.options.actorManager()?.getState(actor.context.actorId);
1062
+ const actorType = state?.actorType;
1063
+ const lifecycle = this.options.locationLifecycle();
1064
+ if (snapshot.spotId === undefined)
1065
+ state?.clearJoinedSpot();
1066
+ else
1067
+ state?.setJoinedSpot(snapshot.spotId, snapshot.spot);
1068
+ if (state?.ownsLocation !== true || actorType === undefined || lifecycle === undefined)
1069
+ return;
1070
+ if (snapshot.spotId === undefined) {
1071
+ if (snapshot.locationSpotId === undefined
1072
+ || snapshot.spotGeneration === undefined
1073
+ || snapshot.membershipEpoch === undefined
1074
+ || snapshot.ownerNodeGeneration === undefined) {
1075
+ throw new Error(`Actor '${actor.context.actorId}' cannot restore its Entry SPOT location without its exact generation fields.`);
1076
+ }
1077
+ await lifecycle.notifyActorLeftSpot(actorType, actor.context.actorId, snapshot.locationSpotId, snapshot.spotGeneration, snapshot.membershipEpoch, snapshot.ownerNodeGeneration);
1078
+ return;
1079
+ }
1080
+ if (snapshot.actorRef === undefined) {
1081
+ throw new Error(`Actor '${actor.context.actorId}' cannot restore its previous SPOT location without a native ref.`);
1082
+ }
1083
+ if (snapshot.spotMeshName === undefined
1084
+ || snapshot.spotGeneration === undefined
1085
+ || snapshot.membershipEpoch === undefined
1086
+ || snapshot.ownerNodeGeneration === undefined) {
1087
+ throw new Error(`Actor '${actor.context.actorId}' cannot restore its previous SPOT location without its exact generation fields.`);
1088
+ }
1089
+ const restored = await lifecycle.takeoverActorJoinedSpot(actorType, actor.context.actorId, snapshot.actorRef, snapshot.spotMeshName, snapshot.spotId, snapshot.spotGeneration, snapshot.membershipEpoch, snapshot.ownerNodeGeneration, async () => state.clearAfterDestroy());
1090
+ if (restored.status === 'conflict') {
1091
+ throw new Error(`Actor '${actor.context.actorId}' previous SPOT location could not be restored.`);
1092
+ }
1093
+ if (restored.generation !== undefined)
1094
+ state.setLocationGeneration(restored.generation);
1095
+ if (restored.claimed !== undefined)
1096
+ state.setOwnerLeaseGeneration(restored.claimed.leaseGeneration);
1097
+ }
1098
+ async rollbackRoutedActor(actor, signal) {
1099
+ const manager = this.options.actorManager();
1100
+ const state = manager?.getState(actor.context.actorId);
1101
+ const actorType = state?.actorType;
1102
+ const lifecycle = this.options.locationLifecycle();
1103
+ let locationError;
1104
+ if (state?.ownsLocation === true && actorType !== undefined && lifecycle !== undefined) {
1105
+ try {
1106
+ await lifecycle.releaseActor(actorType, actor.context.actorId);
1107
+ state.markLocationReleased();
1108
+ }
1109
+ catch (error) {
1110
+ locationError = error;
1111
+ void lifecycle.releaseActorEventually(actorType, actor.context.actorId);
1112
+ }
1113
+ }
1114
+ try {
1115
+ await manager?.rollbackTransferredActor(actor, signal);
1116
+ }
1117
+ catch (rollbackError) {
1118
+ if (locationError !== undefined) {
1119
+ throw new AggregateError([locationError, rollbackError], `Actor '${actor.context.actorId}' target transfer rollback failed.`);
1120
+ }
1121
+ throw rollbackError;
1122
+ }
1123
+ if (locationError !== undefined)
1124
+ throw locationError;
1125
+ }
1126
+ actorEntryNodeRid(actor) {
1127
+ return this.options.actorManager()?.getState(actor.context.actorId)?.entryNodeRid;
1128
+ }
1129
+ requireActorManager(message) {
1130
+ const actorManager = this.options.actorManager();
1131
+ if (actorManager === undefined) {
1132
+ throw new Error(message);
1133
+ }
1134
+ return actorManager;
1135
+ }
1136
+ async publishBoundSessionOwnership(actorId, actorRef, ownershipGeneration, target, targetOwnerLeaseGeneration) {
1137
+ if (target === undefined) {
1138
+ return;
1139
+ }
1140
+ const serviceFence = target.serviceWireRelocation;
1141
+ const serviceWire = serviceFence === undefined
1142
+ ? undefined
1143
+ : this.options.sessionRelocationWire?.();
1144
+ if (serviceFence === undefined) {
1145
+ throw new Error(`Actor '${actorId}' command 44 has no service-wire relocation fence.`);
1146
+ }
1147
+ {
1148
+ if (target.bindingGeneration === undefined
1149
+ || target.previousAuthorityOwnerGeneration === undefined
1150
+ || target.bindingGeneration <= 0n
1151
+ || target.previousAuthorityOwnerGeneration < 0n
1152
+ || ownershipGeneration <= target.previousAuthorityOwnerGeneration) {
1153
+ throw new Error(`Actor '${actorId}' command 44 Session route fence is incomplete.`);
1154
+ }
1155
+ if (serviceWire === undefined) {
1156
+ throw new Error(`Actor '${actorId}' command 44 service-wire bridge is unavailable.`);
1157
+ }
1158
+ const authority = await this.options.authorityStore()?.readAuthority((0, authority_key_codec_1.encodeAuthorityKey)('actor', actorId), this.options.shutdownSignal?.());
1159
+ if (authority?.kind !== 'snapshot'
1160
+ || authority.objectGeneration !== actorRef.generation
1161
+ || authority.authorityOwnerGeneration !== ownershipGeneration
1162
+ || authority.ownerLeaseGeneration !== targetOwnerLeaseGeneration
1163
+ || String(authority.allocation.descriptor.rid) !== String(actorRef.nodeRid)) {
1164
+ throw new Error(`Actor '${actorId}' command 44 target authority fence is stale.`);
1165
+ }
1166
+ await serviceWire.sendSessionRelocationRoute(target.routerChannelId, target.targetNodeRid, {
1167
+ relocation: serviceFence.relocation,
1168
+ coordinator: serviceFence.coordinator,
1169
+ senderRole: 'target',
1170
+ actor: {
1171
+ actorId,
1172
+ generation: actorRef.generation,
1173
+ nodeRid: String(actorRef.nodeRid)
1174
+ },
1175
+ session: serviceFence.session,
1176
+ route: {
1177
+ action: 'commit',
1178
+ previousAuthorityOwnerGeneration: target.previousAuthorityOwnerGeneration,
1179
+ targetAuthorityOwnerGeneration: ownershipGeneration,
1180
+ targetNodeRid: String(actorRef.nodeRid),
1181
+ targetNodeGeneration: authority.allocation.descriptorLifecycleGeneration
1182
+ }
1183
+ }, this.options.shutdownSignal?.());
1184
+ return;
1185
+ }
1186
+ }
1187
+ }
1188
+ exports.ZLinkActorTransferRuntime = ZLinkActorTransferRuntime;
1189
+ function relocationDebug(marker, detail) {
1190
+ if (process.env.ZLINK_DEBUG_FRAMEWORK_RELOCATION !== '1')
1191
+ return;
1192
+ console.error('[zlink.runtime.relocation]', marker, detail);
1193
+ }
1194
+ function deferredJoinTerminalKey(root) {
1195
+ return `${root.actor.actorId}:${root.actor.objectGeneration.toString()}:` +
1196
+ (0, operation_identity_1.operationIdentityKey)(root.operationId);
1197
+ }
1198
+ function waitForOperation(operation, signal) {
1199
+ if (signal === undefined)
1200
+ return operation;
1201
+ if (signal.aborted)
1202
+ return Promise.reject(signal.reason);
1203
+ return new Promise((resolve, reject) => {
1204
+ const abort = () => reject(signal.reason);
1205
+ signal.addEventListener('abort', abort, { once: true });
1206
+ operation.then(value => {
1207
+ signal.removeEventListener('abort', abort);
1208
+ resolve(value);
1209
+ }, error => {
1210
+ signal.removeEventListener('abort', abort);
1211
+ reject(error);
1212
+ });
1213
+ });
1214
+ }
1215
+ function sameSourceActorAuthority(current, expected) {
1216
+ return current.storeVersion.value === expected.storeVersion.value
1217
+ && current.objectGeneration === expected.objectGeneration
1218
+ && current.authorityOwnerGeneration === expected.authorityOwnerGeneration
1219
+ && current.ownerId === expected.ownerId
1220
+ && current.ownerLeaseGeneration === expected.ownerLeaseGeneration
1221
+ && current.allocation.state === expected.allocation.state
1222
+ && current.allocation.objectKind === expected.allocation.objectKind
1223
+ && current.allocation.stableType === expected.allocation.stableType
1224
+ && current.allocation.descriptor.meshName === expected.allocation.descriptor.meshName
1225
+ && (0, routing_id_1.routingIdsEqual)(current.allocation.descriptor.rid, expected.allocation.descriptor.rid)
1226
+ && current.allocation.descriptorLifecycleGeneration
1227
+ === expected.allocation.descriptorLifecycleGeneration;
1228
+ }
1229
+ async function waitForActorAuthorityRetry(deadlineAtMs, signal, cause) {
1230
+ signal?.throwIfAborted();
1231
+ const remaining = deadlineAtMs - performance.now();
1232
+ if (remaining <= 0) {
1233
+ throw new Error('Actor target authority deadline expired.', { cause });
1234
+ }
1235
+ await new Promise((resolve, reject) => {
1236
+ const timer = setTimeout(resolve, Math.min(10, remaining));
1237
+ timer.unref();
1238
+ const abort = () => {
1239
+ clearTimeout(timer);
1240
+ reject(signal?.reason);
1241
+ };
1242
+ signal?.addEventListener('abort', abort, { once: true });
1243
+ timer.refresh();
1244
+ });
1245
+ }