@zlink-systems/framework 0.30.3 → 0.32.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 (398) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActor.d.ts +2 -0
  3. package/dist/contracts/Actors/ZLinkSessionBindingIdentity.d.ts +6 -0
  4. package/dist/contracts/Actors/ZLinkSessionBindingIdentity.js +2 -0
  5. package/dist/contracts/Actors/index.d.ts +1 -0
  6. package/dist/contracts/Actors/index.js +1 -0
  7. package/dist/contracts/Common/CoreTypes.d.ts +1 -0
  8. package/dist/contracts/Common/HandlerMessageType.d.ts +8 -0
  9. package/dist/contracts/Common/HandlerMessageType.js +41 -0
  10. package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +1 -1
  11. package/dist/contracts/Common/ZLinkEncodedPayload.js +12 -20
  12. package/dist/contracts/Common/ZLinkMessage.js +11 -7
  13. package/dist/contracts/Common/encoded-payload-storage.d.ts +0 -2
  14. package/dist/contracts/Common/encoded-payload-storage.js +4 -16
  15. package/dist/contracts/Common/index.d.ts +1 -1
  16. package/dist/contracts/Common/payload-slab.d.ts +4 -0
  17. package/dist/contracts/Common/payload-slab.js +30 -0
  18. package/dist/contracts/Configuration/RegistrationBuilders.js +15 -9
  19. package/dist/contracts/Configuration/RegistrationTypes.d.ts +19 -0
  20. package/dist/contracts/Handlers/Contexts.d.ts +1 -0
  21. package/dist/contracts/Locations/Authority.d.ts +2 -0
  22. package/dist/internal.d.ts +9 -0
  23. package/dist/internal.js +23 -1
  24. package/dist/nest-integration.d.ts +1 -0
  25. package/dist/nest-integration.js +3 -1
  26. package/dist/runtime/actors/actor-client.d.ts +6 -2
  27. package/dist/runtime/actors/actor-client.js +120 -82
  28. package/dist/runtime/actors/actor-context.js +16 -5
  29. package/dist/runtime/actors/actor-execution-context.js +2 -2
  30. package/dist/runtime/actors/actor-handoff.d.ts +12 -1
  31. package/dist/runtime/actors/actor-handoff.js +79 -34
  32. package/dist/runtime/actors/actor-join-deferred-scope.js +6 -6
  33. package/dist/runtime/actors/actor-local-native-join.d.ts +2 -2
  34. package/dist/runtime/actors/actor-local-native-join.js +19 -17
  35. package/dist/runtime/actors/actor-mailbox.d.ts +1 -1
  36. package/dist/runtime/actors/actor-remote-joiner.d.ts +2 -2
  37. package/dist/runtime/actors/actor-remote-joiner.js +4 -4
  38. package/dist/runtime/actors/actor-routed-join-transport.d.ts +9 -3
  39. package/dist/runtime/actors/actor-routed-json-request.d.ts +3 -0
  40. package/dist/runtime/actors/actor-runtime-contracts.d.ts +2 -2
  41. package/dist/runtime/actors/actor-runtime-state.d.ts +1 -1
  42. package/dist/runtime/actors/spot-actor-dispatch.d.ts +9 -5
  43. package/dist/runtime/actors/spot-actor-dispatch.js +60 -38
  44. package/dist/runtime/admission.d.ts +6 -4
  45. package/dist/runtime/admission.js +21 -10
  46. package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +1 -0
  47. package/dist/runtime/application-jobs/application-ingress-record-owner.js +3 -0
  48. package/dist/runtime/backend/contracts/index.d.ts +26 -10
  49. package/dist/runtime/backend/mesh-completion-table.d.ts +7 -1
  50. package/dist/runtime/backend/mesh-completion-table.js +84 -20
  51. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +19 -6
  52. package/dist/runtime/backend/mesh-dispatch-pump.js +246 -147
  53. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -2
  54. package/dist/runtime/backend/node/node-backend-adapter-support.js +27 -19
  55. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +5 -2
  56. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +70 -13
  57. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  58. package/dist/runtime/backend/node/node-event-loop-poller.js +4 -3
  59. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +5 -1
  60. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +7 -2
  61. package/dist/runtime/backend/node/node-raw-binding-port.js +99 -63
  62. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +34 -16
  63. package/dist/runtime/backend/node/node-raw-mesh-backend.js +210 -106
  64. package/dist/runtime/backend/node/node-socket-backend-adapter.js +20 -6
  65. package/dist/runtime/backend/raw-binding-port.d.ts +6 -3
  66. package/dist/runtime/channels/channel-clients.js +3 -3
  67. package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +11 -7
  68. package/dist/runtime/channels/channel-dispatch-pipeline.js +40 -22
  69. package/dist/runtime/channels/channel-dispatch-services.d.ts +3 -1
  70. package/dist/runtime/channels/channel-dispatch-services.js +7 -6
  71. package/dist/runtime/channels/channel-dispatchers.d.ts +13 -6
  72. package/dist/runtime/channels/channel-dispatchers.js +57 -36
  73. package/dist/runtime/channels/channel-envelope.d.ts +2 -2
  74. package/dist/runtime/channels/channel-envelope.js +609 -83
  75. package/dist/runtime/channels/channel-multipart.d.ts +1 -0
  76. package/dist/runtime/channels/channel-multipart.js +10 -6
  77. package/dist/runtime/channels/channel-outbound-operations.d.ts +6 -9
  78. package/dist/runtime/channels/channel-outbound-operations.js +107 -105
  79. package/dist/runtime/channels/channel-receive-loops.d.ts +9 -7
  80. package/dist/runtime/channels/channel-receive-loops.js +126 -90
  81. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +23 -6
  82. package/dist/runtime/channels/channel-runtime-lifecycle.js +47 -38
  83. package/dist/runtime/channels/channel-runtime-manager.d.ts +13 -6
  84. package/dist/runtime/channels/channel-runtime-manager.js +32 -14
  85. package/dist/runtime/channels/channel-socket-registry.d.ts +28 -4
  86. package/dist/runtime/channels/channel-socket-registry.js +9 -1
  87. package/dist/runtime/channels/channel-transports.d.ts +23 -16
  88. package/dist/runtime/channels/channel-transports.js +139 -119
  89. package/dist/runtime/channels/dispatch-error-reporter.d.ts +4 -4
  90. package/dist/runtime/channels/dispatch-error-reporter.js +5 -5
  91. package/dist/runtime/channels/fanout-location-runtime.d.ts +1 -1
  92. package/dist/runtime/channels/local-spot-route-transport.d.ts +5 -2
  93. package/dist/runtime/channels/local-spot-route-transport.js +15 -18
  94. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +6 -3
  95. package/dist/runtime/channels/router-socket-spot-route-transport.js +33 -19
  96. package/dist/runtime/channels/source-spot-router.d.ts +6 -3
  97. package/dist/runtime/channels/source-spot-router.js +34 -23
  98. package/dist/runtime/channels/spot-node-route-transport.d.ts +6 -3
  99. package/dist/runtime/channels/spot-node-route-transport.js +23 -17
  100. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +6 -3
  101. package/dist/runtime/channels/spot-route-bridge-transport.js +38 -24
  102. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +8 -4
  103. package/dist/runtime/channels/spot-route-dispatch-strategy.js +36 -23
  104. package/dist/runtime/diagnostics/dispatch-error-details.js +9 -3
  105. package/dist/runtime/diagnostics/message-flow-bootstrap.d.ts +1 -0
  106. package/dist/runtime/diagnostics/message-flow-bootstrap.js +8 -0
  107. package/dist/runtime/diagnostics/message-flow-delivery.d.ts +47 -0
  108. package/dist/runtime/diagnostics/message-flow-delivery.js +149 -0
  109. package/dist/runtime/diagnostics/message-flow-record.d.ts +50 -0
  110. package/dist/runtime/diagnostics/message-flow-record.js +228 -0
  111. package/dist/runtime/diagnostics/message-flow-worker.d.ts +1 -0
  112. package/dist/runtime/diagnostics/message-flow-worker.js +118 -0
  113. package/dist/runtime/diagnostics/message-flow.d.ts +7 -19
  114. package/dist/runtime/diagnostics/message-flow.js +42 -290
  115. package/dist/runtime/diagnostics/runtime-metrics.d.ts +4 -3
  116. package/dist/runtime/diagnostics/runtime-metrics.js +8 -4
  117. package/dist/runtime/execution/index.d.ts +1 -0
  118. package/dist/runtime/execution/index.js +6 -3
  119. package/dist/runtime/execution/serial-execution-queue.d.ts +26 -13
  120. package/dist/runtime/execution/serial-execution-queue.js +75 -71
  121. package/dist/runtime/foundation/durable-service-request.d.ts +12 -3
  122. package/dist/runtime/foundation/durable-service-request.js +158 -73
  123. package/dist/runtime/foundation/operation-registry.d.ts +33 -3
  124. package/dist/runtime/foundation/operation-registry.js +272 -33
  125. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +62 -23
  126. package/dist/runtime/foundation/raw-service-mesh-runtime.js +373 -194
  127. package/dist/runtime/foundation/request-runtime.d.ts +17 -0
  128. package/dist/runtime/foundation/request-runtime.js +163 -0
  129. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  130. package/dist/runtime/foundation/service-discovery-registry.js +6 -0
  131. package/dist/runtime/foundation/service-liveness-registry.d.ts +1 -1
  132. package/dist/runtime/foundation/service-mailbox.d.ts +4 -2
  133. package/dist/runtime/foundation/service-mailbox.js +4 -1
  134. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +2 -2
  135. package/dist/runtime/foundation/service-relocation-object-owner.js +12 -5
  136. package/dist/runtime/foundation/service-runtime-contracts.d.ts +7 -2
  137. package/dist/runtime/foundation/service-stateful-registry.d.ts +6 -2
  138. package/dist/runtime/foundation/service-stateful-registry.js +38 -17
  139. package/dist/runtime/foundation/service-stateful-runtime.d.ts +91 -26
  140. package/dist/runtime/foundation/service-stateful-runtime.js +245 -120
  141. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -0
  142. package/dist/runtime/foundation/service-stateful-wire-codec.js +15 -0
  143. package/dist/runtime/foundation/service-topology-registry.d.ts +2 -0
  144. package/dist/runtime/foundation/service-topology-registry.js +13 -3
  145. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  146. package/dist/runtime/foundation/service-wire-constants.generated.js +12 -0
  147. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +5 -1
  148. package/dist/runtime/foundation/service-wire-m6a-codec.js +50 -15
  149. package/dist/runtime/host/actor-packet-relay.d.ts +5 -6
  150. package/dist/runtime/host/actor-packet-relay.js +58 -57
  151. package/dist/runtime/host/actor-placement-coordinator.d.ts +1 -1
  152. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  153. package/dist/runtime/host/actor-runtime-options-factory.js +3 -2
  154. package/dist/runtime/host/actor-transfer-runtime.d.ts +3 -3
  155. package/dist/runtime/host/application-job-queue.d.ts +7 -5
  156. package/dist/runtime/host/application-job-queue.js +33 -21
  157. package/dist/runtime/host/bound-session-relay.js +0 -1
  158. package/dist/runtime/host/channel-runtime-options-factory.d.ts +2 -0
  159. package/dist/runtime/host/channel-runtime-options-factory.js +1 -0
  160. package/dist/runtime/host/entry-actor-runtime.d.ts +5 -2
  161. package/dist/runtime/host/entry-actor-runtime.js +2 -2
  162. package/dist/runtime/host/index.d.ts +106 -37
  163. package/dist/runtime/host/index.js +303 -151
  164. package/dist/runtime/host/location-runtime-owner.d.ts +2 -2
  165. package/dist/runtime/host/location-runtime-owner.js +1 -1
  166. package/dist/runtime/host/service-relocation-host-runtime.d.ts +195 -45
  167. package/dist/runtime/host/service-relocation-host-runtime.js +257 -144
  168. package/dist/runtime/host/spot-address-transport.d.ts +3 -0
  169. package/dist/runtime/host/spot-address-transport.js +73 -76
  170. package/dist/runtime/host/spot-runtime-options-factory.js +2 -0
  171. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -1
  172. package/dist/runtime/host/user-spot-creation-coordinator.js +49 -21
  173. package/dist/runtime/internal-observation.d.ts +1 -0
  174. package/dist/runtime/internal-observation.js +5 -0
  175. package/dist/runtime/locations/actor-location-claims.d.ts +1 -1
  176. package/dist/runtime/locations/actor-location-claims.js +15 -6
  177. package/dist/runtime/locations/auto-connect-loop.d.ts +0 -1
  178. package/dist/runtime/locations/auto-connect-loop.js +25 -19
  179. package/dist/runtime/locations/auto-connect-planner.js +2 -5
  180. package/dist/runtime/locations/auto-connect-reconciler.d.ts +1 -0
  181. package/dist/runtime/locations/auto-connect-reconciler.js +35 -23
  182. package/dist/runtime/locations/in-memory-authority-store.d.ts +1 -0
  183. package/dist/runtime/locations/in-memory-authority-store.js +15 -5
  184. package/dist/runtime/locations/in-memory-location-store.d.ts +0 -2
  185. package/dist/runtime/locations/in-memory-location-store.js +1 -38
  186. package/dist/runtime/locations/lifecycle.d.ts +1 -1
  187. package/dist/runtime/locations/lifecycle.js +2 -2
  188. package/dist/runtime/locations/location-store-repository.d.ts +0 -1
  189. package/dist/runtime/locations/location-store-repository.js +163 -246
  190. package/dist/runtime/locations/resolvers.d.ts +8 -1
  191. package/dist/runtime/locations/resolvers.js +16 -2
  192. package/dist/runtime/locations/runtime.d.ts +3 -3
  193. package/dist/runtime/locations/runtime.js +12 -16
  194. package/dist/runtime/messaging/creation-payload-codec.js +8 -7
  195. package/dist/runtime/messaging/framework-json-v1.d.ts +1 -1
  196. package/dist/runtime/messaging/framework-json-v1.js +6 -2
  197. package/dist/runtime/messaging/payload-codec.js +21 -35
  198. package/dist/runtime/messaging/request-deadline.d.ts +4 -2
  199. package/dist/runtime/messaging/request-deadline.js +40 -25
  200. package/dist/runtime/messaging/request-result.d.ts +14 -1
  201. package/dist/runtime/messaging/request-result.js +74 -13
  202. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +4 -0
  203. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -7
  204. package/dist/runtime/spots/index.d.ts +28 -7
  205. package/dist/runtime/spots/index.js +31 -6
  206. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -2
  207. package/dist/runtime/spots/spot-activation-registry.js +13 -8
  208. package/dist/runtime/spots/spot-activation-state.d.ts +2 -0
  209. package/dist/runtime/spots/spot-activation-state.js +1 -0
  210. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +9 -4
  211. package/dist/runtime/spots/spot-actor-admission-coordinator.js +33 -12
  212. package/dist/runtime/spots/spot-actor-ingress-admission.d.ts +40 -0
  213. package/dist/runtime/spots/spot-actor-ingress-admission.js +78 -0
  214. package/dist/runtime/spots/spot-actor-membership.js +3 -3
  215. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +16 -43
  216. package/dist/runtime/spots/spot-actor-packet-dispatch.js +56 -113
  217. package/dist/runtime/spots/spot-actor-packet-drain.d.ts +1 -0
  218. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -5
  219. package/dist/runtime/spots/spot-entry-activation.d.ts +4 -3
  220. package/dist/runtime/spots/spot-entry-activation.js +7 -12
  221. package/dist/runtime/spots/spot-handler-registry.d.ts +5 -1
  222. package/dist/runtime/spots/spot-handler-registry.js +31 -15
  223. package/dist/runtime/spots/spot-manager-public.js +3 -2
  224. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +11 -6
  225. package/dist/runtime/spots/spot-node-runtime-manager.js +6 -1
  226. package/dist/runtime/spots/spot-outbound.d.ts +8 -2
  227. package/dist/runtime/spots/spot-outbound.js +5 -5
  228. package/dist/runtime/spots/spot-route-packet-dispatch.js +13 -8
  229. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +3 -3
  230. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +9 -5
  231. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -2
  232. package/dist/runtime/spots/spot-serial-executor.d.ts +2 -1
  233. package/dist/runtime/spots/spot-serial-turn-executor.js +20 -26
  234. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -2
  235. package/dist/runtime/spots/spot-timer.d.ts +1 -1
  236. package/dist/runtime/streams/actor-session-binding-registry.d.ts +11 -3
  237. package/dist/runtime/streams/actor-session-binding-registry.js +28 -0
  238. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +2 -2
  239. package/dist/runtime/streams/bound-actor-relay-sender.js +3 -4
  240. package/dist/runtime/streams/bound-session-service.js +6 -7
  241. package/dist/runtime/streams/index.d.ts +3 -3
  242. package/dist/runtime/streams/index.js +22 -2
  243. package/dist/runtime/streams/managed-stream.js +2 -1
  244. package/dist/runtime/streams/session-calls.d.ts +1 -1
  245. package/dist/runtime/streams/session-calls.js +3 -9
  246. package/dist/runtime/streams/session-context.d.ts +2 -2
  247. package/dist/runtime/streams/session-context.js +2 -2
  248. package/dist/runtime/streams/stream-session-runtime.d.ts +1 -0
  249. package/dist/runtime/streams/stream-session-runtime.js +64 -33
  250. package/package.json +3 -3
  251. package/src/contracts/Actors/ZLinkActor.ts +6 -0
  252. package/src/contracts/Actors/ZLinkSessionBindingIdentity.ts +7 -0
  253. package/src/contracts/Actors/index.ts +1 -0
  254. package/src/contracts/Common/CoreTypes.ts +1 -0
  255. package/src/contracts/Common/HandlerMessageType.ts +50 -0
  256. package/src/contracts/Common/ZLinkEncodedPayload.ts +13 -25
  257. package/src/contracts/Common/ZLinkMessage.ts +11 -7
  258. package/src/contracts/Common/encoded-payload-storage.ts +4 -16
  259. package/src/contracts/Common/index.ts +1 -1
  260. package/src/contracts/Common/payload-slab.ts +29 -0
  261. package/src/contracts/Configuration/RegistrationBuilders.ts +29 -15
  262. package/src/contracts/Configuration/RegistrationTypes.ts +19 -0
  263. package/src/contracts/Handlers/Contexts.ts +1 -0
  264. package/src/contracts/Locations/Authority.ts +7 -1
  265. package/src/internal.ts +17 -0
  266. package/src/nest-integration.ts +1 -0
  267. package/src/runtime/actors/actor-client.ts +257 -163
  268. package/src/runtime/actors/actor-context.ts +26 -14
  269. package/src/runtime/actors/actor-execution-context.ts +2 -2
  270. package/src/runtime/actors/actor-handoff.ts +86 -51
  271. package/src/runtime/actors/actor-join-deferred-scope.ts +6 -6
  272. package/src/runtime/actors/actor-local-native-join.ts +38 -17
  273. package/src/runtime/actors/actor-mailbox.ts +1 -1
  274. package/src/runtime/actors/actor-remote-joiner.ts +8 -4
  275. package/src/runtime/actors/actor-routed-join-transport.ts +13 -5
  276. package/src/runtime/actors/actor-routed-json-request.ts +3 -0
  277. package/src/runtime/actors/actor-runtime-contracts.ts +4 -2
  278. package/src/runtime/actors/actor-runtime-state.ts +1 -1
  279. package/src/runtime/actors/spot-actor-dispatch.ts +70 -68
  280. package/src/runtime/admission.ts +42 -15
  281. package/src/runtime/application-jobs/application-ingress-record-owner.ts +4 -0
  282. package/src/runtime/backend/contracts/index.ts +77 -10
  283. package/src/runtime/backend/mesh-completion-table.ts +106 -15
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +294 -146
  285. package/src/runtime/backend/node/node-backend-adapter-support.ts +42 -32
  286. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +91 -34
  287. package/src/runtime/backend/node/node-event-loop-poller.ts +14 -5
  288. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +5 -1
  289. package/src/runtime/backend/node/node-raw-binding-port.ts +180 -69
  290. package/src/runtime/backend/node/node-raw-mesh-backend.ts +386 -157
  291. package/src/runtime/backend/node/node-socket-backend-adapter.ts +56 -11
  292. package/src/runtime/backend/raw-binding-port.ts +13 -5
  293. package/src/runtime/channels/channel-clients.ts +26 -11
  294. package/src/runtime/channels/channel-dispatch-pipeline.ts +77 -65
  295. package/src/runtime/channels/channel-dispatch-services.ts +7 -12
  296. package/src/runtime/channels/channel-dispatchers.ts +93 -39
  297. package/src/runtime/channels/channel-envelope.ts +680 -144
  298. package/src/runtime/channels/channel-multipart.ts +17 -13
  299. package/src/runtime/channels/channel-outbound-operations.ts +204 -178
  300. package/src/runtime/channels/channel-receive-loops.ts +160 -107
  301. package/src/runtime/channels/channel-runtime-lifecycle.ts +64 -59
  302. package/src/runtime/channels/channel-runtime-manager.ts +74 -27
  303. package/src/runtime/channels/channel-socket-registry.ts +20 -5
  304. package/src/runtime/channels/channel-transports.ts +414 -287
  305. package/src/runtime/channels/dispatch-error-reporter.ts +4 -9
  306. package/src/runtime/channels/local-spot-route-transport.ts +27 -29
  307. package/src/runtime/channels/router-socket-spot-route-transport.ts +63 -32
  308. package/src/runtime/channels/source-spot-router.ts +75 -38
  309. package/src/runtime/channels/spot-node-route-transport.ts +67 -37
  310. package/src/runtime/channels/spot-route-bridge-transport.ts +62 -30
  311. package/src/runtime/channels/spot-route-dispatch-strategy.ts +105 -34
  312. package/src/runtime/diagnostics/dispatch-error-details.ts +10 -2
  313. package/src/runtime/diagnostics/message-flow-bootstrap.ts +6 -0
  314. package/src/runtime/diagnostics/message-flow-delivery.ts +171 -0
  315. package/src/runtime/diagnostics/message-flow-record.ts +295 -0
  316. package/src/runtime/diagnostics/message-flow-worker.ts +146 -0
  317. package/src/runtime/diagnostics/message-flow.ts +49 -362
  318. package/src/runtime/diagnostics/runtime-metrics.ts +10 -4
  319. package/src/runtime/execution/index.ts +6 -0
  320. package/src/runtime/execution/serial-execution-queue.ts +94 -96
  321. package/src/runtime/foundation/durable-service-request.ts +212 -89
  322. package/src/runtime/foundation/operation-registry.ts +287 -38
  323. package/src/runtime/foundation/raw-service-mesh-runtime.ts +617 -292
  324. package/src/runtime/foundation/request-runtime.ts +227 -0
  325. package/src/runtime/foundation/service-discovery-registry.ts +7 -0
  326. package/src/runtime/foundation/service-liveness-registry.ts +1 -1
  327. package/src/runtime/foundation/service-mailbox.ts +7 -2
  328. package/src/runtime/foundation/service-relocation-object-owner.ts +21 -6
  329. package/src/runtime/foundation/service-runtime-contracts.ts +12 -2
  330. package/src/runtime/foundation/service-stateful-registry.ts +52 -19
  331. package/src/runtime/foundation/service-stateful-runtime.ts +365 -198
  332. package/src/runtime/foundation/service-stateful-wire-codec.ts +18 -0
  333. package/src/runtime/foundation/service-topology-registry.ts +21 -3
  334. package/src/runtime/foundation/service-wire-constants.generated.ts +10 -0
  335. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -17
  336. package/src/runtime/host/actor-packet-relay.ts +160 -156
  337. package/src/runtime/host/actor-placement-coordinator.ts +1 -1
  338. package/src/runtime/host/actor-runtime-options-factory.ts +7 -2
  339. package/src/runtime/host/actor-transfer-runtime.ts +3 -3
  340. package/src/runtime/host/application-job-queue.ts +56 -27
  341. package/src/runtime/host/bound-session-relay.ts +0 -1
  342. package/src/runtime/host/channel-runtime-options-factory.ts +3 -0
  343. package/src/runtime/host/entry-actor-runtime.ts +14 -6
  344. package/src/runtime/host/index.ts +388 -113
  345. package/src/runtime/host/location-runtime-owner.ts +3 -3
  346. package/src/runtime/host/service-relocation-host-runtime.ts +380 -252
  347. package/src/runtime/host/spot-address-transport.ts +110 -95
  348. package/src/runtime/host/spot-runtime-options-factory.ts +3 -0
  349. package/src/runtime/host/user-spot-creation-coordinator.ts +69 -22
  350. package/src/runtime/internal-observation.ts +2 -0
  351. package/src/runtime/locations/actor-location-claims.ts +42 -16
  352. package/src/runtime/locations/auto-connect-loop.ts +24 -16
  353. package/src/runtime/locations/auto-connect-planner.ts +2 -5
  354. package/src/runtime/locations/auto-connect-reconciler.ts +37 -24
  355. package/src/runtime/locations/in-memory-authority-store.ts +27 -7
  356. package/src/runtime/locations/in-memory-location-store.ts +1 -74
  357. package/src/runtime/locations/lifecycle.ts +4 -2
  358. package/src/runtime/locations/location-store-repository.ts +228 -308
  359. package/src/runtime/locations/resolvers.ts +20 -8
  360. package/src/runtime/locations/runtime.ts +16 -28
  361. package/src/runtime/messaging/creation-payload-codec.ts +12 -10
  362. package/src/runtime/messaging/framework-json-v1.ts +10 -1
  363. package/src/runtime/messaging/payload-codec.ts +50 -75
  364. package/src/runtime/messaging/request-deadline.ts +47 -39
  365. package/src/runtime/messaging/request-result.ts +88 -17
  366. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  367. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  368. package/src/runtime/spots/index.ts +57 -10
  369. package/src/runtime/spots/spot-activation-registry.ts +12 -8
  370. package/src/runtime/spots/spot-activation-state.ts +2 -0
  371. package/src/runtime/spots/spot-actor-admission-coordinator.ts +62 -37
  372. package/src/runtime/spots/spot-actor-ingress-admission.ts +157 -0
  373. package/src/runtime/spots/spot-actor-membership.ts +8 -5
  374. package/src/runtime/spots/spot-actor-packet-dispatch.ts +122 -206
  375. package/src/runtime/spots/spot-actor-packet-drain.ts +21 -6
  376. package/src/runtime/spots/spot-entry-activation.ts +25 -35
  377. package/src/runtime/spots/spot-handler-registry.ts +72 -15
  378. package/src/runtime/spots/spot-manager-public.ts +4 -2
  379. package/src/runtime/spots/spot-node-runtime-manager.ts +16 -7
  380. package/src/runtime/spots/spot-outbound.ts +26 -10
  381. package/src/runtime/spots/spot-route-packet-dispatch.ts +18 -8
  382. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +14 -8
  383. package/src/runtime/spots/spot-runtime-ports.ts +5 -2
  384. package/src/runtime/spots/spot-serial-executor.ts +1 -1
  385. package/src/runtime/spots/spot-serial-turn-executor.ts +25 -40
  386. package/src/runtime/spots/spot-subscription-dispatch.ts +9 -2
  387. package/src/runtime/spots/spot-timer.ts +1 -1
  388. package/src/runtime/streams/actor-session-binding-registry.ts +46 -3
  389. package/src/runtime/streams/bound-actor-relay-sender.ts +16 -5
  390. package/src/runtime/streams/bound-session-service.ts +10 -7
  391. package/src/runtime/streams/index.ts +30 -4
  392. package/src/runtime/streams/managed-stream.ts +2 -1
  393. package/src/runtime/streams/session-calls.ts +9 -14
  394. package/src/runtime/streams/session-context.ts +6 -11
  395. package/src/runtime/streams/stream-session-runtime.ts +79 -40
  396. package/dist/runtime/spots/spot-lifecycle-metrics.d.ts +0 -8
  397. package/dist/runtime/spots/spot-lifecycle-metrics.js +0 -17
  398. package/src/runtime/spots/spot-lifecycle-metrics.ts +0 -16
