@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
@@ -30,7 +30,7 @@ class ZLinkChannelRequestDispatcher {
30
30
  flowEnabled() {
31
31
  return this.options.dispatchErrors.flow.flowCreationEnabled();
32
32
  }
33
- async dispatch(received, router, signal, decodedHeader) {
33
+ async dispatch(received, router, signal, decodedHeader, receivedAt = this.options.receivedAtClock?.() ?? new Date()) {
34
34
  if (received.spotId !== null && received.spotId !== undefined) {
35
35
  if (received.send === undefined) {
36
36
  throw new configuration_1.ZLinkConfigurationException('Routed SPOT packet is missing a local SPOT delivery context.');
@@ -78,13 +78,15 @@ class ZLinkChannelRequestDispatcher {
78
78
  contentType: envelope.header.contentType,
79
79
  packetName,
80
80
  metadata: (0, contracts_1.zlinkMessageMetadata)(envelope.header.metadata),
81
- correlationId
81
+ correlationId,
82
+ receivedAt
82
83
  };
83
84
  await this.pipeline.dispatchOneWay({
84
85
  fields,
85
86
  envelope,
86
87
  codecs: this.options.codecs,
87
- handler,
88
+ handler: handler?.handler,
89
+ messageType: handler?.messageType,
88
90
  context,
89
91
  signal
90
92
  });
@@ -112,13 +114,15 @@ class ZLinkChannelRequestDispatcher {
112
114
  contentType: envelope.header.contentType,
113
115
  packetName,
114
116
  metadata: (0, contracts_1.zlinkMessageMetadata)(envelope.header.metadata),
115
- correlationId
117
+ correlationId,
118
+ receivedAt
116
119
  };
117
120
  await this.pipeline.dispatchRequest({
118
121
  fields: requestFields,
119
122
  envelope,
120
123
  codecs: this.options.codecs,
121
- handler,
124
+ handler: handler?.handler,
125
+ messageType: handler?.messageType,
122
126
  context,
123
127
  signal,
124
128
  missingHandlerMessage: `No channel request handler is registered for '${this.options.channelName}:${packetName}'.`,
@@ -152,6 +156,7 @@ class ZLinkChannelRequestDispatcher {
152
156
  }
153
157
  const correlationId = envelope.header.correlationId ?? undefined;
154
158
  if (envelope.header.kind === 3 /* ZLinkChannelMessageKind.Command */) {
159
+ const handler = this.options.sendHandlers?.get(packetName);
155
160
  return this.pipeline.dispatchOneWay({
156
161
  fields: {
157
162
  messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send,
@@ -162,8 +167,9 @@ class ZLinkChannelRequestDispatcher {
162
167
  },
163
168
  envelope,
164
169
  codecs: this.options.codecs,
165
- handler: this.options.sendHandlers?.get(packetName),
166
- context: this.createMeshContext(envelope, record.sourceNodeRid),
170
+ handler: handler?.handler,
171
+ messageType: handler?.messageType,
172
+ context: this.createMeshContext(envelope, record.sourceNodeRid, record.receivedAt),
167
173
  signal
168
174
  }, admit);
169
175
  }
@@ -177,7 +183,7 @@ class ZLinkChannelRequestDispatcher {
177
183
  flowId: envelope.header.flowId,
178
184
  flowOrigin: envelope.header.flowOrigin
179
185
  };
180
- return this.pipeline.dispatchRequest(new ZLinkMeshRequestDispatch(fields, envelope, this.options.codecs, this.options.handlers.get(packetName), this.createMeshContext(envelope, record.sourceNodeRid), signal, record, 'channel', this.options.channelName), admit);
186
+ return this.pipeline.dispatchRequest(new ZLinkMeshRequestDispatch(fields, envelope, this.options.codecs, this.options.handlers.get(packetName), this.createMeshContext(envelope, record.sourceNodeRid, record.receivedAt), signal, record, 'channel', this.options.channelName), admit);
181
187
  }
182
188
  submitReply(operation, signal) {
183
189
  void signal;
@@ -186,14 +192,15 @@ class ZLinkChannelRequestDispatcher {
186
192
  }
187
193
  return completedChannelReply;
188
194
  }
189
- createMeshContext(envelope, sourceNodeRid) {
195
+ createMeshContext(envelope, sourceNodeRid, receivedAt) {
190
196
  const base = {
191
197
  meshName: this.options.meshName,
192
198
  channelName: this.options.channelName,
193
199
  contentType: envelope.header.contentType,
194
200
  packetName: envelope.packetName,
195
201
  metadata: (0, contracts_1.zlinkMessageMetadata)(envelope.header.metadata),
196
- correlationId: envelope.header.correlationId ?? undefined
202
+ correlationId: envelope.header.correlationId ?? undefined,
203
+ receivedAt: receivedAt ?? this.options.receivedAtClock?.() ?? new Date()
197
204
  };
198
205
  if (this.options.routeMesh !== true) {
199
206
  return base;
@@ -215,23 +222,29 @@ class ZLinkMeshRequestDispatch {
215
222
  fields;
216
223
  envelope;
217
224
  codecs;
218
- handler;
225
+ registration;
219
226
  context;
220
227
  signal;
221
228
  record;
222
229
  handlerSurface;
223
230
  channelName;
224
- constructor(fields, envelope, codecs, handler, context, signal, record, handlerSurface, channelName) {
231
+ constructor(fields, envelope, codecs, registration, context, signal, record, handlerSurface, channelName) {
225
232
  this.fields = fields;
226
233
  this.envelope = envelope;
227
234
  this.codecs = codecs;
228
- this.handler = handler;
235
+ this.registration = registration;
229
236
  this.context = context;
230
237
  this.signal = signal;
231
238
  this.record = record;
232
239
  this.handlerSurface = handlerSurface;
233
240
  this.channelName = channelName;
234
241
  }
242
+ get handler() {
243
+ return this.registration?.handler;
244
+ }
245
+ get messageType() {
246
+ return this.registration?.messageType;
247
+ }
235
248
  get missingHandlerMessage() {
236
249
  return `No ${this.handlerSurface} request handler is registered for '${this.channelName}:${this.fields.packetName}'.`;
237
250
  }
@@ -260,7 +273,7 @@ class ZLinkChannelPublishDispatcher {
260
273
  unhandled: options.unhandled
261
274
  });
262
275
  }
263
- async dispatch(topicMessage, signal, decodedHeader) {
276
+ async dispatch(topicMessage, signal, decodedHeader, receivedAt = this.options.receivedAtClock?.() ?? new Date()) {
264
277
  if (topicMessage.parts.length === 0 || topicMessage.parts[0].data().length === 0) {
265
278
  return;
266
279
  }
@@ -305,13 +318,15 @@ class ZLinkChannelPublishDispatcher {
305
318
  topic: publishTopic,
306
319
  source: publishSource,
307
320
  metadata: (0, contracts_1.zlinkMessageMetadata)(envelope.header.metadata),
308
- correlationId: publishCorr
321
+ correlationId: publishCorr,
322
+ receivedAt
309
323
  };
310
324
  await this.pipeline.dispatchOneWay({
311
325
  fields,
312
326
  envelope,
313
327
  codecs: this.options.codecs,
314
- handler,
328
+ handler: handler?.handler,
329
+ messageType: handler?.messageType,
315
330
  context,
316
331
  signal
317
332
  });
@@ -321,15 +336,13 @@ exports.ZLinkChannelPublishDispatcher = ZLinkChannelPublishDispatcher;
321
336
  function collectRouteChannelHandlers(routeChannel) {
322
337
  return [
323
338
  ...(routeChannel.handlers ?? []),
324
- ...(routeChannel.sendHandlers ?? []).map((handler) => ({
339
+ ...(routeChannel.sendHandlers ?? []).map((registration) => ({
325
340
  kind: 'send',
326
- packetName: handler.packetName,
327
- handler: handler.handler
341
+ ...registration
328
342
  })),
329
- ...(routeChannel.requestHandlers ?? []).map((handler) => ({
343
+ ...(routeChannel.requestHandlers ?? []).map((registration) => ({
330
344
  kind: 'request',
331
- packetName: handler.packetName,
332
- handler: handler.handler
345
+ ...registration
333
346
  }))
334
347
  ];
335
348
  }
@@ -337,10 +350,12 @@ class ZLinkRoutePacketDispatcher {
337
350
  sendHandlers = new Map();
338
351
  requestHandlers = new Map();
339
352
  codecs;
353
+ receivedAtClock;
340
354
  pipeline;
341
355
  constructor(options) {
342
356
  this.routerChannelId = options.routerChannelId;
343
357
  this.codecs = options.codecs;
358
+ this.receivedAtClock = options.receivedAtClock ?? (() => new Date());
344
359
  this.dispatchErrors = options.dispatchErrors;
345
360
  this.pipeline = new channel_dispatch_pipeline_1.ZLinkChannelDispatchPipeline({
346
361
  dispatchErrors: options.dispatchErrors,
@@ -355,7 +370,7 @@ class ZLinkRoutePacketDispatcher {
355
370
  if (target.has(handler.packetName)) {
356
371
  throw new configuration_1.ZLinkConfigurationException(`Duplicate routed handler '${options.routerChannelId}:${handler.kind}:${handler.packetName}'.`);
357
372
  }
358
- target.set(handler.packetName, handler.handler);
373
+ target.set(handler.packetName, handler);
359
374
  }
360
375
  }
361
376
  routerChannelId;
@@ -380,7 +395,7 @@ class ZLinkRoutePacketDispatcher {
380
395
  }
381
396
  return false;
382
397
  }
383
- async dispatch(received, router, signal, decodedHeader, infrastructureChecked = false) {
398
+ async dispatch(received, router, signal, decodedHeader, infrastructureChecked = false, receivedAt = this.receivedAtClock()) {
384
399
  const channelHeader = decodedHeader ?? (0, channel_envelope_inspection_1.tryDecodeChannelHeader)(received.parts, this.flowEnabled());
385
400
  if (!infrastructureChecked) {
386
401
  const infrastructure = this.dispatchInfrastructure(received);
@@ -431,8 +446,9 @@ class ZLinkRoutePacketDispatcher {
431
446
  fields,
432
447
  envelope,
433
448
  codecs: (0, channel_framework_packets_1.codecsForFrameworkPacket)(packetName, this.codecs),
434
- handler,
435
- context: this.createRouteContext(envelope, received.routingId),
449
+ handler: handler?.handler,
450
+ messageType: handler?.messageType,
451
+ context: this.createRouteContext(envelope, received.routingId, receivedAt),
436
452
  signal
437
453
  });
438
454
  return;
@@ -466,8 +482,9 @@ class ZLinkRoutePacketDispatcher {
466
482
  fields: requestFields,
467
483
  envelope,
468
484
  codecs,
469
- handler,
470
- context: this.createRouteContext(envelope, received.routingId),
485
+ handler: handler?.handler,
486
+ messageType: handler?.messageType,
487
+ context: this.createRouteContext(envelope, received.routingId, receivedAt),
471
488
  signal,
472
489
  missingHandlerMessage: `No routed request handler is registered for '${this.routerChannelId}:${packetName}'.`,
473
490
  writeReply: (reply) => this.submitReply((0, channel_multipart_1.appendParts)(router.reply(received.routingId, replyToken), (0, channel_envelope_1.encodeChannelReplyParts)(envelope.header, reply, codecs))),
@@ -501,7 +518,7 @@ class ZLinkRoutePacketDispatcher {
501
518
  const sourceNodeRid = String(record.sourceNodeRid ?? '');
502
519
  const correlationId = envelope.header.correlationId ?? undefined;
503
520
  if (envelope.header.kind === 3 /* ZLinkChannelMessageKind.Command */) {
504
- return this.dispatchMeshCommand(envelope, packetName, sourceNodeRid, record.sourceNodeRid, signal, admit);
521
+ return this.dispatchMeshCommand(envelope, packetName, sourceNodeRid, record.sourceNodeRid, signal, admit, record.receivedAt ?? this.receivedAtClock());
505
522
  }
506
523
  if (envelope.header.kind !== 1 /* ZLinkChannelMessageKind.Request */) {
507
524
  return completedChannelReply;
@@ -514,9 +531,10 @@ class ZLinkRoutePacketDispatcher {
514
531
  flowId: envelope.header.flowId,
515
532
  flowOrigin: envelope.header.flowOrigin
516
533
  };
517
- return this.pipeline.dispatchRequest(new ZLinkMeshRequestDispatch(fields, envelope, (0, channel_framework_packets_1.codecsForFrameworkPacket)(packetName, this.codecs), this.requestHandlers.get(packetName), this.createRouteContext(envelope, record.sourceNodeRid), signal, record, 'routed', this.routerChannelId), admit);
534
+ return this.pipeline.dispatchRequest(new ZLinkMeshRequestDispatch(fields, envelope, (0, channel_framework_packets_1.codecsForFrameworkPacket)(packetName, this.codecs), this.requestHandlers.get(packetName), this.createRouteContext(envelope, record.sourceNodeRid, record.receivedAt), signal, record, 'routed', this.routerChannelId), admit);
518
535
  }
519
536
  async dispatchLocalCommand(parts, sourceNodeRid, signal) {
537
+ const receivedAt = this.receivedAtClock();
520
538
  if (parts.length === 0 || parts[0].data().length === 0)
521
539
  return;
522
540
  let envelope;
@@ -540,9 +558,10 @@ class ZLinkRoutePacketDispatcher {
540
558
  if (packetName === undefined) {
541
559
  throw new configuration_1.ZLinkConfigurationException('Route packet is missing packetName.');
542
560
  }
543
- await this.dispatchMeshCommand(envelope, packetName, String(sourceNodeRid), sourceNodeRid, signal);
561
+ await this.dispatchMeshCommand(envelope, packetName, String(sourceNodeRid), sourceNodeRid, signal, undefined, receivedAt);
544
562
  }
545
- dispatchMeshCommand(envelope, packetName, sourceRid, sourceNodeRid, signal, admit) {
563
+ dispatchMeshCommand(envelope, packetName, sourceRid, sourceNodeRid, signal, admit, receivedAt = this.receivedAtClock()) {
564
+ const handler = this.sendHandlers.get(packetName);
546
565
  return this.pipeline.dispatchOneWay({
547
566
  fields: {
548
567
  messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send,
@@ -554,8 +573,9 @@ class ZLinkRoutePacketDispatcher {
554
573
  },
555
574
  envelope,
556
575
  codecs: (0, channel_framework_packets_1.codecsForFrameworkPacket)(packetName, this.codecs),
557
- handler: this.sendHandlers.get(packetName),
558
- context: this.createRouteContext(envelope, sourceNodeRid),
576
+ handler: handler?.handler,
577
+ messageType: handler?.messageType,
578
+ context: this.createRouteContext(envelope, sourceNodeRid, receivedAt),
559
579
  signal
560
580
  }, admit);
561
581
  }
@@ -565,7 +585,7 @@ class ZLinkRoutePacketDispatcher {
565
585
  }
566
586
  return completedChannelReply;
567
587
  }
568
- createRouteContext(envelope, sourceRid) {
588
+ createRouteContext(envelope, sourceRid, receivedAt = this.receivedAtClock()) {
569
589
  const sourceNodeRid = String(sourceRid ?? '');
570
590
  return {
571
591
  meshName: this.routerChannelId,
@@ -573,7 +593,8 @@ class ZLinkRoutePacketDispatcher {
573
593
  contentType: envelope.header.contentType,
574
594
  sourceNodeRid,
575
595
  metadata: (0, contracts_1.zlinkMessageMetadata)(envelope.header.metadata),
576
- correlationId: envelope.header.correlationId ?? undefined
596
+ correlationId: envelope.header.correlationId ?? undefined,
597
+ receivedAt
577
598
  };
578
599
  }
579
600
  }
@@ -1,6 +1,6 @@
1
1
  import type { Message } from '../../contracts/Common/Message';
2
2
  import type { ZLinkBackendMessageLike as MessageLike } from '../backend/runtime-values';
3
- import { ZLinkFrameworkErrorKind, type ZLinkMessageSerializer, type ZLinkFlowOrigin } from '../../contracts';
3
+ import { type Type, ZLinkFrameworkErrorKind, type ZLinkMessageSerializer, type ZLinkFlowOrigin } from '../../contracts';
4
4
  export declare const ZLINK_CHANNEL_FORMAT_MARKER = 242;
5
5
  export declare const JSON_CONTENT_TYPE = "application/json";
6
6
  export declare const BINARY_CONTENT_TYPE = "application/octet-stream";
@@ -69,7 +69,7 @@ export interface ZLinkChannelDecodedError extends Error {
69
69
  export declare function encodeChannelErrorReplyParts(request: ZLinkChannelEnvelopeHeader, error: unknown, metadata?: Readonly<Record<string, string>>): readonly MessageLike[];
70
70
  export declare function decodeChannelReply<TReply>(parts: readonly Message[], codecs?: ZLinkChannelEnvelopeCodecRegistry): TReply;
71
71
  export declare function decodeChannelEnvelope(parts: readonly Message[], decodedHeader?: ZLinkChannelEnvelopeHeader, flowEnabled?: boolean): ZLinkChannelEnvelope;
72
- export declare function decodeChannelPayload(envelope: ZLinkChannelEnvelope, codecs?: ZLinkChannelEnvelopeCodecRegistry): unknown;
72
+ export declare function decodeChannelPayload(envelope: ZLinkChannelEnvelope, codecs?: ZLinkChannelEnvelopeCodecRegistry, messageType?: Type): unknown;
73
73
  export declare function closeMessages(parts: readonly MessageLike[]): void;
74
74
  export declare function decodeChannelHeader(parts: readonly Message[], flowEnabled?: boolean): ZLinkChannelEnvelopeHeader;
75
75
  export declare function isValidChannelCorrelationId(value: string): boolean;