@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
@@ -72,9 +72,10 @@ export class ZLinkInMemoryProviderLocationStore implements ZLinkLocationStore {
72
72
  }
73
73
  requireValue(mutation.bytes, mutation.retentionMs);
74
74
  const version = storeVersion((++this.nextVersion).toString());
75
- const expiresAt = mutation.retentionMs === undefined
76
- ? undefined
77
- : new Date(storeNow.getTime() + mutation.retentionMs);
75
+ const expiresAt =
76
+ mutation.retentionMs === undefined
77
+ ? undefined
78
+ : new Date(storeNow.getTime() + mutation.retentionMs);
78
79
  this.values.set(mutation.key.value, {
79
80
  bytes: mutation.bytes.slice(),
80
81
  version,
@@ -85,10 +86,7 @@ export class ZLinkInMemoryProviderLocationStore implements ZLinkLocationStore {
85
86
  return { kind: 'applied', putVersions, storeNow };
86
87
  }
87
88
 
88
- async scan(
89
- request: ZLinkStoreScanRequest,
90
- signal?: AbortSignal
91
- ): Promise<ZLinkStoreScanResult> {
89
+ async scan(request: ZLinkStoreScanRequest, signal?: AbortSignal): Promise<ZLinkStoreScanResult> {
92
90
  signal?.throwIfAborted();
93
91
  requireScanRequest(request);
94
92
  const storeNow = this.now();
@@ -102,7 +100,7 @@ export class ZLinkInMemoryProviderLocationStore implements ZLinkLocationStore {
102
100
  items: [...this.values.entries()]
103
101
  .filter(([key]) => key.startsWith(request.prefix))
104
102
  .map(([key, value]) => ({ key: storeKey(key), value }))
105
- .filter(item => this.liveValue(item.key.value, storeNow) !== undefined)
103
+ .filter((item) => this.liveValue(item.key.value, storeNow) !== undefined)
106
104
  .sort((left, right) => left.key.value.localeCompare(right.key.value))
107
105
  };
108
106
  this.scans.set(snapshotId, snapshot);
@@ -114,14 +112,13 @@ export class ZLinkInMemoryProviderLocationStore implements ZLinkLocationStore {
114
112
 
115
113
  const selected = snapshot.items.slice(offset, offset + request.limit);
116
114
  const nextOffset = offset + selected.length;
117
- const nextCursor = nextOffset < snapshot.items.length
118
- ? scanCursor(`${snapshotId}:${nextOffset}`)
119
- : undefined;
115
+ const nextCursor =
116
+ nextOffset < snapshot.items.length ? scanCursor(`${snapshotId}:${nextOffset}`) : undefined;
120
117
  if (nextCursor === undefined) this.scans.delete(snapshotId);
121
118
  return {
122
119
  kind: 'page',
123
120
  value: {
124
- items: selected.map(item => ({
121
+ items: selected.map((item) => ({
125
122
  key: item.key,
126
123
  value: {
127
124
  bytes: item.value.bytes.slice(),
@@ -169,12 +166,14 @@ function parseCursor(cursor: ZLinkStoreScanCursor): [string, number] {
169
166
  }
170
167
 
171
168
  function requireWriteRequest(request: ZLinkStoreWriteRequest): void {
172
- const conditionKeys = request.conditions.map(condition => condition.key.value);
173
- const mutationKeys = request.mutations.map(mutation => mutation.key.value);
169
+ const conditionKeys = request.conditions.map((condition) => condition.key.value);
170
+ const mutationKeys = request.mutations.map((mutation) => mutation.key.value);
174
171
  const keys = [...new Set([...conditionKeys, ...mutationKeys])];
175
- if (new Set(conditionKeys).size !== conditionKeys.length
176
- || new Set(mutationKeys).size !== mutationKeys.length
177
- || keys.length > 2_048) {
172
+ if (
173
+ new Set(conditionKeys).size !== conditionKeys.length ||
174
+ new Set(mutationKeys).size !== mutationKeys.length ||
175
+ keys.length > 2_048
176
+ ) {
178
177
  throw new RangeError('Location Store write keys must be unique and bounded to 2,048.');
179
178
  }
180
179
  for (const key of keys) requireKey(key);
@@ -20,12 +20,13 @@ import type {
20
20
  } from './internal-location-contracts';
21
21
  import type { ZLinkDomainLocationStore } from './domain-store-contract';
22
22
 
23
- export type ZLinkAuthorityStore = Pick<ZLinkDomainLocationStore,
24
- | 'readAuthority'
25
- | 'compareExchangeAuthority'
26
- | 'listAuthorities'>;
23
+ export type ZLinkAuthorityStore = Pick<
24
+ ZLinkDomainLocationStore,
25
+ 'readAuthority' | 'compareExchangeAuthority' | 'listAuthorities'
26
+ >;
27
27
 
28
- export type ZLinkObjectCreationStore = Pick<ZLinkDomainLocationStore,
28
+ export type ZLinkObjectCreationStore = Pick<
29
+ ZLinkDomainLocationStore,
29
30
  | 'readCreationTerminal'
30
31
  | 'reserve'
31
32
  | 'commit'
@@ -33,58 +34,114 @@ export type ZLinkObjectCreationStore = Pick<ZLinkDomainLocationStore,
33
34
  | 'abort'
34
35
  | 'prepareAggregate'
35
36
  | 'commitAggregate'
36
- | 'abortAggregate'>;
37
+ | 'abortAggregate'
38
+ >;
37
39
 
38
- export type ZLinkOwnerLeaseStore = Pick<ZLinkDomainLocationStore,
39
- | 'claimOwnerLease'
40
- | 'readOwnerLease'
41
- | 'renewOwnerLease'
42
- | 'releaseOwnerLease'>;
40
+ export type ZLinkOwnerLeaseStore = Pick<
41
+ ZLinkDomainLocationStore,
42
+ 'claimOwnerLease' | 'readOwnerLease' | 'renewOwnerLease' | 'releaseOwnerLease'
43
+ >;
43
44
 
44
- export type ZLinkMeshNodeLocationStore = Pick<ZLinkDomainLocationStore,
45
- | 'updateMeshNode'
46
- | 'removeMeshNode'
47
- | 'listMeshNodes'>;
45
+ export type ZLinkMeshNodeLocationStore = Pick<
46
+ ZLinkDomainLocationStore,
47
+ 'updateMeshNode' | 'removeMeshNode' | 'listMeshNodes'
48
+ >;
48
49
 
49
- export type ZLinkClientServerLocationStore = Pick<ZLinkDomainLocationStore,
50
- | 'updateClientServer'
51
- | 'removeClientServer'
52
- | 'listClientServers'>;
50
+ export type ZLinkClientServerLocationStore = Pick<
51
+ ZLinkDomainLocationStore,
52
+ 'updateClientServer' | 'removeClientServer' | 'listClientServers'
53
+ >;
53
54
 
54
- export type ZLinkFanoutLocationStore = Pick<ZLinkDomainLocationStore,
55
- | 'updateFanoutPublisher'
56
- | 'removeFanoutPublisher'
57
- | 'listFanoutPublishers'>;
55
+ export type ZLinkFanoutLocationStore = Pick<
56
+ ZLinkDomainLocationStore,
57
+ 'updateFanoutPublisher' | 'removeFanoutPublisher' | 'listFanoutPublishers'
58
+ >;
58
59
 
59
60
  export interface ZLinkPeerLocationStore {
60
- updatePeer(peer: ZLinkPeerLocation, intent: ZLinkLocationWriteIntent, signal?: AbortSignal): Promise<ZLinkLocationWriteResult>;
61
- removePeer(key: ZLinkPeerLocationKey, owner: ZLinkLocationOwnerToken, signal?: AbortSignal): Promise<ZLinkLocationWriteResult>;
62
- listPeers(filter: ZLinkPeerLocationFilter, signal?: AbortSignal): Promise<readonly ZLinkPeerLocation[]>;
61
+ updatePeer(
62
+ peer: ZLinkPeerLocation,
63
+ intent: ZLinkLocationWriteIntent,
64
+ signal?: AbortSignal
65
+ ): Promise<ZLinkLocationWriteResult>;
66
+ removePeer(
67
+ key: ZLinkPeerLocationKey,
68
+ owner: ZLinkLocationOwnerToken,
69
+ signal?: AbortSignal
70
+ ): Promise<ZLinkLocationWriteResult>;
71
+ listPeers(
72
+ filter: ZLinkPeerLocationFilter,
73
+ signal?: AbortSignal
74
+ ): Promise<readonly ZLinkPeerLocation[]>;
63
75
  }
64
76
 
65
77
  export interface ZLinkSpotLocationStore {
66
- updateSpot(location: ZLinkSpotLocation, intent: ZLinkLocationWriteIntent, signal?: AbortSignal): Promise<ZLinkLocationWriteResult>;
67
- removeSpot(key: ZLinkSpotLocationKey, owner: ZLinkLocationOwnerToken, signal?: AbortSignal): Promise<ZLinkLocationWriteStatus>;
68
- resolveSpot(key: ZLinkSpotLocationKey, signal?: AbortSignal): Promise<ZLinkSpotLocation | undefined>;
78
+ updateSpot(
79
+ location: ZLinkSpotLocation,
80
+ intent: ZLinkLocationWriteIntent,
81
+ signal?: AbortSignal
82
+ ): Promise<ZLinkLocationWriteResult>;
83
+ removeSpot(
84
+ key: ZLinkSpotLocationKey,
85
+ owner: ZLinkLocationOwnerToken,
86
+ signal?: AbortSignal
87
+ ): Promise<ZLinkLocationWriteStatus>;
88
+ resolveSpot(
89
+ key: ZLinkSpotLocationKey,
90
+ signal?: AbortSignal
91
+ ): Promise<ZLinkSpotLocation | undefined>;
69
92
  }
70
93
 
71
94
  export interface ZLinkSpotLocationQueryStore {
72
- listSpots(filter: ZLinkSpotLocationFilter, page?: ZLinkPageRequest, signal?: AbortSignal): Promise<ZLinkLocationPage<ZLinkSpotLocation>>;
95
+ listSpots(
96
+ filter: ZLinkSpotLocationFilter,
97
+ page?: ZLinkPageRequest,
98
+ signal?: AbortSignal
99
+ ): Promise<ZLinkLocationPage<ZLinkSpotLocation>>;
73
100
  }
74
101
 
75
102
  export interface ZLinkActorLocationStore {
76
- updateActor(location: ZLinkActorLocation, intent: ZLinkLocationWriteIntent, signal?: AbortSignal): Promise<ZLinkLocationWriteResult>;
77
- removeActor(key: ZLinkActorLocationKey, owner: ZLinkLocationOwnerToken, signal?: AbortSignal): Promise<ZLinkLocationWriteStatus>;
78
- resolveActor(key: ZLinkActorLocationKey, signal?: AbortSignal): Promise<ZLinkActorLocation | undefined>;
103
+ updateActor(
104
+ location: ZLinkActorLocation,
105
+ intent: ZLinkLocationWriteIntent,
106
+ signal?: AbortSignal
107
+ ): Promise<ZLinkLocationWriteResult>;
108
+ removeActor(
109
+ key: ZLinkActorLocationKey,
110
+ owner: ZLinkLocationOwnerToken,
111
+ signal?: AbortSignal
112
+ ): Promise<ZLinkLocationWriteStatus>;
113
+ resolveActor(
114
+ key: ZLinkActorLocationKey,
115
+ signal?: AbortSignal
116
+ ): Promise<ZLinkActorLocation | undefined>;
79
117
  }
80
118
 
81
119
  export interface ZLinkActorLocationQueryStore {
82
- listActors(filter: ZLinkActorLocationFilter, page?: ZLinkPageRequest, signal?: AbortSignal): Promise<ZLinkLocationPage<ZLinkActorLocation>>;
120
+ listActors(
121
+ filter: ZLinkActorLocationFilter,
122
+ page?: ZLinkPageRequest,
123
+ signal?: AbortSignal
124
+ ): Promise<ZLinkLocationPage<ZLinkActorLocation>>;
83
125
  }
84
126
 
85
127
  export interface ZLinkRouteLocationStore {
86
- updateRoute(route: ZLinkRouteLocation, intent: ZLinkLocationWriteIntent, signal?: AbortSignal): Promise<ZLinkLocationWriteResult>;
87
- removeRoute(key: ZLinkRouteLocationKey, owner: ZLinkLocationOwnerToken, signal?: AbortSignal): Promise<ZLinkLocationWriteResult>;
88
- resolveRoute(key: ZLinkRouteLocationKey, signal?: AbortSignal): Promise<ZLinkRouteLocation | undefined>;
89
- listRoutes(filter: ZLinkRouteLocationFilter, page?: ZLinkPageRequest, signal?: AbortSignal): Promise<ZLinkLocationPage<ZLinkRouteLocation>>;
128
+ updateRoute(
129
+ route: ZLinkRouteLocation,
130
+ intent: ZLinkLocationWriteIntent,
131
+ signal?: AbortSignal
132
+ ): Promise<ZLinkLocationWriteResult>;
133
+ removeRoute(
134
+ key: ZLinkRouteLocationKey,
135
+ owner: ZLinkLocationOwnerToken,
136
+ signal?: AbortSignal
137
+ ): Promise<ZLinkLocationWriteResult>;
138
+ resolveRoute(
139
+ key: ZLinkRouteLocationKey,
140
+ signal?: AbortSignal
141
+ ): Promise<ZLinkRouteLocation | undefined>;
142
+ listRoutes(
143
+ filter: ZLinkRouteLocationFilter,
144
+ page?: ZLinkPageRequest,
145
+ signal?: AbortSignal
146
+ ): Promise<ZLinkLocationPage<ZLinkRouteLocation>>;
90
147
  }
@@ -13,7 +13,8 @@ import { encodeRoutingIdStorageHex } from '../routing-id';
13
13
  // changes do not leak into runtime models.
14
14
  export const ZLinkLocationKeyCodec = Object.freeze({
15
15
  encodePeerKey(key: ZLinkPeerLocationKey): string {
16
- const identity = key.nodeRid === undefined ? key.endpoint ?? '' : encodeRoutingIdHex(key.nodeRid);
16
+ const identity =
17
+ key.nodeRid === undefined ? (key.endpoint ?? '') : encodeRoutingIdHex(key.nodeRid);
17
18
  return encodeSegments(
18
19
  zlinkLocationAutoConnectTypeName(key.autoConnectType),
19
20
  key.meshName,
@@ -43,9 +44,7 @@ function normalizeActorType(actorType: string | undefined): string {
43
44
  }
44
45
 
45
46
  function encodeSegments(...segments: readonly string[]): string {
46
- return segments.map(
47
- (segment) => `${Buffer.byteLength(segment, 'utf8')}:${segment}`
48
- ).join('');
47
+ return segments.map((segment) => `${Buffer.byteLength(segment, 'utf8')}:${segment}`).join('');
49
48
  }
50
49
 
51
50
  function requireSpotId(value: string): string {
@@ -53,9 +53,12 @@ export class ZLinkOwnerLeaseTracker {
53
53
  async remainingLeaseMs(ownerId: string, signal?: AbortSignal): Promise<number> {
54
54
  const snapshot = await this.getSnapshot(ownerId, signal);
55
55
  if (snapshot.result.kind !== 'found') return 0;
56
- return Math.max(0, snapshot.result.leaseExpiresAt.getTime()
57
- - snapshot.result.storeNow.getTime()
58
- - (this.monotonicNowMs() - snapshot.fetchedAtMs));
56
+ return Math.max(
57
+ 0,
58
+ snapshot.result.leaseExpiresAt.getTime() -
59
+ snapshot.result.storeNow.getTime() -
60
+ (this.monotonicNowMs() - snapshot.fetchedAtMs)
61
+ );
59
62
  }
60
63
 
61
64
  async remainingOwnerTokenLeaseMs(
@@ -64,21 +67,25 @@ export class ZLinkOwnerLeaseTracker {
64
67
  ): Promise<number> {
65
68
  const snapshot = await this.getSnapshot(owner.ownerId, signal);
66
69
  if (
67
- snapshot.result.kind !== 'found'
68
- || snapshot.result.token.leaseGeneration !== owner.leaseGeneration
69
- ) return 0;
70
- return Math.max(0, snapshot.result.leaseExpiresAt.getTime()
71
- - snapshot.result.storeNow.getTime()
72
- - (this.monotonicNowMs() - snapshot.fetchedAtMs));
70
+ snapshot.result.kind !== 'found' ||
71
+ snapshot.result.token.leaseGeneration !== owner.leaseGeneration
72
+ )
73
+ return 0;
74
+ return Math.max(
75
+ 0,
76
+ snapshot.result.leaseExpiresAt.getTime() -
77
+ snapshot.result.storeNow.getTime() -
78
+ (this.monotonicNowMs() - snapshot.fetchedAtMs)
79
+ );
73
80
  }
74
81
 
75
82
  async getLiveOwnerSetVersion(signal?: AbortSignal): Promise<number> {
76
83
  const owners = await this.lane.run(() => [...this.snapshots.keys()]);
77
- const refreshed = await Promise.all(owners.map(ownerId => this.getSnapshot(ownerId, signal)));
84
+ const refreshed = await Promise.all(owners.map((ownerId) => this.getSnapshot(ownerId, signal)));
78
85
  const live = refreshed
79
- .filter(snapshot => this.isLive(snapshot))
80
- .map(snapshot => snapshot.result.kind === 'found' ? snapshot.result.token.ownerId : '')
81
- .filter(ownerId => ownerId.length > 0)
86
+ .filter((snapshot) => this.isLive(snapshot))
87
+ .map((snapshot) => (snapshot.result.kind === 'found' ? snapshot.result.token.ownerId : ''))
88
+ .filter((ownerId) => ownerId.length > 0)
82
89
  .sort()
83
90
  .join('\n');
84
91
  return await this.lane.run(() => {
@@ -108,12 +115,18 @@ export class ZLinkOwnerLeaseTracker {
108
115
  readonly start: boolean;
109
116
  } {
110
117
  const current = this.snapshots.get(ownerId);
111
- if (current !== undefined
112
- && this.monotonicNowMs() - current.fetchedAtMs < this.options.pollingIntervalMs
113
- && this.isLive(current)) {
118
+ if (
119
+ current !== undefined &&
120
+ this.monotonicNowMs() - current.fetchedAtMs < this.options.pollingIntervalMs &&
121
+ this.isLive(current)
122
+ ) {
114
123
  return {
115
124
  snapshot: current,
116
- refresh: { promise: Promise.resolve(current), resolve: () => undefined, reject: () => undefined },
125
+ refresh: {
126
+ promise: Promise.resolve(current),
127
+ resolve: () => undefined,
128
+ reject: () => undefined
129
+ },
117
130
  start: false
118
131
  };
119
132
  }
@@ -158,11 +171,7 @@ export class ZLinkOwnerLeaseTracker {
158
171
  refresh.resolve(snapshot);
159
172
  }
160
173
 
161
- private failSnapshotRefresh(
162
- ownerId: string,
163
- refresh: OwnerLeaseRefresh,
164
- error: unknown
165
- ): void {
174
+ private failSnapshotRefresh(ownerId: string, refresh: OwnerLeaseRefresh, error: unknown): void {
166
175
  if (this.refreshes.get(ownerId) !== refresh) return;
167
176
  this.refreshes.delete(ownerId);
168
177
  refresh.reject(error);
@@ -171,9 +180,9 @@ export class ZLinkOwnerLeaseTracker {
171
180
  private isLive(snapshot: OwnerLeaseTrackerSnapshot): boolean {
172
181
  if (snapshot.result.kind !== 'found') return false;
173
182
  const elapsedMs = this.monotonicNowMs() - snapshot.fetchedAtMs;
174
- return snapshot.result.leaseExpiresAt.getTime()
175
- - snapshot.result.storeNow.getTime()
176
- - elapsedMs > 0;
183
+ return (
184
+ snapshot.result.leaseExpiresAt.getTime() - snapshot.result.storeNow.getTime() - elapsedMs > 0
185
+ );
177
186
  }
178
187
  }
179
188
 
@@ -188,7 +197,7 @@ export class ZLinkLiveRowFilter {
188
197
  ): Promise<TRow[]> {
189
198
  const live: TRow[] = [];
190
199
  for (const row of rows) {
191
- if ((include === undefined || include(row)) && await this.isLive(row, ownerIdOf, signal)) {
200
+ if ((include === undefined || include(row)) && (await this.isLive(row, ownerIdOf, signal))) {
192
201
  live.push(row);
193
202
  }
194
203
  }
@@ -204,7 +213,7 @@ export class ZLinkLiveRowFilter {
204
213
  if (row === undefined || (include !== undefined && !include(row))) {
205
214
  return undefined;
206
215
  }
207
- return await this.isLive(row, ownerIdOf, signal) ? row : undefined;
216
+ return (await this.isLive(row, ownerIdOf, signal)) ? row : undefined;
208
217
  }
209
218
 
210
219
  private async isLive<TRow>(
@@ -38,7 +38,19 @@ export interface IZLinkLocationLifecycleRuntime {
38
38
  intent: ZLinkLocationWriteIntent,
39
39
  signal?: AbortSignal
40
40
  ): Promise<ZLinkLocationWriteResult>;
41
- removeActor(key: ZLinkActorLocationKey, generation: bigint, signal?: AbortSignal): Promise<ZLinkLocationWriteStatus>;
42
- removeSpot(key: ZLinkSpotLocationKey, generation: bigint, signal?: AbortSignal): Promise<ZLinkLocationWriteStatus>;
43
- removeRoute(key: ZLinkRouteLocationKey, generation: bigint, signal?: AbortSignal): Promise<ZLinkLocationWriteResult>;
41
+ removeActor(
42
+ key: ZLinkActorLocationKey,
43
+ generation: bigint,
44
+ signal?: AbortSignal
45
+ ): Promise<ZLinkLocationWriteStatus>;
46
+ removeSpot(
47
+ key: ZLinkSpotLocationKey,
48
+ generation: bigint,
49
+ signal?: AbortSignal
50
+ ): Promise<ZLinkLocationWriteStatus>;
51
+ removeRoute(
52
+ key: ZLinkRouteLocationKey,
53
+ generation: bigint,
54
+ signal?: AbortSignal
55
+ ): Promise<ZLinkLocationWriteResult>;
44
56
  }
@@ -1,12 +1,6 @@
1
1
  import type { ActorRef, RoutingId } from '../../contracts/Common';
2
- import type {
3
- ZLinkActorLocation,
4
- ZLinkLocationWriteStatus
5
- } from './internal-location-contracts';
6
- import type {
7
- ZLinkActorLocationStore,
8
- ZLinkSpotLocationStore
9
- } from './internal-store-contracts';
2
+ import type { ZLinkActorLocation, ZLinkLocationWriteStatus } from './internal-location-contracts';
3
+ import type { ZLinkActorLocationStore, ZLinkSpotLocationStore } from './internal-store-contracts';
10
4
  import { ZLinkSpotKind } from '../../contracts/Spots';
11
5
  import {
12
6
  ZLinkActorLocationClaims,
@@ -25,14 +19,8 @@ import type {
25
19
  ZLinkTrackedInstanceAuthority
26
20
  } from './spot-location-claims';
27
21
  import type { ZLinkAuthorityStore } from './internal-store-contracts';
28
- import type {
29
- IZLinkLocationLifecycleRuntime,
30
- ZLinkOwnershipLostEvent
31
- } from './lifecycle-runtime';
32
- export type {
33
- IZLinkLocationLifecycleRuntime,
34
- ZLinkOwnershipLostEvent
35
- } from './lifecycle-runtime';
22
+ import type { IZLinkLocationLifecycleRuntime, ZLinkOwnershipLostEvent } from './lifecycle-runtime';
23
+ export type { IZLinkLocationLifecycleRuntime, ZLinkOwnershipLostEvent } from './lifecycle-runtime';
36
24
 
37
25
  export class ZLinkLocationLifecycle {
38
26
  private readonly actorClaims: ZLinkActorLocationClaims;
@@ -40,7 +28,8 @@ export class ZLinkLocationLifecycle {
40
28
  private readonly spotClaims: ZLinkSpotLocationClaims;
41
29
  private readonly actorSessionRoutes: ZLinkActorSessionRouteClaims;
42
30
  private disposed = false;
43
- private readonly ownershipLostHandler = (event: ZLinkOwnershipLostEvent) => this.onOwnershipLost(event);
31
+ private readonly ownershipLostHandler = (event: ZLinkOwnershipLostEvent) =>
32
+ this.onOwnershipLost(event);
44
33
 
45
34
  constructor(
46
35
  private readonly runtime: IZLinkLocationLifecycleRuntime,
@@ -50,7 +39,12 @@ export class ZLinkLocationLifecycle {
50
39
  spotStore?: ZLinkSpotLocationStore,
51
40
  invalidateSpotRoute?: (spotId: RoutingId) => void
52
41
  ) {
53
- this.actorClaims = new ZLinkActorLocationClaims(runtime, actorStore, entryMeshName, authorityStore);
42
+ this.actorClaims = new ZLinkActorLocationClaims(
43
+ runtime,
44
+ actorStore,
45
+ entryMeshName,
46
+ authorityStore
47
+ );
54
48
  this.spotClaims = new ZLinkSpotLocationClaims(
55
49
  runtime,
56
50
  authorityStore,
@@ -73,7 +67,13 @@ export class ZLinkLocationLifecycle {
73
67
  deactivate: (() => Promise<void>) | undefined,
74
68
  activate: () => Promise<TActor>
75
69
  ): Promise<ZLinkActorClaimActivation<TActor>> {
76
- return await this.actorClaims.executeClaimThenActivate(actorType, actorId, nodeRid, deactivate, activate);
70
+ return await this.actorClaims.executeClaimThenActivate(
71
+ actorType,
72
+ actorId,
73
+ nodeRid,
74
+ deactivate,
75
+ activate
76
+ );
77
77
  }
78
78
 
79
79
  async claimActor(
@@ -165,8 +165,9 @@ export class ZLinkLocationLifecycle {
165
165
  if (existing !== undefined) {
166
166
  return existing;
167
167
  }
168
- const cleanup = this.retryActorRelease(actorType, actorId)
169
- .finally(() => this.actorCleanupTasks.delete(actorId));
168
+ const cleanup = this.retryActorRelease(actorType, actorId).finally(() =>
169
+ this.actorCleanupTasks.delete(actorId)
170
+ );
170
171
  this.actorCleanupTasks.set(actorId, cleanup);
171
172
  return cleanup;
172
173
  }
@@ -240,7 +241,11 @@ export class ZLinkLocationLifecycle {
240
241
  await this.spotClaims.reclaimOwnerRows();
241
242
  }
242
243
 
243
- async bindActorSessionRoute(sessionRid: RoutingId, actorId: string, ownerNodeRid: RoutingId): Promise<void> {
244
+ async bindActorSessionRoute(
245
+ sessionRid: RoutingId,
246
+ actorId: string,
247
+ ownerNodeRid: RoutingId
248
+ ): Promise<void> {
244
249
  await this.actorSessionRoutes.bind(sessionRid, actorId, ownerNodeRid);
245
250
  }
246
251
 
@@ -255,13 +260,13 @@ export class ZLinkLocationLifecycle {
255
260
  }
256
261
  }
257
262
 
258
- function inferSpotStore(
259
- actorStore: ZLinkActorLocationStore
260
- ): ZLinkSpotLocationStore | undefined {
263
+ function inferSpotStore(actorStore: ZLinkActorLocationStore): ZLinkSpotLocationStore | undefined {
261
264
  const candidate = actorStore as Partial<ZLinkSpotLocationStore>;
262
- if (typeof candidate.updateSpot === 'function'
263
- && typeof candidate.removeSpot === 'function'
264
- && typeof candidate.resolveSpot === 'function') {
265
+ if (
266
+ typeof candidate.updateSpot === 'function' &&
267
+ typeof candidate.removeSpot === 'function' &&
268
+ typeof candidate.resolveSpot === 'function'
269
+ ) {
265
270
  return actorStore as unknown as ZLinkSpotLocationStore;
266
271
  }
267
272
  return undefined;