@@ -0,0 +1,50 @@
1
+ import type { Type, ZLinkMessageTypeResolver } from './CoreTypes';
2
+
3
+ type HandlerTypeWithMessageType = Type & {
4
+ readonly messageType?: ZLinkMessageTypeResolver;
5
+ };
6
+
7
+ export interface ZLinkHandlerMessageType {
8
+ readonly type: Type;
9
+ }
10
+
11
+ /** Reads a handler's declared type once and defers/caches a lazy resolver until decode. */
12
+ export function resolveHandlerMessageType(handlerType: Type): ZLinkHandlerMessageType | undefined {
13
+ const declared = (handlerType as HandlerTypeWithMessageType).messageType;
14
+ if (declared === undefined) return undefined;
15
+ if (isTypeConstructor(declared)) return { type: declared };
16
+
17
+ let state: 'unresolved' | 'resolved' | 'failed' = 'unresolved';
18
+ let resolved: Type | undefined;
19
+ let failure: unknown;
20
+ return {
21
+ get type() {
22
+ if (state === 'unresolved') {
23
+ try {
24
+ resolved = declared();
25
+ state = 'resolved';
26
+ } catch (error) {
27
+ failure = error;
28
+ state = 'failed';
29
+ }
30
+ }
31
+ if (state === 'failed') throw failure;
32
+ return resolved!;
33
+ }
34
+ };
35
+ }
36
+
37
+ /** Converts a stored registration resolver to the constructor expected by a codec. */
38
+ export function resolveMessageTypeForDecode(
39
+ messageType?: ZLinkHandlerMessageType
40
+ ): Type | undefined {
41
+ return messageType?.type;
42
+ }
43
+
44
+ function isTypeConstructor(value: unknown): value is Type {
45
+ // Class constructors have a non-writable prototype property; ordinary resolver functions do not.
46
+ return (
47
+ typeof value === 'function' &&
48
+ Object.getOwnPropertyDescriptor(value, 'prototype')?.writable === false
49
+ );
50
+ }
@@ -1,16 +1,12 @@
1
- import {
2
- adoptEncodedPayload,
3
- borrowEncodedPayload,
4
- storeEncodedPayload
5
- } from './encoded-payload-storage';
6
-
7
1
  export class ZLinkEncodedPayload {
2
+ readonly #bytes: Buffer;
3
+
8
4
  private constructor(bytes: Uint8Array, owned: boolean) {
9
- if (owned) {
10
- adoptEncodedPayload(this, bytes);
11
- } else {
12
- storeEncodedPayload(this, bytes);
13
- }
5
+ this.#bytes = !owned
6
+ ? Buffer.from(bytes)
7
+ : Buffer.isBuffer(bytes)
8
+ ? bytes
9
+ : Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
14
10
  }
15
11
 
16
12
  /** Copies the supplied bytes. */
@@ -25,12 +21,12 @@ export class ZLinkEncodedPayload {
25
21
 
26
22
  /** Returns a copy of the stored bytes. */
27
23
  data(): Uint8Array {
28
- return new Uint8Array(this.stored());
24
+ return new Uint8Array(this.#bytes);
29
25
  }
30
26
 
31
27
  /** Returns the stored bytes without copying. Do not modify this view or its backing buffer. */
32
28
  view(): Readonly<Uint8Array> {
33
- return this.stored();
29
+ return this.#bytes;
34
30
  }
35
31
 
36
32
  toBytes(): Uint8Array {
@@ -38,30 +34,22 @@ export class ZLinkEncodedPayload {
38
34
  }
39
35
 
40
36
  copy(): ZLinkEncodedPayload {
41
- return ZLinkEncodedPayload.from(this.stored());
37
+ return ZLinkEncodedPayload.from(this.#bytes);
42
38
  }
43
39
 
44
40
  size(): number {
45
- return this.stored().length;
41
+ return this.#bytes.length;
46
42
  }
47
43
 
48
44
  isEmpty(): boolean {
49
- return this.stored().length === 0;
45
+ return this.#bytes.length === 0;
50
46
  }
51
47
 
52
48
  getString(encoding: BufferEncoding = 'utf8'): string {
53
- return this.stored().toString(encoding);
49
+ return this.#bytes.toString(encoding);
54
50
  }
55
51
 
56
52
  close(): void {
57
53
  // ZLinkEncodedPayload owns managed memory only; this mirrors Message-like readers.
58
54
  }
59
-
60
- private stored(): Buffer {
61
- const payload = borrowEncodedPayload(this);
62
- if (payload === undefined) {
63
- throw new Error('ZLink encoded payload storage is unavailable.');
64
- }
65
- return payload;
66
- }
67
55
  }
@@ -123,13 +123,17 @@ export function materializeZLinkMessageValue<T>(value: T, type?: Type<T>): T {
123
123
  }
124
124
 
125
125
  const materialized = Object.create(prototype) as Record<string, unknown>;
126
- for (const [key, item] of Object.entries(value as Record<string, unknown>)) {
127
- Object.defineProperty(materialized, key, {
128
- configurable: true,
129
- enumerable: true,
130
- value: item,
131
- writable: true
132
- });
126
+ const descriptor: PropertyDescriptor = {
127
+ configurable: true,
128
+ enumerable: true,
129
+ value: undefined,
130
+ writable: true
131
+ };
132
+ for (const key in value) {
133
+ if (Object.prototype.hasOwnProperty.call(value, key)) {
134
+ descriptor.value = (value as Record<string, unknown>)[key];
135
+ Object.defineProperty(materialized, key, descriptor);
136
+ }
133
137
  }
134
138
  return materialized as T;
135
139
  }
@@ -1,19 +1,7 @@
1
- const encodedPayloadStorage = new WeakMap<object, Buffer>();
2
-
3
- export function storeEncodedPayload(owner: object, bytes: Uint8Array): Buffer {
4
- const stored = Buffer.from(bytes);
5
- encodedPayloadStorage.set(owner, stored);
6
- return stored;
7
- }
8
-
9
- export function adoptEncodedPayload(owner: object, bytes: Uint8Array): Buffer {
10
- const stored = Buffer.isBuffer(bytes)
11
- ? bytes
12
- : Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
13
- encodedPayloadStorage.set(owner, stored);
14
- return stored;
15
- }
1
+ import { ZLinkEncodedPayload } from './ZLinkEncodedPayload';
16
2
 
17
3
  export function borrowEncodedPayload(owner: object): Buffer | undefined {
18
- return encodedPayloadStorage.get(owner);
4
+ return owner instanceof ZLinkEncodedPayload
5
+ ? (ZLinkEncodedPayload.prototype.view.call(owner) as Buffer)
6
+ : undefined;
19
7
  }
@@ -1,5 +1,5 @@
1
1
  export * from './ActorRef';
2
- export type { Type, RoutingId, ActorId, SpotId } from './CoreTypes';
2
+ export type { Type, ZLinkMessageTypeResolver, RoutingId, ActorId, SpotId } from './CoreTypes';
3
3
  export * from './ZLinkEncodedPayload';
4
4
  export * from './ZLinkMessageMetadata';
5
5
  export { ZLinkMessage, isZLinkMessage } from './ZLinkMessage';
@@ -0,0 +1,29 @@
1
+ const SLAB_BYTES = 64 * 1024;
2
+ const MAX_POOLED_BYTES = 16 * 1024;
3
+ const ALIGNMENT = 8;
4
+
5
+ let slab: Buffer | undefined;
6
+ let offset = 0;
7
+
8
+ /** Allocates independent bytes; previously returned regions are never reused. */
9
+ export function allocatePayloadBytes(length: number): Buffer {
10
+ if (length > MAX_POOLED_BYTES || length < 0 || !Number.isInteger(length)) {
11
+ return Buffer.allocUnsafe(length);
12
+ }
13
+ if (slab === undefined || offset + length > SLAB_BYTES) {
14
+ slab = Buffer.allocUnsafe(SLAB_BYTES);
15
+ offset = 0;
16
+ }
17
+ const bytes = slab.subarray(offset, offset + length);
18
+ offset += Math.ceil(length / ALIGNMENT) * ALIGNMENT;
19
+ // Transient runtime frames only; local queues and application boundaries
20
+ // copy before they retain or expose these bytes.
21
+ return bytes;
22
+ }
23
+
24
+ /** Copies bytes into an exact, standalone backing store with no Buffer pool. */
25
+ export function copyPayloadBytes(bytes: Uint8Array): Buffer {
26
+ const copy = Buffer.allocUnsafeSlow(bytes.byteLength);
27
+ copy.set(bytes);
28
+ return copy;
29
+ }
@@ -1,3 +1,4 @@
1
+ import type { ZLinkHandlerMessageType } from '../Common/HandlerMessageType';
1
2
  import { AutoHwmProfile } from '@zlink-systems/zlink';
2
3
  import type {
3
4
  RoutingId,
@@ -53,6 +54,7 @@ import { requireMessageFlowLogMode, requireTraceSampleRate } from './Diagnostics
53
54
  import { normalizeEndpoint } from './EndpointNotation';
54
55
  import { requirePublicFanoutTopic } from './FanoutTopic';
55
56
  import { requireValidSendTimeoutMs } from './SendTimeoutValidation';
57
+ import { resolveHandlerMessageType } from '../Common/HandlerMessageType';
56
58
  import { DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE } from './InternalDefaults';
57
59
  import {
58
60
  type ZLinkActorFactoryBuilder,
@@ -671,7 +673,7 @@ class DefaultClientServerChannelServerBuilder implements ZLinkClientServerChanne
671
673
  handlerType: Type<import('../Handlers').ZLinkSendHandler<TMessage>>
672
674
  ): this {
673
675
  this.channel.sendHandlers ??= [];
674
- this.channel.sendHandlers.push({ packetName: handlerPacketName(handlerType), handlerType });
676
+ this.channel.sendHandlers.push(handlerRegistration(handlerType));
675
677
  return this;
676
678
  }
677
679
 
@@ -679,7 +681,7 @@ class DefaultClientServerChannelServerBuilder implements ZLinkClientServerChanne
679
681
  handlerType: Type<import('../Handlers').ZLinkRequestHandler<TRequest, TReply>>
680
682
  ): this {
681
683
  this.channel.requestHandlers ??= [];
682
- this.channel.requestHandlers.push({ packetName: handlerPacketName(handlerType), handlerType });
684
+ this.channel.requestHandlers.push(handlerRegistration(handlerType));
683
685
  return this;
684
686
  }
685
687
 
@@ -1011,7 +1013,7 @@ class DefaultMeshNodeBuilder implements ZLinkMeshNodeBuilder {
1011
1013
  handlerType: Type<import('../Handlers').ZLinkRouteSendHandler<TMessage>>
1012
1014
  ): this {
1013
1015
  this.node.routeSendHandlers ??= [];
1014
- this.node.routeSendHandlers.push({ packetName: handlerPacketName(handlerType), handlerType });
1016
+ this.node.routeSendHandlers.push(handlerRegistration(handlerType));
1015
1017
  return this;
1016
1018
  }
1017
1019
 
@@ -1019,10 +1021,7 @@ class DefaultMeshNodeBuilder implements ZLinkMeshNodeBuilder {
1019
1021
  handlerType: Type<import('../Handlers').ZLinkRouteRequestHandler<TRequest, TReply>>
1020
1022
  ): this {
1021
1023
  this.node.routeRequestHandlers ??= [];
1022
- this.node.routeRequestHandlers.push({
1023
- packetName: handlerPacketName(handlerType),
1024
- handlerType
1025
- });
1024
+ this.node.routeRequestHandlers.push(handlerRegistration(handlerType));
1026
1025
  return this;
1027
1026
  }
1028
1027
 
@@ -1379,7 +1378,7 @@ class DefaultMeshChannelServerBuilder implements ZLinkMeshChannelServerBuilder {
1379
1378
  handlerType: Type<import('../Handlers').ZLinkSendHandler<TMessage>>
1380
1379
  ): this {
1381
1380
  this.channel.sendHandlers ??= [];
1382
- this.channel.sendHandlers.push({ packetName: handlerPacketName(handlerType), handlerType });
1381
+ this.channel.sendHandlers.push(handlerRegistration(handlerType));
1383
1382
  return this;
1384
1383
  }
1385
1384
 
@@ -1387,7 +1386,7 @@ class DefaultMeshChannelServerBuilder implements ZLinkMeshChannelServerBuilder {
1387
1386
  handlerType: Type<import('../Handlers').ZLinkRequestHandler<TRequest, TReply>>
1388
1387
  ): this {
1389
1388
  this.channel.requestHandlers ??= [];
1390
- this.channel.requestHandlers.push({ packetName: handlerPacketName(handlerType), handlerType });
1389
+ this.channel.requestHandlers.push(handlerRegistration(handlerType));
1391
1390
  return this;
1392
1391
  }
1393
1392
  }
@@ -1588,8 +1587,8 @@ interface MutableChannelOptions {
1588
1587
  client?: MutableClientCapabilityOptions;
1589
1588
  server?: MutableServerCapabilityOptions;
1590
1589
  handlerGroups?: string[];
1591
- requestHandlers?: Array<{ packetName: string; handlerType: Type }>;
1592
- sendHandlers?: Array<{ packetName: string; handlerType: Type }>;
1590
+ requestHandlers?: MutableHandlerRegistration[];
1591
+ sendHandlers?: MutableHandlerRegistration[];
1593
1592
  }
1594
1593
 
1595
1594
  interface MutableServerCapabilityOptions {
@@ -1670,8 +1669,8 @@ interface MutableSpotNodeOptions {
1670
1669
  MutableObjectFactoryRegistration<ZLinkActor, ZLinkActorFactory, ZLinkActorFactoryConfiguration>
1671
1670
  >;
1672
1671
  meshChannels?: Record<string, MutableMeshChannelOptions>;
1673
- routeSendHandlers?: Array<{ packetName: string; handlerType: Type }>;
1674
- routeRequestHandlers?: Array<{ packetName: string; handlerType: Type }>;
1672
+ routeSendHandlers?: MutableHandlerRegistration[];
1673
+ routeRequestHandlers?: MutableHandlerRegistration[];
1675
1674
  requestTimeoutMs?: number;
1676
1675
  }
1677
1676
 
@@ -1686,8 +1685,8 @@ interface MutableMeshChannelOptions {
1686
1685
  server?: boolean;
1687
1686
  weight?: number;
1688
1687
  handlerGroups?: string[];
1689
- sendHandlers?: Array<{ packetName: string; handlerType: Type }>;
1690
- requestHandlers?: Array<{ packetName: string; handlerType: Type }>;
1688
+ sendHandlers?: MutableHandlerRegistration[];
1689
+ requestHandlers?: MutableHandlerRegistration[];
1691
1690
  }
1692
1691
 
1693
1692
  interface MutableSpotRouterCapabilityOptions {
@@ -1709,6 +1708,21 @@ interface MutableSpotPubSubCapabilityOptions {
1709
1708
  routingId?: string;
1710
1709
  }
1711
1710
 
1711
+ interface MutableHandlerRegistration {
1712
+ packetName: string;
1713
+ handlerType: Type;
1714
+ messageType?: ZLinkHandlerMessageType;
1715
+ }
1716
+
1717
+ function handlerRegistration(handlerType: Type): MutableHandlerRegistration {
1718
+ const messageType = resolveHandlerMessageType(handlerType);
1719
+ return {
1720
+ packetName: handlerPacketName(handlerType),
1721
+ handlerType,
1722
+ ...(messageType === undefined ? {} : { messageType })
1723
+ };
1724
+ }
1725
+
1712
1726
  function handlerPacketName(handlerType: Type): string {
1713
1727
  return (
1714
1728
  readZLinkDecoratorMetadata(handlerType).find(
@@ -1,3 +1,4 @@
1
+ import type { ZLinkHandlerMessageType } from '../Common/HandlerMessageType';
1
2
  import type {
2
3
  RoutingId,
3
4
  Type,
@@ -327,21 +328,25 @@ export interface ZLinkMeshChannelOptions {
327
328
  export interface ZLinkMeshSendHandlerRegistration {
328
329
  readonly packetName: string;
329
330
  readonly handlerType: Type;
331
+ readonly messageType?: ZLinkHandlerMessageType;
330
332
  }
331
333
 
332
334
  export interface ZLinkMeshRequestHandlerRegistration {
333
335
  readonly packetName: string;
334
336
  readonly handlerType: Type;
337
+ readonly messageType?: ZLinkHandlerMessageType;
335
338
  }
336
339
 
337
340
  export interface ZLinkRouteMeshSendHandlerRegistration {
338
341
  readonly packetName: string;
339
342
  readonly handlerType: Type;
343
+ readonly messageType?: ZLinkHandlerMessageType;
340
344
  }
341
345
 
342
346
  export interface ZLinkRouteMeshRequestHandlerRegistration {
343
347
  readonly packetName: string;
344
348
  readonly handlerType: Type;
349
+ readonly messageType?: ZLinkHandlerMessageType;
345
350
  }
346
351
 
347
352
  export interface ZLinkEntrySpotTimerHandlerRegistration {
@@ -356,6 +361,7 @@ export interface ZLinkEntrySpotPacketHandlerRegistration {
356
361
  readonly entrySpotType: Type<ZLinkEntrySpot>;
357
362
  readonly handlerType: Type;
358
363
  readonly packetName?: string;
364
+ readonly messageType?: ZLinkHandlerMessageType;
359
365
  }
360
366
 
361
367
  export interface ZLinkEntrySpotSubscriptionHandlerRegistration {
@@ -363,6 +369,7 @@ export interface ZLinkEntrySpotSubscriptionHandlerRegistration {
363
369
  readonly handlerType: Type;
364
370
  readonly channelName: string;
365
371
  readonly topic: string;
372
+ readonly messageType?: ZLinkHandlerMessageType;
366
373
  }
367
374
 
368
375
  export interface ZLinkEntrySpotActorSendHandlerRegistration {
@@ -370,6 +377,7 @@ export interface ZLinkEntrySpotActorSendHandlerRegistration {
370
377
  readonly actorType: Type<ZLinkActor>;
371
378
  readonly handlerType: Type;
372
379
  readonly packetName: string;
380
+ readonly messageType?: ZLinkHandlerMessageType;
373
381
  }
374
382
 
375
383
  export interface ZLinkEntrySpotActorRequestHandlerRegistration {
@@ -377,6 +385,7 @@ export interface ZLinkEntrySpotActorRequestHandlerRegistration {
377
385
  readonly actorType: Type<ZLinkActor>;
378
386
  readonly handlerType: Type;
379
387
  readonly packetName: string;
388
+ readonly messageType?: ZLinkHandlerMessageType;
380
389
  }
381
390
 
382
391
  export interface ZLinkSpotTimerHandlerRegistration {
@@ -391,6 +400,7 @@ export interface ZLinkSpotPacketHandlerRegistration {
391
400
  readonly spotType: Type<ZLinkSpot>;
392
401
  readonly handlerType: Type;
393
402
  readonly packetName?: string;
403
+ readonly messageType?: ZLinkHandlerMessageType;
394
404
  }
395
405
 
396
406
  export interface ZLinkSpotSubscriptionHandlerRegistration {
@@ -398,6 +408,7 @@ export interface ZLinkSpotSubscriptionHandlerRegistration {
398
408
  readonly handlerType: Type;
399
409
  readonly channelName: string;
400
410
  readonly topic: string;
411
+ readonly messageType?: ZLinkHandlerMessageType;
401
412
  }
402
413
 
403
414
  export interface ZLinkSpotActorSendHandlerRegistration {
@@ -405,6 +416,7 @@ export interface ZLinkSpotActorSendHandlerRegistration {
405
416
  readonly actorType: Type<ZLinkActor>;
406
417
  readonly handlerType: Type;
407
418
  readonly packetName: string;
419
+ readonly messageType?: ZLinkHandlerMessageType;
408
420
  }
409
421
 
410
422
  export interface ZLinkSpotActorRequestHandlerRegistration {
@@ -412,6 +424,7 @@ export interface ZLinkSpotActorRequestHandlerRegistration {
412
424
  readonly actorType: Type<ZLinkActor>;
413
425
  readonly handlerType: Type;
414
426
  readonly packetName: string;
427
+ readonly messageType?: ZLinkHandlerMessageType;
415
428
  }
416
429
 
417
430
  export interface ZLinkSpotRouterCapabilityOptions {
@@ -442,25 +455,30 @@ export interface ZLinkRouteChannelHandlerOptions {
442
455
  readonly kind: 'send' | 'request';
443
456
  readonly packetName: string;
444
457
  readonly handler: ZLinkRouteChannelSendHandler | ZLinkRouteChannelRequestHandler;
458
+ readonly messageType?: ZLinkHandlerMessageType;
445
459
  }
446
460
 
447
461
  export interface ZLinkRouteChannelSendHandlerRegistration {
448
462
  readonly packetName: string;
449
463
  readonly handler: ZLinkRouteChannelSendHandler;
464
+ readonly messageType?: ZLinkHandlerMessageType;
450
465
  }
451
466
 
452
467
  export interface ZLinkRouteChannelRequestHandlerRegistration {
453
468
  readonly packetName: string;
454
469
  readonly handler: ZLinkRouteChannelRequestHandler;
470
+ readonly messageType?: ZLinkHandlerMessageType;
455
471
  }
456
472
 
457
473
  export interface ZLinkChannelPublishHandlerRegistration {
458
474
  readonly packetName: string;
459
475
  readonly handler: ZLinkChannelPublishHandler;
476
+ readonly messageType?: ZLinkHandlerMessageType;
460
477
  }
461
478
 
462
479
  export interface ZLinkChannelRequestHandlerRegistration {
463
480
  readonly packetName: string;
481
+ readonly messageType?: ZLinkHandlerMessageType;
464
482
  readonly handler?: {
465
483
  handle(payload: unknown, context: ZLinkMessageContext): Promise<unknown>;
466
484
  };
@@ -469,6 +487,7 @@ export interface ZLinkChannelRequestHandlerRegistration {
469
487
 
470
488
  export interface ZLinkChannelSendHandlerRegistration {
471
489
  readonly packetName: string;
490
+ readonly messageType?: ZLinkHandlerMessageType;
472
491
  readonly handler?: {
473
492
  handle(payload: unknown, context: ZLinkMessageContext): Promise<void>;
474
493
  };
@@ -7,6 +7,7 @@ export interface ZLinkMessageContext {
7
7
  readonly contentType?: string;
8
8
  readonly metadata: ZLinkMessageMetadata;
9
9
  readonly correlationId?: string;
10
+ readonly receivedAt: Date;
10
11
  }
11
12
 
12
13
  export interface ZLinkPublishMessageContext extends ZLinkMessageContext {
@@ -1,3 +1,4 @@
1
+ import type { ZLinkFrameworkErrorKind } from '../Errors';
1
2
  import type { RoutingId } from '../Common';
2
3
  import type { ZLinkMeshNodeDescriptorKey } from './Keys';
3
4
  import type { ZLinkLocationOwnerToken } from './Writes';
@@ -93,7 +94,12 @@ export type ZLinkAuthorityCompareExchangeResult =
93
94
  readonly storeVersion: ZLinkAuthorityStoreVersion;
94
95
  readonly storeNow: Date;
95
96
  }
96
- | { readonly kind: 'conflict'; readonly current: ZLinkAuthorityReadResult }
97
+ | {
98
+ readonly kind: 'conflict';
99
+ readonly current: ZLinkAuthorityReadResult;
100
+ readonly membershipFailure?:
101
+ ZLinkFrameworkErrorKind.NotFound | ZLinkFrameworkErrorKind.Unavailable;
102
+ }
97
103
  | { readonly kind: 'generationExhausted' };
98
104
 
99
105
  export interface ZLinkAuthorityEntry {
package/src/internal.ts CHANGED
@@ -3,6 +3,19 @@ export * from './index';
3
3
  export { requireValidSendTimeoutMs } from './contracts/Configuration/SendTimeoutValidation';
4
4
  export * from './runtime/diagnostics';
5
5
  export * from './runtime/host';
6
+ export { ZLinkActorPlacementCoordinator } from './runtime/host/actor-placement-coordinator';
7
+ export { ZLinkActorTransferRuntime } from './runtime/host/actor-transfer-runtime';
8
+ export {
9
+ ApplicationJobQueue,
10
+ ApplicationJobQueuePermit,
11
+ nodeEffectiveProcessorCount,
12
+ resolveApplicationJobQueueConfiguration
13
+ } from './runtime/host/application-job-queue';
14
+ export { ZLinkLocationRuntimeOwner } from './runtime/host/location-runtime-owner';
15
+ export {
16
+ relocationFailedFailureCode,
17
+ ZLinkHostServiceRelocationRuntime
18
+ } from './runtime/host/service-relocation-host-runtime';
6
19
  export * from './runtime/admission';
7
20
  export * from './runtime/activation-admission';
8
21
  export * from './runtime/streams';
@@ -21,9 +34,13 @@ export {
21
34
  } from './contracts/Locations/Values';
22
35
  export { ZLinkLocationWriteIntent, ZLinkLocationWriteStatus } from './contracts/Locations/Writes';
23
36
  export * from './runtime/channels';
37
+ export { ZLinkChannelRuntimeLifecycle } from './runtime/channels/channel-runtime-lifecycle';
38
+ export { ZLinkChannelSocketRegistry } from './runtime/channels/channel-socket-registry';
39
+ export { ZLinkChannelDispatchPipeline } from './runtime/channels/channel-dispatch-pipeline';
24
40
  export * from './runtime/backend';
25
41
  export * from './runtime/codecs';
26
42
  export * from './runtime/execution';
43
+ export { ZLinkSerialExecutionQueue } from './runtime/execution/serial-execution-queue';
27
44
  export * from './runtime/handlers';
28
45
  export * from './runtime/messaging';
29
46
  export * from './runtime/foundation';
@@ -19,6 +19,7 @@ export {
19
19
  validateMessageFollowDuration,
20
20
  validateSessionReplacementCallbackTimeout
21
21
  } from './contracts/Configuration/RegistrationBuilderPolicy';
22
+ export { resolveHandlerMessageType } from './contracts/Common/HandlerMessageType';
22
23
 
23
24
  import type {
24
25
  ZLinkLocationRuntimeQuery,