@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,1111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZLinkSpotNodeRuntimeManager = void 0;
4
+ exports.createFrameworkEntrySpotId = createFrameworkEntrySpotId;
5
+ const framework_errors_internal_1 = require("../framework-errors-internal");
6
+ const node_crypto_1 = require("node:crypto");
7
+ const Locations_1 = require("../../contracts/Locations");
8
+ const contracts_1 = require("../../contracts");
9
+ const submission_result_1 = require("../messaging/submission-result");
10
+ const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
11
+ const runtime_values_1 = require("../backend/runtime-values");
12
+ const service_runtime_contracts_1 = require("../foundation/service-runtime-contracts");
13
+ const configuration_1 = require("../configuration");
14
+ const mesh_dispatch_pump_1 = require("../backend/mesh-dispatch-pump");
15
+ const execution_1 = require("../execution");
16
+ const flow_context_1 = require("../diagnostics/flow-context");
17
+ const mesh_completion_table_1 = require("../backend/mesh-completion-table");
18
+ const channel_envelope_1 = require("../channels/channel-envelope");
19
+ const locations_1 = require("../locations");
20
+ const spot_entry_activation_1 = require("./spot-entry-activation");
21
+ const spot_node_autoconnect_1 = require("./spot-node-autoconnect");
22
+ const routing_id_1 = require("../routing-id");
23
+ const abort_1 = require("../abort");
24
+ const application_job_queue_1 = require("../host/application-job-queue");
25
+ const ZLINK_SEND_DONT_WAIT = 1;
26
+ // Shared default for the dominant no-metadata call; avoids a Map allocation
27
+ // per outbound operation.
28
+ const EMPTY_SPOT_METADATA = new Map();
29
+ class ZLinkSpotNodeRuntimeManager {
30
+ options;
31
+ meshNodes = new Map();
32
+ meshPumps = new Map();
33
+ meshCompletions = new Map();
34
+ entryActivations = new Map();
35
+ entryActivationStarts = new Map();
36
+ publishers = new Map();
37
+ activePublishes = new Set();
38
+ publishSlotWaiters = new Map();
39
+ disposed = false;
40
+ autoConnectLoops = [];
41
+ publishedMeshNodeDescriptors = new Map();
42
+ // Keep the revision source separate from the cached Store row. A new owner
43
+ // lease may require a NewClaim against an empty Store, while peers still
44
+ // retain the monotonic revision from this MeshNode lifecycle.
45
+ descriptorRevisionByMesh = new Map();
46
+ publishedOwnerToken;
47
+ runtimePlacementWeights = new Map();
48
+ runtimeChannelWeights = new Map();
49
+ entrySpotIds = new Map();
50
+ runtimeWeightPublication = Promise.resolve();
51
+ statePublication = Promise.resolve();
52
+ locationAutoConnect;
53
+ applicationJobQueue;
54
+ constructor(options) {
55
+ this.options = options;
56
+ this.applicationJobQueue = options.applicationJobQueue
57
+ ?? new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
58
+ }
59
+ createReceived() {
60
+ return this.options.backendAdapterFactory.createReceived();
61
+ }
62
+ createTopicMessage() {
63
+ return this.options.backendAdapterFactory.createTopicMessage();
64
+ }
65
+ configureLocationAutoConnect(runtime, stores, options, events) {
66
+ this.locationAutoConnect = (0, spot_node_autoconnect_1.createSpotNodeLocationAutoConnectContext)(runtime, stores, options, events);
67
+ }
68
+ async startLocationAutoConnect(signal) {
69
+ const location = this.locationAutoConnect;
70
+ if (location === undefined || this.autoConnectLoops.length > 0) {
71
+ return;
72
+ }
73
+ try {
74
+ for (const [spotNodeName, spotNode] of this.options.registration.spotNodes.entries()) {
75
+ const node = this.meshNodes.get(spotNodeName);
76
+ if (node === undefined) {
77
+ continue;
78
+ }
79
+ const capability = (0, spot_node_autoconnect_1.spotNodeAutoConnectCapability)(spotNodeName, spotNode, node);
80
+ if (capability === undefined)
81
+ continue;
82
+ const reconciler = new locations_1.ZLinkAutoConnectReconciler({
83
+ local: capability.local,
84
+ localRow: capability.localRow,
85
+ runtime: location.runtime,
86
+ peerResolver: location.resolver,
87
+ executor: capability.executor,
88
+ events: location.events,
89
+ options: location.options
90
+ });
91
+ const loop = new locations_1.ZLinkAutoConnectLoop({
92
+ reconciler,
93
+ local: capability.local,
94
+ options: location.options,
95
+ changeStampStore: location.changeStampStore,
96
+ leaseTracker: location.leaseTracker
97
+ });
98
+ await loop.start(signal);
99
+ this.autoConnectLoops.push(loop);
100
+ }
101
+ }
102
+ catch (error) {
103
+ await Promise.allSettled(this.autoConnectLoops.map((loop) => loop.stop(signal)));
104
+ this.autoConnectLoops.length = 0;
105
+ throw error;
106
+ }
107
+ }
108
+ /**
109
+ * Fences transport connections that were created under an owner token which
110
+ * is no longer valid. The loops are discarded so a later owner renewal can
111
+ * build them again with the current lifecycle descriptor.
112
+ */
113
+ async fenceLocationAutoConnect() {
114
+ const loops = [...this.autoConnectLoops];
115
+ this.autoConnectLoops.length = 0;
116
+ await Promise.allSettled(loops.map((loop) => loop.prepareTransportShutdown()));
117
+ for (const node of this.meshNodes.values()) {
118
+ for (const peer of node.peers()) {
119
+ if (peer.routingId !== null) {
120
+ node.disconnectPeer(peer.routingId, peer.lifecycleGeneration);
121
+ }
122
+ }
123
+ }
124
+ }
125
+ async start() {
126
+ if (this.options.registration.spotNodes.size === 0) {
127
+ return;
128
+ }
129
+ const meshAdapter = this.options.backendAdapterFactory.createMeshAdapter();
130
+ for (const [spotNodeName, spotNode] of this.options.registration.spotNodes.entries()) {
131
+ const routingId = spotNode.routingId
132
+ ?? spotNode.router?.routingId
133
+ ?? spotNode.pubSub?.routingId
134
+ ?? `${spotNode.routingIdPrefix ?? spotNodeName}-${(0, node_crypto_1.randomUUID)()}`;
135
+ const bind = spotNode.router?.bind;
136
+ if (bind === undefined) {
137
+ throw new configuration_1.ZLinkConfigurationException(`MeshNode '${spotNodeName}' requires a routing id and ROUTER bind endpoint.`);
138
+ }
139
+ const node = meshAdapter.createMeshNode(this.options.context, {
140
+ meshName: spotNodeName,
141
+ routingId,
142
+ applicationJobQueue: this.applicationJobQueue,
143
+ applicationJobReceiveFlowFailureSink: this.options.applicationJobReceiveFlowFailureSink,
144
+ peerAdmissionSealed: () => this.options.peerAdmissionSealed?.(spotNodeName) ?? false
145
+ });
146
+ node.setMailboxRecordDroppedHandler?.((record) => this.options.dispatchErrors?.report({
147
+ surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.RouteMeshChannel,
148
+ messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send,
149
+ reason: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.StaleTarget,
150
+ action: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.Drop,
151
+ channelName: spotNodeName,
152
+ error: new Error(`MeshNode '${spotNodeName}' no longer accepts ${record.kind} for '${record.owner}'.`)
153
+ }));
154
+ node.setProtocolErrorHandler?.((record) => this.options.dispatchErrors?.report({
155
+ surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.RouteMeshChannel,
156
+ messageKind: record.request
157
+ ? ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Request
158
+ : ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send,
159
+ reason: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.InvalidFrame,
160
+ action: record.replied
161
+ ? ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.ReplyError
162
+ : ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.Drop,
163
+ channelName: spotNodeName,
164
+ sourceRid: record.sourceNodeRid,
165
+ error: new Error(`MeshNode '${spotNodeName}' rejected an invalid service wire record from '${record.sourceNodeRid}'`
166
+ + (record.command === undefined ? '.' : ` (command ${record.command}).`))
167
+ }));
168
+ let pump;
169
+ const completions = new mesh_completion_table_1.ZLinkMeshCompletionTable();
170
+ try {
171
+ node.setBind(bind);
172
+ if (spotNode.router?.advertiseHost !== undefined) {
173
+ node.setAdvertiseHost(spotNode.router.advertiseHost);
174
+ }
175
+ const stableTypes = [
176
+ ...Object.keys(spotNode.spotFactoryRegistrations ?? {}),
177
+ ...Object.keys(spotNode.instanceSpotFactoryRegistrations ?? {}),
178
+ ...Object.keys(spotNode.actorFactoryRegistrations ?? {})
179
+ ];
180
+ const instanceSpotTypes = Object.keys(spotNode.instanceSpotFactoryRegistrations ?? {});
181
+ const hasLegacyObjectFactories = (spotNode.spotFactories?.length ?? 0) > 0
182
+ || Object.keys(spotNode.instanceSpotFactories ?? {}).length > 0
183
+ || (spotNode.actorFactories instanceof Map
184
+ ? spotNode.actorFactories.size
185
+ : Object.keys(spotNode.actorFactories ?? {}).length) > 0;
186
+ node.configureObjectPlacement({
187
+ role: spotNode.objectRole
188
+ ?? (hasLegacyObjectFactories ? 'server' : 'none'),
189
+ placementWeight: spotNode.placementWeight ?? 100,
190
+ activeCapacityLimit: aggregatePlacementCapacity(spotNode.actorLimit ?? 0, spotNode.spotLimit ?? 0),
191
+ pendingCapacityLimit: spotNode.activationConcurrencyLimit ?? 128,
192
+ objectCapabilities: [
193
+ ...stableTypes.map(type => `object-type:${type}`),
194
+ ...instanceSpotTypes.map(type => `instance-spot-type:${type}`)
195
+ ],
196
+ ...(this.options.registration.maintenanceWave === undefined
197
+ ? {}
198
+ : { maintenanceWave: this.options.registration.maintenanceWave })
199
+ });
200
+ for (const [channelName, channel] of this.serverChannels(spotNodeName)) {
201
+ node.addChannelName(channelName);
202
+ if (channel.weight !== undefined) {
203
+ await node.setChannelWeight(channelName, channel.weight);
204
+ }
205
+ }
206
+ node.setMessageFollowHandler?.((record) => this.options.messageFollowReceiver?.(record));
207
+ node.start();
208
+ this.publishers.set(spotNodeName, node.createPublisher());
209
+ for (const endpoint of spotNode.router?.manualConnections ?? []) {
210
+ await node.connectPeer({ endpoint });
211
+ }
212
+ for (const peer of spotNode.router?.manualPeerConnections ?? []) {
213
+ await node.connectPeer({
214
+ endpoint: peer.endpoint,
215
+ expectedRid: (0, routing_id_1.toBackendRoutingId)(peer.peerRid)
216
+ });
217
+ }
218
+ pump = new mesh_dispatch_pump_1.ZLinkMeshDispatchPump(node, {
219
+ applicationJobQueue: this.applicationJobQueue,
220
+ dispatch: (owner, record) => this.dispatchMeshRecord(spotNodeName, owner, record),
221
+ reportError: (error, context) => this.options.dispatchErrors?.report({
222
+ surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.Node,
223
+ messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Control,
224
+ reason: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerException,
225
+ action: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.Drop,
226
+ meshName: spotNodeName,
227
+ packetName: context?.packetName,
228
+ sourceRid: context?.sourceNodeRid,
229
+ commandId: context?.commandId,
230
+ error
231
+ })
232
+ });
233
+ pump.start();
234
+ this.meshNodes.set(spotNodeName, node);
235
+ this.meshPumps.set(spotNodeName, pump);
236
+ this.meshCompletions.set(spotNodeName, completions);
237
+ }
238
+ catch (error) {
239
+ this.entryActivations.delete(spotNodeName);
240
+ this.publishers.get(spotNodeName)?.close();
241
+ this.publishers.delete(spotNodeName);
242
+ this.meshCompletions.delete(spotNodeName);
243
+ this.meshPumps.delete(spotNodeName);
244
+ this.meshNodes.delete(spotNodeName);
245
+ completions.dispose(error);
246
+ await pump?.dispose();
247
+ node.close();
248
+ throw error;
249
+ }
250
+ }
251
+ }
252
+ async publishMeshNodeState(state, signal, selectedMeshName) {
253
+ const previous = this.statePublication;
254
+ let release;
255
+ this.statePublication = new Promise((resolve) => { release = resolve; });
256
+ await previous;
257
+ try {
258
+ await this.publishMeshNodeStateCore(state, signal, selectedMeshName);
259
+ }
260
+ finally {
261
+ release();
262
+ }
263
+ }
264
+ async publishMeshNodeStateCore(state, signal, selectedMeshName) {
265
+ const location = this.locationAutoConnect;
266
+ const owner = location?.runtime.currentOwnerToken;
267
+ if (location === undefined || owner === undefined)
268
+ return;
269
+ const ownerChanged = this.publishedOwnerToken !== undefined
270
+ && !sameOwnerToken(this.publishedOwnerToken, owner);
271
+ if (ownerChanged) {
272
+ // A new owner token can refer to an empty or replaced Store. The cached
273
+ // descriptor was written under the previous lease and must not force a
274
+ // Renew against a row that no longer exists.
275
+ this.publishedMeshNodeDescriptors.clear();
276
+ }
277
+ for (const [meshName, registration] of this.options.registration.spotNodes) {
278
+ if (selectedMeshName !== undefined && meshName !== selectedMeshName)
279
+ continue;
280
+ const node = this.meshNodes.get(meshName);
281
+ if (node === undefined)
282
+ continue;
283
+ const status = node.status();
284
+ const userSpots = effectiveUserSpotRegistrations(registration);
285
+ const instanceSpots = effectiveInstanceSpotRegistrations(registration);
286
+ const actors = effectiveActorRegistrations(registration);
287
+ const capabilities = [
288
+ ...userSpots.map(([stableType, factory]) => objectCapability('user_spot', stableType, factory)),
289
+ ...instanceSpots.map(([stableType, factory]) => objectCapability('instance_spot', stableType, factory)),
290
+ ...actors.map(([stableType, factory]) => objectCapability('actor', stableType, factory))
291
+ ].sort((left, right) => {
292
+ const kindOrder = left.objectKind.localeCompare(right.objectKind);
293
+ return kindOrder !== 0
294
+ ? kindOrder
295
+ : left.stableType.localeCompare(right.stableType);
296
+ });
297
+ const current = this.publishedMeshNodeDescriptors.get(meshName);
298
+ const previousRevision = this.descriptorRevisionByMesh.get(meshName) ?? 0n;
299
+ const descriptor = {
300
+ meshName,
301
+ rid: status.routingId,
302
+ lifecycleGeneration: status.lifecycleGeneration,
303
+ descriptorRevision: maxBigInt(previousRevision, current?.descriptorRevision ?? 0n) + 1n,
304
+ // The raw MeshNode resolves port zero and applies AdvertiseHost once.
305
+ // Discovery and RouteMesh hello must publish that same public identity.
306
+ endpoint: status.localEndpoint,
307
+ objectRole: effectiveObjectRole(registration),
308
+ entrySpotId: this.entrySpotId(meshName, registration),
309
+ placementWeight: this.placementWeight(meshName),
310
+ populationCapacity: {
311
+ actors: {
312
+ active: current?.populationCapacity.actors.active ?? 0,
313
+ reserved: current?.populationCapacity.actors.reserved ?? 0,
314
+ limit: registration.actorLimit ?? 0
315
+ },
316
+ spots: {
317
+ active: current?.populationCapacity.spots.active ?? 0,
318
+ reserved: current?.populationCapacity.spots.reserved ?? 0,
319
+ limit: registration.spotLimit ?? 0
320
+ },
321
+ spotTypes: capabilities
322
+ .filter(capability => capability.objectKind !== 'actor')
323
+ .map(capability => {
324
+ const previous = current?.populationCapacity.spotTypes.find(candidate => candidate.objectKind === capability.objectKind
325
+ && candidate.stableType === capability.stableType);
326
+ return {
327
+ objectKind: capability.objectKind,
328
+ stableType: capability.stableType,
329
+ active: previous?.active ?? 0,
330
+ reserved: previous?.reserved ?? 0,
331
+ limit: capability.limit
332
+ };
333
+ })
334
+ },
335
+ activationConcurrency: {
336
+ active: this.options.instanceActivationConcurrencyProvider?.(meshName).active
337
+ ?? current?.activationConcurrency.active
338
+ ?? 0,
339
+ limit: this.options.instanceActivationConcurrencyProvider?.(meshName).limit
340
+ ?? registration.activationConcurrencyLimit
341
+ ?? 128
342
+ },
343
+ channelWeights: Object.fromEntries(this.serverChannels(meshName)
344
+ .map(([channelName, channel]) => [
345
+ channelName,
346
+ state === contracts_1.ZLinkFrameworkRuntimeState.Draining
347
+ ? 0
348
+ : this.effectiveChannelWeight(meshName, channelName, channel.weight ?? 100)
349
+ ])),
350
+ applicationVersion: this.options.registration.applicationVersion,
351
+ maintenanceWave: this.options.registration.maintenanceWave,
352
+ spotTypes: [
353
+ ...userSpots.map(([stableType]) => stableType),
354
+ ...instanceSpots.map(([stableType]) => stableType),
355
+ ...(registration.entrySpotType === undefined
356
+ ? []
357
+ : [registration.entrySpotType.name])
358
+ ]
359
+ .sort(),
360
+ objectCapabilities: capabilities,
361
+ state,
362
+ securityIdentity: 'default',
363
+ };
364
+ const result = await location.runtime.writeMeshNode(descriptor, ownerChanged
365
+ ? Locations_1.ZLinkLocationWriteIntent.Renew
366
+ : current === undefined
367
+ ? Locations_1.ZLinkLocationWriteIntent.NewClaim
368
+ : Locations_1.ZLinkLocationWriteIntent.Renew, signal);
369
+ if (result.status !== Locations_1.ZLinkLocationWriteStatus.Stored) {
370
+ throw new configuration_1.ZLinkConfigurationException(`MeshNode '${meshName}' descriptor publication failed: ${result.status}.`);
371
+ }
372
+ this.publishedMeshNodeDescriptors.set(meshName, {
373
+ ...descriptor,
374
+ ownerId: location.runtime.currentOwnerToken.ownerId,
375
+ leaseGeneration: location.runtime.currentOwnerToken.leaseGeneration,
376
+ updatedAt: result.updatedAt
377
+ });
378
+ this.descriptorRevisionByMesh.set(meshName, descriptor.descriptorRevision);
379
+ }
380
+ this.publishedOwnerToken = owner;
381
+ }
382
+ async reconcileAndPublishMeshNodeState(state, meshName, signal) {
383
+ const location = this.locationAutoConnect;
384
+ const node = this.meshNodes.get(meshName);
385
+ if (location === undefined || node === undefined)
386
+ return;
387
+ const status = node.status();
388
+ const owner = location.runtime.currentOwnerToken;
389
+ if (owner === undefined)
390
+ return;
391
+ const current = (await location.runtime.listLiveMeshNodes(meshName, signal))
392
+ .find((descriptor) => String(descriptor.rid) === String(status.routingId)
393
+ && descriptor.lifecycleGeneration === status.lifecycleGeneration
394
+ && descriptor.ownerId === owner.ownerId
395
+ && descriptor.leaseGeneration === owner.leaseGeneration);
396
+ if (current !== undefined) {
397
+ this.publishedMeshNodeDescriptors.set(meshName, current);
398
+ this.descriptorRevisionByMesh.set(meshName, maxBigInt(this.descriptorRevisionByMesh.get(meshName) ?? 0n, current.descriptorRevision));
399
+ this.publishedOwnerToken = owner;
400
+ }
401
+ await this.publishMeshNodeState(state, signal, meshName);
402
+ }
403
+ entrySpotId(meshName, registration) {
404
+ if (effectiveObjectRole(registration) !== contracts_1.ZLinkObjectRole.Server
405
+ || registration.entrySpotType === undefined) {
406
+ return undefined;
407
+ }
408
+ let entrySpotId = this.entrySpotIds.get(meshName);
409
+ if (entrySpotId !== undefined)
410
+ return entrySpotId;
411
+ const prefix = registration.routingIdPrefix ?? meshName;
412
+ entrySpotId = createFrameworkEntrySpotId(prefix);
413
+ this.entrySpotIds.set(meshName, entrySpotId);
414
+ return entrySpotId;
415
+ }
416
+ get meshNodesByName() {
417
+ return this.meshNodes;
418
+ }
419
+ meshNode(meshName) {
420
+ return this.meshNodes.get(meshName);
421
+ }
422
+ async sendMessageFollowNotification(sourceNodeRid, targetNodeRid, record) {
423
+ for (const node of this.meshNodes.values()) {
424
+ if (!(0, routing_id_1.routingIdsEqual)(node.status().routingId, sourceNodeRid))
425
+ continue;
426
+ if (node.sendMessageFollowNotification === undefined)
427
+ return false;
428
+ return await node.sendMessageFollowNotification(targetNodeRid, record);
429
+ }
430
+ return false;
431
+ }
432
+ entrySpotIdForMesh(meshName) {
433
+ const registration = this.options.registration.spotNodes.get(meshName);
434
+ return registration === undefined
435
+ ? undefined
436
+ : this.entrySpotId(meshName, registration);
437
+ }
438
+ meshNodeDescriptor(meshName) {
439
+ return this.publishedMeshNodeDescriptors.get(meshName);
440
+ }
441
+ placementWeight(meshName) {
442
+ const registration = this.options.registration.spotNodes.get(meshName);
443
+ if (registration === undefined) {
444
+ throw new configuration_1.ZLinkConfigurationException(`Mesh '${meshName}' is not registered.`);
445
+ }
446
+ return this.runtimePlacementWeights.get(meshName)
447
+ ?? registration.placementWeight
448
+ ?? 100;
449
+ }
450
+ channelWeight(channelName) {
451
+ const match = this.resolveChannel(channelName);
452
+ return this.effectiveChannelWeight(match.meshName, channelName, match.configuredWeight);
453
+ }
454
+ setRuntimePlacementWeight(meshName, weight) {
455
+ const node = this.meshNodes.get(meshName);
456
+ if (node === undefined) {
457
+ throw new configuration_1.ZLinkConfigurationException(`Mesh '${meshName}' runtime placement weight requires a started MeshNode.`);
458
+ }
459
+ const validated = requirePublicRuntimeWeight(weight, 'Placement weight');
460
+ if (this.placementWeight(meshName) === validated)
461
+ return;
462
+ this.runtimePlacementWeights.set(meshName, validated);
463
+ this.scheduleRuntimeWeightPublication(meshName, async () => {
464
+ await node.setPlacementWeight(validated);
465
+ });
466
+ }
467
+ setRuntimeChannelWeight(channelName, weight) {
468
+ const match = this.resolveChannel(channelName);
469
+ const node = this.meshNodes.get(match.meshName);
470
+ if (node === undefined) {
471
+ throw new configuration_1.ZLinkConfigurationException(`Channel '${channelName}' runtime weight requires a started MeshNode.`);
472
+ }
473
+ const validated = requirePublicRuntimeWeight(weight, 'Channel weight');
474
+ if (this.effectiveChannelWeight(match.meshName, channelName, match.configuredWeight) === validated)
475
+ return;
476
+ let weights = this.runtimeChannelWeights.get(match.meshName);
477
+ if (weights === undefined) {
478
+ weights = new Map();
479
+ this.runtimeChannelWeights.set(match.meshName, weights);
480
+ }
481
+ weights.set(channelName, validated);
482
+ this.scheduleRuntimeWeightPublication(match.meshName, async () => {
483
+ await node.setChannelWeight(channelName, validated);
484
+ });
485
+ }
486
+ waitForRuntimeWeightPublication() {
487
+ return this.runtimeWeightPublication;
488
+ }
489
+ meshCompletionTable(meshName) {
490
+ return this.meshCompletions.get(meshName);
491
+ }
492
+ get primaryMeshNode() {
493
+ return this.options.primaryMeshName === undefined
494
+ ? this.meshNodes.values().next().value
495
+ : this.meshNodes.get(this.options.primaryMeshName);
496
+ }
497
+ effectiveChannelWeight(meshName, channelName, configuredWeight) {
498
+ return this.runtimeChannelWeights.get(meshName)?.get(channelName) ?? configuredWeight;
499
+ }
500
+ resolveChannel(channelName) {
501
+ const matches = [...this.options.registration.spotNodes]
502
+ .flatMap(([meshName, registration]) => {
503
+ const channel = registration.meshChannels?.[channelName];
504
+ return channel === undefined
505
+ ? []
506
+ : [{ meshName, configuredWeight: channel.weight ?? 100 }];
507
+ });
508
+ if (matches.length === 0) {
509
+ throw new configuration_1.ZLinkConfigurationException(`RouteMesh channel '${channelName}' is not registered.`);
510
+ }
511
+ if (matches.length > 1) {
512
+ throw new configuration_1.ZLinkConfigurationException(`RouteMesh channel '${channelName}' is registered in more than one Mesh.`);
513
+ }
514
+ return matches[0];
515
+ }
516
+ scheduleRuntimeWeightPublication(meshName, applyWeight) {
517
+ const publish = this.runtimeWeightPublication.catch(() => undefined).then(async () => {
518
+ await applyWeight();
519
+ const state = this.publishedMeshNodeDescriptors.get(meshName)?.state
520
+ ?? contracts_1.ZLinkFrameworkRuntimeState.Serving;
521
+ await this.publishMeshNodeState(state, undefined, meshName);
522
+ });
523
+ this.runtimeWeightPublication = publish;
524
+ if (this.options.detachedTaskRunner !== undefined) {
525
+ this.options.detachedTaskRunner.runDetached(`RouteMesh '${meshName}' runtime weight publication`, async () => await publish);
526
+ }
527
+ else {
528
+ void publish.catch(() => undefined);
529
+ }
530
+ }
531
+ get primaryMeshCompletions() {
532
+ const meshName = this.options.primaryMeshName ?? this.meshNodes.keys().next().value;
533
+ return meshName === undefined ? undefined : this.meshCompletions.get(meshName);
534
+ }
535
+ async notifyEntrySpotActorCreated(nodeRid, actor, createRequest, signal) {
536
+ let activation = [...this.entryActivations.values()].find((entryActivation) => (0, routing_id_1.routingIdsEqual)(entryActivation.nodeRid, nodeRid));
537
+ if (activation === undefined) {
538
+ for (const [meshName, node] of this.meshNodes) {
539
+ if (!(0, routing_id_1.routingIdsEqual)(node.status().routingId, nodeRid))
540
+ continue;
541
+ if (this.options.registration.spotNodes.get(meshName)?.entrySpotType === undefined)
542
+ continue;
543
+ await this.ensureEntryActivation(meshName);
544
+ activation = this.entryActivations.get(meshName);
545
+ break;
546
+ }
547
+ }
548
+ return activation?.notifyCreateActor(actor, createRequest, signal);
549
+ }
550
+ notifyPrimaryEntrySpotActorJoined(actor, signal) {
551
+ const activation = this.primaryEntryActivation();
552
+ return activation?.notifyJoinActor(actor, signal) ?? Promise.resolve();
553
+ }
554
+ notifyPrimaryEntrySpotActorLeft(actor, signal, actorRef, membershipEpoch) {
555
+ const activation = this.primaryEntryActivation();
556
+ return activation?.notifyLeaveActor(actor, signal, actorRef, membershipEpoch) ?? Promise.resolve();
557
+ }
558
+ notifyPrimaryEntrySpotActorDisconnected(actor, signal) {
559
+ const activation = this.primaryEntryActivation();
560
+ return activation?.notifyDisconnectActor(actor, signal) ?? Promise.resolve();
561
+ }
562
+ async notifyEntrySpotActorDisconnected(meshName, actor, signal) {
563
+ await this.ensureEntryActivation(meshName);
564
+ await this.entryActivations.get(meshName)?.notifyDisconnectActor(actor, signal);
565
+ }
566
+ serverChannels(meshName) {
567
+ return Object.entries(this.options.registration.spotNodes.get(meshName)?.meshChannels ?? {})
568
+ .filter(([, channel]) => channel.server === true);
569
+ }
570
+ async dispose(signal, deadline) {
571
+ this.disposed = true;
572
+ const autoConnectLoops = [...this.autoConnectLoops];
573
+ const entryActivations = [...this.entryActivations.values()];
574
+ const meshPumps = [...this.meshPumps.values()];
575
+ const meshNodes = [...this.meshNodes.values()];
576
+ const meshCompletions = [...this.meshCompletions.values()];
577
+ this.entryActivations.clear();
578
+ this.autoConnectLoops.length = 0;
579
+ this.meshPumps.clear();
580
+ const publishers = [...this.publishers.values()];
581
+ this.publishers.clear();
582
+ this.rejectPublishSlotWaiters(runtimeShutdownError());
583
+ const errors = [];
584
+ const settle = async (operations) => {
585
+ const results = await Promise.allSettled(operations);
586
+ errors.push(...results
587
+ .filter((result) => result.status === 'rejected')
588
+ .map((result) => result.reason));
589
+ };
590
+ await settle(publishers.map(async (publisher) => publisher.close()));
591
+ await settle(autoConnectLoops.map((loop) => loop.prepareTransportShutdown()));
592
+ await settle(entryActivations.reverse().map((activation) => activation.dispose(deadline)));
593
+ await settle(meshPumps.reverse().map((pump) => pump.dispose()));
594
+ await settle(meshNodes.reverse().map(async (node) => {
595
+ node.shutdown(1000);
596
+ node.close();
597
+ }));
598
+ for (const completions of meshCompletions) {
599
+ completions.dispose();
600
+ }
601
+ this.meshNodes.clear();
602
+ this.meshCompletions.clear();
603
+ await settle(autoConnectLoops.map((loop) => loop.finishTransportShutdown(signal)));
604
+ if (errors.length === 1)
605
+ throw errors[0];
606
+ if (errors.length > 1)
607
+ throw new AggregateError(errors, 'SPOT node runtime cleanup failed.');
608
+ }
609
+ async dispatchMeshRecord(meshName, owner, record) {
610
+ if (record.kind === service_runtime_contracts_1.ReceiveKind.Completion) {
611
+ (0, execution_1.requireZLinkInfrastructureExecutionArea)();
612
+ const completions = this.meshCompletions.get(meshName);
613
+ if (completions === undefined) {
614
+ throw new configuration_1.ZLinkConfigurationException(`MeshNode '${meshName}' received a completion before its completion table was registered.`);
615
+ }
616
+ completions.complete(record);
617
+ return;
618
+ }
619
+ const node = this.meshNodes.get(meshName);
620
+ const targetsEntrySpot = owner.spotId === null
621
+ || (node !== undefined && (0, routing_id_1.routingIdsEqual)(owner.spotId, String(node.status().routingId)));
622
+ if (targetsEntrySpot && (record.kind === service_runtime_contracts_1.ReceiveKind.ActorSend
623
+ || record.kind === service_runtime_contracts_1.ReceiveKind.ActorRequest
624
+ || record.kind === service_runtime_contracts_1.ReceiveKind.SpotSend
625
+ || record.kind === service_runtime_contracts_1.ReceiveKind.SpotRequest
626
+ || record.kind === service_runtime_contracts_1.ReceiveKind.SpotMulticast)) {
627
+ await this.ensureEntryActivation(meshName);
628
+ }
629
+ const dispatcher = this.options.meshRecordDispatcher;
630
+ if (dispatcher === undefined) {
631
+ throw new configuration_1.ZLinkConfigurationException(`MeshNode '${meshName}' received a record before its framework dispatcher was registered.`);
632
+ }
633
+ await dispatcher(meshName, owner, record);
634
+ }
635
+ async dispatchEntrySpotRecord(meshName, owner, record) {
636
+ if (record.kind !== service_runtime_contracts_1.ReceiveKind.SpotSend
637
+ && record.kind !== service_runtime_contracts_1.ReceiveKind.SpotRequest
638
+ && record.kind !== service_runtime_contracts_1.ReceiveKind.SpotMulticast) {
639
+ return false;
640
+ }
641
+ await this.ensureEntryActivation(meshName);
642
+ const activation = this.entryActivations.get(meshName);
643
+ if (activation === undefined
644
+ || owner.spotId === null
645
+ || activation.spotId !== owner.spotId) {
646
+ return false;
647
+ }
648
+ if (record.kind === service_runtime_contracts_1.ReceiveKind.SpotMulticast) {
649
+ if (record.topic === null || record.topic.length === 0) {
650
+ throw new configuration_1.ZLinkConfigurationException('MeshNode Entry Spot multicast record is missing its topic.');
651
+ }
652
+ await activation.dispatchSubscriptionRecord(record.topic, record.parts, record.sourceNodeRid);
653
+ return true;
654
+ }
655
+ const envelope = (0, channel_envelope_1.decodeChannelEnvelope)(record.parts, undefined, this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true);
656
+ const codecs = { serializers: this.options.registration.messageSerializers };
657
+ const decodePayload = () => (0, channel_envelope_1.decodeChannelPayload)(envelope, codecs);
658
+ const context = {
659
+ channelName: envelope.header.channelName,
660
+ contentType: envelope.header.contentType
661
+ };
662
+ if (record.kind === service_runtime_contracts_1.ReceiveKind.SpotSend) {
663
+ await activation.dispatchPacketEncoded(envelope.packetName, decodePayload, context, false);
664
+ return true;
665
+ }
666
+ try {
667
+ const response = await activation.dispatchPacketEncoded(envelope.packetName, decodePayload, context, true);
668
+ requireEntrySpotReply(record.reply((0, channel_envelope_1.encodeChannelReplyParts)(envelope.header, response, codecs)));
669
+ }
670
+ catch (error) {
671
+ requireEntrySpotReply(record.reply((0, channel_envelope_1.encodeChannelErrorReplyParts)(envelope.header, error)));
672
+ }
673
+ return true;
674
+ }
675
+ async ensureEntryActivation(spotNodeName) {
676
+ if (this.entryActivations.has(spotNodeName)) {
677
+ return;
678
+ }
679
+ const pending = this.entryActivationStarts.get(spotNodeName);
680
+ if (pending !== undefined) {
681
+ await pending;
682
+ return;
683
+ }
684
+ const spotNode = this.options.registration.spotNodes.get(spotNodeName);
685
+ const node = this.meshNodes.get(spotNodeName);
686
+ if (spotNode === undefined || node === undefined || spotNode.entrySpotType === undefined) {
687
+ return;
688
+ }
689
+ const start = this.initializeEntrySpot(spotNodeName, node, spotNode);
690
+ this.entryActivationStarts.set(spotNodeName, start);
691
+ try {
692
+ await start;
693
+ }
694
+ finally {
695
+ if (this.entryActivationStarts.get(spotNodeName) === start) {
696
+ this.entryActivationStarts.delete(spotNodeName);
697
+ }
698
+ }
699
+ }
700
+ async initializeEntrySpot(spotNodeName, node, spotNode) {
701
+ if (spotNode.entrySpotType === undefined) {
702
+ return;
703
+ }
704
+ const activation = new spot_entry_activation_1.ZLinkEntrySpotActivation({
705
+ entrySpotType: spotNode.entrySpotType,
706
+ nativeSpot: node.entrySpot(),
707
+ nativeNode: node,
708
+ createReceived: () => this.options.backendAdapterFactory.createReceived(),
709
+ createTopicMessage: () => this.options.backendAdapterFactory.createTopicMessage(),
710
+ nodeRid: String(node.status().routingId),
711
+ spotNodeName,
712
+ providerResolver: this.options.providerResolver,
713
+ channelClient: this.options.channelClient,
714
+ fanoutClient: this.options.fanoutClient,
715
+ spotPublisherClient: this.options.spotPublisherClient,
716
+ routedTransport: this.options.routedTransport,
717
+ spotRouterChannelIdForMesh: this.options.spotRouterChannelIdForMesh,
718
+ channelMeshNameForChannel: (channelName) => resolveChannelMeshName(this.options.registration, channelName),
719
+ timerHandlers: spotNode.entrySpotTimerHandlers,
720
+ packetHandlers: spotNode.entrySpotPacketHandlers,
721
+ subscriptionHandlers: spotNode.entrySpotSubscriptionHandlers,
722
+ actorSendHandlers: spotNode.entrySpotActorSendHandlers,
723
+ actorRequestHandlers: spotNode.entrySpotActorRequestHandlers,
724
+ messageSerializers: this.options.registration.messageSerializers,
725
+ entryActorRuntime: this.options.entryActorRuntime,
726
+ actorTransferRuntime: this.options.actorTransferRuntime,
727
+ boundSessionRuntime: this.options.boundSessionRuntime,
728
+ actorHandoffRuntime: this.options.actorHandoffRuntime,
729
+ detachedTaskRunner: this.options.detachedTaskRunner,
730
+ dispatchErrors: this.options.dispatchErrors,
731
+ runtimeEventPublisher: this.options.runtimeEventPublisher,
732
+ metrics: this.options.metrics
733
+ });
734
+ try {
735
+ await activation.create();
736
+ await activation.configure();
737
+ await activation.initialize();
738
+ this.entryActivations.set(spotNodeName, activation);
739
+ }
740
+ catch (error) {
741
+ try {
742
+ await activation.dispose();
743
+ }
744
+ catch (disposeError) {
745
+ throw new AggregateError([error, disposeError], `Entry Spot '${spotNodeName}' materialization cleanup failed.`);
746
+ }
747
+ throw error;
748
+ }
749
+ }
750
+ primaryEntryActivation() {
751
+ return this.entryActivations.values().next().value;
752
+ }
753
+ async dispatchEntryActorPacket(actorId, parts, returnResponse = false, remoteBoundSessionTarget, fallbackActorRef, requestTerminal, messageFollowOrigin) {
754
+ let activation = this.primaryEntryActivation();
755
+ if (activation === undefined) {
756
+ const candidates = this.options.primaryMeshName === undefined
757
+ ? this.options.registration.spotNodes
758
+ : new Map([[this.options.primaryMeshName, this.options.registration.spotNodes.get(this.options.primaryMeshName)]]);
759
+ for (const [spotNodeName, spotNode] of candidates) {
760
+ if (spotNode === undefined) {
761
+ continue;
762
+ }
763
+ if (spotNode.entrySpotType === undefined) {
764
+ continue;
765
+ }
766
+ await this.ensureEntryActivation(spotNodeName);
767
+ activation = this.entryActivations.get(spotNodeName);
768
+ if (activation !== undefined) {
769
+ break;
770
+ }
771
+ }
772
+ }
773
+ if (activation === undefined) {
774
+ throw new configuration_1.ZLinkConfigurationException('Entry Spot actor packet dispatch requires an Entry Spot.');
775
+ }
776
+ return await activation.dispatchActorPacket({
777
+ actorId,
778
+ parts,
779
+ returnResponse,
780
+ remoteBoundSessionTarget,
781
+ fallbackActorRef,
782
+ requestTerminal,
783
+ messageFollowOrigin
784
+ });
785
+ }
786
+ async dispatchEntryActorJoin(meshName, actor, handoffBacklog = []) {
787
+ await this.ensureEntryActivation(meshName);
788
+ const activation = this.entryActivations.get(meshName);
789
+ if (activation === undefined) {
790
+ throw new configuration_1.ZLinkConfigurationException(`Entry Spot actor join requires an Entry Spot for MeshNode '${meshName}'.`);
791
+ }
792
+ await activation.commitServiceActorJoin(actor, handoffBacklog);
793
+ }
794
+ publish(meshName, channelName, topic, packetName, event, signal, metadata = EMPTY_SPOT_METADATA) {
795
+ if (this.disposed) {
796
+ return Promise.reject(runtimeShutdownError());
797
+ }
798
+ if (signal?.aborted === true) {
799
+ return Promise.reject(signal.reason ?? (0, abort_1.createAbortError)());
800
+ }
801
+ const publisher = this.publishers.get(meshName);
802
+ if (publisher === undefined) {
803
+ throw new configuration_1.ZLinkConfigurationException(`RouteMesh '${meshName}' publisher is not started.`);
804
+ }
805
+ const sendTimeoutMs = this.options.registration.spotNodes
806
+ .get(meshName)?.publisherConfig?.sendTimeoutMs ?? 1000;
807
+ const slot = this.acquirePublishSlot(meshName, sendTimeoutMs, signal);
808
+ if (slot === false) {
809
+ // The bounded executor-admission tokens are exhausted. Do not retain the
810
+ // payload, cancellation state, or a timer for this hard-overload call.
811
+ return Promise.resolve(this.publishTimedOut());
812
+ }
813
+ if (slot === true) {
814
+ return this.executePublish(publisher, meshName, channelName, topic, packetName, event, metadata);
815
+ }
816
+ return slot.then((acquired) => acquired
817
+ ? this.executePublish(publisher, meshName, channelName, topic, packetName, event, metadata)
818
+ : this.publishTimedOut());
819
+ }
820
+ async executePublish(publisher, meshName, channelName, topic, packetName, event, metadata) {
821
+ // The slot is the source-local admission boundary. Once publishAsync takes
822
+ // the owned frames, target processing cannot change the caller terminal.
823
+ // Call-scoped flow (spec 27 §4): the fanout envelope flow pair does not
824
+ // outlive this publish call.
825
+ try {
826
+ const parts = (0, flow_context_1.runWithOutboundFlow)(this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true, () => (0, channel_envelope_1.encodeChannelPublishEnvelopeParts)(channelName, topic, packetName, event, undefined, this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true, metadata));
827
+ const processing = publisher.publishAsync(channelName, topic, parts, undefined, undefined);
828
+ void Promise.resolve(processing).catch(() => undefined);
829
+ return Promise.resolve({ status: submission_result_1.ZLinkSubmitStatus.Submitted });
830
+ }
831
+ finally {
832
+ this.releasePublishSlot(meshName);
833
+ }
834
+ }
835
+ tryPublish(meshName, channelName, topic, packetName, event, metadata = EMPTY_SPOT_METADATA) {
836
+ return this.publishWithFlags(meshName, channelName, topic, packetName, event, ZLINK_SEND_DONT_WAIT, metadata);
837
+ }
838
+ publishWithFlags(meshName, channelName, topic, packetName, event, flags, metadata) {
839
+ if (this.disposed) {
840
+ throw runtimeShutdownError();
841
+ }
842
+ const publisher = this.publishers.get(meshName);
843
+ if (publisher === undefined) {
844
+ throw new configuration_1.ZLinkConfigurationException(`RouteMesh '${meshName}' publisher is not started.`);
845
+ }
846
+ const parts = (0, flow_context_1.runWithOutboundFlow)(this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true, () => (0, channel_envelope_1.encodeChannelPublishEnvelopeParts)(channelName, topic, packetName, event, undefined, this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true, metadata));
847
+ try {
848
+ publisher.publish(channelName, topic, parts, { flags });
849
+ return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
850
+ }
851
+ catch (error) {
852
+ if ((0, runtime_values_1.isZLinkBackendResultError)(error) && error.operation === 'submit') {
853
+ return { status: mapPublishSubmitStatus(error.result) };
854
+ }
855
+ throw error;
856
+ }
857
+ }
858
+ acquirePublishSlot(meshName, timeoutMs, signal) {
859
+ if (!this.activePublishes.has(meshName)) {
860
+ this.activePublishes.add(meshName);
861
+ return true;
862
+ }
863
+ const waiterCapacity = Math.max(1, this.options.registration.spotNodes
864
+ .get(meshName)?.publisherConfig?.sendHighWaterMark ?? 1);
865
+ const queue = this.publishSlotWaiters.get(meshName) ?? {
866
+ waiters: [],
867
+ head: 0,
868
+ count: 0
869
+ };
870
+ if (queue.count >= waiterCapacity) {
871
+ // This call has no bounded executor-admission token. Fail without
872
+ // retaining its payload in a pending work queue.
873
+ return false;
874
+ }
875
+ return new Promise((resolve, reject) => {
876
+ const waiter = {
877
+ resolve,
878
+ reject,
879
+ signal,
880
+ settled: false
881
+ };
882
+ if (timeoutMs !== -1) {
883
+ waiter.deadlineMs = performance.now() + Math.max(0, timeoutMs);
884
+ }
885
+ queue.waiters.push(waiter);
886
+ queue.count += 1;
887
+ this.publishSlotWaiters.set(meshName, queue);
888
+ if (timeoutMs !== -1) {
889
+ waiter.timeout = setTimeout(() => this.settlePublishSlotWaiter(meshName, waiter, false), Math.max(0, timeoutMs));
890
+ }
891
+ if (signal !== undefined) {
892
+ waiter.abortHandler = () => this.rejectPublishSlotWaiter(meshName, waiter, signal.reason ?? (0, abort_1.createAbortError)());
893
+ signal.addEventListener('abort', waiter.abortHandler, { once: true });
894
+ }
895
+ });
896
+ }
897
+ publishTimedOut() {
898
+ return { status: submission_result_1.ZLinkSubmitStatus.TimedOut };
899
+ }
900
+ releasePublishSlot(meshName) {
901
+ const queue = this.publishSlotWaiters.get(meshName);
902
+ while (queue !== undefined && queue.count > 0) {
903
+ const waiter = this.takePublishSlotWaiter(queue);
904
+ if (waiter === undefined)
905
+ continue;
906
+ if (waiter.settled)
907
+ continue;
908
+ if (waiter.deadlineMs !== undefined && performance.now() >= waiter.deadlineMs) {
909
+ this.cleanupPublishSlotWaiter(waiter);
910
+ waiter.settled = true;
911
+ waiter.resolve(false);
912
+ continue;
913
+ }
914
+ this.cleanupPublishSlotWaiter(waiter);
915
+ waiter.settled = true;
916
+ waiter.resolve(true);
917
+ if (queue.count === 0)
918
+ this.publishSlotWaiters.delete(meshName);
919
+ return;
920
+ }
921
+ this.publishSlotWaiters.delete(meshName);
922
+ this.activePublishes.delete(meshName);
923
+ }
924
+ settlePublishSlotWaiter(meshName, waiter, acquired) {
925
+ if (waiter.settled)
926
+ return;
927
+ waiter.settled = true;
928
+ this.removePublishSlotWaiter(meshName, waiter);
929
+ this.cleanupPublishSlotWaiter(waiter);
930
+ waiter.resolve(acquired);
931
+ }
932
+ rejectPublishSlotWaiter(meshName, waiter, error) {
933
+ if (waiter.settled)
934
+ return;
935
+ waiter.settled = true;
936
+ this.removePublishSlotWaiter(meshName, waiter);
937
+ this.cleanupPublishSlotWaiter(waiter);
938
+ waiter.reject(error);
939
+ }
940
+ removePublishSlotWaiter(meshName, waiter) {
941
+ const queue = this.publishSlotWaiters.get(meshName);
942
+ if (queue === undefined)
943
+ return;
944
+ const index = queue.waiters.indexOf(waiter, queue.head);
945
+ if (index >= 0) {
946
+ queue.waiters[index] = undefined;
947
+ queue.count -= 1;
948
+ this.compactPublishSlotWaiters(queue);
949
+ }
950
+ if (queue.count === 0)
951
+ this.publishSlotWaiters.delete(meshName);
952
+ }
953
+ cleanupPublishSlotWaiter(waiter) {
954
+ if (waiter.timeout !== undefined)
955
+ clearTimeout(waiter.timeout);
956
+ if (waiter.abortHandler !== undefined) {
957
+ waiter.signal?.removeEventListener('abort', waiter.abortHandler);
958
+ }
959
+ }
960
+ rejectPublishSlotWaiters(error) {
961
+ for (const [meshName, queue] of this.publishSlotWaiters) {
962
+ let waiter;
963
+ while ((waiter = this.takePublishSlotWaiter(queue)) !== undefined) {
964
+ this.rejectPublishSlotWaiter(meshName, waiter, error);
965
+ }
966
+ this.publishSlotWaiters.delete(meshName);
967
+ }
968
+ this.activePublishes.clear();
969
+ }
970
+ takePublishSlotWaiter(queue) {
971
+ while (queue.head < queue.waiters.length && queue.waiters[queue.head] === undefined) {
972
+ queue.head += 1;
973
+ }
974
+ const waiter = queue.waiters[queue.head];
975
+ if (waiter === undefined)
976
+ return undefined;
977
+ queue.waiters[queue.head] = undefined;
978
+ queue.head += 1;
979
+ queue.count -= 1;
980
+ this.compactPublishSlotWaiters(queue);
981
+ return waiter;
982
+ }
983
+ compactPublishSlotWaiters(queue) {
984
+ if (queue.count === 0) {
985
+ queue.waiters.length = 0;
986
+ queue.head = 0;
987
+ }
988
+ else if (queue.head >= 1024 && queue.head * 2 >= queue.waiters.length) {
989
+ queue.waiters.splice(0, queue.head);
990
+ queue.head = 0;
991
+ }
992
+ }
993
+ }
994
+ exports.ZLinkSpotNodeRuntimeManager = ZLinkSpotNodeRuntimeManager;
995
+ function runtimeShutdownError() {
996
+ return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RuntimeShutdown, 'SPOT publisher runtime is shutting down.');
997
+ }
998
+ function createFrameworkEntrySpotId(prefix) {
999
+ if (!/^[A-Za-z0-9._-]{1,64}$/.test(prefix)) {
1000
+ throw new configuration_1.ZLinkConfigurationException('Entry Spot diagnostic prefix must contain 1..64 ASCII letters, digits, dot, underscore, or hyphen.');
1001
+ }
1002
+ return `${prefix}-entry-${(0, node_crypto_1.randomUUID)()}`;
1003
+ }
1004
+ function resolveChannelMeshName(registration, channelName) {
1005
+ const matches = [...registration.spotNodes.entries()]
1006
+ .filter(([, node]) => Object.prototype.hasOwnProperty.call(node.meshChannels ?? {}, channelName))
1007
+ .map(([meshName]) => meshName);
1008
+ return matches.length === 1 ? matches[0] : undefined;
1009
+ }
1010
+ function mapPublishSubmitStatus(result) {
1011
+ switch (result) {
1012
+ case runtime_values_1.SubmitResult.Ok:
1013
+ return submission_result_1.ZLinkSubmitStatus.Submitted;
1014
+ case runtime_values_1.SubmitResult.Backpressured:
1015
+ case runtime_values_1.SubmitResult.NotAdmitted:
1016
+ return submission_result_1.ZLinkSubmitStatus.Backpressured;
1017
+ case runtime_values_1.SubmitResult.NotFound:
1018
+ // A publish with no matching subscriber is a successful zero-recipient
1019
+ // operation, not an operation-specific not-found failure.
1020
+ return submission_result_1.ZLinkSubmitStatus.Submitted;
1021
+ case runtime_values_1.SubmitResult.NotConnected:
1022
+ return submission_result_1.ZLinkSubmitStatus.RouteNotConnected;
1023
+ case runtime_values_1.SubmitResult.Terminated:
1024
+ case runtime_values_1.SubmitResult.InvalidHandle:
1025
+ return submission_result_1.ZLinkSubmitStatus.Shutdown;
1026
+ default:
1027
+ throw new configuration_1.ZLinkConfigurationException(`Logical Multicast failed with submit result '${result}'.`);
1028
+ }
1029
+ }
1030
+ function requireEntrySpotReply(result) {
1031
+ if (result !== runtime_values_1.SubmitResult.Ok) {
1032
+ throw new configuration_1.ZLinkConfigurationException(`MeshNode Entry Spot reply was not accepted (submit result ${result}).`);
1033
+ }
1034
+ }
1035
+ function requirePublicRuntimeWeight(value, label) {
1036
+ if (!Number.isInteger(value) || value < 0 || value > 10_000) {
1037
+ throw new configuration_1.ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
1038
+ }
1039
+ return value;
1040
+ }
1041
+ function effectiveUserSpotRegistrations(registration) {
1042
+ const registrations = new Map(Object.entries(registration.spotFactoryRegistrations ?? {}));
1043
+ const explicitImplementations = new Set(Object.values(registration.spotFactoryRegistrations ?? {})
1044
+ .map(({ implementation }) => implementation));
1045
+ for (const implementation of registration.spotFactories ?? []) {
1046
+ // `spotFactories` is also retained as the runtime implementation set.
1047
+ // When the caller supplied an explicit stable type, the implementation
1048
+ // must not be projected a second time under its JavaScript class name.
1049
+ // That legacy alias advertises a different public placement type and can
1050
+ // make location routing disagree with the configured factory.
1051
+ if (!explicitImplementations.has(implementation) && !registrations.has(implementation.name)) {
1052
+ registrations.set(implementation.name, {});
1053
+ }
1054
+ }
1055
+ return [...registrations];
1056
+ }
1057
+ function effectiveInstanceSpotRegistrations(registration) {
1058
+ const registrations = new Map(Object.entries(registration.instanceSpotFactoryRegistrations ?? {}));
1059
+ for (const stableType of Object.keys(registration.instanceSpotFactories ?? {})) {
1060
+ if (!registrations.has(stableType))
1061
+ registrations.set(stableType, {});
1062
+ }
1063
+ return [...registrations];
1064
+ }
1065
+ function effectiveActorRegistrations(registration) {
1066
+ const registrations = new Map(Object.entries(registration.actorFactoryRegistrations ?? {}));
1067
+ const legacy = registration.actorFactories instanceof Map
1068
+ ? registration.actorFactories.keys()
1069
+ : Object.keys(registration.actorFactories ?? {});
1070
+ for (const stableType of legacy) {
1071
+ if (!registrations.has(stableType))
1072
+ registrations.set(stableType, {});
1073
+ }
1074
+ return [...registrations];
1075
+ }
1076
+ function effectiveObjectRole(registration) {
1077
+ if (registration.objectRole === 'server')
1078
+ return contracts_1.ZLinkObjectRole.Server;
1079
+ if (registration.objectRole === 'client')
1080
+ return contracts_1.ZLinkObjectRole.Client;
1081
+ return effectiveUserSpotRegistrations(registration).length > 0
1082
+ || effectiveInstanceSpotRegistrations(registration).length > 0
1083
+ || effectiveActorRegistrations(registration).length > 0
1084
+ ? contracts_1.ZLinkObjectRole.Server
1085
+ : contracts_1.ZLinkObjectRole.None;
1086
+ }
1087
+ function objectCapability(objectKind, stableType, factory) {
1088
+ const policy = factory.relocation?.kind ?? 'disabled';
1089
+ return {
1090
+ objectKind,
1091
+ stableType,
1092
+ policy,
1093
+ hasSnapshotAdapter: policy === 'snapshot',
1094
+ limit: objectKind === 'actor'
1095
+ ? 0
1096
+ : factory.options?.stableTypeLimit ?? 0
1097
+ };
1098
+ }
1099
+ function aggregatePlacementCapacity(actorLimit, spotLimit) {
1100
+ const unlimited = 0x7fff_ffff;
1101
+ const actors = actorLimit === 0 ? unlimited : actorLimit;
1102
+ const spots = spotLimit === 0 ? unlimited : spotLimit;
1103
+ return Math.min(unlimited, actors + spots);
1104
+ }
1105
+ function maxBigInt(left, right) {
1106
+ return left > right ? left : right;
1107
+ }
1108
+ function sameOwnerToken(left, right) {
1109
+ return left.ownerId === right.ownerId
1110
+ && left.leaseGeneration === right.leaseGeneration;
1111
+ }