@zlink-systems/framework 0.21.0 → 0.22.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 (487) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. package/src/runtime/workers/index.ts +68 -29
@@ -18,9 +18,7 @@ class DefaultZLinkSpotHandlerRegistry {
18
18
  if (metadata === undefined || resolvedPacketName === undefined) {
19
19
  throw new configuration_1.ZLinkConfigurationException(`Actor packet handler '${handlerType.name}' must declare a packet name.`);
20
20
  }
21
- return this.addActorPacketRegistration(metadata.kind === 'spotActorSend'
22
- ? actors_1.ZLinkActorPacketKind.Send
23
- : actors_1.ZLinkActorPacketKind.Request, handlerType, Object, resolvedPacketName);
21
+ return this.addActorPacketRegistration(metadata.kind === 'spotActorSend' ? actors_1.ZLinkActorPacketKind.Send : actors_1.ZLinkActorPacketKind.Request, handlerType, Object, resolvedPacketName);
24
22
  }
25
23
  addActorPacket(handlerType, actorType) {
26
24
  const metadata = (0, Attributes_1.readZLinkDecoratorMetadata)(handlerType).find((entry) => entry.kind === 'spotActorSend' || entry.kind === 'spotActorRequest');
@@ -30,9 +28,12 @@ class DefaultZLinkSpotHandlerRegistry {
30
28
  return this.addActorPacketRegistration(metadata.kind === 'spotActorSend' ? actors_1.ZLinkActorPacketKind.Send : actors_1.ZLinkActorPacketKind.Request, handlerType, actorType, metadata.packetName);
31
29
  }
32
30
  addPacket(handlerType, packetName) {
33
- const declared = (0, Attributes_1.readZLinkDecoratorMetadata)(handlerType)
34
- .find((entry) => entry.kind === 'packet')?.packetName;
35
- this.entries.push({ kind: 'packet', handlerType, packetName: packetName ?? declared ?? handlerType.name });
31
+ const declared = (0, Attributes_1.readZLinkDecoratorMetadata)(handlerType).find((entry) => entry.kind === 'packet')?.packetName;
32
+ this.entries.push({
33
+ kind: 'packet',
34
+ handlerType,
35
+ packetName: packetName ?? declared ?? handlerType.name
36
+ });
36
37
  return this;
37
38
  }
38
39
  packet(packetName, handlerType) {
@@ -66,10 +67,10 @@ class DefaultZLinkSpotHandlerRegistry {
66
67
  if (topic.trim().length === 0) {
67
68
  throw new configuration_1.ZLinkConfigurationException('SPOT subscribe topic must not be empty.');
68
69
  }
69
- if (this.entries.some((entry) => entry.kind === 'subscribe'
70
- && entry.handlerType === handlerType
71
- && entry.channelName === channelName
72
- && entry.topic === topic)) {
70
+ if (this.entries.some((entry) => entry.kind === 'subscribe' &&
71
+ entry.handlerType === handlerType &&
72
+ entry.channelName === channelName &&
73
+ entry.topic === topic)) {
73
74
  return this;
74
75
  }
75
76
  this.entries.push({ kind: 'subscribe', handlerType, channelName, topic });
@@ -150,6 +151,5 @@ function applySpotHandlerRegistrations(registry, spotType, registrations) {
150
151
  }
151
152
  }
152
153
  function isSpotImplementation(registeredType, implementation) {
153
- return registeredType === implementation
154
- || implementation.prototype instanceof registeredType;
154
+ return registeredType === implementation || implementation.prototype instanceof registeredType;
155
155
  }
@@ -38,8 +38,8 @@ class ZLinkPublicSpotManager {
38
38
  };
39
39
  }
40
40
  catch (error) {
41
- if (error instanceof contracts_1.ZLinkFrameworkException
42
- && (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound) {
41
+ if (error instanceof contracts_1.ZLinkFrameworkException &&
42
+ (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound) {
43
43
  return undefined;
44
44
  }
45
45
  throw error;
@@ -74,8 +74,7 @@ class ZLinkPublicSpotManager {
74
74
  },
75
75
  deadlineUnixMs: BigInt(Date.now() + timeoutMs)
76
76
  }, timeoutMs);
77
- if (result.terminalResult !== 0
78
- || result.tail?.kind !== 'userSpotClose') {
77
+ if (result.terminalResult !== 0 || result.tail?.kind !== 'userSpotClose') {
79
78
  const message = `Remote User Spot close failed. terminalResult=${result.terminalResult}, failureCode=${result.failureCode}.`;
80
79
  // Route the close terminal through the shared ownership-aware translator
81
80
  // (spec 32-framework-error-model:81-118, 99-108) instead of an ad-hoc
@@ -170,8 +169,8 @@ class ZLinkPublicSpotManager {
170
169
  throw error;
171
170
  }
172
171
  }, async (cleanupSignal) => {
173
- const meshName = state.meshName ?? [...this.options.factories]
174
- .find(([, byType]) => byType.has(stableType))?.[0];
172
+ const meshName = state.meshName ??
173
+ [...this.options.factories].find(([, byType]) => byType.has(stableType))?.[0];
175
174
  if (meshName !== undefined) {
176
175
  await this.options.local.close(meshName, spotId, cleanupSignal);
177
176
  }
@@ -29,9 +29,10 @@ class ZLinkSpotNativeActorJoinAdmission {
29
29
  ? { accepted: this.options.defaultAccept }
30
30
  : target.onActorJoin(actorId, joinPayload));
31
31
  accepted = response.accepted;
32
- reply = response.reply === undefined
33
- ? undefined
34
- : (0, payload_codec_1.encodeFrameworkPayloadMessage)(response.reply, this.options.messageSerializers);
32
+ reply =
33
+ response.reply === undefined
34
+ ? undefined
35
+ : (0, payload_codec_1.encodeFrameworkPayloadMessage)(response.reply, this.options.messageSerializers);
35
36
  if (accepted) {
36
37
  acceptedActor = actor;
37
38
  }
@@ -42,8 +42,7 @@ function spotNodeAutoConnectCapability(spotNodeName, spotNode, node) {
42
42
  nodeRid: String(status.routingId),
43
43
  endpoint,
44
44
  objectRole: spotNode.objectRole ?? 'none',
45
- hasRouteMeshServerChannel: Object.values(spotNode.meshChannels ?? {})
46
- .some((channel) => channel.server === true)
45
+ hasRouteMeshServerChannel: Object.values(spotNode.meshChannels ?? {}).some((channel) => channel.server === true)
47
46
  };
48
47
  const manualConnections = hasManualRouterConnections(spotNode);
49
48
  return {
@@ -54,11 +53,10 @@ function spotNodeAutoConnectCapability(spotNodeName, spotNode, node) {
54
53
  function meshDescriptorPeerResolver(runtime) {
55
54
  return {
56
55
  async listLivePeers(filter, signal) {
57
- if (filter.meshName === undefined
58
- || (filter.autoConnectType !== undefined
59
- && filter.autoConnectType !== Values_1.ZLinkLocationAutoConnectType.RouteMesh)
60
- || (filter.role !== undefined
61
- && filter.role !== contracts_1.ZLinkLocationRole.Router)) {
56
+ if (filter.meshName === undefined ||
57
+ (filter.autoConnectType !== undefined &&
58
+ filter.autoConnectType !== Values_1.ZLinkLocationAutoConnectType.RouteMesh) ||
59
+ (filter.role !== undefined && filter.role !== contracts_1.ZLinkLocationRole.Router)) {
62
60
  return [];
63
61
  }
64
62
  const descriptors = await runtime.listLiveMeshNodes(filter.meshName, signal);
@@ -82,14 +80,14 @@ function meshDescriptorPeerResolver(runtime) {
82
80
  securityIdentity: descriptor.securityIdentity
83
81
  }
84
82
  }))
85
- .filter(peer => (filter.nodeRid === undefined || String(peer.nodeRid) === String(filter.nodeRid))
86
- && (filter.endpoint === undefined || peer.endpoint === filter.endpoint));
83
+ .filter((peer) => (filter.nodeRid === undefined || String(peer.nodeRid) === String(filter.nodeRid)) &&
84
+ (filter.endpoint === undefined || peer.endpoint === filter.endpoint));
87
85
  }
88
86
  };
89
87
  }
90
88
  function hasManualRouterConnections(spotNode) {
91
- return (spotNode.router?.manualConnections?.length ?? 0) > 0
92
- || (spotNode.router?.manualPeerConnections?.length ?? 0) > 0;
89
+ return ((spotNode.router?.manualConnections?.length ?? 0) > 0 ||
90
+ (spotNode.router?.manualPeerConnections?.length ?? 0) > 0);
93
91
  }
94
92
  const detachedSpotNodeAutoConnectResource = new node_async_hooks_1.AsyncResource('zlink:spot-node-autoconnect');
95
93
  class ZLinkSpotNodeAutoConnectExecutor {
@@ -129,8 +127,7 @@ class ZLinkSpotNodeAutoConnectExecutor {
129
127
  if (peer.routingId === null)
130
128
  continue;
131
129
  const target = current.get(String(peer.routingId));
132
- if (target !== undefined
133
- && peer.endpoint === target.endpoint) {
130
+ if (target !== undefined && peer.endpoint === target.endpoint) {
134
131
  continue;
135
132
  }
136
133
  this.node.disconnectPeer(peer.routingId, peer.lifecycleGeneration);
@@ -142,7 +139,9 @@ class ZLinkSpotNodeAutoConnectExecutor {
142
139
  // it can treat the automatic route as disconnected.
143
140
  if (this.connectionIntents.has(connectionKey(target)))
144
141
  return false;
145
- return !this.node.peers().some((peer) => peer.routingId !== null &&
142
+ return !this.node
143
+ .peers()
144
+ .some((peer) => peer.routingId !== null &&
146
145
  peer.endpoint === target.endpoint &&
147
146
  (target.nodeRid === undefined || String(peer.routingId) === String(target.nodeRid)) &&
148
147
  peer.lifecycleGeneration === target.lifecycleGeneration &&
@@ -151,7 +150,7 @@ class ZLinkSpotNodeAutoConnectExecutor {
151
150
  replaceNotRequired(targets) {
152
151
  this.node.replaceDiscoveredNotRequiredPeers?.(targets
153
152
  .filter((target) => target.nodeRid !== undefined)
154
- .map(target => ({
153
+ .map((target) => ({
155
154
  nodeRoutingId: String(target.nodeRid),
156
155
  lifecycleGeneration: target.lifecycleGeneration,
157
156
  descriptorRevision: target.descriptorRevision ?? 1n,
@@ -181,9 +180,7 @@ class ZLinkSpotNodeAutoConnectExecutor {
181
180
  try {
182
181
  const connectionIntentId = await this.node.connectPeer({
183
182
  endpoint: target.endpoint,
184
- expectedRid: target.nodeRid === undefined
185
- ? undefined
186
- : (0, routing_id_1.toBackendRoutingId)(target.nodeRid),
183
+ expectedRid: target.nodeRid === undefined ? undefined : (0, routing_id_1.toBackendRoutingId)(target.nodeRid),
187
184
  expectedSecurityIdentity: toAdmissionSecurityIdentity(target.metadata?.securityIdentity),
188
185
  expectedLifecycleGeneration: target.lifecycleGeneration
189
186
  });
@@ -51,8 +51,9 @@ class ZLinkSpotNodeRuntimeManager {
51
51
  applicationJobQueue;
52
52
  constructor(options) {
53
53
  this.options = options;
54
- this.applicationJobQueue = options.applicationJobQueue
55
- ?? new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
54
+ this.applicationJobQueue =
55
+ options.applicationJobQueue ??
56
+ new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
56
57
  }
57
58
  createReceived() {
58
59
  return this.options.backendAdapterFactory.createReceived();
@@ -126,10 +127,10 @@ class ZLinkSpotNodeRuntimeManager {
126
127
  }
127
128
  const meshAdapter = this.options.backendAdapterFactory.createMeshAdapter();
128
129
  for (const [spotNodeName, spotNode] of this.options.registration.spotNodes.entries()) {
129
- const routingId = spotNode.routingId
130
- ?? spotNode.router?.routingId
131
- ?? spotNode.pubSub?.routingId
132
- ?? `${spotNode.routingIdPrefix ?? spotNodeName}-${(0, node_crypto_1.randomUUID)()}`;
130
+ const routingId = spotNode.routingId ??
131
+ spotNode.router?.routingId ??
132
+ spotNode.pubSub?.routingId ??
133
+ `${spotNode.routingIdPrefix ?? spotNodeName}-${(0, node_crypto_1.randomUUID)()}`;
133
134
  const bind = spotNode.router?.bind;
134
135
  if (bind === undefined) {
135
136
  throw new configuration_1.ZLinkConfigurationException(`MeshNode '${spotNodeName}' requires a routing id and ROUTER bind endpoint.`);
@@ -161,8 +162,8 @@ class ZLinkSpotNodeRuntimeManager {
161
162
  : ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.Drop,
162
163
  channelName: spotNodeName,
163
164
  sourceRid: record.sourceNodeRid,
164
- error: new Error(`MeshNode '${spotNodeName}' rejected an invalid service wire record from '${record.sourceNodeRid}'`
165
- + (record.command === undefined ? '.' : ` (command ${record.command}).`))
165
+ error: new Error(`MeshNode '${spotNodeName}' rejected an invalid service wire record from '${record.sourceNodeRid}'` +
166
+ (record.command === undefined ? '.' : ` (command ${record.command}).`))
166
167
  }));
167
168
  let pump;
168
169
  const completions = new mesh_completion_table_1.ZLinkMeshCompletionTable();
@@ -177,20 +178,19 @@ class ZLinkSpotNodeRuntimeManager {
177
178
  ...Object.keys(spotNode.actorFactoryRegistrations ?? {})
178
179
  ];
179
180
  const instanceSpotTypes = Object.keys(spotNode.instanceSpotFactoryRegistrations ?? {});
180
- const hasLegacyObjectFactories = (spotNode.spotFactories?.length ?? 0) > 0
181
- || Object.keys(spotNode.instanceSpotFactories ?? {}).length > 0
182
- || (spotNode.actorFactories instanceof Map
181
+ const hasLegacyObjectFactories = (spotNode.spotFactories?.length ?? 0) > 0 ||
182
+ Object.keys(spotNode.instanceSpotFactories ?? {}).length > 0 ||
183
+ (spotNode.actorFactories instanceof Map
183
184
  ? spotNode.actorFactories.size
184
185
  : Object.keys(spotNode.actorFactories ?? {}).length) > 0;
185
186
  node.configureObjectPlacement({
186
- role: spotNode.objectRole
187
- ?? (hasLegacyObjectFactories ? 'server' : 'none'),
187
+ role: spotNode.objectRole ?? (hasLegacyObjectFactories ? 'server' : 'none'),
188
188
  placementWeight: spotNode.placementWeight ?? 100,
189
189
  activeCapacityLimit: aggregatePlacementCapacity(spotNode.actorLimit ?? 0, spotNode.spotLimit ?? 0),
190
190
  pendingCapacityLimit: spotNode.activationConcurrencyLimit ?? 128,
191
191
  objectCapabilities: [
192
- ...stableTypes.map(type => `object-type:${type}`),
193
- ...instanceSpotTypes.map(type => `instance-spot-type:${type}`)
192
+ ...stableTypes.map((type) => `object-type:${type}`),
193
+ ...instanceSpotTypes.map((type) => `instance-spot-type:${type}`)
194
194
  ],
195
195
  ...(this.options.registration.maintenanceWave === undefined
196
196
  ? {}
@@ -251,7 +251,9 @@ class ZLinkSpotNodeRuntimeManager {
251
251
  async publishMeshNodeState(state, signal, selectedMeshName) {
252
252
  const previous = this.statePublication;
253
253
  let release;
254
- this.statePublication = new Promise((resolve) => { release = resolve; });
254
+ this.statePublication = new Promise((resolve) => {
255
+ release = resolve;
256
+ });
255
257
  await previous;
256
258
  try {
257
259
  await this.publishMeshNodeStateCore(state, signal, selectedMeshName);
@@ -265,8 +267,7 @@ class ZLinkSpotNodeRuntimeManager {
265
267
  const owner = location?.runtime.currentOwnerToken;
266
268
  if (location === undefined || owner === undefined)
267
269
  return;
268
- const ownerChanged = this.publishedOwnerToken !== undefined
269
- && !sameOwnerToken(this.publishedOwnerToken, owner);
270
+ const ownerChanged = this.publishedOwnerToken !== undefined && !sameOwnerToken(this.publishedOwnerToken, owner);
270
271
  if (ownerChanged) {
271
272
  // A new owner token can refer to an empty or replaced Store. The cached
272
273
  // descriptor was written under the previous lease and must not force a
@@ -289,9 +290,7 @@ class ZLinkSpotNodeRuntimeManager {
289
290
  ...actors.map(([stableType, factory]) => objectCapability('actor', stableType, factory))
290
291
  ].sort((left, right) => {
291
292
  const kindOrder = left.objectKind.localeCompare(right.objectKind);
292
- return kindOrder !== 0
293
- ? kindOrder
294
- : left.stableType.localeCompare(right.stableType);
293
+ return kindOrder !== 0 ? kindOrder : left.stableType.localeCompare(right.stableType);
295
294
  });
296
295
  const current = this.publishedMeshNodeDescriptors.get(meshName);
297
296
  const previousRevision = this.descriptorRevisionByMesh.get(meshName) ?? 0n;
@@ -318,10 +317,10 @@ class ZLinkSpotNodeRuntimeManager {
318
317
  limit: registration.spotLimit ?? 0
319
318
  },
320
319
  spotTypes: capabilities
321
- .filter(capability => capability.objectKind !== 'actor')
322
- .map(capability => {
323
- const previous = current?.populationCapacity.spotTypes.find(candidate => candidate.objectKind === capability.objectKind
324
- && candidate.stableType === capability.stableType);
320
+ .filter((capability) => capability.objectKind !== 'actor')
321
+ .map((capability) => {
322
+ const previous = current?.populationCapacity.spotTypes.find((candidate) => candidate.objectKind === capability.objectKind &&
323
+ candidate.stableType === capability.stableType);
325
324
  return {
326
325
  objectKind: capability.objectKind,
327
326
  stableType: capability.stableType,
@@ -332,15 +331,14 @@ class ZLinkSpotNodeRuntimeManager {
332
331
  })
333
332
  },
334
333
  activationConcurrency: {
335
- active: this.options.instanceActivationConcurrencyProvider?.(meshName).active
336
- ?? current?.activationConcurrency.active
337
- ?? 0,
338
- limit: this.options.instanceActivationConcurrencyProvider?.(meshName).limit
339
- ?? registration.activationConcurrencyLimit
340
- ?? 128
334
+ active: this.options.instanceActivationConcurrencyProvider?.(meshName).active ??
335
+ current?.activationConcurrency.active ??
336
+ 0,
337
+ limit: this.options.instanceActivationConcurrencyProvider?.(meshName).limit ??
338
+ registration.activationConcurrencyLimit ??
339
+ 128
341
340
  },
342
- channelWeights: Object.fromEntries(this.serverChannels(meshName)
343
- .map(([channelName, channel]) => [
341
+ channelWeights: Object.fromEntries(this.serverChannels(meshName).map(([channelName, channel]) => [
344
342
  channelName,
345
343
  state === contracts_1.ZLinkFrameworkRuntimeState.Draining
346
344
  ? 0
@@ -351,14 +349,11 @@ class ZLinkSpotNodeRuntimeManager {
351
349
  spotTypes: [
352
350
  ...userSpots.map(([stableType]) => stableType),
353
351
  ...instanceSpots.map(([stableType]) => stableType),
354
- ...(registration.entrySpotType === undefined
355
- ? []
356
- : [registration.entrySpotType.name])
357
- ]
358
- .sort(),
352
+ ...(registration.entrySpotType === undefined ? [] : [registration.entrySpotType.name])
353
+ ].sort(),
359
354
  objectCapabilities: capabilities,
360
355
  state,
361
- securityIdentity: 'default',
356
+ securityIdentity: 'default'
362
357
  };
363
358
  const result = await location.runtime.writeMeshNode(descriptor, ownerChanged
364
359
  ? Locations_1.ZLinkLocationWriteIntent.Renew
@@ -387,11 +382,10 @@ class ZLinkSpotNodeRuntimeManager {
387
382
  const owner = location.runtime.currentOwnerToken;
388
383
  if (owner === undefined)
389
384
  return;
390
- const current = (await location.runtime.listLiveMeshNodes(meshName, signal))
391
- .find((descriptor) => String(descriptor.rid) === String(status.routingId)
392
- && descriptor.lifecycleGeneration === status.lifecycleGeneration
393
- && descriptor.ownerId === owner.ownerId
394
- && descriptor.leaseGeneration === owner.leaseGeneration);
385
+ const current = (await location.runtime.listLiveMeshNodes(meshName, signal)).find((descriptor) => String(descriptor.rid) === String(status.routingId) &&
386
+ descriptor.lifecycleGeneration === status.lifecycleGeneration &&
387
+ descriptor.ownerId === owner.ownerId &&
388
+ descriptor.leaseGeneration === owner.leaseGeneration);
395
389
  if (current !== undefined) {
396
390
  this.publishedMeshNodeDescriptors.set(meshName, current);
397
391
  this.descriptorRevisionByMesh.set(meshName, maxBigInt(this.descriptorRevisionByMesh.get(meshName) ?? 0n, current.descriptorRevision));
@@ -429,9 +423,7 @@ class ZLinkSpotNodeRuntimeManager {
429
423
  }
430
424
  entrySpotIdForMesh(meshName) {
431
425
  const registration = this.options.registration.spotNodes.get(meshName);
432
- return registration === undefined
433
- ? undefined
434
- : this.entrySpotId(meshName, registration);
426
+ return registration === undefined ? undefined : this.entrySpotId(meshName, registration);
435
427
  }
436
428
  meshNodeDescriptor(meshName) {
437
429
  return this.publishedMeshNodeDescriptors.get(meshName);
@@ -441,9 +433,7 @@ class ZLinkSpotNodeRuntimeManager {
441
433
  if (registration === undefined) {
442
434
  throw new configuration_1.ZLinkConfigurationException(`Mesh '${meshName}' is not registered.`);
443
435
  }
444
- return this.runtimePlacementWeights.get(meshName)
445
- ?? registration.placementWeight
446
- ?? 100;
436
+ return this.runtimePlacementWeights.get(meshName) ?? registration.placementWeight ?? 100;
447
437
  }
448
438
  channelWeight(channelName) {
449
439
  const match = this.resolveChannel(channelName);
@@ -496,12 +486,9 @@ class ZLinkSpotNodeRuntimeManager {
496
486
  return this.runtimeChannelWeights.get(meshName)?.get(channelName) ?? configuredWeight;
497
487
  }
498
488
  resolveChannel(channelName) {
499
- const matches = [...this.options.registration.spotNodes]
500
- .flatMap(([meshName, registration]) => {
489
+ const matches = [...this.options.registration.spotNodes].flatMap(([meshName, registration]) => {
501
490
  const channel = registration.meshChannels?.[channelName];
502
- return channel === undefined
503
- ? []
504
- : [{ meshName, configuredWeight: channel.weight ?? 100 }];
491
+ return channel === undefined ? [] : [{ meshName, configuredWeight: channel.weight ?? 100 }];
505
492
  });
506
493
  if (matches.length === 0) {
507
494
  throw new configuration_1.ZLinkConfigurationException(`RouteMesh channel '${channelName}' is not registered.`);
@@ -512,10 +499,12 @@ class ZLinkSpotNodeRuntimeManager {
512
499
  return matches[0];
513
500
  }
514
501
  scheduleRuntimeWeightPublication(meshName, applyWeight) {
515
- const publish = this.runtimeWeightPublication.catch(() => undefined).then(async () => {
502
+ const publish = this.runtimeWeightPublication
503
+ .catch(() => undefined)
504
+ .then(async () => {
516
505
  await applyWeight();
517
- const state = this.publishedMeshNodeDescriptors.get(meshName)?.state
518
- ?? contracts_1.ZLinkFrameworkRuntimeState.Serving;
506
+ const state = this.publishedMeshNodeDescriptors.get(meshName)?.state ??
507
+ contracts_1.ZLinkFrameworkRuntimeState.Serving;
519
508
  await this.publishMeshNodeState(state, undefined, meshName);
520
509
  });
521
510
  this.runtimeWeightPublication = publish;
@@ -551,7 +540,7 @@ class ZLinkSpotNodeRuntimeManager {
551
540
  }
552
541
  notifyPrimaryEntrySpotActorLeft(actor, signal, actorRef, membershipEpoch) {
553
542
  const activation = this.primaryEntryActivation();
554
- return activation?.notifyLeaveActor(actor, signal, actorRef, membershipEpoch) ?? Promise.resolve();
543
+ return (activation?.notifyLeaveActor(actor, signal, actorRef, membershipEpoch) ?? Promise.resolve());
555
544
  }
556
545
  notifyPrimaryEntrySpotActorDisconnected(actor, signal) {
557
546
  const activation = this.primaryEntryActivation();
@@ -562,8 +551,7 @@ class ZLinkSpotNodeRuntimeManager {
562
551
  await this.entryActivations.get(meshName)?.notifyDisconnectActor(actor, signal);
563
552
  }
564
553
  serverChannels(meshName) {
565
- return Object.entries(this.options.registration.spotNodes.get(meshName)?.meshChannels ?? {})
566
- .filter(([, channel]) => channel.server === true);
554
+ return Object.entries(this.options.registration.spotNodes.get(meshName)?.meshChannels ?? {}).filter(([, channel]) => channel.server === true);
567
555
  }
568
556
  async dispose(signal, deadline) {
569
557
  this.disposed = true;
@@ -614,13 +602,15 @@ class ZLinkSpotNodeRuntimeManager {
614
602
  return;
615
603
  }
616
604
  const node = this.meshNodes.get(meshName);
617
- const targetsEntrySpot = owner.spotId === null
618
- || (node !== undefined && (0, routing_id_1.routingIdsEqual)(owner.spotId, String(node.status().routingId)));
619
- if (targetsEntrySpot && (record.kind === service_runtime_contracts_1.ReceiveKind.ActorSend
620
- || record.kind === service_runtime_contracts_1.ReceiveKind.ActorRequest
621
- || record.kind === service_runtime_contracts_1.ReceiveKind.SpotSend
622
- || record.kind === service_runtime_contracts_1.ReceiveKind.SpotRequest
623
- || record.kind === service_runtime_contracts_1.ReceiveKind.SpotMulticast)) {
605
+ const targetsEntrySpot = owner.spotId === null ||
606
+ (node !== undefined &&
607
+ (0, routing_id_1.routingIdsEqual)(owner.spotId, String(node.status().routingId)));
608
+ if (targetsEntrySpot &&
609
+ (record.kind === service_runtime_contracts_1.ReceiveKind.ActorSend ||
610
+ record.kind === service_runtime_contracts_1.ReceiveKind.ActorRequest ||
611
+ record.kind === service_runtime_contracts_1.ReceiveKind.SpotSend ||
612
+ record.kind === service_runtime_contracts_1.ReceiveKind.SpotRequest ||
613
+ record.kind === service_runtime_contracts_1.ReceiveKind.SpotMulticast)) {
624
614
  await this.ensureEntryActivation(meshName);
625
615
  }
626
616
  const dispatcher = this.options.meshRecordDispatcher;
@@ -630,16 +620,14 @@ class ZLinkSpotNodeRuntimeManager {
630
620
  await dispatcher(meshName, owner, record);
631
621
  }
632
622
  async dispatchEntrySpotRecord(meshName, owner, record) {
633
- if (record.kind !== service_runtime_contracts_1.ReceiveKind.SpotSend
634
- && record.kind !== service_runtime_contracts_1.ReceiveKind.SpotRequest
635
- && record.kind !== service_runtime_contracts_1.ReceiveKind.SpotMulticast) {
623
+ if (record.kind !== service_runtime_contracts_1.ReceiveKind.SpotSend &&
624
+ record.kind !== service_runtime_contracts_1.ReceiveKind.SpotRequest &&
625
+ record.kind !== service_runtime_contracts_1.ReceiveKind.SpotMulticast) {
636
626
  return false;
637
627
  }
638
628
  await this.ensureEntryActivation(meshName);
639
629
  const activation = this.entryActivations.get(meshName);
640
- if (activation === undefined
641
- || owner.spotId === null
642
- || activation.spotId !== owner.spotId) {
630
+ if (activation === undefined || owner.spotId === null || activation.spotId !== owner.spotId) {
643
631
  return false;
644
632
  }
645
633
  if (record.kind === service_runtime_contracts_1.ReceiveKind.SpotMulticast) {
@@ -752,7 +740,12 @@ class ZLinkSpotNodeRuntimeManager {
752
740
  if (activation === undefined) {
753
741
  const candidates = this.options.primaryMeshName === undefined
754
742
  ? this.options.registration.spotNodes
755
- : new Map([[this.options.primaryMeshName, this.options.registration.spotNodes.get(this.options.primaryMeshName)]]);
743
+ : new Map([
744
+ [
745
+ this.options.primaryMeshName,
746
+ this.options.registration.spotNodes.get(this.options.primaryMeshName)
747
+ ]
748
+ ]);
756
749
  for (const [spotNodeName, spotNode] of candidates) {
757
750
  if (spotNode === undefined) {
758
751
  continue;
@@ -880,8 +873,7 @@ function requirePublicRuntimeWeight(value, label) {
880
873
  }
881
874
  function effectiveUserSpotRegistrations(registration) {
882
875
  const registrations = new Map(Object.entries(registration.spotFactoryRegistrations ?? {}));
883
- const explicitImplementations = new Set(Object.values(registration.spotFactoryRegistrations ?? {})
884
- .map(({ implementation }) => implementation));
876
+ const explicitImplementations = new Set(Object.values(registration.spotFactoryRegistrations ?? {}).map(({ implementation }) => implementation));
885
877
  for (const implementation of registration.spotFactories ?? []) {
886
878
  // `spotFactories` is also retained as the runtime implementation set.
887
879
  // When the caller supplied an explicit stable type, the implementation
@@ -918,9 +910,9 @@ function effectiveObjectRole(registration) {
918
910
  return contracts_1.ZLinkObjectRole.Server;
919
911
  if (registration.objectRole === 'client')
920
912
  return contracts_1.ZLinkObjectRole.Client;
921
- return effectiveUserSpotRegistrations(registration).length > 0
922
- || effectiveInstanceSpotRegistrations(registration).length > 0
923
- || effectiveActorRegistrations(registration).length > 0
913
+ return effectiveUserSpotRegistrations(registration).length > 0 ||
914
+ effectiveInstanceSpotRegistrations(registration).length > 0 ||
915
+ effectiveActorRegistrations(registration).length > 0
924
916
  ? contracts_1.ZLinkObjectRole.Server
925
917
  : contracts_1.ZLinkObjectRole.None;
926
918
  }
@@ -931,9 +923,7 @@ function objectCapability(objectKind, stableType, factory) {
931
923
  stableType,
932
924
  policy,
933
925
  hasSnapshotAdapter: policy === 'snapshot',
934
- limit: objectKind === 'actor'
935
- ? 0
936
- : factory.options?.stableTypeLimit ?? 0
926
+ limit: objectKind === 'actor' ? 0 : (factory.options?.stableTypeLimit ?? 0)
937
927
  };
938
928
  }
939
929
  function aggregatePlacementCapacity(actorLimit, spotLimit) {
@@ -946,6 +936,5 @@ function maxBigInt(left, right) {
946
936
  return left > right ? left : right;
947
937
  }
948
938
  function sameOwnerToken(left, right) {
949
- return left.ownerId === right.ownerId
950
- && left.leaseGeneration === right.leaseGeneration;
939
+ return left.ownerId === right.ownerId && left.leaseGeneration === right.leaseGeneration;
951
940
  }
@@ -27,8 +27,8 @@ class DefaultZLinkSpotOutbound {
27
27
  this.channelClient = options.channelClient;
28
28
  this.spotPublisherClient = options.spotPublisherClient;
29
29
  this.routedTransport = options.routedTransport;
30
- this.spotRouterChannelIdForMesh = options.spotRouterChannelIdForMesh
31
- ?? ((meshName) => meshName);
30
+ this.spotRouterChannelIdForMesh =
31
+ options.spotRouterChannelIdForMesh ?? ((meshName) => meshName);
32
32
  this.sourceSpotProvider = options.sourceSpotProvider;
33
33
  this.meshName = options.meshName;
34
34
  this.addressTransport = options.addressTransport;
@@ -194,8 +194,8 @@ function markSubmitted(options) {
194
194
  if (options.submitted) {
195
195
  (0, submission_result_1.throwAlreadySubmitted)('Spot call');
196
196
  }
197
- if (!options.instanceSpot && (options.instanceSpotType !== undefined
198
- || options.initialMeshName !== undefined)) {
197
+ if (!options.instanceSpot &&
198
+ (options.instanceSpotType !== undefined || options.initialMeshName !== undefined)) {
199
199
  throw new configuration_1.ZLinkConfigurationException('Mesh selection requires an Instance Spot intent.');
200
200
  }
201
201
  options.submitted = true;
@@ -279,17 +279,14 @@ function wrapRequestCall(serial, inner) {
279
279
  * otherwise the start is enqueued as its own serial turn.
280
280
  */
281
281
  function startRequestOnSerial(serial, begin) {
282
- return runInternalTransportStart(serial, begin)
283
- .then((startedRequest) => startedRequest.pending);
282
+ return runInternalTransportStart(serial, begin).then((startedRequest) => startedRequest.pending);
284
283
  }
285
284
  /**
286
285
  * Synthesizes only the transport start in the current turn. This is not a
287
286
  * nested public operation: public same-owner waits are rejected or use Yield.
288
287
  */
289
288
  function runInternalTransportStart(serial, begin) {
290
- return serial.isCurrentTurn
291
- ? Promise.resolve().then(begin)
292
- : serial.post(begin);
289
+ return serial.isCurrentTurn ? Promise.resolve().then(begin) : serial.post(begin);
293
290
  }
294
291
  function wrapRoutedSpotSendCall(serial, transport, spot, message, spotRouterChannelIdForMesh, sourceSpotProvider) {
295
292
  const metadata = new Map();
@@ -447,13 +444,12 @@ function spotRefToSpotRouteTarget(spot, spotRouterChannelIdForMesh = (meshName)
447
444
  };
448
445
  }
449
446
  function shouldRefreshAfterRouteDisconnect(target, error) {
450
- return target.targetNodeState === contracts_1.ZLinkFrameworkRuntimeState.Serving
451
- && error instanceof Errors_1.ZLinkFrameworkException
452
- && (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected;
447
+ return (target.targetNodeState === contracts_1.ZLinkFrameworkRuntimeState.Serving &&
448
+ error instanceof Errors_1.ZLinkFrameworkException &&
449
+ (0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected);
453
450
  }
454
451
  function isShutdownTargetState(state) {
455
- return state === contracts_1.ZLinkFrameworkRuntimeState.Draining
456
- || state === contracts_1.ZLinkFrameworkRuntimeState.Stopped;
452
+ return (state === contracts_1.ZLinkFrameworkRuntimeState.Draining || state === contracts_1.ZLinkFrameworkRuntimeState.Stopped);
457
453
  }
458
454
  function normalizeSpotRefRoutingId(routingId) {
459
455
  return (0, routing_id_1.normalizeOpaqueRoutingId)(routingId);