@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
@@ -1,30 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSourceSpotRouter = void 0;
4
+ const request_runtime_1 = require("../foundation/request-runtime");
4
5
  const abort_1 = require("../abort");
5
6
  const channel_envelope_1 = require("./channel-envelope");
6
7
  const spot_direct_envelope_1 = require("./spot-direct-envelope");
7
8
  class ZLinkSourceSpotRouter {
8
9
  defaultRequestTimeoutMs;
9
- constructor(defaultRequestTimeoutMs) {
10
+ requests;
11
+ constructor(defaultRequestTimeoutMs, requests = new request_runtime_1.RequestRuntime()) {
10
12
  this.defaultRequestTimeoutMs = defaultRequestTimeoutMs;
13
+ this.requests = requests;
11
14
  }
12
- async request(sourceSpot, target, packetName, request, timeoutMs, signal, onAdmitted) {
13
- (0, abort_1.throwIfAborted)(signal);
14
- const parts = [
15
- (0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(1 /* ZLinkChannelMessageKind.Request */, target.routerChannelId, packetName, request)
16
- ];
17
- const operation = sourceSpot.requestToSpot(target.targetNodeRid, target.spotId, parts, timeoutMs ?? this.defaultRequestTimeoutMs, onAdmitted);
18
- const replyParts = await (0, abort_1.awaitWithAbort)(operation, signal, () => {
19
- void operation.then(channel_envelope_1.closeMessages, () => undefined);
20
- });
21
- try {
22
- return (0, spot_direct_envelope_1.decodeSpotDirectReply)(replyParts);
23
- }
24
- finally {
25
- (0, channel_envelope_1.closeMessages)(replyParts);
26
- (0, channel_envelope_1.closeMessages)(parts);
27
- }
15
+ request(sourceSpot, target, packetName, request, timeoutMs, signal, onAdmitted, existing, destination) {
16
+ let parts;
17
+ const operation = this.requests.begin(timeoutMs ?? this.defaultRequestTimeoutMs, signal, existing);
18
+ return this.requests.run(operation, (receiver) => {
19
+ (0, abort_1.throwIfAborted)(signal);
20
+ parts = [
21
+ (0, spot_direct_envelope_1.encodeSpotDirectEnvelope)(1 /* ZLinkChannelMessageKind.Request */, target.routerChannelId, packetName, request)
22
+ ];
23
+ sourceSpot.requestToSpot(target.targetNodeRid, target.spotId, parts, timeoutMs ?? this.defaultRequestTimeoutMs, onAdmitted, operation, receiver);
24
+ }, (value) => {
25
+ const replyParts = value;
26
+ try {
27
+ return (0, spot_direct_envelope_1.decodeSpotDirectReply)(replyParts);
28
+ }
29
+ finally {
30
+ (0, channel_envelope_1.closeMessages)(replyParts);
31
+ (0, channel_envelope_1.closeMessages)(parts);
32
+ }
33
+ }, (error) => error, destination);
28
34
  }
29
35
  async send(sourceSpot, target, packetName, message, metadata) {
30
36
  const parts = [
@@ -37,12 +43,17 @@ class ZLinkSourceSpotRouter {
37
43
  (0, channel_envelope_1.closeMessages)(parts);
38
44
  }
39
45
  }
40
- async requestRaw(sourceSpot, target, request, timeoutMs, signal, onAdmitted) {
41
- (0, abort_1.throwIfAborted)(signal);
42
- const operation = sourceSpot.requestToSpot(target.targetNodeRid, target.spotId, request, timeoutMs ?? this.defaultRequestTimeoutMs, onAdmitted);
43
- return await (0, abort_1.awaitWithAbort)(operation, signal, () => {
44
- void operation.then(channel_envelope_1.closeMessages, () => undefined);
45
- });
46
+ async requestRaw(sourceSpot, target, request, timeoutMs, signal, onAdmitted, existing) {
47
+ const operation = this.requests.begin(timeoutMs ?? this.defaultRequestTimeoutMs, signal, existing);
48
+ return this.requests.run(operation, (receiver) => {
49
+ (0, abort_1.throwIfAborted)(signal);
50
+ sourceSpot.requestToSpot(target.targetNodeRid, target.spotId, request, timeoutMs ?? this.defaultRequestTimeoutMs, onAdmitted, operation, receiver);
51
+ }, (value) => {
52
+ const replyParts = value;
53
+ if (!operation.isPending())
54
+ (0, channel_envelope_1.closeMessages)(replyParts);
55
+ return replyParts;
56
+ }, (error) => error);
46
57
  }
47
58
  }
48
59
  exports.ZLinkSourceSpotRouter = ZLinkSourceSpotRouter;
@@ -1,3 +1,5 @@
1
+ import { RequestRuntime } from '../foundation/request-runtime';
2
+ import type { PendingOperation, OperationObserver } from '../foundation/operation-registry';
1
3
  import type { Message } from '../../contracts/Common/Message';
2
4
  import type { ZLinkFrameworkRegistration } from '../configuration';
3
5
  import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
@@ -6,8 +8,9 @@ import { ZLinkSpotRouteTargetResolver } from './spot-route-target-resolver';
6
8
  export declare class ZLinkSpotNodeRouteTransport {
7
9
  private readonly registration;
8
10
  private readonly targets;
9
- constructor(registration: ZLinkFrameworkRegistration, targets: ZLinkSpotRouteTargetResolver);
11
+ private readonly requests;
12
+ constructor(registration: ZLinkFrameworkRegistration, targets: ZLinkSpotRouteTargetResolver, requests?: RequestRuntime);
10
13
  send(target: ZLinkSpotRouteTarget, parts: readonly Message[]): Promise<boolean>;
11
- request<TReply>(target: ZLinkSpotRouteTarget, parts: readonly Message[], codecs: ZLinkChannelEnvelopeCodecRegistry | undefined, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<TReply> | undefined;
12
- requestRaw(target: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<readonly Message[]> | undefined;
14
+ request<TReply>(target: ZLinkSpotRouteTarget, parts: readonly Message[], codecs: ZLinkChannelEnvelopeCodecRegistry | undefined, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, existing?: PendingOperation<unknown>, destination?: OperationObserver<unknown, unknown>): Promise<TReply> | undefined;
15
+ requestRaw(target: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, existing?: PendingOperation<unknown>): Promise<readonly Message[]> | undefined;
13
16
  }
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotNodeRouteTransport = void 0;
4
- const Registration_1 = require("../../contracts/Configuration/Registration");
4
+ const request_runtime_1 = require("../foundation/request-runtime");
5
5
  const abort_1 = require("../abort");
6
6
  const channel_envelope_1 = require("./channel-envelope");
7
7
  class ZLinkSpotNodeRouteTransport {
8
8
  registration;
9
9
  targets;
10
- constructor(registration, targets) {
10
+ requests;
11
+ constructor(registration, targets, requests = new request_runtime_1.RequestRuntime()) {
11
12
  this.registration = registration;
12
13
  this.targets = targets;
14
+ this.requests = requests;
13
15
  }
14
16
  async send(target, parts) {
15
17
  const router = this.targets.spotNodeRouter(target.routerChannelId);
@@ -24,17 +26,17 @@ class ZLinkSpotNodeRouteTransport {
24
26
  (0, channel_envelope_1.closeMessages)(parts);
25
27
  }
26
28
  }
27
- request(target, parts, codecs, timeoutMs, signal, onAdmitted) {
29
+ request(target, parts, codecs, timeoutMs, signal, onAdmitted, existing, destination) {
28
30
  const router = this.targets.spotNodeRouter(target.routerChannelId);
29
31
  if (router === undefined) {
30
32
  return undefined;
31
33
  }
32
- const effectiveTimeoutMs = timeoutMs ?? this.registration.requestTimeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS;
33
- (0, abort_1.throwIfAborted)(signal);
34
- const operation = router.requestToSpot(target.targetNodeRid, target.spotId, parts, effectiveTimeoutMs, onAdmitted);
35
- return (0, abort_1.awaitWithAbort)(operation, signal, () => {
36
- void operation.then(channel_envelope_1.closeMessages, () => undefined);
37
- }).then((replyParts) => {
34
+ const operation = this.requests.begin(timeoutMs ?? this.registration.requestTimeoutMs, signal, existing);
35
+ return this.requests.run(operation, (receiver) => {
36
+ (0, abort_1.throwIfAborted)(signal);
37
+ router.requestToSpot(target.targetNodeRid, target.spotId, parts, timeoutMs ?? this.registration.requestTimeoutMs, onAdmitted, operation, receiver);
38
+ }, (value) => {
39
+ const replyParts = value;
38
40
  try {
39
41
  return (0, channel_envelope_1.decodeChannelReply)(replyParts, codecs);
40
42
  }
@@ -42,19 +44,23 @@ class ZLinkSpotNodeRouteTransport {
42
44
  (0, channel_envelope_1.closeMessages)(replyParts);
43
45
  (0, channel_envelope_1.closeMessages)(parts);
44
46
  }
45
- });
47
+ }, (error) => error, destination);
46
48
  }
47
- requestRaw(target, request, timeoutMs, signal, onAdmitted) {
49
+ requestRaw(target, request, timeoutMs, signal, onAdmitted, existing) {
48
50
  const router = this.targets.spotNodeRouter(target.routerChannelId);
49
51
  if (router === undefined) {
50
52
  return undefined;
51
53
  }
52
- const effectiveTimeoutMs = timeoutMs ?? this.registration.requestTimeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS;
53
- (0, abort_1.throwIfAborted)(signal);
54
- const operation = router.requestToSpot(target.targetNodeRid, target.spotId, request, effectiveTimeoutMs, onAdmitted);
55
- return (0, abort_1.awaitWithAbort)(operation, signal, () => {
56
- void operation.then(channel_envelope_1.closeMessages, () => undefined);
57
- });
54
+ const operation = this.requests.begin(timeoutMs ?? this.registration.requestTimeoutMs, signal, existing);
55
+ return this.requests.run(operation, (receiver) => {
56
+ (0, abort_1.throwIfAborted)(signal);
57
+ router.requestToSpot(target.targetNodeRid, target.spotId, request, timeoutMs ?? this.registration.requestTimeoutMs, onAdmitted, operation, receiver);
58
+ }, (value) => {
59
+ const replyParts = value;
60
+ if (!operation.isPending())
61
+ (0, channel_envelope_1.closeMessages)(replyParts);
62
+ return replyParts;
63
+ }, (error) => error);
58
64
  }
59
65
  }
60
66
  exports.ZLinkSpotNodeRouteTransport = ZLinkSpotNodeRouteTransport;
@@ -1,3 +1,5 @@
1
+ import { RequestRuntime } from '../foundation/request-runtime';
2
+ import type { PendingOperation, OperationObserver } from '../foundation/operation-registry';
1
3
  import type { Message } from '../../contracts/Common/Message';
2
4
  import type { ZLinkBackendSpotRouteBridge } from '../backend/contracts';
3
5
  import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
@@ -5,10 +7,11 @@ import { type ZLinkChannelEnvelopeCodecRegistry } from './channel-envelope';
5
7
  export declare class ZLinkSpotRouteBridgeTransport {
6
8
  private readonly bridges;
7
9
  private readonly defaultRequestTimeoutMs;
8
- constructor(bridges: ReadonlyMap<string, ZLinkBackendSpotRouteBridge>, defaultRequestTimeoutMs: number | undefined);
10
+ private readonly requests;
11
+ constructor(bridges: ReadonlyMap<string, ZLinkBackendSpotRouteBridge>, defaultRequestTimeoutMs: number | undefined, requests?: RequestRuntime);
9
12
  has(routerChannelId: string): boolean;
10
13
  send(target: ZLinkSpotRouteTarget, parts: readonly Message[]): Promise<void>;
11
- request<TReply>(target: ZLinkSpotRouteTarget, parts: readonly Message[], codecs: ZLinkChannelEnvelopeCodecRegistry | undefined, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<TReply>;
12
- requestRaw(target: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<readonly Message[]>;
14
+ request<TReply>(target: ZLinkSpotRouteTarget, parts: readonly Message[], codecs: ZLinkChannelEnvelopeCodecRegistry | undefined, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, existing?: PendingOperation<unknown>, destination?: OperationObserver<unknown, unknown>): Promise<TReply>;
15
+ requestRaw(target: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, existing?: PendingOperation<unknown>): Promise<readonly Message[]>;
13
16
  private requireBridge;
14
17
  }
@@ -1,16 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotRouteBridgeTransport = void 0;
4
+ const request_runtime_1 = require("../foundation/request-runtime");
4
5
  const configuration_1 = require("../configuration");
5
6
  const channel_envelope_1 = require("./channel-envelope");
6
7
  const channel_multipart_1 = require("./channel-multipart");
7
- const abort_1 = require("../abort");
8
8
  class ZLinkSpotRouteBridgeTransport {
9
9
  bridges;
10
10
  defaultRequestTimeoutMs;
11
- constructor(bridges, defaultRequestTimeoutMs) {
11
+ requests;
12
+ constructor(bridges, defaultRequestTimeoutMs, requests = new request_runtime_1.RequestRuntime()) {
12
13
  this.bridges = bridges;
13
14
  this.defaultRequestTimeoutMs = defaultRequestTimeoutMs;
15
+ this.requests = requests;
14
16
  }
15
17
  has(routerChannelId) {
16
18
  return this.bridges.has(routerChannelId);
@@ -24,32 +26,44 @@ class ZLinkSpotRouteBridgeTransport {
24
26
  (0, channel_envelope_1.closeMessages)(parts);
25
27
  }
26
28
  }
27
- async request(target, parts, codecs, timeoutMs, signal, onAdmitted) {
28
- const bridge = this.requireBridge(target.routerChannelId);
29
- const operation = (0, channel_multipart_1.appendParts)(bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId), parts)
30
- .timeout(timeoutMs ?? 0)
31
- .submit(onAdmitted);
32
- const replyParts = await (0, abort_1.awaitWithAbort)(operation, signal, () => {
33
- void operation.then(channel_envelope_1.closeMessages, () => undefined);
34
- });
29
+ request(target, parts, codecs, timeoutMs, signal, onAdmitted, existing, destination) {
35
30
  try {
36
- return (0, channel_envelope_1.decodeChannelReply)(replyParts, codecs);
31
+ const operation = this.requests.begin(timeoutMs ?? this.defaultRequestTimeoutMs, signal, existing);
32
+ return this.requests.run(operation, (receiver) => {
33
+ const bridge = this.requireBridge(target.routerChannelId);
34
+ (0, channel_multipart_1.appendParts)(bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId), parts)
35
+ .timeout(timeoutMs ?? this.defaultRequestTimeoutMs ?? 0)
36
+ .submit(onAdmitted, operation, receiver);
37
+ }, (value) => {
38
+ const replyParts = value;
39
+ try {
40
+ return (0, channel_envelope_1.decodeChannelReply)(replyParts, codecs);
41
+ }
42
+ finally {
43
+ (0, channel_envelope_1.closeMessages)(replyParts);
44
+ (0, channel_envelope_1.closeMessages)(parts);
45
+ }
46
+ }, (error) => error, destination);
37
47
  }
38
- finally {
39
- (0, channel_envelope_1.closeMessages)(replyParts);
40
- (0, channel_envelope_1.closeMessages)(parts);
48
+ catch (error) {
49
+ return Promise.reject(error);
41
50
  }
42
51
  }
43
- requestRaw(target, request, timeoutMs, signal, onAdmitted) {
44
- const bridge = this.requireBridge(target.routerChannelId);
45
- const operation = bridge
46
- .request(target.routerChannelId, target.targetNodeRid, target.spotId)
47
- .message(request)
48
- .timeout(timeoutMs ?? this.defaultRequestTimeoutMs ?? 0)
49
- .submit(onAdmitted);
50
- return (0, abort_1.awaitWithAbort)(operation, signal, () => {
51
- void operation.then(channel_envelope_1.closeMessages, () => undefined);
52
- });
52
+ requestRaw(target, request, timeoutMs, signal, onAdmitted, existing) {
53
+ const operation = this.requests.begin(timeoutMs ?? this.defaultRequestTimeoutMs, signal, existing);
54
+ return this.requests.run(operation, (receiver) => {
55
+ const bridge = this.requireBridge(target.routerChannelId);
56
+ (0, channel_multipart_1.appendParts)(bridge.request(target.routerChannelId, target.targetNodeRid, target.spotId), [
57
+ request
58
+ ])
59
+ .timeout(timeoutMs ?? this.defaultRequestTimeoutMs ?? 0)
60
+ .submit(onAdmitted, operation, receiver);
61
+ }, (value) => {
62
+ const replyParts = value;
63
+ if (!operation.isPending())
64
+ (0, channel_envelope_1.closeMessages)(replyParts);
65
+ return replyParts;
66
+ }, (error) => error);
53
67
  }
54
68
  requireBridge(routerChannelId) {
55
69
  const bridge = this.bridges.get(routerChannelId);
@@ -1,3 +1,5 @@
1
+ import type { RequestRuntime } from '../foundation/request-runtime';
2
+ import type { OperationObserver, PendingOperation } from '../foundation/operation-registry';
1
3
  import type { Message } from '../../contracts/Common/Message';
2
4
  import type { RoutingId } from '../../contracts';
3
5
  import type { ZLinkFrameworkRegistration } from '../configuration';
@@ -13,11 +15,13 @@ export interface ZLinkLocalSpotRouteDispatcher {
13
15
  request<TReply>(spotId: RoutingId, packetName: string | undefined, request: unknown, context: {
14
16
  readonly channelName: string;
15
17
  readonly signal?: AbortSignal;
18
+ readonly requestOperation?: PendingOperation<unknown>;
16
19
  readonly onAdmitted?: () => void;
17
20
  readonly metadata?: ReadonlyMap<string, string>;
18
21
  }): Promise<TReply>;
19
22
  }
20
23
  export interface ZLinkSpotRouteDispatchStrategyOptions {
24
+ readonly requests: RequestRuntime;
21
25
  readonly registration: ZLinkFrameworkRegistration;
22
26
  readonly sockets: ZLinkChannelSocketRegistry;
23
27
  readonly codecs: ZLinkChannelEnvelopeCodecRegistry;
@@ -40,10 +44,10 @@ export declare class ZLinkSpotRouteDispatchStrategy {
40
44
  canRoutePacketChannel(routerChannelId: string): boolean;
41
45
  routeSendToSpot(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<void>;
42
46
  private routeSendToSpotScoped;
43
- routeRequestToSpot<TReply>(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void): Promise<TReply>;
47
+ routeRequestToSpot<TReply>(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>, destination?: OperationObserver<unknown, unknown>): Promise<TReply>;
44
48
  private routeRequestToSpotScoped;
45
- routeRequestFromSpotToSpot<TReply>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<TReply>;
49
+ routeRequestFromSpotToSpot<TReply>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>, destination?: OperationObserver<unknown, unknown>): Promise<TReply>;
46
50
  routeSendFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<void>;
47
- routeRequestRawFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<readonly Message[]>;
48
- routeRequestRawToSpot(spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<readonly Message[]>;
51
+ routeRequestRawFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): Promise<readonly Message[]>;
52
+ routeRequestRawToSpot(spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): Promise<readonly Message[]>;
49
53
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotRouteDispatchStrategy = void 0;
4
+ const request_result_1 = require("../messaging/request-result");
4
5
  const channel_envelope_1 = require("./channel-envelope");
5
6
  const channel_framework_packets_1 = require("./channel-framework-packets");
6
7
  const abort_1 = require("../abort");
@@ -22,12 +23,12 @@ class ZLinkSpotRouteDispatchStrategy {
22
23
  bridgeTransport;
23
24
  constructor(options) {
24
25
  this.options = options;
25
- this.sourceSpotRouter = new source_spot_router_1.ZLinkSourceSpotRouter(options.registration.requestTimeoutMs);
26
+ this.sourceSpotRouter = new source_spot_router_1.ZLinkSourceSpotRouter(options.registration.requestTimeoutMs, options.requests);
26
27
  this.targets = new spot_route_target_resolver_1.ZLinkSpotRouteTargetResolver(options.registration);
27
- this.spotNodeTransport = new spot_node_route_transport_1.ZLinkSpotNodeRouteTransport(options.registration, this.targets);
28
- this.routerSocketTransport = new router_socket_spot_route_transport_1.ZLinkRouterSocketSpotRouteTransport(options.sockets);
29
- this.localTransport = new local_spot_route_transport_1.ZLinkLocalSpotRouteTransport(options.localSpotRouteDispatcher, options.registration.requestTimeoutMs);
30
- this.bridgeTransport = new spot_route_bridge_transport_1.ZLinkSpotRouteBridgeTransport(options.spotRouteBridges, options.registration.requestTimeoutMs);
28
+ this.spotNodeTransport = new spot_node_route_transport_1.ZLinkSpotNodeRouteTransport(options.registration, this.targets, options.requests);
29
+ this.routerSocketTransport = new router_socket_spot_route_transport_1.ZLinkRouterSocketSpotRouteTransport(options.sockets, options.requests);
30
+ this.localTransport = new local_spot_route_transport_1.ZLinkLocalSpotRouteTransport(options.localSpotRouteDispatcher, options.registration.requestTimeoutMs, options.requests);
31
+ this.bridgeTransport = new spot_route_bridge_transport_1.ZLinkSpotRouteBridgeTransport(options.spotRouteBridges, options.registration.requestTimeoutMs, options.requests);
31
32
  }
32
33
  setSpotNodes(spotNodes) {
33
34
  this.targets.setSpotNodes(spotNodes);
@@ -70,58 +71,70 @@ class ZLinkSpotRouteDispatchStrategy {
70
71
  }
71
72
  await this.routerSocketTransport.send(spotRouteTarget, parts, ZLINK_SEND_DONT_WAIT);
72
73
  }
73
- routeRequestToSpot(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted) {
74
- return (0, flow_context_1.runWithOutboundFlow)(this.options.flowCreationEnabled?.() ?? true, () => this.routeRequestToSpotScoped(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted));
74
+ routeRequestToSpot(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation, destination) {
75
+ return (0, flow_context_1.runWithOutboundFlow)(this.options.flowCreationEnabled?.() ?? true, () => {
76
+ if (requestOperation !== undefined) {
77
+ return this.options.requests.run(requestOperation, (receiver) => {
78
+ this.routeRequestToSpotScoped(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation, receiver);
79
+ }, (value) => value, request_result_1.identityRequestReply, destination);
80
+ }
81
+ try {
82
+ return this.routeRequestToSpotScoped(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation, destination);
83
+ }
84
+ catch (error) {
85
+ return Promise.reject(error);
86
+ }
87
+ });
75
88
  }
76
- async routeRequestToSpotScoped(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted) {
89
+ routeRequestToSpotScoped(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation, receiver) {
77
90
  (0, abort_1.throwIfAborted)(signal);
78
91
  const localSpotRouteNode = this.targets.localRouteNode(spotRouteTarget);
79
92
  if (localSpotRouteNode !== undefined) {
80
- return this.localTransport.request(spotRouteTarget.routerChannelId, spotRouteTarget.spotId, packetName, request, timeoutMs, signal, onAdmitted);
93
+ return this.localTransport.request(spotRouteTarget.routerChannelId, spotRouteTarget.spotId, packetName, request, timeoutMs, signal, onAdmitted, requestOperation, receiver);
81
94
  }
82
95
  const codecs = (0, channel_framework_packets_1.codecsForFrameworkPacket)(packetName, this.options.codecs);
83
96
  const parts = (0, channel_envelope_1.encodeChannelEnvelopeParts)(1 /* ZLinkChannelMessageKind.Request */, spotRouteTarget.routerChannelId, packetName, request, timeoutMs, undefined, codecs, undefined, this.options.flowCreationEnabled?.() ?? true, metadata);
84
97
  if (this.targets.hasNamedSpotNode(spotRouteTarget.routerChannelId)) {
85
- const namedSpotNodeRequest = this.spotNodeTransport.request(spotRouteTarget, parts, codecs, timeoutMs, signal, onAdmitted);
98
+ const namedSpotNodeRequest = this.spotNodeTransport.request(spotRouteTarget, parts, codecs, timeoutMs, signal, onAdmitted, requestOperation, receiver);
86
99
  if (namedSpotNodeRequest !== undefined)
87
100
  return namedSpotNodeRequest;
88
101
  }
89
102
  if (this.bridgeTransport.has(spotRouteTarget.routerChannelId)) {
90
- return this.bridgeTransport.request(spotRouteTarget, parts, codecs, timeoutMs, signal, onAdmitted);
103
+ return this.bridgeTransport.request(spotRouteTarget, parts, codecs, timeoutMs, signal, onAdmitted, requestOperation, receiver);
91
104
  }
92
105
  if (this.targets.hasBoundRouteRouter(spotRouteTarget.routerChannelId)) {
93
- return this.routerSocketTransport.request(spotRouteTarget, parts, codecs, ZLINK_SEND_DONT_WAIT, timeoutMs, signal, onAdmitted);
106
+ return this.routerSocketTransport.request(spotRouteTarget, parts, codecs, ZLINK_SEND_DONT_WAIT, timeoutMs, signal, onAdmitted, requestOperation, receiver);
94
107
  }
95
- const spotNodeRequest = this.spotNodeTransport.request(spotRouteTarget, parts, codecs, timeoutMs, signal, onAdmitted);
108
+ const spotNodeRequest = this.spotNodeTransport.request(spotRouteTarget, parts, codecs, timeoutMs, signal, onAdmitted, requestOperation, receiver);
96
109
  if (spotNodeRequest !== undefined) {
97
110
  return spotNodeRequest;
98
111
  }
99
- return this.routerSocketTransport.request(spotRouteTarget, parts, codecs, 0, timeoutMs, signal, onAdmitted);
112
+ return this.routerSocketTransport.request(spotRouteTarget, parts, codecs, 0, timeoutMs, signal, onAdmitted, requestOperation, receiver);
100
113
  }
101
- routeRequestFromSpotToSpot(sourceSpot, spotRouteTarget, packetName, request, timeoutMs, signal, onAdmitted) {
102
- return this.sourceSpotRouter.request(sourceSpot, spotRouteTarget, packetName, request, timeoutMs, signal, onAdmitted);
114
+ routeRequestFromSpotToSpot(sourceSpot, spotRouteTarget, packetName, request, timeoutMs, signal, onAdmitted, requestOperation, destination) {
115
+ return this.sourceSpotRouter.request(sourceSpot, spotRouteTarget, packetName, request, timeoutMs, signal, onAdmitted, requestOperation, destination);
103
116
  }
104
117
  async routeSendFromSpotToSpot(sourceSpot, spotRouteTarget, packetName, message, metadata) {
105
118
  await this.sourceSpotRouter.send(sourceSpot, spotRouteTarget, packetName, message, metadata);
106
119
  }
107
- routeRequestRawFromSpotToSpot(sourceSpot, spotRouteTarget, request, timeoutMs, signal, onAdmitted) {
108
- return this.sourceSpotRouter.requestRaw(sourceSpot, spotRouteTarget, request, timeoutMs, signal, onAdmitted);
120
+ routeRequestRawFromSpotToSpot(sourceSpot, spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation) {
121
+ return this.sourceSpotRouter.requestRaw(sourceSpot, spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation);
109
122
  }
110
- async routeRequestRawToSpot(spotRouteTarget, request, timeoutMs, signal, onAdmitted) {
123
+ async routeRequestRawToSpot(spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation) {
111
124
  (0, abort_1.throwIfAborted)(signal);
112
125
  if (this.targets.hasNamedSpotNode(spotRouteTarget.routerChannelId)) {
113
- const namedSpotNodeRequest = this.spotNodeTransport.requestRaw(spotRouteTarget, request, timeoutMs, signal, onAdmitted);
126
+ const namedSpotNodeRequest = this.spotNodeTransport.requestRaw(spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation);
114
127
  if (namedSpotNodeRequest !== undefined)
115
128
  return namedSpotNodeRequest;
116
129
  }
117
130
  if (this.bridgeTransport.has(spotRouteTarget.routerChannelId)) {
118
- return this.bridgeTransport.requestRaw(spotRouteTarget, request, timeoutMs, signal, onAdmitted);
131
+ return this.bridgeTransport.requestRaw(spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation);
119
132
  }
120
- const spotNodeRequest = this.spotNodeTransport.requestRaw(spotRouteTarget, request, timeoutMs, signal, onAdmitted);
133
+ const spotNodeRequest = this.spotNodeTransport.requestRaw(spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation);
121
134
  if (spotNodeRequest !== undefined) {
122
135
  return spotNodeRequest;
123
136
  }
124
- return this.routerSocketTransport.requestRaw(spotRouteTarget, request, timeoutMs, signal, onAdmitted);
137
+ return this.routerSocketTransport.requestRaw(spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation);
125
138
  }
126
139
  }
127
140
  exports.ZLinkSpotRouteDispatchStrategy = ZLinkSpotRouteDispatchStrategy;
@@ -12,15 +12,21 @@ function dispatchReasonFromError(error) {
12
12
  const origin = (0, framework_errors_internal_1.internalFrameworkErrorKind)(error);
13
13
  if (origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.PayloadDecodeFailed)
14
14
  return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.PayloadDecodeFailed;
15
- if (origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotGenerationStale ||
15
+ if (origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.HandlerNotFound ||
16
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteHandlerNotFound ||
17
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorDispatchHandlerNotFound)
18
+ return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerMissing;
19
+ if (origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound ||
20
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotRouteNotFound ||
21
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound ||
22
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.MeshNotFound ||
23
+ origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotGenerationStale ||
16
24
  origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorGenerationStale ||
17
25
  origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotMoving ||
18
26
  origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving ||
19
27
  origin === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale)
20
28
  return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.StaleTarget;
21
29
  switch (error.kind) {
22
- case ZLinkFrameworkException_1.ZLinkFrameworkErrorKind.NotFound:
23
- return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.HandlerMissing;
24
30
  case ZLinkFrameworkException_1.ZLinkFrameworkErrorKind.ProtocolError:
25
31
  return ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.InvalidFrame;
26
32
  case ZLinkFrameworkException_1.ZLinkFrameworkErrorKind.ShuttingDown:
@@ -0,0 +1 @@
1
+ export declare const initialLoggerProvider: import("@opentelemetry/api-logs").LoggerProvider;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initialLoggerProvider = void 0;
4
+ const api_logs_1 = require("@opentelemetry/api-logs");
5
+ // Loaded before the application's standard preloads in this worker only. The
6
+ // public API returns this proxy until a logger provider is registered, then the
7
+ // registered provider itself. No provider is changed or called to probe it.
8
+ exports.initialLoggerProvider = api_logs_1.logs.getLoggerProvider();
@@ -0,0 +1,47 @@
1
+ export declare const MESSAGE_FLOW_PENDING_LIMIT = 8192;
2
+ export declare const TELEMETRY_WORKER_AVAILABLE = "zlink.telemetry.available";
3
+ export declare enum TelemetryState {
4
+ Pending = 0,
5
+ Enabled = 1,
6
+ Length = 2
7
+ }
8
+ export declare enum TelemetryCounter {
9
+ Overflow = 0,
10
+ LoggerFailures = 1,
11
+ TraceFailures = 2,
12
+ FallbackFailures = 3,
13
+ WorkerFailures = 4,
14
+ Length = 5
15
+ }
16
+ export declare const TELEMETRY_STATE_BYTES: number;
17
+ export interface ZLinkTelemetryLease {
18
+ readonly retired: Int32Array;
19
+ }
20
+ export interface ZLinkTelemetryDelivery<T = unknown> {
21
+ readonly lease: SharedArrayBuffer;
22
+ readonly record: T;
23
+ }
24
+ export declare function openTelemetryLease(): ZLinkTelemetryLease;
25
+ export declare function renewTelemetryLease(lease: ZLinkTelemetryLease | undefined): ZLinkTelemetryLease;
26
+ export declare function messageFlowDelivery(): ZLinkMessageFlowDelivery;
27
+ export declare function telemetryProviderFailureCount(): number;
28
+ export declare function retireTelemetryLease(lease: ZLinkTelemetryLease): void;
29
+ export declare class ZLinkMessageFlowDelivery {
30
+ private readonly sharedState;
31
+ readonly state: Int32Array<SharedArrayBuffer>;
32
+ readonly counters: BigUint64Array<SharedArrayBuffer>;
33
+ readonly ready: Promise<void>;
34
+ private readonly worker?;
35
+ private failure?;
36
+ private pending;
37
+ private executing;
38
+ private workerReady;
39
+ private scheduled?;
40
+ constructor();
41
+ private workerFailed;
42
+ enabled(): boolean;
43
+ accepts(lease: ZLinkTelemetryLease): boolean;
44
+ submit(lease: ZLinkTelemetryLease, record: unknown): void;
45
+ retire(lease: ZLinkTelemetryLease): void;
46
+ private flush;
47
+ }