@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
@@ -52,14 +52,18 @@ export function defineZLinkPacketJsonContract(
52
52
  const contracts = packetJsonContracts();
53
53
  const current = contracts.get(packetName);
54
54
  if (current !== undefined && canonicalContract(current) !== canonicalContract(normalized)) {
55
- throw new TypeError(`ZLink packet '${packetName}' has conflicting JSON contracts in one process.`);
55
+ throw new TypeError(
56
+ `ZLink packet '${packetName}' has conflicting JSON contracts in one process.`
57
+ );
56
58
  }
57
59
  if (current !== undefined) return current;
58
60
  contracts.set(packetName, normalized);
59
61
  return normalized;
60
62
  }
61
63
 
62
- export function readZLinkPacketJsonContract(packetName: string): ZLinkPacketJsonContract | undefined {
64
+ export function readZLinkPacketJsonContract(
65
+ packetName: string
66
+ ): ZLinkPacketJsonContract | undefined {
63
67
  return packetJsonContracts().get(packetName);
64
68
  }
65
69
 
@@ -72,10 +76,13 @@ function normalizeJsonSchema(
72
76
  // the TypeScript signature describes the accepted shape.
73
77
  const runtimeSchema: unknown = schema;
74
78
  if (typeof runtimeSchema !== 'object' || runtimeSchema === null || depth > 64) {
75
- throw new TypeError('ZLink packet JSON schema must be an acyclic object with at most 64 levels.');
79
+ throw new TypeError(
80
+ 'ZLink packet JSON schema must be an acyclic object with at most 64 levels.'
81
+ );
76
82
  }
77
83
  const normalizedSchema = runtimeSchema as ZLinkJsonSchema;
78
- if (parents.has(normalizedSchema)) throw new TypeError('ZLink packet JSON schema must not contain a cycle.');
84
+ if (parents.has(normalizedSchema))
85
+ throw new TypeError('ZLink packet JSON schema must not contain a cycle.');
79
86
  const nextParents = new Set(parents).add(normalizedSchema);
80
87
  switch (normalizedSchema.type) {
81
88
  case 'boolean':
@@ -88,9 +95,11 @@ function normalizeJsonSchema(
88
95
  case 'bytes':
89
96
  return Object.freeze({ type: normalizedSchema.type });
90
97
  case 'enum': {
91
- if (!Array.isArray(normalizedSchema.names)
92
- || normalizedSchema.names.length === 0
93
- || normalizedSchema.names.some((name) => typeof name !== 'string' || name.length === 0)) {
98
+ if (
99
+ !Array.isArray(normalizedSchema.names) ||
100
+ normalizedSchema.names.length === 0 ||
101
+ normalizedSchema.names.some((name) => typeof name !== 'string' || name.length === 0)
102
+ ) {
94
103
  throw new TypeError('ZLink packet enum schema requires non-empty string names.');
95
104
  }
96
105
  if (new Set(normalizedSchema.names).size !== normalizedSchema.names.length) {
@@ -99,25 +108,45 @@ function normalizeJsonSchema(
99
108
  return Object.freeze({ type: 'enum', names: Object.freeze([...normalizedSchema.names]) });
100
109
  }
101
110
  case 'nullable':
102
- return Object.freeze({ type: 'nullable', value: normalizeJsonSchema(normalizedSchema.value, nextParents, depth + 1) });
111
+ return Object.freeze({
112
+ type: 'nullable',
113
+ value: normalizeJsonSchema(normalizedSchema.value, nextParents, depth + 1)
114
+ });
103
115
  case 'array':
104
- return Object.freeze({ type: 'array', items: normalizeJsonSchema(normalizedSchema.items, nextParents, depth + 1) });
116
+ return Object.freeze({
117
+ type: 'array',
118
+ items: normalizeJsonSchema(normalizedSchema.items, nextParents, depth + 1)
119
+ });
105
120
  case 'record':
106
- return Object.freeze({ type: 'record', values: normalizeJsonSchema(normalizedSchema.values, nextParents, depth + 1) });
121
+ return Object.freeze({
122
+ type: 'record',
123
+ values: normalizeJsonSchema(normalizedSchema.values, nextParents, depth + 1)
124
+ });
107
125
  case 'object': {
108
126
  const runtimeProperties: unknown = normalizedSchema.properties;
109
- if (typeof runtimeProperties !== 'object' || runtimeProperties === null || Array.isArray(runtimeProperties)) {
127
+ if (
128
+ typeof runtimeProperties !== 'object' ||
129
+ runtimeProperties === null ||
130
+ Array.isArray(runtimeProperties)
131
+ ) {
110
132
  throw new TypeError('ZLink packet object schema properties must be an object.');
111
133
  }
112
- if (!Array.isArray(normalizedSchema.required)
113
- || normalizedSchema.required.some((name) => typeof name !== 'string' || name.length === 0)) {
134
+ if (
135
+ !Array.isArray(normalizedSchema.required) ||
136
+ normalizedSchema.required.some((name) => typeof name !== 'string' || name.length === 0)
137
+ ) {
114
138
  throw new TypeError('ZLink packet object schema required must contain property names.');
115
139
  }
116
- if (normalizedSchema.additionalProperties !== undefined && typeof normalizedSchema.additionalProperties !== 'boolean') {
140
+ if (
141
+ normalizedSchema.additionalProperties !== undefined &&
142
+ typeof normalizedSchema.additionalProperties !== 'boolean'
143
+ ) {
117
144
  throw new TypeError('ZLink packet object schema additionalProperties must be boolean.');
118
145
  }
119
146
  const properties: Record<string, ZLinkJsonSchema> = {};
120
- for (const [name, property] of Object.entries(runtimeProperties as Record<string, ZLinkJsonSchema>)) {
147
+ for (const [name, property] of Object.entries(
148
+ runtimeProperties as Record<string, ZLinkJsonSchema>
149
+ )) {
121
150
  if (name === '__proto__' || name === 'prototype' || name === 'constructor') {
122
151
  throw new TypeError(`ZLink packet JSON property '${name}' is not allowed.`);
123
152
  }
@@ -131,7 +160,9 @@ function normalizeJsonSchema(
131
160
  throw new TypeError(`ZLink packet JSON property '${name}' is not allowed.`);
132
161
  }
133
162
  if (!Object.prototype.hasOwnProperty.call(properties, name)) {
134
- throw new TypeError(`ZLink packet JSON required property '${name}' has no property schema.`);
163
+ throw new TypeError(
164
+ `ZLink packet JSON required property '${name}' has no property schema.`
165
+ );
135
166
  }
136
167
  }
137
168
  return Object.freeze({
@@ -144,12 +175,15 @@ function normalizeJsonSchema(
144
175
  });
145
176
  }
146
177
  }
147
- throw new TypeError(`ZLink packet JSON schema type '${String((normalizedSchema as { type?: unknown }).type)}' is not supported.`);
178
+ throw new TypeError(
179
+ `ZLink packet JSON schema type '${String((normalizedSchema as { type?: unknown }).type)}' is not supported.`
180
+ );
148
181
  }
149
182
 
150
183
  function packetJsonContracts(): Map<string, ZLinkPacketJsonContract> {
151
184
  const root = globalThis as typeof globalThis & Record<symbol, unknown>;
152
- let contracts = root[ZLINK_PACKET_JSON_CONTRACTS] as Map<string, ZLinkPacketJsonContract> | undefined;
185
+ let contracts = root[ZLINK_PACKET_JSON_CONTRACTS] as
186
+ Map<string, ZLinkPacketJsonContract> | undefined;
153
187
  if (contracts === undefined) {
154
188
  contracts = new Map();
155
189
  Object.defineProperty(root, ZLINK_PACKET_JSON_CONTRACTS, {
@@ -166,7 +200,7 @@ function canonicalContract(value: unknown): string {
166
200
  if (Array.isArray(value)) return `[${value.map(canonicalContract).join(',')}]`;
167
201
  if (typeof value !== 'object' || value === null) return JSON.stringify(value);
168
202
  return `{${Object.entries(value as Record<string, unknown>)
169
- .sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)
203
+ .sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))
170
204
  .map(([key, item]) => `${JSON.stringify(key)}:${canonicalContract(item)}`)
171
205
  .join(',')}}`;
172
206
  }
@@ -3,11 +3,7 @@ import type { ActorRef, RoutingId } from '../Common';
3
3
  export type ZLinkActorTransferState = 'prepared' | 'committed' | 'activated' | 'aborted';
4
4
 
5
5
  export type ZLinkActorTransferWriteStatus =
6
- | 'stored'
7
- | 'notFound'
8
- | 'ignoredStale'
9
- | 'rejectedConflict'
10
- | 'invalidState';
6
+ 'stored' | 'notFound' | 'ignoredStale' | 'rejectedConflict' | 'invalidState';
11
7
 
12
8
  export interface ZLinkActorTransferRecord {
13
9
  readonly meshName: string;
@@ -64,8 +64,7 @@ export interface ZLinkAuthoritySnapshot {
64
64
  }
65
65
 
66
66
  export type ZLinkAuthorityReadResult =
67
- | { readonly kind: 'missing'; readonly storeNow: Date }
68
- | ZLinkAuthoritySnapshot;
67
+ { readonly kind: 'missing'; readonly storeNow: Date } | ZLinkAuthoritySnapshot;
69
68
 
70
69
  export type ZLinkAuthorityMutation =
71
70
  | {
@@ -120,9 +119,7 @@ export interface ZLinkAuthorityPage {
120
119
  readonly nextCursor?: ZLinkAuthorityScanCursor;
121
120
  }
122
121
 
123
- export type ZLinkAuthorityScanResult =
124
- | ZLinkAuthorityPage
125
- | { readonly kind: 'scanExpired' };
122
+ export type ZLinkAuthorityScanResult = ZLinkAuthorityPage | { readonly kind: 'scanExpired' };
126
123
 
127
124
  export interface ZLinkObjectCreationKey {
128
125
  readonly kind: ZLinkPlacementObjectKind;
@@ -249,9 +246,7 @@ export interface ZLinkObjectAbortRequest {
249
246
  }
250
247
 
251
248
  export type ZLinkObjectAbortResult =
252
- | { readonly kind: 'aborted' }
253
- | { readonly kind: 'alreadyAborted' }
254
- | { readonly kind: 'stale' };
249
+ { readonly kind: 'aborted' } | { readonly kind: 'alreadyAborted' } | { readonly kind: 'stale' };
255
250
 
256
251
  export interface ZLinkAggregateId {
257
252
  readonly value: string;
@@ -296,6 +291,4 @@ export type ZLinkAggregateCommitResult =
296
291
  | { readonly kind: 'generationExhausted' };
297
292
 
298
293
  export type ZLinkAggregateAbortResult =
299
- | { readonly kind: 'aborted' }
300
- | { readonly kind: 'alreadyAborted' }
301
- | { readonly kind: 'stale' };
294
+ { readonly kind: 'aborted' } | { readonly kind: 'alreadyAborted' } | { readonly kind: 'stale' };
@@ -1,6 +1,11 @@
1
1
  import type { RoutingId, SpotId } from '../Common';
2
2
  import type { ZLinkSpotKind } from '../Spots';
3
- import type { ZLinkLocationAutoConnectType, ZLinkLocationKind, ZLinkLocationRole, ZLinkRouteKind } from './Values';
3
+ import type {
4
+ ZLinkLocationAutoConnectType,
5
+ ZLinkLocationKind,
6
+ ZLinkLocationRole,
7
+ ZLinkRouteKind
8
+ } from './Values';
4
9
 
5
10
  /**
6
11
  * Peer identity is the full five-component tuple. Missing optional components
@@ -16,8 +16,9 @@ export interface ZLinkLocationOptions {
16
16
  relocationNodeInFlightPayloadBudgetBytes(value: number): this;
17
17
  }
18
18
 
19
- export type ZLinkLocationOptionOverrides =
20
- Partial<ZLinkLocationOptionValues> & { readonly listPageSize?: number };
19
+ export type ZLinkLocationOptionOverrides = Partial<ZLinkLocationOptionValues> & {
20
+ readonly listPageSize?: number;
21
+ };
21
22
 
22
23
  export const zlinkRuntimeDefaultLocationOptions: Readonly<
23
24
  ZLinkLocationOptionValues & { readonly listPageSize: number }
@@ -37,10 +37,7 @@ export interface ZLinkRelocationStore {
37
37
  retentionMs: number,
38
38
  signal?: AbortSignal
39
39
  ): Promise<ZLinkBlobPutResult>;
40
- read(
41
- reference: ZLinkBlobReference,
42
- signal?: AbortSignal
43
- ): Promise<ZLinkBlobReadResult>;
40
+ read(reference: ZLinkBlobReference, signal?: AbortSignal): Promise<ZLinkBlobReadResult>;
44
41
  renew(
45
42
  reference: ZLinkBlobReference,
46
43
  retentionMs: number,
@@ -1,8 +1,8 @@
1
- import type {
2
- ZLinkPeerLocation,
3
- ZLinkPeerLocationFilter,
4
- } from './Models';
1
+ import type { ZLinkPeerLocation, ZLinkPeerLocationFilter } from './Models';
5
2
 
6
3
  export interface ZLinkPeerLocationResolver {
7
- listLivePeers(filter: ZLinkPeerLocationFilter, signal?: AbortSignal): Promise<readonly ZLinkPeerLocation[]>;
4
+ listLivePeers(
5
+ filter: ZLinkPeerLocationFilter,
6
+ signal?: AbortSignal
7
+ ): Promise<readonly ZLinkPeerLocation[]>;
8
8
  }
@@ -6,7 +6,7 @@ import type {
6
6
  ZLinkLocationTopologyEntry,
7
7
  ZLinkLocationTopologyFilter,
8
8
  ZLinkMeshNodeDescriptor,
9
- ZLinkPageRequest,
9
+ ZLinkPageRequest
10
10
  } from './Models';
11
11
  import type { ZLinkPlacementObjectKind } from './Authority';
12
12
 
@@ -52,5 +52,9 @@ export interface ZLinkLocationRuntimeQuery {
52
52
  spotId: import('../Common').SpotId,
53
53
  signal?: AbortSignal
54
54
  ): Promise<ZLinkLocationObjectEntry | undefined>;
55
- listObjectLocations(filter: ZLinkLocationObjectFilter, page?: ZLinkPageRequest, signal?: AbortSignal): Promise<ZLinkLocationPage<ZLinkLocationObjectEntry>>;
55
+ listObjectLocations(
56
+ filter: ZLinkLocationObjectFilter,
57
+ page?: ZLinkPageRequest,
58
+ signal?: AbortSignal
59
+ ): Promise<ZLinkLocationPage<ZLinkLocationObjectEntry>>;
56
60
  }
@@ -81,8 +81,7 @@ export interface ZLinkStoreScanPage {
81
81
  }
82
82
 
83
83
  export type ZLinkStoreScanResult =
84
- | { readonly kind: 'page'; readonly value: ZLinkStoreScanPage }
85
- | { readonly kind: 'expired' };
84
+ { readonly kind: 'page'; readonly value: ZLinkStoreScanPage } | { readonly kind: 'expired' };
86
85
 
87
86
  export interface ZLinkLocationStore {
88
87
  read(key: ZLinkStoreKey, signal?: AbortSignal): Promise<ZLinkStoreReadResult>;
@@ -17,14 +17,8 @@ export type {
17
17
  ZLinkStoreWriteRequest,
18
18
  ZLinkStoreWriteResult
19
19
  } from './Stores';
20
- export {
21
- ZLinkLocationKind,
22
- ZLinkLocationRole
23
- } from './Values';
24
- export {
25
- ZLinkFrameworkRuntimeState,
26
- ZLinkObjectRole
27
- } from './Rows';
20
+ export { ZLinkLocationKind, ZLinkLocationRole } from './Values';
21
+ export { ZLinkFrameworkRuntimeState, ZLinkObjectRole } from './Rows';
28
22
  export type {
29
23
  ZLinkClientServerServerDescriptor,
30
24
  ZLinkFanoutPublisherDescriptor,
@@ -33,13 +33,7 @@ export type ZLinkMessageSurface =
33
33
  | 'classic_fanout'
34
34
  | 'actor_transfer';
35
35
 
36
- export type ZLinkMessageKind =
37
- | 'send'
38
- | 'request'
39
- | 'response'
40
- | 'error'
41
- | 'publish'
42
- | 'control';
36
+ export type ZLinkMessageKind = 'send' | 'request' | 'response' | 'error' | 'publish' | 'control';
43
37
 
44
38
  export type ZLinkRequestFailureReason = 'timeout' | 'cancelled' | 'shutdown';
45
39
 
@@ -1,8 +1,5 @@
1
1
  import type { RoutingId } from '../Common';
2
- import type {
3
- ZLinkApplicationJobQueueProfile,
4
- ZLinkCoreHwmProfile
5
- } from '../Dispatch';
2
+ import type { ZLinkApplicationJobQueueProfile, ZLinkCoreHwmProfile } from '../Dispatch';
6
3
  import type {
7
4
  ZLinkPeerState,
8
5
  ZLinkTopologyReason,
@@ -1,11 +1,6 @@
1
1
  import type { ZLinkActor } from '../Actors';
2
2
  import type { ZLinkChannelRequestCall, ZLinkPublishCall, ZLinkSendCall } from '../Channels';
3
- import type {
4
- RoutingId,
5
- SpotId,
6
- Type,
7
- ZLinkMessageMetadata
8
- } from '../Common';
3
+ import type { RoutingId, SpotId, Type, ZLinkMessageMetadata } from '../Common';
9
4
  import type { ZLinkSpotTimerHandler } from '../Handlers';
10
5
  import type { ZLinkTimer, ZLinkTimerOptions } from '../Timers';
11
6
  import type {
@@ -67,8 +62,7 @@ export interface ZLinkSpotContext<
67
62
  close(signal?: AbortSignal): Promise<boolean>;
68
63
  }
69
64
 
70
- export interface ZLinkInstanceSpotContext
71
- extends ZLinkSpotCommonContext<ZLinkInstanceSpot> {
65
+ export interface ZLinkInstanceSpotContext extends ZLinkSpotCommonContext<ZLinkInstanceSpot> {
72
66
  readonly handlers: ZLinkInstanceSpotHandlerRegistry;
73
67
  close(signal?: AbortSignal): Promise<boolean>;
74
68
  }
@@ -7,18 +7,26 @@ export enum ZLinkSpotKind {
7
7
 
8
8
  export function zlinkSpotKindToWire(kind: ZLinkSpotKind): number {
9
9
  switch (kind) {
10
- case ZLinkSpotKind.Entry: return 1;
11
- case ZLinkSpotKind.User: return 2;
12
- case ZLinkSpotKind.Instance: return 3;
13
- default: return 0;
10
+ case ZLinkSpotKind.Entry:
11
+ return 1;
12
+ case ZLinkSpotKind.User:
13
+ return 2;
14
+ case ZLinkSpotKind.Instance:
15
+ return 3;
16
+ default:
17
+ return 0;
14
18
  }
15
19
  }
16
20
 
17
21
  export function zlinkSpotKindFromWire(value: number): ZLinkSpotKind {
18
22
  switch (value) {
19
- case 1: return ZLinkSpotKind.Entry;
20
- case 2: return ZLinkSpotKind.User;
21
- case 3: return ZLinkSpotKind.Instance;
22
- default: return ZLinkSpotKind.Invalid;
23
+ case 1:
24
+ return ZLinkSpotKind.Entry;
25
+ case 2:
26
+ return ZLinkSpotKind.User;
27
+ case 3:
28
+ return ZLinkSpotKind.Instance;
29
+ default:
30
+ return ZLinkSpotKind.Invalid;
23
31
  }
24
32
  }
@@ -41,9 +41,7 @@ export interface ZLinkSpotRelocationReadyCall {
41
41
  defer(): void;
42
42
  }
43
43
 
44
- export interface ZLinkSpotActorMembershipLifecycle<
45
- TActor extends ZLinkActor = ZLinkActor
46
- > {
44
+ export interface ZLinkSpotActorMembershipLifecycle<TActor extends ZLinkActor = ZLinkActor> {
47
45
  onJoinedActor(actor: TActor): Promise<void>;
48
46
  onLeaveActor(actor: TActor): Promise<void>;
49
47
  onDisconnectActor?(actor: TActor): Promise<void>;
@@ -58,8 +56,9 @@ export interface ZLinkUserSpotActorLifecycle<
58
56
  onActorJoin(actorId: string, request: ZLinkMessage): Promise<ZLinkSpotActorJoinResult>;
59
57
  }
60
58
 
61
- export interface ZLinkSpot<TActor extends ZLinkActor = ZLinkActor>
62
- extends ZLinkUserSpotActorLifecycle<TActor> {
59
+ export interface ZLinkSpot<
60
+ TActor extends ZLinkActor = ZLinkActor
61
+ > extends ZLinkUserSpotActorLifecycle<TActor> {
63
62
  readonly context: ZLinkSpotContext<TActor>;
64
63
  configure?(): void;
65
64
  onCreate?(request: ZLinkMessage): Promise<ZLinkSpotCreateResponse>;
@@ -75,14 +74,12 @@ export interface ZLinkInstanceSpot {
75
74
  onClosing?(context: ZLinkSpotClosingContext, cleanupSignal: AbortSignal): Promise<void>;
76
75
  }
77
76
 
78
- export interface ZLinkEntrySpot<TActor extends ZLinkActor = ZLinkActor>
79
- extends ZLinkSpotActorMembershipLifecycle<TActor> {
77
+ export interface ZLinkEntrySpot<
78
+ TActor extends ZLinkActor = ZLinkActor
79
+ > extends ZLinkSpotActorMembershipLifecycle<TActor> {
80
80
  readonly context: ZLinkEntrySpotContext<TActor>;
81
81
  configure?(): void;
82
82
  onInitialize?(): Promise<void>;
83
83
  onClosing?(context: ZLinkSpotClosingContext, cleanupSignal: AbortSignal): Promise<void>;
84
- onCreateActor?(
85
- actor: TActor,
86
- createRequest: ZLinkMessage
87
- ): Promise<ZLinkActorCreateResponse>;
84
+ onCreateActor?(actor: TActor, createRequest: ZLinkMessage): Promise<ZLinkActorCreateResponse>;
88
85
  }
@@ -1,5 +1,5 @@
1
1
  import type { RoutingId, ZLinkMessage } from '../Common';
2
- import type { ZLinkSessionActors } from './IZLinkSessionActor';
2
+ import type { ZLinkSessionActor, ZLinkSessionActors } from './IZLinkSessionActor';
3
3
  import type { ZLinkStreamError } from './ZLinkStreamError';
4
4
  import type { ZLinkSessionHandlerRegistry } from './IZLinkSessionPacketHandler';
5
5
 
@@ -16,9 +16,9 @@ export interface ZLinkSessionDispatchContext {
16
16
  readonly packetName: string;
17
17
  readonly metadata: ReadonlyMap<string, string>;
18
18
  readonly canReply: boolean;
19
+ readonly actor?: ZLinkSessionActor;
19
20
  }
20
21
 
21
-
22
22
  export interface ZLinkSessionFactory<TSession extends ZLinkSession = ZLinkSession> {
23
23
  create(context: ZLinkSessionContext): Promise<TSession>;
24
24
  }
@@ -12,6 +12,10 @@ export interface ZLinkSessionActor {
12
12
  readonly actorId: string;
13
13
  readonly ref: ActorRef;
14
14
  relay(payload: ZLinkMessage, signal?: AbortSignal): Promise<void>;
15
- relay(dispatch: ZLinkSessionDispatchContext, payload: ZLinkMessage, signal?: AbortSignal): Promise<void>;
15
+ relay(
16
+ dispatch: ZLinkSessionDispatchContext,
17
+ payload: ZLinkMessage,
18
+ signal?: AbortSignal
19
+ ): Promise<void>;
16
20
  notifyDisconnected(signal?: AbortSignal): Promise<void>;
17
21
  }
@@ -2,7 +2,11 @@ import type { Type, ZLinkMessage } from '../Common';
2
2
  import type { ZLinkSessionDispatchContext } from './IZLinkSession';
3
3
 
4
4
  export interface ZLinkSessionPacketHandler<TSessionContext, TMessage = ZLinkMessage> {
5
- handle(context: TSessionContext, dispatch: ZLinkSessionDispatchContext, message: TMessage): Promise<void>;
5
+ handle(
6
+ context: TSessionContext,
7
+ dispatch: ZLinkSessionDispatchContext,
8
+ message: TMessage
9
+ ): Promise<void>;
6
10
  }
7
11
 
8
12
  export interface ZLinkSessionHandlerRegistry {
package/src/internal.ts CHANGED
@@ -12,11 +12,12 @@ export * from './runtime/configuration';
12
12
  export * from './runtime/locations';
13
13
  export * from './runtime/locations/key-codec';
14
14
  export * from './runtime/locations/canonical-codec';
15
- export { ZLinkLocationAutoConnectType, ZLinkLocationKind, ZLinkRouteKind } from './contracts/Locations/Values';
16
15
  export {
17
- ZLinkLocationWriteIntent,
18
- ZLinkLocationWriteStatus
19
- } from './contracts/Locations/Writes';
16
+ ZLinkLocationAutoConnectType,
17
+ ZLinkLocationKind,
18
+ ZLinkRouteKind
19
+ } from './contracts/Locations/Values';
20
+ export { ZLinkLocationWriteIntent, ZLinkLocationWriteStatus } from './contracts/Locations/Writes';
20
21
  export * from './runtime/channels';
21
22
  export * from './runtime/backend';
22
23
  export * from './runtime/codecs';
@@ -14,38 +14,46 @@ export function matchesPeerLocation(
14
14
  row: ZLinkPeerLocation,
15
15
  filter: ZLinkPeerLocationFilter
16
16
  ): boolean {
17
- return (filter.autoConnectType === undefined || row.autoConnectType === filter.autoConnectType)
18
- && (filter.meshName === undefined || row.meshName === filter.meshName)
19
- && (filter.role === undefined || row.role === filter.role)
20
- && (filter.nodeRid === undefined || routingIdsEqual(row.nodeRid, filter.nodeRid))
21
- && (filter.endpoint === undefined || row.endpoint === filter.endpoint);
17
+ return (
18
+ (filter.autoConnectType === undefined || row.autoConnectType === filter.autoConnectType) &&
19
+ (filter.meshName === undefined || row.meshName === filter.meshName) &&
20
+ (filter.role === undefined || row.role === filter.role) &&
21
+ (filter.nodeRid === undefined || routingIdsEqual(row.nodeRid, filter.nodeRid)) &&
22
+ (filter.endpoint === undefined || row.endpoint === filter.endpoint)
23
+ );
22
24
  }
23
25
 
24
26
  export function matchesSpotLocation(
25
27
  row: ZLinkSpotLocation,
26
28
  filter: ZLinkSpotLocationFilter
27
29
  ): boolean {
28
- return (filter.meshName === undefined || row.meshName === filter.meshName)
29
- && (filter.spotType === undefined || row.spotType === filter.spotType)
30
- && (filter.nodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.nodeRid))
31
- && (filter.spotKind === undefined || row.spotKind === filter.spotKind);
30
+ return (
31
+ (filter.meshName === undefined || row.meshName === filter.meshName) &&
32
+ (filter.spotType === undefined || row.spotType === filter.spotType) &&
33
+ (filter.nodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.nodeRid)) &&
34
+ (filter.spotKind === undefined || row.spotKind === filter.spotKind)
35
+ );
32
36
  }
33
37
 
34
38
  export function matchesActorLocation(
35
39
  row: ZLinkActorLocation,
36
40
  filter: ZLinkActorLocationFilter
37
41
  ): boolean {
38
- return (filter.actorType === undefined || row.actorType === filter.actorType)
39
- && (filter.nodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.nodeRid))
40
- && (filter.spotId === undefined || row.spotId === filter.spotId)
41
- && (filter.locationKind === undefined || row.spotKind === filter.locationKind);
42
+ return (
43
+ (filter.actorType === undefined || row.actorType === filter.actorType) &&
44
+ (filter.nodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.nodeRid)) &&
45
+ (filter.spotId === undefined || row.spotId === filter.spotId) &&
46
+ (filter.locationKind === undefined || row.spotKind === filter.locationKind)
47
+ );
42
48
  }
43
49
 
44
50
  export function matchesRouteLocation(
45
51
  row: ZLinkRouteLocation,
46
52
  filter: ZLinkRouteLocationFilter
47
53
  ): boolean {
48
- return (filter.routeKind === undefined || row.routeKind === filter.routeKind)
49
- && (filter.ownerNodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.ownerNodeRid))
50
- && (filter.ownerId === undefined || row.ownerId === filter.ownerId);
54
+ return (
55
+ (filter.routeKind === undefined || row.routeKind === filter.routeKind) &&
56
+ (filter.ownerNodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.ownerNodeRid)) &&
57
+ (filter.ownerId === undefined || row.ownerId === filter.ownerId)
58
+ );
51
59
  }