@zlink-systems/framework 0.21.0 → 0.23.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 (516) 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/Dispatch/ZLinkDispatchOptions.d.ts +1 -0
  13. package/dist/contracts/Handlers/JsonContract.js +23 -11
  14. package/dist/contracts/Spots/SpotKind.js +16 -8
  15. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -1
  16. package/dist/location-store-integration.js +16 -16
  17. package/dist/nest-integration.js +17 -11
  18. package/dist/runtime/abort.js +9 -5
  19. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  20. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  21. package/dist/runtime/actors/actor-client.js +83 -63
  22. package/dist/runtime/actors/actor-context.js +28 -22
  23. package/dist/runtime/actors/actor-creation.js +4 -3
  24. package/dist/runtime/actors/actor-handoff.js +89 -92
  25. package/dist/runtime/actors/actor-join-deferred-scope.d.ts +0 -1
  26. package/dist/runtime/actors/actor-join-deferred-scope.js +0 -18
  27. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  28. package/dist/runtime/actors/actor-mailbox.js +1 -1
  29. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  30. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  31. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  32. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  33. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  34. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  35. package/dist/runtime/actors/bound-session-wire.js +14 -9
  36. package/dist/runtime/actors/deferred-join-accepted-journal.js +160 -130
  37. package/dist/runtime/actors/index.js +2 -5
  38. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  39. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  40. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  41. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  42. package/dist/runtime/admission.js +2 -6
  43. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  44. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  45. package/dist/runtime/backend/contracts/index.d.ts +1 -0
  46. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  47. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  48. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  49. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  50. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  51. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  52. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +3 -0
  53. package/dist/runtime/backend/node/node-raw-mesh-backend.js +134 -118
  54. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  55. package/dist/runtime/backend/runtime-message.js +3 -3
  56. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  57. package/dist/runtime/backend/runtime-values.js +4 -5
  58. package/dist/runtime/channels/channel-clients.js +27 -24
  59. package/dist/runtime/channels/channel-dispatch-pipeline.js +12 -20
  60. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  61. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  62. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  63. package/dist/runtime/channels/channel-envelope.js +83 -47
  64. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  65. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  66. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  67. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  68. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  69. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  70. package/dist/runtime/channels/channel-transports.js +46 -42
  71. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  72. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  73. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -0
  74. package/dist/runtime/channels/dispatch-error-reporter.js +9 -39
  75. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  76. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  77. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  78. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  79. package/dist/runtime/channels/source-spot-router.js +6 -2
  80. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  81. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  82. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  83. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +6 -0
  84. package/dist/runtime/diagnostics/dispatch-error-details.js +55 -0
  85. package/dist/runtime/diagnostics/flow-context.d.ts +2 -1
  86. package/dist/runtime/diagnostics/flow-context.js +2 -2
  87. package/dist/runtime/diagnostics/index.js +38 -10
  88. package/dist/runtime/diagnostics/message-flow.js +58 -42
  89. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  90. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  91. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  92. package/dist/runtime/execution/index.js +7 -6
  93. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  94. package/dist/runtime/execution/state-lane.js +2 -2
  95. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -27
  96. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  97. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  98. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +4 -2
  99. package/dist/runtime/foundation/raw-service-mesh-runtime.js +169 -144
  100. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  101. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  102. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  103. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  104. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  105. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  106. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  107. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  108. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  109. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  110. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  111. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +1 -0
  112. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  113. package/dist/runtime/foundation/service-stateful-runtime.d.ts +4 -0
  114. package/dist/runtime/foundation/service-stateful-runtime.js +461 -439
  115. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  116. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -0
  117. package/dist/runtime/foundation/service-topology-registry.js +105 -96
  118. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  119. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  120. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  121. package/dist/runtime/framework-errors-internal.js +7 -10
  122. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  123. package/dist/runtime/handlers/index.js +3 -1
  124. package/dist/runtime/host/actor-packet-relay.js +74 -70
  125. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  126. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  127. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  128. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  129. package/dist/runtime/host/application-job-queue.js +18 -22
  130. package/dist/runtime/host/bound-session-relay.js +3 -1
  131. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  132. package/dist/runtime/host/host-capacity-status.js +8 -4
  133. package/dist/runtime/host/index.js +245 -228
  134. package/dist/runtime/host/instance-activation-authority.js +93 -96
  135. package/dist/runtime/host/location-runtime-owner.js +16 -14
  136. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  137. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  138. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  139. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  140. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  141. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  142. package/dist/runtime/host/runtime-shutdown.js +1 -2
  143. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  144. package/dist/runtime/host/spot-address-transport.js +69 -71
  145. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  146. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  147. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  148. package/dist/runtime/locations/actor-location-claims.js +26 -20
  149. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  150. package/dist/runtime/locations/authority-key-codec.js +7 -7
  151. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  152. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  153. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  154. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  155. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  156. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  157. package/dist/runtime/locations/key-codec.js +1 -1
  158. package/dist/runtime/locations/lease-tracker.js +23 -21
  159. package/dist/runtime/locations/lifecycle.js +4 -5
  160. package/dist/runtime/locations/location-store-repository.js +368 -324
  161. package/dist/runtime/locations/opaque-record-key.js +2 -2
  162. package/dist/runtime/locations/resolvers.js +73 -82
  163. package/dist/runtime/locations/runtime.js +68 -63
  164. package/dist/runtime/locations/spot-location-claims.js +39 -35
  165. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  166. package/dist/runtime/messaging/packet-name.js +7 -6
  167. package/dist/runtime/messaging/payload-codec.js +21 -18
  168. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  169. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  170. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +20 -18
  171. package/dist/runtime/routing-id.js +3 -5
  172. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  173. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  174. package/dist/runtime/spots/index.js +209 -220
  175. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  176. package/dist/runtime/spots/spot-activation-state.js +17 -15
  177. package/dist/runtime/spots/spot-activation.js +33 -16
  178. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  179. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  180. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +2 -1
  181. package/dist/runtime/spots/spot-actor-packet-dispatch.js +29 -21
  182. package/dist/runtime/spots/spot-actor-packet-drain.js +14 -10
  183. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  184. package/dist/runtime/spots/spot-closing.js +3 -7
  185. package/dist/runtime/spots/spot-context.js +2 -2
  186. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  187. package/dist/runtime/spots/spot-handle.js +6 -3
  188. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  189. package/dist/runtime/spots/spot-manager-public.js +5 -6
  190. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  191. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  192. package/dist/runtime/spots/spot-node-runtime-manager.js +79 -86
  193. package/dist/runtime/spots/spot-outbound.js +10 -14
  194. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  195. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  196. package/dist/runtime/spots/spot-route-packet-dispatch.js +17 -15
  197. package/dist/runtime/spots/spot-route-replies.js +4 -6
  198. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  199. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +2 -3
  200. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  201. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  202. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  203. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  204. package/dist/runtime/spots/spot-subscription-dispatch.js +6 -6
  205. package/dist/runtime/spots/spot-timer.js +26 -30
  206. package/dist/runtime/streams/actor-session-binding-registry.d.ts +21 -8
  207. package/dist/runtime/streams/actor-session-binding-registry.js +168 -148
  208. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -0
  209. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  210. package/dist/runtime/streams/bound-actor-relay-sender.js +20 -17
  211. package/dist/runtime/streams/bound-session-response-target.js +8 -1
  212. package/dist/runtime/streams/bound-session-service.d.ts +1 -0
  213. package/dist/runtime/streams/bound-session-service.js +14 -12
  214. package/dist/runtime/streams/index.js +28 -20
  215. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  216. package/dist/runtime/streams/managed-stream.js +52 -31
  217. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  218. package/dist/runtime/streams/protocol.d.ts +5 -1
  219. package/dist/runtime/streams/protocol.js +68 -20
  220. package/dist/runtime/streams/session-actor-coordinator.js +37 -41
  221. package/dist/runtime/streams/session-context.d.ts +9 -2
  222. package/dist/runtime/streams/session-context.js +50 -32
  223. package/dist/runtime/streams/session-local-actors.d.ts +3 -1
  224. package/dist/runtime/streams/session-local-actors.js +17 -2
  225. package/dist/runtime/streams/session-provider.js +2 -2
  226. package/dist/runtime/streams/session-serial-executor.js +1 -2
  227. package/dist/runtime/streams/stream-frame-factory.d.ts +1 -1
  228. package/dist/runtime/streams/stream-frame-factory.js +14 -7
  229. package/dist/runtime/streams/stream-session-runtime.js +112 -78
  230. package/dist/runtime/workers/index.js +15 -4
  231. package/package.json +3 -3
  232. package/src/contracts/Channels/RouteCalls.ts +6 -1
  233. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  234. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  235. package/src/contracts/Configuration/Builders.ts +14 -14
  236. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  237. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  238. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  239. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  240. package/src/contracts/Configuration/Registration.ts +46 -17
  241. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  242. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  243. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  244. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  245. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  246. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  247. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  248. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  249. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  250. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  251. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -6
  252. package/src/contracts/Errors/index.ts +1 -4
  253. package/src/contracts/Handlers/Attributes.ts +15 -9
  254. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  255. package/src/contracts/Handlers/JsonContract.ts +53 -19
  256. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  257. package/src/contracts/Locations/Authority.ts +4 -11
  258. package/src/contracts/Locations/Keys.ts +6 -1
  259. package/src/contracts/Locations/Options.ts +3 -2
  260. package/src/contracts/Locations/RelocationStore.ts +1 -4
  261. package/src/contracts/Locations/Resolvers.ts +5 -5
  262. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  263. package/src/contracts/Locations/Stores.ts +1 -2
  264. package/src/contracts/Locations/index.ts +2 -8
  265. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  266. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  267. package/src/contracts/Spots/Contracts.ts +2 -8
  268. package/src/contracts/Spots/SpotKind.ts +16 -8
  269. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  270. package/src/contracts/Streams/IZLinkSession.ts +2 -2
  271. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  272. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  273. package/src/internal.ts +5 -4
  274. package/src/location-store-integration.ts +24 -16
  275. package/src/nest-integration.ts +40 -25
  276. package/src/runtime/abort.ts +10 -4
  277. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  278. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  279. package/src/runtime/actors/actor-client.ts +162 -133
  280. package/src/runtime/actors/actor-context.ts +142 -134
  281. package/src/runtime/actors/actor-creation.ts +47 -44
  282. package/src/runtime/actors/actor-execution-context.ts +6 -4
  283. package/src/runtime/actors/actor-handoff.ts +269 -293
  284. package/src/runtime/actors/actor-join-deferred-scope.ts +1 -32
  285. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  286. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  287. package/src/runtime/actors/actor-mailbox.ts +16 -19
  288. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  289. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  290. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  291. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  292. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  293. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  294. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  295. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  296. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  297. package/src/runtime/actors/bound-session-wire.ts +37 -17
  298. package/src/runtime/actors/deferred-join-accepted-journal.ts +353 -326
  299. package/src/runtime/actors/index.ts +43 -86
  300. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  301. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  302. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  303. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  304. package/src/runtime/admission.ts +9 -9
  305. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  306. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  307. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  308. package/src/runtime/backend/contracts/index.ts +77 -52
  309. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  310. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  311. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  312. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  313. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  314. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  315. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  316. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  317. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  318. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  319. package/src/runtime/backend/node/node-raw-mesh-backend.ts +370 -390
  320. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  321. package/src/runtime/backend/runtime-message.ts +5 -3
  322. package/src/runtime/backend/runtime-values.ts +10 -7
  323. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  324. package/src/runtime/channels/channel-clients.ts +93 -73
  325. package/src/runtime/channels/channel-dispatch-pipeline.ts +44 -44
  326. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  327. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  328. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  329. package/src/runtime/channels/channel-envelope.ts +256 -150
  330. package/src/runtime/channels/channel-multipart.ts +13 -5
  331. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  332. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  333. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  334. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  335. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  336. package/src/runtime/channels/channel-socket-options.ts +3 -10
  337. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  338. package/src/runtime/channels/channel-transports.ts +218 -206
  339. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  340. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  341. package/src/runtime/channels/dispatch-error-reporter.ts +12 -47
  342. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  343. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  344. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  345. package/src/runtime/channels/index.ts +1 -4
  346. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  347. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  348. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  349. package/src/runtime/channels/source-spot-router.ts +26 -22
  350. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  351. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  352. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  353. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  354. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  355. package/src/runtime/codecs/index.ts +3 -2
  356. package/src/runtime/diagnostics/dispatch-error-details.ts +62 -0
  357. package/src/runtime/diagnostics/flow-context.ts +18 -7
  358. package/src/runtime/diagnostics/index.ts +96 -61
  359. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  360. package/src/runtime/diagnostics/message-flow.ts +107 -79
  361. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  362. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  363. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  364. package/src/runtime/execution/index.ts +18 -26
  365. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  366. package/src/runtime/execution/state-lane.ts +2 -2
  367. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -55
  368. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  369. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  370. package/src/runtime/foundation/operation-identity.ts +1 -2
  371. package/src/runtime/foundation/operation-registry.ts +8 -2
  372. package/src/runtime/foundation/raw-service-mesh-runtime.ts +364 -396
  373. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  374. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  375. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  376. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  377. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  378. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  379. package/src/runtime/foundation/service-mailbox.ts +14 -14
  380. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  381. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  382. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  383. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  384. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  385. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  386. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  387. package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -4
  388. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  389. package/src/runtime/foundation/service-stateful-runtime.ts +1233 -1112
  390. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  391. package/src/runtime/foundation/service-topology-registry.ts +170 -159
  392. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  393. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  394. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  395. package/src/runtime/framework-errors-internal.ts +31 -30
  396. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  397. package/src/runtime/handlers/index.ts +18 -8
  398. package/src/runtime/host/actor-packet-relay.ts +290 -261
  399. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  400. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  401. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  402. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  403. package/src/runtime/host/application-job-queue.ts +32 -48
  404. package/src/runtime/host/bound-session-relay.ts +7 -9
  405. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  406. package/src/runtime/host/host-capacity-status.ts +10 -9
  407. package/src/runtime/host/index.ts +861 -789
  408. package/src/runtime/host/instance-activation-authority.ts +125 -143
  409. package/src/runtime/host/location-runtime-owner.ts +38 -26
  410. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  411. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  412. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  413. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  414. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  415. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  416. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  417. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  418. package/src/runtime/host/runtime-shutdown.ts +4 -3
  419. package/src/runtime/host/service-relocation-control.ts +14 -5
  420. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  421. package/src/runtime/host/spot-address-transport.ts +284 -237
  422. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  423. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  424. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  425. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  426. package/src/runtime/locations/actor-location-claims.ts +61 -49
  427. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  428. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  429. package/src/runtime/locations/authority-key-codec.ts +13 -10
  430. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  431. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  432. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  433. package/src/runtime/locations/canonical-codec.ts +3 -1
  434. package/src/runtime/locations/creation-operation-id.ts +4 -3
  435. package/src/runtime/locations/domain-store-contract.ts +13 -7
  436. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  437. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  438. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  439. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  440. package/src/runtime/locations/key-codec.ts +3 -4
  441. package/src/runtime/locations/lease-tracker.ts +36 -27
  442. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  443. package/src/runtime/locations/lifecycle.ts +33 -28
  444. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  445. package/src/runtime/locations/opaque-record-key.ts +4 -9
  446. package/src/runtime/locations/resolvers.ts +201 -178
  447. package/src/runtime/locations/runtime.ts +251 -159
  448. package/src/runtime/locations/spot-location-claims.ts +110 -112
  449. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  450. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  451. package/src/runtime/messaging/packet-name.ts +8 -6
  452. package/src/runtime/messaging/payload-codec.ts +70 -50
  453. package/src/runtime/messaging/submission-result.ts +6 -9
  454. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  455. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +19 -18
  456. package/src/runtime/routing-id.ts +10 -7
  457. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  458. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  459. package/src/runtime/spots/index.ts +595 -564
  460. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  461. package/src/runtime/spots/spot-activation-state.ts +43 -51
  462. package/src/runtime/spots/spot-activation.ts +179 -116
  463. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  464. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  465. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  466. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  467. package/src/runtime/spots/spot-actor-packet-dispatch.ts +196 -148
  468. package/src/runtime/spots/spot-actor-packet-drain.ts +56 -42
  469. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  470. package/src/runtime/spots/spot-closing.ts +11 -12
  471. package/src/runtime/spots/spot-context.ts +46 -26
  472. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  473. package/src/runtime/spots/spot-handle.ts +17 -15
  474. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  475. package/src/runtime/spots/spot-location-claim.ts +5 -4
  476. package/src/runtime/spots/spot-manager-public.ts +62 -82
  477. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  478. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  479. package/src/runtime/spots/spot-node-runtime-manager.ts +235 -222
  480. package/src/runtime/spots/spot-outbound.ts +47 -59
  481. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  482. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  483. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  484. package/src/runtime/spots/spot-route-packet-dispatch.ts +129 -95
  485. package/src/runtime/spots/spot-route-replies.ts +23 -24
  486. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  487. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  488. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +13 -18
  489. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  490. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  491. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  492. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  493. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  494. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  495. package/src/runtime/spots/spot-subscription-dispatch.ts +58 -47
  496. package/src/runtime/spots/spot-timer.ts +103 -91
  497. package/src/runtime/streams/actor-session-binding-registry.ts +421 -292
  498. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +8 -4
  499. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  500. package/src/runtime/streams/bound-actor-relay-sender.ts +60 -50
  501. package/src/runtime/streams/bound-session-response-target.ts +39 -9
  502. package/src/runtime/streams/bound-session-service.ts +52 -42
  503. package/src/runtime/streams/index.ts +183 -100
  504. package/src/runtime/streams/managed-stream.ts +123 -90
  505. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  506. package/src/runtime/streams/protocol.ts +115 -46
  507. package/src/runtime/streams/session-actor-coordinator.ts +109 -93
  508. package/src/runtime/streams/session-calls.ts +2 -8
  509. package/src/runtime/streams/session-context.ts +96 -51
  510. package/src/runtime/streams/session-local-actors.ts +19 -3
  511. package/src/runtime/streams/session-provider.ts +5 -7
  512. package/src/runtime/streams/session-serial-executor.ts +7 -6
  513. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  514. package/src/runtime/streams/stream-frame-factory.ts +59 -40
  515. package/src/runtime/streams/stream-session-runtime.ts +317 -214
  516. package/src/runtime/workers/index.ts +68 -29
