@zlink-systems/framework 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. package/src/runtime/workers/index.ts +68 -29
@@ -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;