@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,1319 @@
1
+ import { createHash } from 'node:crypto';
2
+ import type {
3
+ ActorRef,
4
+ ZLinkActor,
5
+ ZLinkActorJoinCompletion,
6
+ ZLinkActorJoinOperationId,
7
+ ZLinkBlobReference,
8
+ ZLinkMessageSerializer,
9
+ ZLinkRelocationStore
10
+ } from '../../contracts';
11
+ import type { ZLinkAuthoritySnapshot } from '../locations/internal-location-contracts';
12
+ import type { ZLinkAuthorityStore } from '../locations/internal-store-contracts';
13
+ import {
14
+ ZLinkEncodedPayload,
15
+ ZLinkFrameworkErrorKind,
16
+ ZLinkFrameworkException,
17
+ ZLinkMessage
18
+ } from '../../contracts';
19
+ import { encodeAuthorityKey } from '../locations/authority-key-codec';
20
+ import {
21
+ crc32c,
22
+ ServiceRelocationAuthorityPayloadCodec,
23
+ replaceServiceRelocationAuthorityApplicationPayload,
24
+ serviceRelocationAuthorityApplicationPayload,
25
+ serviceRelocationAuthoritySlotIdentity,
26
+ type ServiceRelocationPublication
27
+ } from '../foundation/service-relocation-runtime';
28
+ import { putNewRelocationBlob } from '../locations/relocation-blob';
29
+ import {
30
+ decodeRoutingId,
31
+ encodeRoutingIdStorageHex,
32
+ routingIdWireHex
33
+ } from '../routing-id';
34
+ import {
35
+ decodeRelocatingActorAuthorityIdentity,
36
+ encodeActorAuthorityIdentity
37
+ } from './actor-authority-publication';
38
+ import {
39
+ replaceActorRelocationAuthorityApplicationPayload
40
+ } from './actor-authority-payload-codec';
41
+ import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
42
+ import { wrapFrameworkPayloadMessage } from '../messaging/payload-codec';
43
+ import {
44
+ decodeRelocationDataChunkV1,
45
+ decodeRelocationManifestV1,
46
+ encodeRelocationDataChunkV1,
47
+ encodeRelocationManifestV1
48
+ } from '../protocol/service_wire_pilot_codec.generated';
49
+
50
+ const RETENTION_MS = 24 * 60 * 60 * 1_000;
51
+ const ROOT_VERSION = 2;
52
+ const ROOT_MAGIC = Buffer.from('ZLJR');
53
+ const MAX_ROOT_BYTES = 1024 * 1024;
54
+ const JOURNAL_INVENTORY_DOMAIN = Buffer.from(
55
+ 'zlink-node-deferred-join-authority-v1\0',
56
+ 'utf8'
57
+ );
58
+
59
+ export type ZLinkDeferredJoinDeliveryCursor =
60
+ | 'prepared'
61
+ | 'committed'
62
+ | 'delivered';
63
+
64
+ export interface ZLinkDeferredJoinAcceptedRoot {
65
+ readonly authority: ZLinkAuthoritySnapshot;
66
+ readonly reference: ZLinkBlobReference;
67
+ readonly checksumCrc32c: number;
68
+ readonly operationId: ZLinkActorJoinOperationId;
69
+ readonly actor: ActorRef;
70
+ readonly rawReply: Buffer;
71
+ readonly replyContentType?: string;
72
+ readonly cursor: ZLinkDeferredJoinDeliveryCursor;
73
+ }
74
+
75
+ export interface ZLinkDeferredJoinRootIdentity {
76
+ readonly authorityKey: string;
77
+ readonly objectKind: 'actor' | 'user_spot' | 'instance_spot';
78
+ readonly objectGeneration: bigint;
79
+ readonly aggregateId: string;
80
+ readonly aggregateGeneration: bigint;
81
+ }
82
+
83
+ /** Identifies whether an authority slot points at a deferred Join journal root. */
84
+ export async function isDeferredJoinAcceptedRootPublication(
85
+ relocation: ZLinkRelocationStore,
86
+ reference: string,
87
+ checksumCrc32c: number,
88
+ expected: ZLinkDeferredJoinRootIdentity,
89
+ signal?: AbortSignal
90
+ ): Promise<boolean> {
91
+ if (expected.objectKind !== 'actor' || expected.aggregateGeneration === 0n) return false;
92
+ const read = await relocation.read({ value: reference } as ZLinkBlobReference, signal);
93
+ if (read.kind !== 'found' || crc32c(read.bytes) !== checksumCrc32c) return false;
94
+ if (hasJournalRootMagic(read.bytes)) {
95
+ try {
96
+ const root = decodeRoot(read.bytes);
97
+ return expected.aggregateId === operationAggregateId(root.operationId)
98
+ && expected.aggregateGeneration === root.actor.objectGeneration
99
+ && expected.authorityKey === encodeAuthorityKey('actor', root.actor.actorId).value
100
+ && expected.objectGeneration === root.actor.objectGeneration;
101
+ } catch {
102
+ return false;
103
+ }
104
+ }
105
+ const root = await readCanonicalDeferredJoinRoot(relocation, read.bytes, signal);
106
+ return root !== undefined
107
+ && root.identity.aggregateId === expected.aggregateId
108
+ && root.identity.aggregateGeneration === expected.aggregateGeneration
109
+ && root.identity.authorityKey === expected.authorityKey
110
+ && root.identity.objectKind === expected.objectKind
111
+ && root.identity.objectGeneration === expected.objectGeneration;
112
+ }
113
+
114
+ interface DeferredJoinAuthorityPublication {
115
+ readonly applicationPayload: Buffer;
116
+ readonly reference: ZLinkBlobReference;
117
+ readonly checksumCrc32c: number;
118
+ readonly aggregateId: string;
119
+ readonly aggregateGeneration: bigint;
120
+ readonly targetOwnerId: string;
121
+ readonly targetOwnerLeaseGeneration: bigint;
122
+ readonly canonical?: boolean;
123
+ readonly canonicalPublication?: ServiceRelocationPublication;
124
+ }
125
+
126
+ /**
127
+ * Keeps a cross-node Accepted Join completion under the Actor authority.
128
+ * Every cursor transition writes and verifies a new immutable root before the
129
+ * authority CAS. A failed callback leaves the committed root available for the
130
+ * next target Actor mailbox retry.
131
+ */
132
+ export class ZLinkDeferredJoinAcceptedJournal {
133
+ constructor(
134
+ private readonly authority: ZLinkAuthorityStore,
135
+ private readonly relocation: ZLinkRelocationStore,
136
+ private readonly messageSerializers?: ReadonlyMap<string, ZLinkMessageSerializer>
137
+ ) {}
138
+
139
+ async prepare(
140
+ actorId: string,
141
+ operationId: ZLinkActorJoinOperationId,
142
+ actor: ActorRef,
143
+ rawReply: Uint8Array,
144
+ replyContentType?: string,
145
+ signal?: AbortSignal,
146
+ canonicalInventoryDigest?: string
147
+ ): Promise<ZLinkDeferredJoinAcceptedRoot> {
148
+ validateIdentity(actorId, operationId, actor);
149
+ if (replyContentType !== undefined && replyContentType.length === 0) {
150
+ throw new TypeError('Deferred Join reply content type must be non-empty.');
151
+ }
152
+ signal?.throwIfAborted();
153
+ const key = encodeAuthorityKey('actor', actorId);
154
+ const read = await this.authority.readAuthority(key, signal);
155
+ if (read.kind !== 'snapshot') {
156
+ throw new Error(`Actor '${actorId}' has no authority for durable Join completion.`);
157
+ }
158
+ requireAuthorityActor(read.payload, actor);
159
+ const existing = await this.readPublished(read, signal);
160
+ if (existing !== undefined) {
161
+ if (isSameOperation(existing, operationId, actor)) {
162
+ return existing;
163
+ }
164
+ if (existing.cursor !== 'delivered') {
165
+ requireSameOperation(existing, operationId, actor);
166
+ }
167
+ }
168
+
169
+ const rootValue = {
170
+ operationId,
171
+ actor,
172
+ rawReply: Buffer.from(rawReply),
173
+ ...(replyContentType === undefined ? {} : { replyContentType }),
174
+ cursor: 'prepared'
175
+ } as const;
176
+ const initialPublication = decodeAuthorityPublication(read.payload);
177
+ const initialCanonicalIdentity = serviceRelocationAuthoritySlotIdentity(read.payload);
178
+ const canonicalPublication = initialPublication?.canonical === true
179
+ ? initialPublication
180
+ : undefined;
181
+ const root = canonicalPublication !== undefined
182
+ && (canonicalInventoryDigest !== undefined
183
+ || !canonicalPublication.reference.value.startsWith('zlink-direct:'))
184
+ ? await this.storeCanonicalRoot(
185
+ rootValue,
186
+ read,
187
+ canonicalPublication,
188
+ signal,
189
+ canonicalInventoryDigest
190
+ )
191
+ : await this.storeRoot(rootValue, signal);
192
+ if (initialCanonicalIdentity !== undefined && canonicalInventoryDigest !== undefined) {
193
+ return {
194
+ ...root,
195
+ authority: read
196
+ };
197
+ }
198
+ let expected: ZLinkAuthoritySnapshot = read;
199
+ for (let attempt = 0; attempt < 3; attempt++) {
200
+ const currentPublication = decodeAuthorityPublication(expected.payload);
201
+ const canonicalIdentity = serviceRelocationAuthoritySlotIdentity(expected.payload);
202
+ const publication: DeferredJoinAuthorityPublication = {
203
+ applicationPayload: Buffer.from(
204
+ currentPublication?.applicationPayload
205
+ ?? serviceRelocationAuthorityApplicationPayload(expected.payload)
206
+ ),
207
+ reference: root.reference,
208
+ checksumCrc32c: root.checksumCrc32c,
209
+ aggregateId: canonicalIdentity !== undefined
210
+ ? canonicalIdentity.aggregateId
211
+ : operationAggregateId(operationId),
212
+ aggregateGeneration: canonicalIdentity === undefined
213
+ ? actor.objectGeneration
214
+ : requireCanonicalAggregateGeneration(canonicalIdentity.aggregateGeneration),
215
+ targetOwnerId: expected.ownerId,
216
+ targetOwnerLeaseGeneration: expected.ownerLeaseGeneration,
217
+ ...(currentPublication?.canonicalPublication === undefined
218
+ ? {}
219
+ : { canonicalPublication: currentPublication.canonicalPublication })
220
+ };
221
+ const result = await this.authority.compareExchangeAuthority(
222
+ key,
223
+ expected.storeVersion,
224
+ {
225
+ kind: 'put',
226
+ generationTransition: 'preserve',
227
+ payload: currentPublication === undefined && canonicalIdentity !== undefined
228
+ ? new ServiceRelocationAuthorityPayloadCodec().publish(
229
+ expected.payload,
230
+ toServiceRelocationPublication(publication)
231
+ )
232
+ : replaceDeferredJoinAuthorityPublication(
233
+ expected.payload,
234
+ encodeAuthorityPublication(publication)
235
+ )
236
+ },
237
+ signal
238
+ );
239
+ if (result.kind === 'stored') {
240
+ if (existing !== undefined) {
241
+ await this.deleteBestEffort(existing.reference);
242
+ }
243
+ return {
244
+ ...root,
245
+ authority: storedSnapshot(result)
246
+ };
247
+ }
248
+ if (result.kind !== 'conflict' || result.current.kind !== 'snapshot') break;
249
+ const current = await this.readPublished(result.current, signal);
250
+ if (current !== undefined) {
251
+ await this.deleteBestEffort(root.reference);
252
+ requireSameOperation(current, operationId, actor);
253
+ return current;
254
+ }
255
+ requireAuthorityActor(result.current.payload, actor);
256
+ expected = result.current;
257
+ }
258
+ await this.deleteBestEffort(root.reference);
259
+ throw new Error(`Actor '${actorId}' authority rejected Join completion publication.`);
260
+ }
261
+
262
+ async recover(
263
+ actorId: string,
264
+ signal?: AbortSignal
265
+ ): Promise<ZLinkDeferredJoinAcceptedRoot | undefined> {
266
+ const read = await this.authority.readAuthority(
267
+ encodeAuthorityKey('actor', actorId),
268
+ signal
269
+ );
270
+ return read.kind === 'snapshot'
271
+ ? await this.readPublished(read, signal)
272
+ : undefined;
273
+ }
274
+
275
+ markCommitted(
276
+ root: ZLinkDeferredJoinAcceptedRoot,
277
+ actor?: ActorRef,
278
+ signal?: AbortSignal
279
+ ): Promise<ZLinkDeferredJoinAcceptedRoot> {
280
+ if (actor !== undefined) requireSameActor(root, actor);
281
+ return this.moveCursor(root, 'committed', actor, signal);
282
+ }
283
+
284
+ markDelivered(
285
+ root: ZLinkDeferredJoinAcceptedRoot,
286
+ signal?: AbortSignal
287
+ ): Promise<ZLinkDeferredJoinAcceptedRoot> {
288
+ return this.moveCursor(root, 'delivered', undefined, signal);
289
+ }
290
+
291
+ async discardPrepared(
292
+ root: ZLinkDeferredJoinAcceptedRoot,
293
+ signal?: AbortSignal
294
+ ): Promise<void> {
295
+ const key = encodeAuthorityKey('actor', root.actor.actorId);
296
+ for (let attempt = 0; attempt < 3; attempt++) {
297
+ const read = await this.authority.readAuthority(key, signal);
298
+ if (read.kind !== 'snapshot') return;
299
+ const current = await this.readPublished(read, signal);
300
+ if (current === undefined) return;
301
+ requireSameOperation(current, root.operationId, root.actor);
302
+ if (current.cursor !== 'prepared') return;
303
+ const publication = decodeAuthorityPublication(read.payload);
304
+ if (publication === undefined) return;
305
+ const result = await this.authority.compareExchangeAuthority(
306
+ key,
307
+ read.storeVersion,
308
+ {
309
+ kind: 'put',
310
+ generationTransition: 'preserve',
311
+ payload: replaceDeferredJoinAuthorityPublication(
312
+ read.payload,
313
+ publication.applicationPayload
314
+ )
315
+ },
316
+ signal
317
+ );
318
+ if (result.kind === 'stored') {
319
+ await this.deleteBestEffort(current.reference);
320
+ return;
321
+ }
322
+ }
323
+ throw new Error(`Actor '${root.actor.actorId}' deferred Join preparation could not be discarded.`);
324
+ }
325
+
326
+ async deliver(
327
+ root: ZLinkDeferredJoinAcceptedRoot,
328
+ actor: ZLinkActor,
329
+ actorRef: ActorRef,
330
+ submitMailbox: <T>(operation: () => Promise<T>) => Promise<T>,
331
+ signal?: AbortSignal
332
+ ): Promise<ZLinkDeferredJoinAcceptedRoot> {
333
+ requireSameActor(root, actorRef);
334
+ return await submitMailbox(async () => {
335
+ const current = await this.recover(actorRef.actorId, signal);
336
+ if (current === undefined) {
337
+ if (root.cursor === 'delivered') return root;
338
+ throw new Error(`Actor '${actorRef.actorId}' lost its deferred Join completion root.`);
339
+ }
340
+ requireSameOperation(current, root.operationId, actorRef);
341
+ if (current.cursor === 'delivered') {
342
+ await this.releaseDelivered(current, signal);
343
+ return current;
344
+ }
345
+ if (current.cursor !== 'committed') {
346
+ throw new Error(`Actor '${actorRef.actorId}' Join completion is not committed.`);
347
+ }
348
+ const completion: ZLinkActorJoinCompletion = {
349
+ status: 'accepted',
350
+ operationId: current.operationId,
351
+ actor: current.actor,
352
+ reply: current.rawReply.byteLength === 0
353
+ ? undefined
354
+ : current.replyContentType === undefined
355
+ ? ZLinkMessage.fromEncoded(ZLinkEncodedPayload.from(current.rawReply))
356
+ : wrapFrameworkPayloadMessage(
357
+ RuntimeMessage.from(current.rawReply),
358
+ this.messageSerializers,
359
+ current.replyContentType,
360
+ undefined,
361
+ 'reply'
362
+ )
363
+ };
364
+ await actor.onJoinCompleted?.(completion);
365
+ let delivered = current;
366
+ for (let attempt = 0; attempt < 3; attempt++) {
367
+ delivered = await this.markDelivered(delivered, signal);
368
+ if (delivered.cursor === 'delivered') {
369
+ await this.releaseDelivered(delivered, signal);
370
+ return delivered;
371
+ }
372
+ }
373
+ throw new Error(
374
+ `Actor '${actorRef.actorId}' Join completion callback ran but its Delivered cursor could not be stored.`
375
+ );
376
+ });
377
+ }
378
+
379
+ private async releaseDelivered(
380
+ root: ZLinkDeferredJoinAcceptedRoot,
381
+ signal?: AbortSignal
382
+ ): Promise<void> {
383
+ const key = encodeAuthorityKey('actor', root.actor.actorId);
384
+ for (let attempt = 0; attempt < 3; attempt++) {
385
+ const read = await this.authority.readAuthority(key, signal);
386
+ if (read.kind !== 'snapshot') return;
387
+ const current = await this.readPublished(read, signal);
388
+ if (current === undefined) return;
389
+ requireSameOperation(current, root.operationId, root.actor);
390
+ if (current.cursor !== 'delivered') {
391
+ throw new Error(
392
+ `Actor '${root.actor.actorId}' Join completion root is not Delivered.`
393
+ );
394
+ }
395
+ const publication = decodeAuthorityPublication(read.payload);
396
+ if (publication === undefined) return;
397
+ const result = await this.authority.compareExchangeAuthority(
398
+ key,
399
+ read.storeVersion,
400
+ {
401
+ kind: 'put',
402
+ generationTransition: 'preserve',
403
+ payload: replaceDeferredJoinAuthorityPublication(
404
+ read.payload,
405
+ publication.applicationPayload
406
+ )
407
+ },
408
+ signal
409
+ );
410
+ if (result.kind === 'stored') {
411
+ await this.deleteBestEffort(current.reference);
412
+ return;
413
+ }
414
+ }
415
+ throw new Error(
416
+ `Actor '${root.actor.actorId}' Delivered Join completion could not be released.`
417
+ );
418
+ }
419
+
420
+ private async moveCursor(
421
+ root: ZLinkDeferredJoinAcceptedRoot,
422
+ next: ZLinkDeferredJoinDeliveryCursor,
423
+ actor: ActorRef | undefined,
424
+ signal?: AbortSignal
425
+ ): Promise<ZLinkDeferredJoinAcceptedRoot> {
426
+ const currentIndex = cursorIndex(root.cursor);
427
+ const nextIndex = cursorIndex(next);
428
+ if (nextIndex < currentIndex || nextIndex > currentIndex + 1) {
429
+ throw new Error('Deferred Join completion cursor transition is invalid.');
430
+ }
431
+ if (next === root.cursor) return root;
432
+
433
+ const key = encodeAuthorityKey('actor', root.actor.actorId);
434
+ const read = await this.authority.readAuthority(key, signal);
435
+ if (read.kind !== 'snapshot') {
436
+ throw new Error(`Actor '${root.actor.actorId}' authority disappeared during Join completion.`);
437
+ }
438
+ let current = await this.readPublished(read, signal);
439
+ if (current === undefined) {
440
+ const retainedRoot = await this.relocation.read(root.reference, signal);
441
+ if (
442
+ retainedRoot.kind === 'found'
443
+ && crc32c(retainedRoot.bytes) === root.checksumCrc32c
444
+ ) {
445
+ const retained = hasJournalRootMagic(retainedRoot.bytes)
446
+ ? decodeRoot(retainedRoot.bytes)
447
+ : (await readCanonicalDeferredJoinRoot(
448
+ this.relocation,
449
+ retainedRoot.bytes,
450
+ signal
451
+ ))?.completion;
452
+ if (retained?.cursor === 'delivered' && isSameOperation(
453
+ { ...root, ...retained },
454
+ root.operationId,
455
+ root.actor
456
+ )) {
457
+ current = {
458
+ authority: read,
459
+ reference: root.reference,
460
+ checksumCrc32c: root.checksumCrc32c,
461
+ ...retained
462
+ };
463
+ }
464
+ }
465
+ if (current === undefined &&
466
+ next === 'committed'
467
+ && actor !== undefined
468
+ && authorityMatchesActor(read.payload, actor)
469
+ ) {
470
+ throw new ZLinkFrameworkException(
471
+ ZLinkFrameworkErrorKind.Unavailable,
472
+ `Actor '${root.actor.actorId}' Join completion delivery is indeterminate: `
473
+ + 'the authority no longer references the operation and no matching retained root exists.'
474
+ );
475
+ }
476
+ if (current === undefined) {
477
+ throw new Error(`Actor '${root.actor.actorId}' no longer references its Join completion root.`);
478
+ }
479
+ }
480
+ requireSameOperation(current, root.operationId, root.actor);
481
+ if (cursorIndex(current.cursor) >= nextIndex) return current;
482
+
483
+ const replacement = await this.storeRoot({
484
+ operationId: current.operationId,
485
+ actor: actor ?? current.actor,
486
+ rawReply: current.rawReply,
487
+ ...(current.replyContentType === undefined
488
+ ? {}
489
+ : { replyContentType: current.replyContentType }),
490
+ cursor: next
491
+ }, signal);
492
+ const publication = decodeAuthorityPublication(read.payload);
493
+ if (publication === undefined) {
494
+ await this.deleteBestEffort(replacement.reference);
495
+ throw new Error('Actor authority lost its deferred Join publication.');
496
+ }
497
+ const identity = decodeRelocatingActorAuthorityIdentity(
498
+ publication.applicationPayload,
499
+ read.objectGeneration
500
+ );
501
+ if (identity === undefined) {
502
+ await this.deleteBestEffort(replacement.reference);
503
+ throw new Error('Actor authority identity is invalid.');
504
+ }
505
+ const result = await this.authority.compareExchangeAuthority(
506
+ key,
507
+ read.storeVersion,
508
+ {
509
+ kind: 'put',
510
+ generationTransition: 'preserve',
511
+ payload: replaceDeferredJoinAuthorityPublication(
512
+ read.payload,
513
+ encodeAuthorityPublication({
514
+ ...publication,
515
+ applicationPayload: actor === undefined
516
+ ? publication.applicationPayload
517
+ : replaceActorRelocationAuthorityApplicationPayload(
518
+ publication.applicationPayload,
519
+ encodeActorAuthorityIdentity({ ...identity, actor })
520
+ ),
521
+ reference: replacement.reference,
522
+ checksumCrc32c: replacement.checksumCrc32c
523
+ })
524
+ )
525
+ },
526
+ signal
527
+ );
528
+ if (result.kind !== 'stored') {
529
+ await this.deleteBestEffort(replacement.reference);
530
+ const recovered = await this.recover(root.actor.actorId, signal);
531
+ if (recovered === undefined) {
532
+ throw new Error('Deferred Join cursor CAS conflicted without a recoverable root.');
533
+ }
534
+ requireSameOperation(recovered, root.operationId, root.actor);
535
+ return recovered;
536
+ }
537
+ await this.deleteBestEffort(current.reference);
538
+ return {
539
+ ...replacement,
540
+ authority: storedSnapshot(result)
541
+ };
542
+ }
543
+
544
+ private async readPublished(
545
+ authority: ZLinkAuthoritySnapshot,
546
+ signal?: AbortSignal
547
+ ): Promise<ZLinkDeferredJoinAcceptedRoot | undefined> {
548
+ const publication = decodeAuthorityPublication(authority.payload);
549
+ if (publication === undefined) return undefined;
550
+ // Preparing has no relocation root, while Captured still names the
551
+ // source-memory direct-transfer payload. Neither pre-target-publication
552
+ // phase can contain a Relocation Store backed deferred Join root.
553
+ const canonicalPhase = publication.canonicalPublication?.canonicalPhase;
554
+ if (canonicalPhase === 1 || canonicalPhase === 2) return undefined;
555
+ const read = await this.relocation.read(publication.reference, signal);
556
+ if (read.kind !== 'found' && publication.canonical === true
557
+ && publication.reference.value.startsWith('zlink-direct:')) {
558
+ return undefined;
559
+ }
560
+ if (
561
+ read.kind !== 'found'
562
+ || crc32c(read.bytes) !== publication.checksumCrc32c
563
+ ) {
564
+ throw new Error('Published deferred Join completion root is missing or corrupt.');
565
+ }
566
+ if (publication.canonical === true && !hasJournalRootMagic(read.bytes)) {
567
+ const root = await readCanonicalDeferredJoinRoot(
568
+ this.relocation,
569
+ read.bytes,
570
+ signal
571
+ );
572
+ if (root === undefined) {
573
+ // A canonical relocation root and the post-commit Join journal share
574
+ // the embedded slot. A root without a completion remains Host-owned.
575
+ return undefined;
576
+ }
577
+ if (root.identity.aggregateId !== publication.aggregateId
578
+ || root.identity.aggregateGeneration !== publication.aggregateGeneration
579
+ || root.identity.objectGeneration !== authority.objectGeneration) {
580
+ throw new Error('Published deferred Join completion root identity does not match its authority slot.');
581
+ }
582
+ return {
583
+ authority,
584
+ reference: publication.reference,
585
+ checksumCrc32c: publication.checksumCrc32c,
586
+ ...root.completion
587
+ };
588
+ }
589
+ return {
590
+ authority,
591
+ reference: publication.reference,
592
+ checksumCrc32c: publication.checksumCrc32c,
593
+ ...decodeRoot(read.bytes)
594
+ };
595
+ }
596
+
597
+ private async storeRoot(
598
+ value: Omit<
599
+ ZLinkDeferredJoinAcceptedRoot,
600
+ 'authority' | 'reference' | 'checksumCrc32c'
601
+ >,
602
+ signal?: AbortSignal
603
+ ): Promise<Omit<ZLinkDeferredJoinAcceptedRoot, 'authority'>> {
604
+ const payload = encodeRoot(value);
605
+ const checksumCrc32c = crc32c(payload);
606
+ const stored = await putNewRelocationBlob(
607
+ this.relocation,
608
+ payload,
609
+ RETENTION_MS,
610
+ signal
611
+ );
612
+ if (
613
+ stored.expiresAt.getTime() <= stored.storeNow.getTime()
614
+ ) {
615
+ await this.deleteBestEffort(stored.reference);
616
+ throw new Error('Relocation Store returned an invalid deferred Join root receipt.');
617
+ }
618
+ const read = await this.relocation.read(stored.reference, signal);
619
+ if (
620
+ read.kind !== 'found'
621
+ || !Buffer.from(read.bytes).equals(payload)
622
+ ) {
623
+ await this.deleteBestEffort(stored.reference);
624
+ throw new Error('Relocation Store failed deferred Join root verification.');
625
+ }
626
+ return {
627
+ ...value,
628
+ rawReply: Buffer.from(value.rawReply),
629
+ reference: stored.reference,
630
+ checksumCrc32c
631
+ };
632
+ }
633
+
634
+ private async storeCanonicalRoot(
635
+ value: Omit<
636
+ ZLinkDeferredJoinAcceptedRoot,
637
+ 'authority' | 'reference' | 'checksumCrc32c'
638
+ >,
639
+ authority: ZLinkAuthoritySnapshot,
640
+ publication: DeferredJoinAuthorityPublication,
641
+ signal?: AbortSignal,
642
+ canonicalInventoryDigest?: string
643
+ ): Promise<Omit<ZLinkDeferredJoinAcceptedRoot, 'authority'>> {
644
+ let inventory: Buffer;
645
+ if (canonicalInventoryDigest !== undefined) {
646
+ if (!/^[0-9a-f]{64}$/u.test(canonicalInventoryDigest)) {
647
+ throw new Error('Canonical relocation inventory digest is invalid.');
648
+ }
649
+ inventory = Buffer.from(canonicalInventoryDigest, 'hex');
650
+ } else {
651
+ const current = await this.relocation.read(publication.reference, signal);
652
+ if (current.kind !== 'found'
653
+ || crc32c(current.bytes) !== publication.checksumCrc32c) {
654
+ throw new Error('Canonical relocation manifest is missing or corrupt.');
655
+ }
656
+ inventory = decodeCanonicalTreeManifest(current.bytes).inventoryDigest;
657
+ }
658
+ const logicalRoot = encodeCanonicalDeferredJoinRoot(
659
+ value,
660
+ authority,
661
+ publication,
662
+ inventory
663
+ );
664
+ const stored = await storeCanonicalTree(
665
+ this.relocation,
666
+ logicalRoot,
667
+ inventory,
668
+ signal
669
+ );
670
+ return {
671
+ ...value,
672
+ rawReply: Buffer.from(value.rawReply),
673
+ reference: stored.reference,
674
+ checksumCrc32c: stored.checksumCrc32c
675
+ };
676
+ }
677
+
678
+ private async deleteBestEffort(reference: ZLinkBlobReference): Promise<void> {
679
+ try {
680
+ await this.relocation.delete(reference);
681
+ } catch {
682
+ // Fixed retention remains the orphan cleanup boundary.
683
+ }
684
+ }
685
+ }
686
+
687
+ function requireAuthorityActor(payload: Uint8Array, actor: ActorRef): void {
688
+ if (!authorityMatchesActor(payload, actor)) {
689
+ throw new Error(`Actor '${actor.actorId}' authority fence does not match its ActorRef.`);
690
+ }
691
+ }
692
+
693
+ function authorityMatchesActor(payload: Uint8Array, actor: ActorRef): boolean {
694
+ const publication = decodeAuthorityPublication(payload);
695
+ const applications = publication === undefined
696
+ ? [serviceRelocationAuthorityApplicationPayload(payload)]
697
+ : [
698
+ publication.applicationPayload,
699
+ serviceRelocationAuthorityApplicationPayload(payload)
700
+ ];
701
+ return applications.some(application => {
702
+ const identity = decodeRelocatingActorAuthorityIdentity(
703
+ application,
704
+ actor.objectGeneration
705
+ );
706
+ return identity !== undefined
707
+ && identity.actor.actorId === actor.actorId
708
+ && identity.actor.objectGeneration === actor.objectGeneration
709
+ && routingIdWireHex(identity.actor.nodeRid) === routingIdWireHex(actor.nodeRid);
710
+ });
711
+ }
712
+
713
+ function encodeRoot(
714
+ value: Omit<
715
+ ZLinkDeferredJoinAcceptedRoot,
716
+ 'authority' | 'reference' | 'checksumCrc32c'
717
+ >
718
+ ): Buffer {
719
+ const nodeRidHex = routingIdWireHex(value.actor.nodeRid);
720
+ const encoded = Buffer.concat([ROOT_MAGIC, Buffer.from(JSON.stringify({
721
+ version: ROOT_VERSION,
722
+ operationHigh: value.operationId.high.toString(),
723
+ operationLow: value.operationId.low.toString(),
724
+ actorId: value.actor.actorId,
725
+ actorGeneration: value.actor.objectGeneration.toString(),
726
+ actorMeshName: value.actor.meshName,
727
+ actorNodeRid: String(value.actor.nodeRid),
728
+ actorNodeRidHex: nodeRidHex,
729
+ rawReply: Buffer.from(value.rawReply).toString('base64'),
730
+ ...(value.replyContentType === undefined
731
+ ? {}
732
+ : { replyContentType: value.replyContentType }),
733
+ cursor: value.cursor
734
+ }), 'utf8')]);
735
+ if (encoded.byteLength > MAX_ROOT_BYTES) {
736
+ throw new Error('Deferred Join completion root exceeds 1 MiB.');
737
+ }
738
+ return encoded;
739
+ }
740
+
741
+ function decodeRoot(
742
+ payload: Uint8Array
743
+ ): Omit<ZLinkDeferredJoinAcceptedRoot, 'authority' | 'reference' | 'checksumCrc32c'> {
744
+ if (payload.byteLength === 0 || payload.byteLength > MAX_ROOT_BYTES) {
745
+ throw new Error('Deferred Join completion root size is invalid.');
746
+ }
747
+ const bytes = Buffer.from(payload);
748
+ const encoded = hasJournalRootMagic(bytes)
749
+ ? bytes.subarray(ROOT_MAGIC.byteLength)
750
+ : bytes;
751
+ const value = JSON.parse(encoded.toString('utf8')) as Record<string, unknown>;
752
+ if (
753
+ value.version !== ROOT_VERSION
754
+ || typeof value.operationHigh !== 'string'
755
+ || typeof value.operationLow !== 'string'
756
+ || typeof value.actorId !== 'string'
757
+ || typeof value.actorGeneration !== 'string'
758
+ || typeof value.actorMeshName !== 'string'
759
+ || typeof value.actorNodeRid !== 'string'
760
+ || typeof value.rawReply !== 'string'
761
+ || (value.replyContentType !== undefined
762
+ && (typeof value.replyContentType !== 'string' || value.replyContentType.length === 0))
763
+ || !isCursor(value.cursor)
764
+ ) {
765
+ throw new Error('Deferred Join completion root is invalid.');
766
+ }
767
+ const rawReply = Buffer.from(value.rawReply, 'base64');
768
+ if (rawReply.toString('base64') !== value.rawReply) {
769
+ throw new Error('Deferred Join completion reply is not canonical base64.');
770
+ }
771
+ const actorGeneration = BigInt(value.actorGeneration);
772
+ const operationId = {
773
+ high: BigInt(value.operationHigh),
774
+ low: BigInt(value.operationLow)
775
+ };
776
+ const actor: ActorRef = {
777
+ actorId: value.actorId,
778
+ objectGeneration: actorGeneration,
779
+ meshName: value.actorMeshName,
780
+ nodeRid: decodeRoutingId(
781
+ value.actorNodeRid,
782
+ typeof value.actorNodeRidHex === 'string' ? value.actorNodeRidHex : undefined
783
+ )
784
+ };
785
+ validateIdentity(value.actorId, operationId, actor);
786
+ return {
787
+ operationId,
788
+ actor,
789
+ rawReply,
790
+ ...(typeof value.replyContentType === 'string'
791
+ ? { replyContentType: value.replyContentType }
792
+ : {}),
793
+ cursor: value.cursor
794
+ };
795
+ }
796
+
797
+ function encodeAuthorityPublication(value: DeferredJoinAuthorityPublication): Buffer {
798
+ return Buffer.from(new ServiceRelocationAuthorityPayloadCodec().publish(
799
+ value.applicationPayload,
800
+ toServiceRelocationPublication(value)
801
+ ));
802
+ }
803
+
804
+ function toServiceRelocationPublication(
805
+ value: DeferredJoinAuthorityPublication
806
+ ): ServiceRelocationPublication {
807
+ return {
808
+ ...value.canonicalPublication,
809
+ reference: value.reference.value,
810
+ checksumCrc32c: value.checksumCrc32c,
811
+ aggregateId: value.aggregateId,
812
+ aggregateGeneration: value.aggregateGeneration,
813
+ inventoryDigest: journalInventoryDigest(value.applicationPayload),
814
+ targetOwnerId: value.targetOwnerId,
815
+ targetOwnerLeaseGeneration: value.targetOwnerLeaseGeneration
816
+ };
817
+ }
818
+
819
+ function decodeAuthorityPublication(
820
+ payload: Uint8Array
821
+ ): DeferredJoinAuthorityPublication | undefined {
822
+ const outerApplication = serviceRelocationAuthorityApplicationPayload(payload);
823
+ const candidates = Buffer.from(outerApplication).equals(Buffer.from(payload))
824
+ ? [Buffer.from(payload)]
825
+ : [Buffer.from(outerApplication), Buffer.from(payload)];
826
+ for (const candidate of candidates) {
827
+ const publication = decodeDirectAuthorityPublication(candidate);
828
+ if (publication !== undefined) return publication;
829
+ }
830
+ return undefined;
831
+ }
832
+
833
+ function replaceDeferredJoinAuthorityPublication(
834
+ payload: Uint8Array,
835
+ replacement: Uint8Array
836
+ ): Buffer {
837
+ const codec = new ServiceRelocationAuthorityPayloadCodec();
838
+ const currentPublication = codec.read(payload);
839
+ const replacementPublication = codec.read(replacement);
840
+ if (
841
+ currentPublication?.canonical === true
842
+ || replacementPublication?.canonical === true
843
+ ) {
844
+ // Canonical authority has exactly one embedded relocation slot. A journal
845
+ // cursor replaces that slot atomically; it must never be wrapped or nested
846
+ // under an older ZLAR/application layer.
847
+ return Buffer.from(replacement);
848
+ }
849
+ const outerApplication = serviceRelocationAuthorityApplicationPayload(payload);
850
+ if (
851
+ !Buffer.from(outerApplication).equals(Buffer.from(payload))
852
+ && decodeDirectAuthorityPublication(outerApplication) !== undefined
853
+ ) {
854
+ return replaceServiceRelocationAuthorityApplicationPayload(payload, replacement);
855
+ }
856
+ return decodeDirectAuthorityPublication(payload) === undefined
857
+ ? replaceServiceRelocationAuthorityApplicationPayload(payload, replacement)
858
+ : Buffer.from(replacement);
859
+ }
860
+
861
+ function decodeDirectAuthorityPublication(
862
+ payload: Uint8Array
863
+ ): DeferredJoinAuthorityPublication | undefined {
864
+ const publication = new ServiceRelocationAuthorityPayloadCodec().read(payload);
865
+ if (publication === undefined) return undefined;
866
+ const applicationPayload = serviceRelocationAuthorityApplicationPayload(payload);
867
+ return publication.canonical === true
868
+ || publication.inventoryDigest === journalInventoryDigest(applicationPayload)
869
+ ? deferredJoinPublication(applicationPayload, publication)
870
+ : undefined;
871
+ }
872
+
873
+ function deferredJoinPublication(
874
+ applicationPayload: Buffer,
875
+ publication: ServiceRelocationPublication
876
+ ): DeferredJoinAuthorityPublication {
877
+ return {
878
+ applicationPayload,
879
+ reference: { value: publication.reference } as ZLinkBlobReference,
880
+ checksumCrc32c: publication.checksumCrc32c,
881
+ aggregateId: publication.aggregateId,
882
+ aggregateGeneration: publication.aggregateGeneration,
883
+ targetOwnerId: publication.targetOwnerId,
884
+ targetOwnerLeaseGeneration: publication.targetOwnerLeaseGeneration,
885
+ canonical: publication.canonical,
886
+ ...(publication.canonical === true ? { canonicalPublication: publication } : {})
887
+ };
888
+ }
889
+
890
+ function hasJournalRootMagic(payload: Uint8Array): boolean {
891
+ const bytes = Buffer.from(payload);
892
+ return bytes.byteLength >= ROOT_MAGIC.byteLength
893
+ && bytes.subarray(0, ROOT_MAGIC.byteLength).equals(ROOT_MAGIC);
894
+ }
895
+
896
+ function journalInventoryDigest(applicationPayload: Uint8Array): string {
897
+ return createHash('sha256')
898
+ .update(JOURNAL_INVENTORY_DOMAIN)
899
+ .update(applicationPayload)
900
+ .digest('hex');
901
+ }
902
+
903
+ function operationAggregateId(operationId: ZLinkActorJoinOperationId): string {
904
+ const encoded = [operationId.high, operationId.low]
905
+ .map(value => BigInt.asUintN(64, value).toString(16).padStart(16, '0'))
906
+ .join('');
907
+ return `${encoded.slice(0, 8)}-${encoded.slice(8, 12)}-${encoded.slice(12, 16)}`
908
+ + `-${encoded.slice(16, 20)}-${encoded.slice(20)}`;
909
+ }
910
+
911
+ function requireCanonicalAggregateGeneration(value: bigint): bigint {
912
+ if (value === 0n) {
913
+ throw new ZLinkFrameworkException(
914
+ ZLinkFrameworkErrorKind.DataLost,
915
+ 'Canonical relocation slot has no aggregate generation.'
916
+ );
917
+ }
918
+ return value;
919
+ }
920
+
921
+ interface CanonicalTreeManifest {
922
+ readonly inventoryDigest: Buffer;
923
+ readonly logicalLength: bigint;
924
+ readonly logicalChecksumCrc32c: number;
925
+ readonly chunks: readonly {
926
+ readonly order: number;
927
+ readonly reference: ZLinkBlobReference;
928
+ readonly length: bigint;
929
+ readonly checksumCrc32c: number;
930
+ }[];
931
+ }
932
+
933
+ function decodeCanonicalTreeManifest(payload: Uint8Array): CanonicalTreeManifest {
934
+ const generated = decodeRelocationManifestV1(payload);
935
+ const chunks = generated.chunks.map((chunk, index) => {
936
+ if (chunk.order !== index) {
937
+ throw new Error('Canonical relocation chunk identity is invalid.');
938
+ }
939
+ return {
940
+ order: chunk.order,
941
+ reference: { value: chunk.reference } as ZLinkBlobReference,
942
+ length: chunk.length,
943
+ checksumCrc32c: chunk.checksumCrc32c
944
+ };
945
+ });
946
+ if (chunks.length === 0) {
947
+ throw new Error('Canonical relocation chunk count is invalid.');
948
+ }
949
+ if (chunks.reduce((total, value) => total + value.length, 0n)
950
+ !== generated.totalLength) {
951
+ throw new Error('Canonical relocation manifest length is invalid.');
952
+ }
953
+ return {
954
+ inventoryDigest: Buffer.from(generated.inventoryDigestSha256),
955
+ logicalLength: generated.totalLength,
956
+ logicalChecksumCrc32c: generated.totalChecksumCrc32c,
957
+ chunks
958
+ };
959
+ }
960
+
961
+ async function storeCanonicalTree(
962
+ store: ZLinkRelocationStore,
963
+ logicalRoot: Uint8Array,
964
+ inventoryDigest: Uint8Array,
965
+ signal?: AbortSignal
966
+ ): Promise<{ readonly reference: ZLinkBlobReference; readonly checksumCrc32c: number }> {
967
+ const logical = Buffer.from(logicalRoot);
968
+ const logicalChecksumCrc32c = crc32c(logical);
969
+ const chunk = Buffer.from(encodeRelocationDataChunkV1({
970
+ order: 0,
971
+ data: logical
972
+ }));
973
+ const storedChunk = await putAndVerifyCanonicalBlob(store, chunk, signal);
974
+ const manifest = Buffer.from(encodeRelocationManifestV1({
975
+ logicalFormatVersion: 1,
976
+ totalLength: BigInt(logical.byteLength),
977
+ totalChecksumCrc32c: logicalChecksumCrc32c,
978
+ inventoryDigestSha256: Buffer.from(inventoryDigest),
979
+ chunks: [{
980
+ order: 0,
981
+ reference: storedChunk.reference.value,
982
+ length: BigInt(logical.byteLength),
983
+ checksumCrc32c: logicalChecksumCrc32c
984
+ }]
985
+ }));
986
+ const storedManifest = await putAndVerifyCanonicalBlob(store, manifest, signal);
987
+ return {
988
+ reference: storedManifest.reference,
989
+ checksumCrc32c: crc32c(manifest)
990
+ };
991
+ }
992
+
993
+ async function putAndVerifyCanonicalBlob(
994
+ store: ZLinkRelocationStore,
995
+ payload: Uint8Array,
996
+ signal?: AbortSignal
997
+ ): Promise<{ readonly reference: ZLinkBlobReference }> {
998
+ const stored = await putNewRelocationBlob(store, payload, RETENTION_MS, signal);
999
+ const read = await store.read(stored.reference, signal);
1000
+ if (read.kind !== 'found' || !Buffer.from(read.bytes).equals(Buffer.from(payload))) {
1001
+ await store.delete(stored.reference).catch(() => undefined);
1002
+ throw new Error('Relocation Store failed canonical tree verification.');
1003
+ }
1004
+ return { reference: stored.reference };
1005
+ }
1006
+
1007
+ async function readCanonicalDeferredJoinRoot(
1008
+ store: ZLinkRelocationStore,
1009
+ manifestPayload: Uint8Array,
1010
+ signal?: AbortSignal
1011
+ ): Promise<{
1012
+ readonly identity: ZLinkDeferredJoinRootIdentity;
1013
+ readonly completion: Omit<
1014
+ ZLinkDeferredJoinAcceptedRoot,
1015
+ 'authority' | 'reference' | 'checksumCrc32c'
1016
+ >;
1017
+ } | undefined> {
1018
+ let manifest: CanonicalTreeManifest;
1019
+ try {
1020
+ manifest = decodeCanonicalTreeManifest(manifestPayload);
1021
+ } catch {
1022
+ return undefined;
1023
+ }
1024
+ const parts: Buffer[] = [];
1025
+ for (const expected of manifest.chunks) {
1026
+ const read = await store.read(expected.reference, signal);
1027
+ if (read.kind !== 'found') throw new Error('Canonical relocation chunk is missing.');
1028
+ const chunk = decodeRelocationDataChunkV1(read.bytes);
1029
+ if (chunk.order !== expected.order
1030
+ || BigInt(chunk.data.byteLength) !== expected.length) {
1031
+ throw new Error('Canonical relocation chunk identity is invalid.');
1032
+ }
1033
+ const data = Buffer.from(chunk.data);
1034
+ if (crc32c(data) !== expected.checksumCrc32c) {
1035
+ throw new Error('Canonical relocation chunk data checksum is invalid.');
1036
+ }
1037
+ parts.push(data);
1038
+ }
1039
+ const logical = Buffer.concat(parts);
1040
+ if (BigInt(logical.byteLength) !== manifest.logicalLength
1041
+ || crc32c(logical) !== manifest.logicalChecksumCrc32c) {
1042
+ throw new Error('Canonical relocation logical root checksum is invalid.');
1043
+ }
1044
+ return decodeCanonicalDeferredJoinRoot(logical);
1045
+ }
1046
+
1047
+ function encodeCanonicalDeferredJoinRoot(
1048
+ value: Omit<ZLinkDeferredJoinAcceptedRoot, 'authority' | 'reference' | 'checksumCrc32c'>,
1049
+ authority: ZLinkAuthoritySnapshot,
1050
+ publication: DeferredJoinAuthorityPublication,
1051
+ inventoryDigest: Uint8Array
1052
+ ): Buffer {
1053
+ const key = encodeAuthorityKey('actor', value.actor.actorId).value;
1054
+ const completion = encodeDotNetDeferredJoinCompletion(value);
1055
+ return Buffer.concat([
1056
+ u32le(0x5a4c5231), u16le(2), dotNetGuidBytes(publication.aggregateId),
1057
+ u64le(publication.aggregateGeneration), bytes32le(inventoryDigest), u32le(1),
1058
+ text16le(key), Buffer.of(1), u64le(authority.objectGeneration),
1059
+ u64le(authority.authorityOwnerGeneration), bytes32le(Buffer.alloc(0)),
1060
+ u32le(0), u32le(0), bytes32le(Buffer.alloc(0)), bytes32le(completion)
1061
+ ]);
1062
+ }
1063
+
1064
+ function decodeCanonicalDeferredJoinRoot(
1065
+ payload: Uint8Array
1066
+ ): {
1067
+ readonly identity: ZLinkDeferredJoinRootIdentity;
1068
+ readonly completion: Omit<
1069
+ ZLinkDeferredJoinAcceptedRoot,
1070
+ 'authority' | 'reference' | 'checksumCrc32c'
1071
+ >;
1072
+ } | undefined {
1073
+ const reader = new LittleEndianReader(payload);
1074
+ if (reader.u32() !== 0x5a4c5231 || reader.u16() !== 2) return undefined;
1075
+ const aggregateId = canonicalUuidFromDotNetBytes(reader.take(16));
1076
+ const aggregateGeneration = reader.u64();
1077
+ reader.bytes32();
1078
+ const count = reader.u32();
1079
+ let completion: ReturnType<typeof decodeDotNetDeferredJoinCompletion> | undefined;
1080
+ let completionIdentity: Pick<
1081
+ ZLinkDeferredJoinRootIdentity,
1082
+ 'authorityKey' | 'objectKind' | 'objectGeneration'
1083
+ > | undefined;
1084
+ for (let index = 0; index < count; index++) {
1085
+ const authorityKey = reader.text16();
1086
+ const objectKind = reader.u8();
1087
+ const objectGeneration = reader.u64();
1088
+ reader.u64(); reader.bytes32();
1089
+ const jobs = reader.u32();
1090
+ for (let job = 0; job < jobs; job++) { reader.u64(); reader.bytes32(); }
1091
+ const timers = reader.u32();
1092
+ for (let timer = 0; timer < timers; timer++) {
1093
+ reader.text16(); reader.i64(); reader.i64(); reader.bytes32();
1094
+ }
1095
+ reader.bytes32();
1096
+ const encodedCompletion = reader.bytes32();
1097
+ if (encodedCompletion.byteLength !== 0) {
1098
+ if (completion !== undefined) throw new Error('Canonical relocation root has duplicate completions.');
1099
+ completion = decodeDotNetDeferredJoinCompletion(encodedCompletion);
1100
+ if (objectKind !== 1) return undefined;
1101
+ completionIdentity = {
1102
+ authorityKey,
1103
+ objectKind: 'actor',
1104
+ objectGeneration
1105
+ };
1106
+ }
1107
+ }
1108
+ if (!reader.done) throw new Error('Canonical relocation root has trailing bytes.');
1109
+ if (completion === undefined || completionIdentity === undefined) return undefined;
1110
+ if (completion.actor.objectGeneration !== completionIdentity.objectGeneration
1111
+ || encodeAuthorityKey('actor', completion.actor.actorId).value
1112
+ !== completionIdentity.authorityKey) {
1113
+ return undefined;
1114
+ }
1115
+ return {
1116
+ identity: {
1117
+ ...completionIdentity,
1118
+ aggregateId,
1119
+ aggregateGeneration
1120
+ },
1121
+ completion
1122
+ };
1123
+ }
1124
+
1125
+ function encodeDotNetDeferredJoinCompletion(
1126
+ value: Omit<ZLinkDeferredJoinAcceptedRoot, 'authority' | 'reference' | 'checksumCrc32c'>
1127
+ ): Buffer {
1128
+ const routingId = Buffer.from(encodeRoutingIdStorageHex(value.actor.nodeRid), 'hex');
1129
+ return Buffer.concat([
1130
+ u32le(0x5a4c4a43), Buffer.of(2), text16le(value.actor.actorId),
1131
+ u64le(value.actor.objectGeneration), u64le(value.operationId.high), u64le(value.operationId.low),
1132
+ text16le(value.actor.meshName), Buffer.of(routingId.byteLength), routingId,
1133
+ u64le(value.actor.objectGeneration),
1134
+ Buffer.of(value.replyContentType === undefined ? 0 : 1),
1135
+ ...(value.replyContentType === undefined ? [] : [text16le(value.replyContentType)]),
1136
+ bytes32le(value.rawReply),
1137
+ Buffer.of(cursorIndex(value.cursor) + 1)
1138
+ ]);
1139
+ }
1140
+
1141
+ function decodeDotNetDeferredJoinCompletion(
1142
+ payload: Uint8Array
1143
+ ): Omit<ZLinkDeferredJoinAcceptedRoot, 'authority' | 'reference' | 'checksumCrc32c'> {
1144
+ const reader = new LittleEndianReader(payload);
1145
+ if (reader.u32() !== 0x5a4c4a43 || reader.u8() !== 2) {
1146
+ throw new Error('Canonical deferred Join completion header is invalid.');
1147
+ }
1148
+ const actorId = reader.text16();
1149
+ const objectGeneration = reader.u64();
1150
+ const operationId = { high: reader.u64(), low: reader.u64() };
1151
+ const meshName = reader.text16();
1152
+ const nodeBytes = reader.take(reader.u8());
1153
+ const actorGeneration = reader.u64();
1154
+ const contentTypePresence = reader.u8();
1155
+ if (contentTypePresence > 1) {
1156
+ throw new Error('Canonical deferred Join completion content type is invalid.');
1157
+ }
1158
+ const replyContentType = contentTypePresence === 1 ? reader.text16() : undefined;
1159
+ const rawReply = reader.bytes32();
1160
+ const cursorValue = reader.u8();
1161
+ if (!reader.done || actorGeneration !== objectGeneration || cursorValue < 1 || cursorValue > 3) {
1162
+ throw new Error('Canonical deferred Join completion is invalid.');
1163
+ }
1164
+ const actor: ActorRef = {
1165
+ actorId,
1166
+ objectGeneration,
1167
+ meshName,
1168
+ nodeRid: decodeRoutingId('', nodeBytes.toString('hex'))
1169
+ };
1170
+ validateIdentity(actorId, operationId, actor);
1171
+ return {
1172
+ operationId,
1173
+ actor,
1174
+ rawReply,
1175
+ ...(replyContentType === undefined ? {} : { replyContentType }),
1176
+ cursor: (['prepared', 'committed', 'delivered'] as const)[cursorValue - 1]!
1177
+ };
1178
+ }
1179
+
1180
+ class LittleEndianReader {
1181
+ private offset = 0;
1182
+ private readonly bytes: Buffer;
1183
+ constructor(payload: Uint8Array) { this.bytes = Buffer.from(payload); }
1184
+ get done(): boolean { return this.offset === this.bytes.byteLength; }
1185
+ take(length: number): Buffer {
1186
+ if (length < 0 || this.offset + length > this.bytes.byteLength) {
1187
+ throw new Error('Canonical relocation root is truncated.');
1188
+ }
1189
+ const result = this.bytes.subarray(this.offset, this.offset + length);
1190
+ this.offset += length;
1191
+ return result;
1192
+ }
1193
+ u8(): number { return this.take(1)[0]!; }
1194
+ u16(): number { return this.take(2).readUInt16LE(); }
1195
+ u32(): number { return this.take(4).readUInt32LE(); }
1196
+ u64(): bigint { return this.take(8).readBigUInt64LE(); }
1197
+ i64(): bigint { return this.take(8).readBigInt64LE(); }
1198
+ text16(): string {
1199
+ const bytes = this.take(this.u16());
1200
+ return new TextDecoder('utf-8', { fatal: true }).decode(bytes);
1201
+ }
1202
+ bytes32(): Buffer { return this.take(this.u32()); }
1203
+ }
1204
+
1205
+ function dotNetGuidBytes(value: string): Buffer {
1206
+ const bytes = Buffer.from(value.replaceAll('-', ''), 'hex');
1207
+ return Buffer.from([
1208
+ bytes[3]!, bytes[2]!, bytes[1]!, bytes[0]!,
1209
+ bytes[5]!, bytes[4]!, bytes[7]!, bytes[6]!,
1210
+ ...bytes.subarray(8)
1211
+ ]);
1212
+ }
1213
+
1214
+ function canonicalUuidFromDotNetBytes(value: Uint8Array): string {
1215
+ const bytes = Buffer.from(value);
1216
+ if (bytes.byteLength !== 16) {
1217
+ throw new TypeError('Canonical relocation aggregate id is invalid.');
1218
+ }
1219
+ const canonical = Buffer.from([
1220
+ bytes[3]!, bytes[2]!, bytes[1]!, bytes[0]!,
1221
+ bytes[5]!, bytes[4]!,
1222
+ bytes[7]!, bytes[6]!,
1223
+ ...bytes.subarray(8)
1224
+ ]).toString('hex');
1225
+ return `${canonical.slice(0, 8)}-${canonical.slice(8, 12)}-${canonical.slice(12, 16)}`
1226
+ + `-${canonical.slice(16, 20)}-${canonical.slice(20)}`;
1227
+ }
1228
+
1229
+ function text16le(value: string): Buffer {
1230
+ const bytes = Buffer.from(value, 'utf8');
1231
+ if (bytes.byteLength === 0 || bytes.byteLength > 0xffff) throw new Error('Text16 is invalid.');
1232
+ return Buffer.concat([u16le(bytes.byteLength), bytes]);
1233
+ }
1234
+
1235
+ function bytes32le(value: Uint8Array): Buffer {
1236
+ return Buffer.concat([u32le(value.byteLength), Buffer.from(value)]);
1237
+ }
1238
+
1239
+ function u16le(value: number): Buffer {
1240
+ const result = Buffer.alloc(2); result.writeUInt16LE(value); return result;
1241
+ }
1242
+
1243
+ function u32le(value: number): Buffer {
1244
+ const result = Buffer.alloc(4); result.writeUInt32LE(value); return result;
1245
+ }
1246
+
1247
+ function u64le(value: bigint): Buffer {
1248
+ const result = Buffer.alloc(8); result.writeBigUInt64LE(value); return result;
1249
+ }
1250
+
1251
+ function validateIdentity(
1252
+ actorId: string,
1253
+ operationId: ZLinkActorJoinOperationId,
1254
+ actor: ActorRef
1255
+ ): void {
1256
+ if (
1257
+ actorId.length === 0
1258
+ || actor.actorId !== actorId
1259
+ || actor.objectGeneration <= 0n
1260
+ || operationId.high === 0n && operationId.low === 0n
1261
+ ) {
1262
+ throw new Error('Deferred Join completion identity is invalid.');
1263
+ }
1264
+ }
1265
+
1266
+ function requireSameOperation(
1267
+ root: ZLinkDeferredJoinAcceptedRoot,
1268
+ operationId: ZLinkActorJoinOperationId,
1269
+ actor: ActorRef
1270
+ ): void {
1271
+ if (!isSameOperation(root, operationId, actor)) {
1272
+ throw new Error(`Actor '${actor.actorId}' already has a different durable Join completion.`);
1273
+ }
1274
+ }
1275
+
1276
+ function isSameOperation(
1277
+ root: ZLinkDeferredJoinAcceptedRoot,
1278
+ operationId: ZLinkActorJoinOperationId,
1279
+ actor: ActorRef
1280
+ ): boolean {
1281
+ return root.operationId.high === operationId.high
1282
+ && root.operationId.low === operationId.low
1283
+ && root.actor.actorId === actor.actorId
1284
+ && root.actor.objectGeneration === actor.objectGeneration;
1285
+ }
1286
+
1287
+ function requireSameActor(
1288
+ root: ZLinkDeferredJoinAcceptedRoot,
1289
+ actor: ActorRef
1290
+ ): void {
1291
+ if (
1292
+ root.actor.actorId !== actor.actorId
1293
+ || root.actor.objectGeneration !== actor.objectGeneration
1294
+ ) {
1295
+ throw new Error(
1296
+ 'Deferred Join completion generation fence is stale '
1297
+ + `(root ${root.actor.actorId}/${root.actor.objectGeneration}, `
1298
+ + `actor ${actor.actorId}/${actor.objectGeneration}).`
1299
+ );
1300
+ }
1301
+ }
1302
+
1303
+ function cursorIndex(cursor: ZLinkDeferredJoinDeliveryCursor): number {
1304
+ return cursor === 'prepared' ? 1 : cursor === 'committed' ? 2 : 3;
1305
+ }
1306
+
1307
+ function isCursor(value: unknown): value is ZLinkDeferredJoinDeliveryCursor {
1308
+ return value === 'prepared' || value === 'committed' || value === 'delivered';
1309
+ }
1310
+
1311
+ function storedSnapshot(
1312
+ result: Extract<
1313
+ Awaited<ReturnType<ZLinkAuthorityStore['compareExchangeAuthority']>>,
1314
+ { readonly kind: 'stored' }
1315
+ >
1316
+ ): ZLinkAuthoritySnapshot {
1317
+ const { kind: _kind, ...snapshot } = result;
1318
+ return { kind: 'snapshot', ...snapshot };
1319
+ }