@@ -9,7 +9,7 @@ import type {
9
9
  ZLinkInstanceSpot,
10
10
  ZLinkSpot,
11
11
  ZLinkSpotCreateResponse,
12
- ZLinkSpotPublisherClient,
12
+ ZLinkSpotPublisherClient
13
13
  } from '../../contracts';
14
14
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
15
15
  import type { ZLinkRuntimeAdmissionGate } from '../admission';
@@ -71,7 +71,10 @@ import {
71
71
  import { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
72
72
  import { ZLinkSpotSerialExecutor } from './spot-serial-executor';
73
73
  import { createInstanceSpotContext, createSpotContext } from './spot-context';
74
- import type { ZLinkSpotActorJoinDispatch, ZLinkDetachedTaskRunner } from './spot-actor-join-dispatch';
74
+ import type {
75
+ ZLinkSpotActorJoinDispatch,
76
+ ZLinkDetachedTaskRunner
77
+ } from './spot-actor-join-dispatch';
75
78
  import { ZLinkSpotActorAdmissionCoordinator } from './spot-actor-admission-coordinator';
76
79
  import type { ZLinkRouteToActorJoinPrewarm } from './spot-actor-packet-dispatch';
77
80
  import { ZLinkSpotActivation, ZLinkSpotCloseOccupiedError } from './spot-activation-state';
@@ -165,14 +168,17 @@ interface UserSpotLocationClaim {
165
168
 
166
169
  export class ZLinkSpotActivationLifecycle {
167
170
  private readonly actorAdmission: ZLinkSpotActorAdmissionCoordinator;
168
- private readonly cleanupStates = new WeakMap<ZLinkSpotActivation, {
169
- closingAttempted: boolean;
170
- timersDisposed: boolean;
171
- handlersDisposed: boolean;
172
- nativeDisposed: boolean;
173
- locationReleased: boolean;
174
- inFlight?: Promise<void>;
175
- }>();
171
+ private readonly cleanupStates = new WeakMap<
172
+ ZLinkSpotActivation,
173
+ {
174
+ closingAttempted: boolean;
175
+ timersDisposed: boolean;
176
+ handlersDisposed: boolean;
177
+ nativeDisposed: boolean;
178
+ locationReleased: boolean;
179
+ inFlight?: Promise<void>;
180
+ }
181
+ >();
176
182
 
177
183
  constructor(private readonly options: ZLinkSpotActivationLifecycleOptions) {
178
184
  this.actorAdmission = new ZLinkSpotActorAdmissionCoordinator(options);
@@ -188,12 +194,13 @@ export class ZLinkSpotActivationLifecycle {
188
194
  authorityOwnerGeneration: bigint,
189
195
  signal?: AbortSignal
190
196
  ): Promise<ZLinkSpotActivation> {
191
- const executionMode = objectKind === 'user_spot'
192
- ? this.options.userSpotExecutionMode?.(
193
- meshName,
194
- implementation as unknown as Type<ZLinkSpot>
195
- ) ?? ZLinkUserSpotExecutionMode.SpotWide
196
- : ZLinkUserSpotExecutionMode.SpotWide;
197
+ const executionMode =
198
+ objectKind === 'user_spot'
199
+ ? (this.options.userSpotExecutionMode?.(
200
+ meshName,
201
+ implementation as unknown as Type<ZLinkSpot>
202
+ ) ?? ZLinkUserSpotExecutionMode.SpotWide)
203
+ : ZLinkUserSpotExecutionMode.SpotWide;
197
204
  const serial = new ZLinkSpotSerialTurnExecutor(
198
205
  executionMode === ZLinkUserSpotExecutionMode.SpotWide,
199
206
  spotId
@@ -254,26 +261,27 @@ export class ZLinkSpotActivationLifecycle {
254
261
  workerRuntime: this.options.workerRuntime,
255
262
  close: this.contextClose(meshName, spotId, () => activation)
256
263
  };
257
- const context = objectKind === 'user_spot'
258
- ? createSpotContext({
259
- ...common,
260
- handlers,
261
- relocationReady: () => {
262
- if (activation === undefined) {
263
- throw new ZLinkConfigurationException(
264
- 'Spot relocation readiness is unavailable before activation.'
265
- );
266
- }
267
- return activation.relocationReadyCall();
268
- },
269
- ensureOperationAllowed: () => activation?.ensureContextOperationAllowed(),
270
- leaveActor: (actor, contextSignal) =>
271
- this.options.leaveActor(spotId, actor, contextSignal, meshName)
272
- })
273
- : createInstanceSpotContext({
274
- ...common,
275
- handlers: new DefaultZLinkInstanceSpotHandlerRegistry(handlers)
276
- });
264
+ const context =
265
+ objectKind === 'user_spot'
266
+ ? createSpotContext({
267
+ ...common,
268
+ handlers,
269
+ relocationReady: () => {
270
+ if (activation === undefined) {
271
+ throw new ZLinkConfigurationException(
272
+ 'Spot relocation readiness is unavailable before activation.'
273
+ );
274
+ }
275
+ return activation.relocationReadyCall();
276
+ },
277
+ ensureOperationAllowed: () => activation?.ensureContextOperationAllowed(),
278
+ leaveActor: (actor, contextSignal) =>
279
+ this.options.leaveActor(spotId, actor, contextSignal, meshName)
280
+ })
281
+ : createInstanceSpotContext({
282
+ ...common,
283
+ handlers: new DefaultZLinkInstanceSpotHandlerRegistry(handlers)
284
+ });
277
285
  try {
278
286
  instance = await createFreshProviderInstance(
279
287
  implementation,
@@ -302,16 +310,18 @@ export class ZLinkSpotActivationLifecycle {
302
310
  activation = new ZLinkSpotActivation({
303
311
  meshName,
304
312
  spotId,
305
- domain: objectKind === 'user_spot'
306
- ? {
307
- kind: 'user',
308
- executionMode,
309
- relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(
310
- meshName,
311
- implementation as unknown as Type<ZLinkSpot>
312
- ) ?? ZLinkSpotRelocationCoordinationMode.FrameworkManaged
313
- }
314
- : { kind: 'instance', objectGeneration },
313
+ domain:
314
+ objectKind === 'user_spot'
315
+ ? {
316
+ kind: 'user',
317
+ executionMode,
318
+ relocationCoordinationMode:
319
+ this.options.userSpotRelocationCoordinationMode?.(
320
+ meshName,
321
+ implementation as unknown as Type<ZLinkSpot>
322
+ ) ?? ZLinkSpotRelocationCoordinationMode.FrameworkManaged
323
+ }
324
+ : { kind: 'instance', objectGeneration },
315
325
  spotType: implementation as unknown as Type<ZLinkSpot>,
316
326
  spot: instance as unknown as ZLinkSpot,
317
327
  serial,
@@ -375,21 +385,21 @@ export class ZLinkSpotActivationLifecycle {
375
385
  });
376
386
  let instance: TSpot | undefined;
377
387
  const context = createInstanceSpotContext({
378
- meshName,
379
- spotId,
380
- objectGeneration: toContextGeneration(objectGeneration),
381
- handlers: instanceHandlers,
382
- outbound,
383
- timers,
384
- serial,
385
- getSpot: () => instance as unknown as ZLinkSpot,
386
- nodeRid: this.options.nodeRid,
387
- nodeRidProvider: () => this.options.nodeRidProvider?.(meshName),
388
- providerResolver: this.options.providerResolver,
389
- runtimeEventPublisher: this.options.runtimeEventPublisher,
390
- workerRuntime: this.options.workerRuntime,
391
- close: this.contextClose(meshName, spotId, () => activation)
392
- });
388
+ meshName,
389
+ spotId,
390
+ objectGeneration: toContextGeneration(objectGeneration),
391
+ handlers: instanceHandlers,
392
+ outbound,
393
+ timers,
394
+ serial,
395
+ getSpot: () => instance as unknown as ZLinkSpot,
396
+ nodeRid: this.options.nodeRid,
397
+ nodeRidProvider: () => this.options.nodeRidProvider?.(meshName),
398
+ providerResolver: this.options.providerResolver,
399
+ runtimeEventPublisher: this.options.runtimeEventPublisher,
400
+ workerRuntime: this.options.workerRuntime,
401
+ close: this.contextClose(meshName, spotId, () => activation)
402
+ });
393
403
  instance = await createFreshProviderInstance(
394
404
  implementation,
395
405
  this.options.providerResolver,
@@ -411,7 +421,7 @@ export class ZLinkSpotActivationLifecycle {
411
421
  timers,
412
422
  actorHandlers,
413
423
  handlers,
414
- externalActorCount: () => this.options.actorCountProvider?.(spotId) ?? 0,
424
+ externalActorCount: () => this.options.actorCountProvider?.(spotId) ?? 0
415
425
  });
416
426
  try {
417
427
  await instance.configure?.();
@@ -444,10 +454,12 @@ export class ZLinkSpotActivationLifecycle {
444
454
  async discardInstance(activation: ZLinkSpotActivation): Promise<void> {
445
455
  const errors: unknown[] = [];
446
456
  try {
447
- await activation.serial.execute(() => invokeSpotClosing(
448
- activation.spot.onClosing?.bind(activation.spot),
449
- ZLinkSpotCloseReason.ExplicitClose
450
- ));
457
+ await activation.serial.execute(() =>
458
+ invokeSpotClosing(
459
+ activation.spot.onClosing?.bind(activation.spot),
460
+ ZLinkSpotCloseReason.ExplicitClose
461
+ )
462
+ );
451
463
  } catch (error) {
452
464
  errors.push(error);
453
465
  }
@@ -477,10 +489,12 @@ export class ZLinkSpotActivationLifecycle {
477
489
 
478
490
  resourcesReleased(activation: ZLinkSpotActivation): boolean {
479
491
  const state = this.cleanupStates.get(activation);
480
- return state?.timersDisposed === true &&
492
+ return (
493
+ state?.timersDisposed === true &&
481
494
  state.handlersDisposed === true &&
482
495
  state.nativeDisposed === true &&
483
- state.locationReleased === true;
496
+ state.locationReleased === true
497
+ );
484
498
  }
485
499
 
486
500
  async create<TSpot extends ZLinkSpot>(
@@ -491,8 +505,9 @@ export class ZLinkSpotActivationLifecycle {
491
505
  signal?: AbortSignal,
492
506
  authority?: ZLinkNativeSpotAuthority
493
507
  ): Promise<ZLinkLocalSpotCreateResult> {
494
- const executionMode = this.options.userSpotExecutionMode?.(meshName, spotType)
495
- ?? ZLinkUserSpotExecutionMode.SpotWide;
508
+ const executionMode =
509
+ this.options.userSpotExecutionMode?.(meshName, spotType) ??
510
+ ZLinkUserSpotExecutionMode.SpotWide;
496
511
  const serial = new ZLinkSpotSerialTurnExecutor(
497
512
  executionMode === ZLinkUserSpotExecutionMode.SpotWide,
498
513
  spotId
@@ -610,10 +625,9 @@ export class ZLinkSpotActivationLifecycle {
610
625
  domain: {
611
626
  kind: 'user',
612
627
  executionMode,
613
- relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(
614
- meshName,
615
- spotType
616
- ) ?? ZLinkSpotRelocationCoordinationMode.FrameworkManaged
628
+ relocationCoordinationMode:
629
+ this.options.userSpotRelocationCoordinationMode?.(meshName, spotType) ??
630
+ ZLinkSpotRelocationCoordinationMode.FrameworkManaged
617
631
  },
618
632
  spotType,
619
633
  spot,
@@ -626,15 +640,30 @@ export class ZLinkSpotActivationLifecycle {
626
640
  nativeSpot,
627
641
  metrics: this.options.metrics
628
642
  });
629
- const nativeDispatch = this.actorAdmission.attachNativeActorJoinDispatch(activation, nativeSpot);
643
+ const nativeDispatch = this.actorAdmission.attachNativeActorJoinDispatch(
644
+ activation,
645
+ nativeSpot
646
+ );
630
647
  activation.actorDispatch = nativeDispatch;
631
648
  lifecycleStarted = true;
632
- return await this.runCreateLifecycle(activation, spotType, request, locationClaim, nativeDispatch, signal);
649
+ return await this.runCreateLifecycle(
650
+ activation,
651
+ spotType,
652
+ request,
653
+ locationClaim,
654
+ nativeDispatch,
655
+ signal
656
+ );
633
657
  } catch (error) {
634
658
  const cleanupErrors: unknown[] = [];
635
659
  try {
636
660
  if (activation !== undefined) {
637
- await this.cleanupActivation(activation, locationClaim.meshName, lifecycleStarted, signal);
661
+ await this.cleanupActivation(
662
+ activation,
663
+ locationClaim.meshName,
664
+ lifecycleStarted,
665
+ signal
666
+ );
638
667
  } else {
639
668
  const partialCleanup = await Promise.allSettled([
640
669
  timers.dispose(),
@@ -647,14 +676,20 @@ export class ZLinkSpotActivationLifecycle {
647
676
  .map((result) => result.reason);
648
677
  if (partialErrors.length === 1) throw partialErrors[0];
649
678
  if (partialErrors.length > 1) {
650
- throw new AggregateError(partialErrors, `Spot '${spotId}' partial creation cleanup failed.`);
679
+ throw new AggregateError(
680
+ partialErrors,
681
+ `Spot '${spotId}' partial creation cleanup failed.`
682
+ );
651
683
  }
652
684
  }
653
685
  } catch (cleanupError) {
654
686
  cleanupErrors.push(cleanupError);
655
687
  }
656
688
  if (cleanupErrors.length > 0) {
657
- throw new AggregateError([error, ...cleanupErrors], `Spot '${spotId}' creation cleanup failed.`);
689
+ throw new AggregateError(
690
+ [error, ...cleanupErrors],
691
+ `Spot '${spotId}' creation cleanup failed.`
692
+ );
658
693
  }
659
694
  throw error;
660
695
  }
@@ -706,17 +741,20 @@ export class ZLinkSpotActivationLifecycle {
706
741
  close: this.contextClose(meshName, spotId, () => activation)
707
742
  });
708
743
  spot = await createFreshProviderInstance(spotType, this.options.providerResolver, context);
709
- Object.defineProperty(spot, 'context', { configurable: true, enumerable: false, value: context });
744
+ Object.defineProperty(spot, 'context', {
745
+ configurable: true,
746
+ enumerable: false,
747
+ value: context
748
+ });
710
749
  activation = new ZLinkSpotActivation({
711
750
  meshName,
712
751
  spotId,
713
752
  domain: {
714
753
  kind: 'user',
715
754
  executionMode,
716
- relocationCoordinationMode: this.options.userSpotRelocationCoordinationMode?.(
717
- meshName,
718
- spotType
719
- ) ?? ZLinkSpotRelocationCoordinationMode.FrameworkManaged
755
+ relocationCoordinationMode:
756
+ this.options.userSpotRelocationCoordinationMode?.(meshName, spotType) ??
757
+ ZLinkSpotRelocationCoordinationMode.FrameworkManaged
720
758
  },
721
759
  spotType,
722
760
  spot,
@@ -728,7 +766,14 @@ export class ZLinkSpotActivationLifecycle {
728
766
  externalActorCount: () => this.options.actorCountProvider?.(spotId) ?? 0,
729
767
  metrics: this.options.metrics
730
768
  });
731
- return await this.runCreateLifecycle(activation, spotType, request, locationClaim, undefined, signal);
769
+ return await this.runCreateLifecycle(
770
+ activation,
771
+ spotType,
772
+ request,
773
+ locationClaim,
774
+ undefined,
775
+ signal
776
+ );
732
777
  }
733
778
 
734
779
  private contextClose(
@@ -746,10 +791,9 @@ export class ZLinkSpotActivationLifecycle {
746
791
  const retry = activation.serial.post(() =>
747
792
  this.options.closeSpot(meshName, spotId, signal)
748
793
  );
749
- this.options.detachedTaskRunner?.runDetached(
750
- `spot close ${String(spotId)}`,
751
- async () => { await retry; }
752
- );
794
+ this.options.detachedTaskRunner?.runDetached(`spot close ${String(spotId)}`, async () => {
795
+ await retry;
796
+ });
753
797
  if (this.options.detachedTaskRunner === undefined) {
754
798
  void retry.catch(() => undefined);
755
799
  }
@@ -793,14 +837,7 @@ export class ZLinkSpotActivationLifecycle {
793
837
  if (!activation.commitExecutionSeal(seal)) {
794
838
  throw new Error(`Spot '${String(activation.spotId)}' close seal is stale.`);
795
839
  }
796
- await this.cleanupActivation(
797
- activation,
798
- activation.meshName,
799
- true,
800
- signal,
801
- reason,
802
- deadline
803
- );
840
+ await this.cleanupActivation(activation, activation.meshName, true, signal, reason, deadline);
804
841
  }
805
842
 
806
843
  async dispatchActorPacket(
@@ -850,11 +887,7 @@ export class ZLinkSpotActivationLifecycle {
850
887
  actorId: string,
851
888
  records: readonly ZLinkActorHandoffPrefixRecord[]
852
889
  ): ZLinkActorHandoffPrefixAdmission {
853
- return this.actorAdmission.admitActorPacketPrefix(
854
- activation,
855
- actorId,
856
- records
857
- );
890
+ return this.actorAdmission.admitActorPacketPrefix(activation, actorId, records);
858
891
  }
859
892
 
860
893
  private async runCreateLifecycle<TSpot extends ZLinkSpot>(
@@ -913,7 +946,10 @@ export class ZLinkSpotActivationLifecycle {
913
946
  try {
914
947
  await this.cleanupActivation(activation, locationClaim.meshName, true, signal);
915
948
  } catch (cleanupError) {
916
- throw new AggregateError([error, cleanupError], `Spot '${activation.spotId}' creation cleanup failed.`);
949
+ throw new AggregateError(
950
+ [error, cleanupError],
951
+ `Spot '${activation.spotId}' creation cleanup failed.`
952
+ );
917
953
  }
918
954
  throw error;
919
955
  }
@@ -937,8 +973,16 @@ export class ZLinkSpotActivationLifecycle {
937
973
  };
938
974
  this.cleanupStates.set(activation, state);
939
975
  if (state.inFlight !== undefined) return await state.inFlight;
940
- state.inFlight = this.runCleanup(activation, locationMeshName, notifyClosing, reason, state, deadline)
941
- .finally(() => { state.inFlight = undefined; });
976
+ state.inFlight = this.runCleanup(
977
+ activation,
978
+ locationMeshName,
979
+ notifyClosing,
980
+ reason,
981
+ state,
982
+ deadline
983
+ ).finally(() => {
984
+ state.inFlight = undefined;
985
+ });
942
986
  return await state.inFlight;
943
987
  }
944
988
 
@@ -967,30 +1011,49 @@ export class ZLinkSpotActivationLifecycle {
967
1011
  };
968
1012
  if (notifyClosing && !state.closingAttempted) {
969
1013
  state.closingAttempted = true;
970
- await cleanup(() => invokeSpotClosing(
971
- activation.spot.onClosing?.bind(activation.spot),
972
- reason,
973
- deadline
974
- ), () => undefined);
1014
+ await cleanup(
1015
+ () => invokeSpotClosing(activation.spot.onClosing?.bind(activation.spot), reason, deadline),
1016
+ () => undefined
1017
+ );
975
1018
  }
976
1019
  if (!state.timersDisposed) {
977
- await cleanup(() => activation.timers.dispose(), () => { state.timersDisposed = true; });
1020
+ await cleanup(
1021
+ () => activation.timers.dispose(),
1022
+ () => {
1023
+ state.timersDisposed = true;
1024
+ }
1025
+ );
978
1026
  }
979
- await cleanup(() => activation.serialExecutor.close(), () => undefined);
1027
+ await cleanup(
1028
+ () => activation.serialExecutor.close(),
1029
+ () => undefined
1030
+ );
980
1031
  if (!state.handlersDisposed) {
981
1032
  await cleanup(
982
1033
  () => disposeLifecycleHandlers(activation.spot),
983
- () => { state.handlersDisposed = true; }
1034
+ () => {
1035
+ state.handlersDisposed = true;
1036
+ }
984
1037
  );
985
1038
  }
986
1039
  if (!state.nativeDisposed) {
987
- await cleanup(() => activation.actorDispatch?.dispose(), () => undefined);
988
- await cleanup(() => activation.nativeSpot?.dispose(), () => { state.nativeDisposed = true; });
1040
+ await cleanup(
1041
+ () => activation.actorDispatch?.dispose(),
1042
+ () => undefined
1043
+ );
1044
+ await cleanup(
1045
+ () => activation.nativeSpot?.dispose(),
1046
+ () => {
1047
+ state.nativeDisposed = true;
1048
+ }
1049
+ );
989
1050
  }
990
1051
  if (!state.locationReleased) {
991
1052
  await cleanup(
992
1053
  () => this.options.releaseLocation(activation, locationMeshName, activation.spotId),
993
- () => { state.locationReleased = true; }
1054
+ () => {
1055
+ state.locationReleased = true;
1056
+ }
994
1057
  );
995
1058
  }
996
1059
  if (errors.length === 1) throw errors[0];