@zlink-systems/framework 0.26.0 → 0.27.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 (521) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  3. package/dist/contracts/Common/CoreTypes.js +7 -0
  4. package/dist/contracts/Common/index.d.ts +1 -1
  5. package/dist/contracts/Common/index.js +0 -1
  6. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  7. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  8. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  9. package/dist/contracts/Configuration/Registration.js +58 -36
  10. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  12. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  13. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  14. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  15. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  16. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  17. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  18. package/dist/contracts/Handlers/JsonContract.js +10 -4
  19. package/dist/contracts/Locations/Authority.d.ts +1 -1
  20. package/dist/contracts/Locations/Authority.js +3 -2
  21. package/dist/contracts/Locations/Options.js +1 -1
  22. package/dist/contracts/Locations/Stores.d.ts +12 -0
  23. package/dist/contracts/Locations/Stores.js +9 -0
  24. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  25. package/dist/internal.d.ts +4 -0
  26. package/dist/internal.js +15 -1
  27. package/dist/nest-integration.d.ts +4 -2
  28. package/dist/nest-integration.js +14 -4
  29. package/dist/runtime/abort.d.ts +1 -0
  30. package/dist/runtime/abort.js +8 -5
  31. package/dist/runtime/activation-admission.d.ts +1 -2
  32. package/dist/runtime/activation-admission.js +2 -6
  33. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  34. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  35. package/dist/runtime/actors/actor-client.d.ts +2 -2
  36. package/dist/runtime/actors/actor-client.js +42 -143
  37. package/dist/runtime/actors/actor-context.d.ts +3 -5
  38. package/dist/runtime/actors/actor-context.js +13 -11
  39. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  40. package/dist/runtime/actors/actor-handoff.js +8 -8
  41. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  42. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  43. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  44. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  45. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  46. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  47. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  48. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  49. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  50. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  51. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  52. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  53. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  54. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  55. package/dist/runtime/actors/bound-session-wire.js +2 -7
  56. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  57. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  58. package/dist/runtime/actors/index.d.ts +9 -7
  59. package/dist/runtime/actors/index.js +87 -69
  60. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  61. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  62. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  63. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  64. package/dist/runtime/admission.d.ts +2 -0
  65. package/dist/runtime/admission.js +7 -1
  66. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  67. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  68. package/dist/runtime/backend/contracts/index.d.ts +6 -23
  69. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  70. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  71. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  72. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
  73. package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
  74. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  75. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  76. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  77. package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
  78. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  79. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  80. package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
  81. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  82. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  83. package/dist/runtime/backend/runtime-values.js +2 -0
  84. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  85. package/dist/runtime/channels/channel-clients.js +68 -52
  86. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  87. package/dist/runtime/channels/channel-envelope.js +47 -29
  88. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  89. package/dist/runtime/channels/channel-outbound-operations.js +9 -10
  90. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  91. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  92. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  93. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  94. package/dist/runtime/channels/channel-runtime-manager.js +5 -2
  95. package/dist/runtime/channels/channel-socket-options.js +3 -2
  96. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  97. package/dist/runtime/channels/channel-socket-registry.js +248 -174
  98. package/dist/runtime/channels/channel-transports.d.ts +11 -17
  99. package/dist/runtime/channels/channel-transports.js +68 -47
  100. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  101. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  102. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  103. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  104. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  105. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  106. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  107. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  108. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  109. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  110. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  111. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  112. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  113. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  114. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  115. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  116. package/dist/runtime/diagnostics/flow-context.js +16 -2
  117. package/dist/runtime/diagnostics/index.d.ts +4 -2
  118. package/dist/runtime/diagnostics/index.js +14 -4
  119. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  120. package/dist/runtime/diagnostics/message-flow.js +10 -19
  121. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  122. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  123. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  124. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  125. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  126. package/dist/runtime/disposal.d.ts +5 -0
  127. package/dist/runtime/disposal.js +22 -0
  128. package/dist/runtime/execution/index.d.ts +12 -9
  129. package/dist/runtime/execution/index.js +58 -14
  130. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  131. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  132. package/dist/runtime/execution/state-lane.d.ts +8 -1
  133. package/dist/runtime/execution/state-lane.js +118 -3
  134. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  135. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  136. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  137. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  138. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  139. package/dist/runtime/foundation/operation-identity.js +9 -5
  140. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  141. package/dist/runtime/foundation/operation-registry.js +34 -44
  142. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  143. package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
  144. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  145. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  146. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  147. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  148. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  149. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  150. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  151. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  152. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  153. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  154. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  155. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  156. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  157. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  158. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  159. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  160. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  161. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  162. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  163. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  164. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  165. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  166. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  167. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  168. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  169. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  170. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  171. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  172. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  173. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  174. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  175. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  176. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  177. package/dist/runtime/framework-errors-internal.js +343 -122
  178. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  179. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  180. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  181. package/dist/runtime/host/actor-packet-relay.js +48 -91
  182. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  183. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  184. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  185. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  186. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  187. package/dist/runtime/host/application-job-queue.js +16 -33
  188. package/dist/runtime/host/bound-session-relay.js +1 -1
  189. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  190. package/dist/runtime/host/index.d.ts +14 -13
  191. package/dist/runtime/host/index.js +190 -157
  192. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  193. package/dist/runtime/host/instance-activation-authority.js +17 -45
  194. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  195. package/dist/runtime/host/location-runtime-owner.js +2 -2
  196. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  197. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  198. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  199. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  200. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  201. package/dist/runtime/host/remote-bound-session-relay.js +7 -20
  202. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  203. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  204. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  205. package/dist/runtime/host/runtime-shutdown.js +18 -21
  206. package/dist/runtime/host/service-relocation-control.js +6 -1
  207. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  208. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  209. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  210. package/dist/runtime/host/spot-address-transport.js +34 -136
  211. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  212. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  213. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  214. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  215. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  216. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  217. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  218. package/dist/runtime/locations/authority-key-codec.js +4 -3
  219. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  220. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  221. package/dist/runtime/locations/creation-operation-id.js +6 -4
  222. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  223. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  224. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  225. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  226. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  227. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  228. package/dist/runtime/locations/key-codec.js +3 -2
  229. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  230. package/dist/runtime/locations/lease-tracker.js +7 -11
  231. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  232. package/dist/runtime/locations/lifecycle.js +2 -31
  233. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  234. package/dist/runtime/locations/location-store-failure.js +7 -0
  235. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  236. package/dist/runtime/locations/location-store-pages.js +13 -0
  237. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  238. package/dist/runtime/locations/location-store-repository.js +303 -332
  239. package/dist/runtime/locations/relocation-blob.js +18 -5
  240. package/dist/runtime/locations/resolvers.d.ts +5 -5
  241. package/dist/runtime/locations/resolvers.js +37 -28
  242. package/dist/runtime/locations/runtime.d.ts +5 -4
  243. package/dist/runtime/locations/runtime.js +123 -92
  244. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  245. package/dist/runtime/locations/spot-location-claims.js +42 -1
  246. package/dist/runtime/messaging/payload-codec.js +26 -20
  247. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  248. package/dist/runtime/messaging/submission-result.js +48 -0
  249. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  250. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  251. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  252. package/dist/runtime/spots/index.d.ts +14 -20
  253. package/dist/runtime/spots/index.js +302 -176
  254. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  255. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  256. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  257. package/dist/runtime/spots/spot-activation-state.js +2 -2
  258. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  259. package/dist/runtime/spots/spot-activation.js +49 -32
  260. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  261. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  262. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  263. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  264. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  265. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  266. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  267. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  268. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  269. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  270. package/dist/runtime/spots/spot-context.d.ts +2 -2
  271. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  272. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  273. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  274. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  275. package/dist/runtime/spots/spot-manager-public.js +5 -4
  276. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  277. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  278. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  279. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  280. package/dist/runtime/spots/spot-outbound.js +9 -8
  281. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  282. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  283. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  284. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  285. package/dist/runtime/spots/spot-route-replies.js +3 -1
  286. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  287. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  288. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  289. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  290. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  291. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  292. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  293. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  294. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  295. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  296. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  297. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  298. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  299. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  300. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  301. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  302. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  303. package/dist/runtime/streams/bound-session-service.js +11 -1
  304. package/dist/runtime/streams/index.d.ts +14 -15
  305. package/dist/runtime/streams/index.js +20 -21
  306. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  307. package/dist/runtime/streams/managed-stream.js +17 -8
  308. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  309. package/dist/runtime/streams/protocol.d.ts +6 -33
  310. package/dist/runtime/streams/protocol.js +38 -110
  311. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  312. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  313. package/dist/runtime/streams/session-calls.d.ts +1 -1
  314. package/dist/runtime/streams/session-calls.js +5 -4
  315. package/dist/runtime/streams/session-context.d.ts +6 -6
  316. package/dist/runtime/streams/session-context.js +22 -4
  317. package/dist/runtime/streams/session-requests.js +2 -1
  318. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  319. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  320. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  321. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  322. package/dist/runtime/workers/index.d.ts +2 -2
  323. package/dist/runtime/workers/index.js +5 -4
  324. package/package.json +3 -3
  325. package/src/contracts/Common/CoreTypes.ts +7 -0
  326. package/src/contracts/Common/index.ts +1 -1
  327. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  328. package/src/contracts/Configuration/Registration.ts +92 -48
  329. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  330. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  331. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  332. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  333. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  334. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  335. package/src/contracts/Handlers/JsonContract.ts +14 -4
  336. package/src/contracts/Locations/Authority.ts +7 -3
  337. package/src/contracts/Locations/Options.ts +1 -1
  338. package/src/contracts/Locations/Stores.ts +14 -0
  339. package/src/contracts/Spots/Contracts.ts +1 -1
  340. package/src/internal.ts +14 -0
  341. package/src/nest-integration.ts +28 -10
  342. package/src/runtime/abort.ts +6 -5
  343. package/src/runtime/activation-admission.ts +2 -8
  344. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  345. package/src/runtime/actors/actor-client.ts +77 -204
  346. package/src/runtime/actors/actor-context.ts +39 -33
  347. package/src/runtime/actors/actor-handoff.ts +24 -22
  348. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  349. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  350. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  351. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  352. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  353. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  354. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  355. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  356. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  357. package/src/runtime/actors/bound-session-wire.ts +2 -8
  358. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  359. package/src/runtime/actors/index.ts +100 -79
  360. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  361. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  362. package/src/runtime/admission.ts +8 -1
  363. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  364. package/src/runtime/backend/contracts/index.ts +13 -29
  365. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  366. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  367. package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
  368. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  369. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  370. package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
  371. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  372. package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
  373. package/src/runtime/backend/raw-binding-port.ts +1 -1
  374. package/src/runtime/backend/runtime-values.ts +4 -1
  375. package/src/runtime/channels/channel-clients.ts +132 -85
  376. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  377. package/src/runtime/channels/channel-envelope.ts +58 -29
  378. package/src/runtime/channels/channel-outbound-operations.ts +10 -23
  379. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  380. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  381. package/src/runtime/channels/channel-runtime-manager.ts +6 -2
  382. package/src/runtime/channels/channel-socket-options.ts +8 -2
  383. package/src/runtime/channels/channel-socket-registry.ts +301 -192
  384. package/src/runtime/channels/channel-transports.ts +161 -112
  385. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  386. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  387. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  388. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  389. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  390. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  391. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  392. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  393. package/src/runtime/diagnostics/flow-context.ts +16 -2
  394. package/src/runtime/diagnostics/index.ts +27 -17
  395. package/src/runtime/diagnostics/message-flow.ts +15 -25
  396. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  397. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  398. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  399. package/src/runtime/disposal.ts +19 -0
  400. package/src/runtime/execution/index.ts +60 -20
  401. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  402. package/src/runtime/execution/state-lane.ts +142 -4
  403. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  404. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  405. package/src/runtime/foundation/operation-identity.ts +11 -5
  406. package/src/runtime/foundation/operation-registry.ts +33 -50
  407. package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
  408. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  409. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  410. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  411. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  412. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  413. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  414. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  415. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  416. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  417. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  418. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  419. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  420. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  421. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  422. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  423. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  424. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  425. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  426. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  427. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  428. package/src/runtime/framework-errors-internal.ts +380 -134
  429. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  430. package/src/runtime/host/actor-packet-relay.ts +57 -147
  431. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  432. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  433. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  434. package/src/runtime/host/application-job-queue.ts +28 -34
  435. package/src/runtime/host/bound-session-relay.ts +1 -2
  436. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  437. package/src/runtime/host/index.ts +327 -296
  438. package/src/runtime/host/instance-activation-authority.ts +89 -109
  439. package/src/runtime/host/location-runtime-owner.ts +4 -2
  440. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  441. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  442. package/src/runtime/host/remote-bound-session-relay.ts +8 -41
  443. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  444. package/src/runtime/host/runtime-shutdown.ts +17 -21
  445. package/src/runtime/host/service-relocation-control.ts +14 -1
  446. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  447. package/src/runtime/host/spot-address-transport.ts +73 -195
  448. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  449. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  450. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  451. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  452. package/src/runtime/locations/authority-key-codec.ts +7 -3
  453. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  454. package/src/runtime/locations/creation-operation-id.ts +6 -3
  455. package/src/runtime/locations/domain-store-contract.ts +12 -3
  456. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  457. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  458. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  459. package/src/runtime/locations/key-codec.ts +3 -2
  460. package/src/runtime/locations/lease-tracker.ts +8 -14
  461. package/src/runtime/locations/lifecycle.ts +13 -43
  462. package/src/runtime/locations/location-store-failure.ts +4 -0
  463. package/src/runtime/locations/location-store-pages.ts +18 -0
  464. package/src/runtime/locations/location-store-repository.ts +450 -478
  465. package/src/runtime/locations/relocation-blob.ts +17 -6
  466. package/src/runtime/locations/resolvers.ts +75 -49
  467. package/src/runtime/locations/runtime.ts +220 -110
  468. package/src/runtime/locations/spot-location-claims.ts +58 -1
  469. package/src/runtime/messaging/payload-codec.ts +35 -24
  470. package/src/runtime/messaging/submission-result.ts +57 -1
  471. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  472. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  473. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  474. package/src/runtime/spots/index.ts +433 -229
  475. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  476. package/src/runtime/spots/spot-activation-state.ts +2 -2
  477. package/src/runtime/spots/spot-activation.ts +67 -37
  478. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  479. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  480. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  481. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  482. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  483. package/src/runtime/spots/spot-context.ts +3 -3
  484. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  485. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  486. package/src/runtime/spots/spot-manager-public.ts +21 -17
  487. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  488. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  489. package/src/runtime/spots/spot-outbound.ts +45 -23
  490. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  491. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  492. package/src/runtime/spots/spot-route-replies.ts +6 -4
  493. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  494. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  495. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  496. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  497. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  498. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  499. package/src/runtime/spots/spot-timer.ts +3 -2
  500. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  501. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  502. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  503. package/src/runtime/streams/bound-session-service.ts +21 -1
  504. package/src/runtime/streams/index.ts +76 -64
  505. package/src/runtime/streams/managed-stream.ts +29 -10
  506. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  507. package/src/runtime/streams/protocol.ts +34 -88
  508. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  509. package/src/runtime/streams/session-calls.ts +6 -5
  510. package/src/runtime/streams/session-context.ts +54 -10
  511. package/src/runtime/streams/session-requests.ts +2 -1
  512. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  513. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  514. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  515. package/src/runtime/workers/index.ts +13 -12
  516. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  517. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  518. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  519. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  520. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  521. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,45 +1,65 @@
1
- import {
2
- ZLinkFrameworkInternalErrorKind,
3
- createInternalFrameworkException,
4
- internalFrameworkErrorKind,
5
- internalFrameworkErrorKindFromWireReply,
6
- isCanonicalWireReplyTerminal
7
- } from '../framework-errors-internal';
8
- import { ZLinkBufferMessage } from '../backend/runtime-message';
9
- import {
10
- RequestResult,
11
- SubmitResult,
12
- isZLinkBackendResultError,
13
- type ZLinkBackendMessageLike as MessageLike
14
- } from '../backend/runtime-values';
15
- import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
16
- import type { ZLinkFrameworkInternalErrorKind as ZLinkFrameworkInternalErrorKindType } from '../framework-errors-internal';
17
1
  import { ZLinkFrameworkException } from '../../contracts';
18
2
  import type { Message } from '../../contracts/Common/Message';
19
- import { ZLinkSubmitStatus, type ZLinkSubmitResult } from '../messaging/submission-result';
20
- import { ZLinkConfigurationException } from '../configuration';
21
- import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
3
+ import { DEFAULT_REQUEST_TIMEOUT_MS } from '../../contracts/Configuration/Registration';
22
4
  import { ZLinkSpotKind } from '../../contracts/Spots';
23
5
  import { throwIfAborted } from '../abort';
24
- import type { ZLinkRuntimeMetrics } from '../diagnostics';
6
+ import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
25
7
  import {
26
8
  closeMeshCompletion,
27
9
  type ZLinkMeshCompletion,
28
10
  type ZLinkMeshCompletionTable
29
11
  } from '../backend/mesh-completion-table';
30
- import { routingIdsEqual, toBackendRoutingId as toBackendRoutingId } from '../routing-id';
12
+ import { ZLinkBufferMessage } from '../backend/runtime-message';
31
13
  import {
32
- decodeChannelReply,
33
- encodeChannelEnvelopeParts,
34
- type ZLinkChannelEnvelopeCodecRegistry,
35
- ZLinkChannelMessageKind
36
- } from './channel-envelope';
14
+ RequestResult,
15
+ isZLinkBackendResultError,
16
+ type ZLinkBackendMessageLike as MessageLike
17
+ } from '../backend/runtime-values';
18
+ import { ZLinkConfigurationException } from '../configuration';
19
+ import type { ZLinkRuntimeMetrics } from '../diagnostics';
20
+ import { runWithOutboundFlow } from '../diagnostics/flow-context';
21
+ import { flowIfEnabled, type ZLinkMessageFlowTracer } from '../diagnostics';
22
+ import {
23
+ ZLinkDispatchErrorSurface,
24
+ ZLinkDispatchMessageKind,
25
+ ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
26
+ type ZLinkRuntimeMessageFlowResult
27
+ } from '../../contracts/Dispatch/ZLinkDispatchOptions';
28
+ import { isRemoteChannelErrorReply, requestTerminalResult } from './channel-outbound-operations';
29
+ import { ServiceStaleGenerationError } from '../foundation/service-stateful-registry';
37
30
  import type {
38
31
  ServiceDirectSpotRouteFence,
39
32
  ServiceInstanceRouteFence
40
33
  } from '../foundation/service-stateful-wire-codec';
41
- import { ServiceStaleGenerationError } from '../foundation/service-stateful-registry';
42
- import { runWithOutboundFlow } from '../diagnostics/flow-context';
34
+ import {
35
+ type ZLinkFrameworkInternalErrorKind as ZLinkFrameworkInternalErrorKindType,
36
+ ZLinkFrameworkInternalErrorKind,
37
+ createInternalFrameworkException,
38
+ internalFrameworkErrorKind,
39
+ internalFrameworkErrorKindFromWireReply,
40
+ isCanonicalWireReplyTerminal,
41
+ requestResultToPublicErrorKind
42
+ } from '../framework-errors-internal';
43
+
44
+ import {
45
+ classifySubmitResult,
46
+ submitToRequestResult,
47
+ ZLinkSubmitStatus,
48
+ type ZLinkSubmitResult
49
+ } from '../messaging/submission-result';
50
+ import { routingIdsEqual, toBackendRoutingId } from '../routing-id';
51
+ import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
52
+ import type {
53
+ ZLinkSpotRoutedSendOptions,
54
+ ZLinkSpotRoutedRequestOptions
55
+ } from '../spots/spot-outbound';
56
+ import {
57
+ ZLinkChannelMessageKind,
58
+ decodeChannelReply,
59
+ encodeChannelEnvelopeParts,
60
+ newChannelCorrelationId,
61
+ type ZLinkChannelEnvelopeCodecRegistry
62
+ } from './channel-envelope';
43
63
 
44
64
  export interface ZLinkChannelClientTransport {
45
65
  send(
@@ -278,7 +298,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
278
298
  parts: readonly MessageLike[]
279
299
  ) => ZLinkSubmitResult,
280
300
  private readonly metrics?: ZLinkRuntimeMetrics,
281
- private readonly flowCreationEnabled: () => boolean = () => true
301
+ private readonly flowCreationEnabled: () => boolean = () => true,
302
+ private readonly outboundFlow: () => ZLinkMessageFlowTracer | undefined = () => undefined
282
303
  ) {}
283
304
 
284
305
  canRouteChannel(routerChannelId: string): boolean {
@@ -422,33 +443,92 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
422
443
  metadata
423
444
  );
424
445
  }
425
- throwIfAborted(signal);
426
- if (node.isObjectClientNodeDirectTarget?.(toBackendRoutingId(targetNodeRid)) === true) {
427
- throw createInternalFrameworkException(
428
- ZLinkFrameworkInternalErrorKind.RequestTargetNotFound,
429
- `MeshNode '${meshName}' target '${targetNodeRid}' is an Object Client.`
446
+ const correlationId = newChannelCorrelationId();
447
+ try {
448
+ throwIfAborted(signal);
449
+ if (node.isObjectClientNodeDirectTarget?.(toBackendRoutingId(targetNodeRid)) === true) {
450
+ throw createInternalFrameworkException(
451
+ ZLinkFrameworkInternalErrorKind.RequestTargetNotFound,
452
+ `MeshNode '${meshName}' target '${targetNodeRid}' is an Object Client.`
453
+ );
454
+ }
455
+ const parts = this.encodeMessage(
456
+ ZLinkChannelMessageKind.Request,
457
+ meshName,
458
+ packetName,
459
+ request,
460
+ timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS,
461
+ metadata,
462
+ correlationId
463
+ );
464
+ const completion = await this.submitRequestOperation(
465
+ meshName,
466
+ timeoutMs,
467
+ signal,
468
+ `MeshNode '${meshName}' request to node '${targetNodeRid}'`,
469
+ (remainingTimeoutMs) => {
470
+ const operationId = node.requestToNode(toBackendRoutingId(targetNodeRid), parts, {
471
+ flags: 1,
472
+ timeoutMs: remainingTimeoutMs
473
+ });
474
+ this.traceNodeRequest(
475
+ ZLinkMessageFlowOutcome.Sent,
476
+ undefined,
477
+ meshName,
478
+ targetNodeRid,
479
+ packetName,
480
+ correlationId
481
+ );
482
+ return operationId;
483
+ }
484
+ );
485
+ const reply = this.decodeMeshReply<TReply>(meshName, completion);
486
+ this.traceNodeRequest(
487
+ ZLinkMessageFlowOutcome.ReplyReceived,
488
+ 'succeeded',
489
+ meshName,
490
+ targetNodeRid,
491
+ packetName,
492
+ correlationId
430
493
  );
494
+ return reply;
495
+ } catch (error) {
496
+ if (!isRemoteChannelErrorReply(error)) {
497
+ this.traceNodeRequest(
498
+ ZLinkMessageFlowOutcome.ReplyReceived,
499
+ requestTerminalResult(error, signal),
500
+ meshName,
501
+ targetNodeRid,
502
+ packetName,
503
+ correlationId,
504
+ error
505
+ );
506
+ }
507
+ throw error;
431
508
  }
432
- const parts = this.encodeMessage(
433
- ZLinkChannelMessageKind.Request,
509
+ }
510
+
511
+ private traceNodeRequest(
512
+ outcome: ZLinkMessageFlowOutcome,
513
+ result: ZLinkRuntimeMessageFlowResult | undefined,
514
+ meshName: string,
515
+ targetRid: string,
516
+ packetName: string | undefined,
517
+ correlationId: string,
518
+ error?: unknown
519
+ ): void {
520
+ if (!this.flowCreationEnabled()) return;
521
+ flowIfEnabled(this.outboundFlow(), outcome, result)?.trace({
522
+ outcome,
523
+ result,
524
+ surface: ZLinkDispatchErrorSurface.Node,
525
+ messageKind: ZLinkDispatchMessageKind.Request,
434
526
  meshName,
527
+ targetRid,
435
528
  packetName,
436
- request,
437
- timeoutMs ?? 30_000,
438
- metadata
439
- );
440
- const completion = await this.submitRequestOperation(
441
- meshName,
442
- timeoutMs,
443
- signal,
444
- `MeshNode '${meshName}' request to node '${targetNodeRid}'`,
445
- (remainingTimeoutMs) =>
446
- node.requestToNode(toBackendRoutingId(targetNodeRid), parts, {
447
- flags: 1,
448
- timeoutMs: remainingTimeoutMs
449
- })
450
- );
451
- return this.decodeMeshReply(meshName, completion);
529
+ correlationId,
530
+ ...(error instanceof Error ? { errorType: error.name, errorMessage: error.message } : {})
531
+ });
452
532
  }
453
533
 
454
534
  submitToChannel(
@@ -534,7 +614,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
534
614
  channelName,
535
615
  packetName,
536
616
  request,
537
- timeoutMs ?? 30_000,
617
+ timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS,
538
618
  metadata
539
619
  );
540
620
  const metric = this.metrics?.startRequest(meshName, 'channel');
@@ -568,7 +648,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
568
648
  remainingTimeoutMs: number
569
649
  ) => ReturnType<Parameters<ZLinkMeshCompletionTable['submit']>[0]>
570
650
  ): Promise<ZLinkMeshCompletion> {
571
- const effectiveTimeoutMs = Math.max(1, timeoutMs ?? 30_000);
651
+ const effectiveTimeoutMs = Math.max(1, timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS);
572
652
  const deadlineMs = performance.now() + effectiveTimeoutMs;
573
653
  const remainingTimeoutMs = deadlineMs - performance.now();
574
654
  if (remainingTimeoutMs <= 0) {
@@ -590,12 +670,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
590
670
  sendToSpot(
591
671
  spotRouteTarget: ZLinkSpotRouteTarget,
592
672
  message: unknown,
593
- options: {
594
- readonly packetName?: string;
595
- readonly timeoutMs?: number;
596
- readonly signal?: AbortSignal;
597
- readonly metadata?: ReadonlyMap<string, string>;
598
- }
673
+ options: ZLinkSpotRoutedSendOptions
599
674
  ): Promise<ZLinkSubmitResult> {
600
675
  return runWithOutboundFlow(this.flowCreationEnabled(), () =>
601
676
  this.sendToSpotScoped(spotRouteTarget, message, options)
@@ -605,12 +680,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
605
680
  private async sendToSpotScoped(
606
681
  spotRouteTarget: ZLinkSpotRouteTarget,
607
682
  message: unknown,
608
- options: {
609
- readonly packetName?: string;
610
- readonly timeoutMs?: number;
611
- readonly signal?: AbortSignal;
612
- readonly metadata?: ReadonlyMap<string, string>;
613
- }
683
+ options: ZLinkSpotRoutedSendOptions
614
684
  ): Promise<ZLinkSubmitResult> {
615
685
  const node = this.meshNode(spotRouteTarget.routerChannelId);
616
686
  if (node === undefined) {
@@ -646,7 +716,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
646
716
  instanceSpotRouteFence(spotRouteTarget),
647
717
  encoded,
648
718
  undefined,
649
- options.metadata
719
+ options.metadata,
720
+ options.instanceSpot
650
721
  )
651
722
  );
652
723
  }
@@ -696,12 +767,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
696
767
  requestToSpot<TReply = unknown>(
697
768
  spotRouteTarget: ZLinkSpotRouteTarget,
698
769
  request: unknown,
699
- options: {
700
- readonly packetName?: string;
701
- readonly timeoutMs?: number;
702
- readonly signal?: AbortSignal;
703
- readonly metadata?: ReadonlyMap<string, string>;
704
- }
770
+ options: ZLinkSpotRoutedRequestOptions
705
771
  ): Promise<TReply> {
706
772
  return runWithOutboundFlow(this.flowCreationEnabled(), () =>
707
773
  this.requestToSpotScoped<TReply>(spotRouteTarget, request, options)
@@ -711,12 +777,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
711
777
  private async requestToSpotScoped<TReply = unknown>(
712
778
  spotRouteTarget: ZLinkSpotRouteTarget,
713
779
  request: unknown,
714
- options: {
715
- readonly packetName?: string;
716
- readonly timeoutMs?: number;
717
- readonly signal?: AbortSignal;
718
- readonly metadata?: ReadonlyMap<string, string>;
719
- }
780
+ options: ZLinkSpotRoutedRequestOptions
720
781
  ): Promise<TReply> {
721
782
  const meshName = spotRouteTarget.routerChannelId;
722
783
  const node = this.meshNode(meshName);
@@ -754,7 +815,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
754
815
  encoded,
755
816
  options.timeoutMs,
756
817
  undefined,
757
- options.metadata
818
+ options.metadata,
819
+ options.instanceSpot
758
820
  )
759
821
  : node
760
822
  .entrySpot()
@@ -967,7 +1029,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
967
1029
  packetName: string | undefined,
968
1030
  message: unknown,
969
1031
  timeoutMs?: number,
970
- metadata?: ReadonlyMap<string, string>
1032
+ metadata?: ReadonlyMap<string, string>,
1033
+ correlationId?: string
971
1034
  ): readonly MessageLike[] {
972
1035
  return encodeChannelEnvelopeParts(
973
1036
  kind,
@@ -977,7 +1040,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
977
1040
  timeoutMs,
978
1041
  undefined,
979
1042
  this.codecs,
980
- undefined,
1043
+ correlationId,
981
1044
  this.flowCreationEnabled(),
982
1045
  metadata
983
1046
  );
@@ -1021,7 +1084,7 @@ function directSpotRouteFence(
1021
1084
  target.authorityStoreVersion === undefined
1022
1085
  ) {
1023
1086
  throw createInternalFrameworkException(
1024
- ZLinkFrameworkInternalErrorKind.SpotRouteNotFound,
1087
+ ZLinkFrameworkInternalErrorKind.RouteNotConnected,
1025
1088
  `Spot '${String(target.spotId)}' has no complete Ready authority fence.`
1026
1089
  );
1027
1090
  }
@@ -1065,24 +1128,7 @@ function instanceSpotRouteFence(target: ZLinkSpotRouteTarget): ServiceInstanceRo
1065
1128
  }
1066
1129
 
1067
1130
  function mapMeshSubmitResult(result: number): ZLinkSubmitResult {
1068
- switch (result) {
1069
- case SubmitResult.Ok:
1070
- return { status: ZLinkSubmitStatus.Submitted };
1071
- case SubmitResult.Backpressured:
1072
- case SubmitResult.NotAdmitted:
1073
- return { status: ZLinkSubmitStatus.Backpressured };
1074
- case SubmitResult.NotFound:
1075
- return { status: ZLinkSubmitStatus.TargetNotFound };
1076
- case SubmitResult.NotConnected:
1077
- return { status: ZLinkSubmitStatus.RouteNotConnected };
1078
- case SubmitResult.Terminated:
1079
- return { status: ZLinkSubmitStatus.Shutdown };
1080
- default:
1081
- throw createInternalFrameworkException(
1082
- ZLinkFrameworkInternalErrorKind.RequestFailed,
1083
- `Mesh submission failed with result ${result}.`
1084
- );
1085
- }
1131
+ return classifySubmitResult(result, 'Mesh submission');
1086
1132
  }
1087
1133
 
1088
1134
  function mapMeshSubmissionError(error: unknown, operation: string): Error {
@@ -1103,18 +1149,21 @@ function mapMeshSubmissionError(error: unknown, operation: string): Error {
1103
1149
  );
1104
1150
  }
1105
1151
  if (isZLinkBackendResultError(error)) {
1106
- const notFound = error.result === SubmitResult.NotFound || error.result === 102;
1107
- const retriable =
1108
- error.result === SubmitResult.Backpressured ||
1109
- error.result === SubmitResult.NotConnected ||
1110
- error.result === 109 ||
1111
- error.result === 113;
1112
- return createInternalFrameworkException(
1113
- notFound
1114
- ? ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
1115
- : ZLinkFrameworkInternalErrorKind.RouteNotConnected,
1152
+ const terminal =
1153
+ error.operation === 'request'
1154
+ ? error.result
1155
+ : submitToRequestResult(error.result, error.phase);
1156
+ if (terminal === RequestResult.NotFound) {
1157
+ return createInternalFrameworkException(
1158
+ ZLinkFrameworkInternalErrorKind.RequestTargetNotFound,
1159
+ `${operation} failed with result ${error.result}.`,
1160
+ false,
1161
+ error
1162
+ );
1163
+ }
1164
+ return new ZLinkFrameworkException(
1165
+ requestResultToPublicErrorKind(terminal),
1116
1166
  `${operation} failed with result ${error.result}.`,
1117
- retriable,
1118
1167
  error
1119
1168
  );
1120
1169
  }
@@ -1,3 +1,5 @@
1
+ import type { Message } from '../../contracts/Common/Message';
2
+ import { ZLINK_DEFAULT_PUBLIC_WEIGHT } from '../../contracts/Configuration/RegistrationBuilderPolicy';
1
3
  import {
2
4
  ZLinkFrameworkRuntimeState,
3
5
  ZLinkLocationWriteIntent,
@@ -5,26 +7,28 @@ import {
5
7
  type ZLinkClientServerServerDescriptor,
6
8
  type ZLinkLocationOwnerToken
7
9
  } from '../../contracts/Locations';
8
- import type { ZLinkClientServerLocationStore } from '../locations/internal-store-contracts';
9
10
  import {
10
11
  zlinkRuntimeDefaultLocationOptions,
11
12
  type ZLinkLocationOptionOverrides
12
13
  } from '../../contracts/Locations/Options';
13
- import type { ZLinkFrameworkRegistration } from '../configuration';
14
- import { ZLinkConfigurationException } from '../configuration';
15
- import type { ZLinkLocationRuntime, ZLinkLocationRuntimeStores } from '../locations';
16
- import { ZLinkChannelSocketRegistry } from './channel-socket-registry';
14
+ import { ZLINK_PROVIDER_MAX_PAGE_SIZE } from '../../contracts/Locations/Stores';
17
15
  import type { ZLinkBackendDealerSocket } from '../backend/contracts';
18
16
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
19
- import type { Message } from '../../contracts/Common/Message';
17
+ import { isBackendRequestTimeoutError } from '../backend/runtime-values';
18
+ import { type ZLinkFrameworkRegistration, ZLinkConfigurationException } from '../configuration';
19
+
20
+ import { ZLinkStateLane } from '../execution/state-lane';
21
+ import { discoveryAvailabilityForRuntimeState } from '../foundation/runtime-state-projections';
22
+ import type { ZLinkLocationRuntime, ZLinkLocationRuntimeStores } from '../locations';
23
+ import type { ZLinkClientServerLocationStore } from '../locations/internal-store-contracts';
24
+ import { ZLinkChannelSocketRegistry } from './channel-socket-registry';
20
25
  import {
21
26
  decodeClientServerControl,
27
+ DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT,
22
28
  encodeClientServerHello,
29
+ normalizeClientServerMessageLimit,
23
30
  type ZLinkClientServerAdmission
24
31
  } from './client-server-service-wire';
25
- import { discoveryAvailabilityForRuntimeState } from '../foundation/runtime-state-projections';
26
- import { ZLinkStateLane } from '../execution/state-lane';
27
- import { isBackendRequestTimeoutError } from '../backend/runtime-values';
28
32
 
29
33
  interface ActiveClientServerTarget {
30
34
  descriptor: ZLinkClientServerServerDescriptor;
@@ -170,7 +174,7 @@ export class ZLinkClientServerLocationRuntime {
170
174
  lifecycleGeneration: identity.lifecycleGeneration,
171
175
  descriptorRevision: 1n,
172
176
  endpoint: identity.endpoint,
173
- weight: channel.server.weight ?? 100,
177
+ weight: channel.server.weight ?? ZLINK_DEFAULT_PUBLIC_WEIGHT,
174
178
  state: ZLinkFrameworkRuntimeState.Serving,
175
179
  securityIdentity: 'default',
176
180
  ownerId: owner.ownerId,
@@ -250,7 +254,7 @@ export class ZLinkClientServerLocationRuntime {
250
254
  do {
251
255
  const page = await this.store.listClientServers(
252
256
  channelName,
253
- { pageSize: 1000, continuationToken },
257
+ { pageSize: ZLINK_PROVIDER_MAX_PAGE_SIZE, continuationToken },
254
258
  signal
255
259
  );
256
260
  rows.push(...page.items);
@@ -517,7 +521,7 @@ function sameDescriptor(
517
521
 
518
522
  function toDiscoveryDescriptor(
519
523
  descriptor: ZLinkClientServerServerDescriptor,
520
- effectiveMaxMessageBytes = 0x7fff_ffff
524
+ effectiveMaxMessageBytes: number = DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT
521
525
  ) {
522
526
  return {
523
527
  channelName: descriptor.channelName,
@@ -541,7 +545,7 @@ function requestAdmission(
541
545
  encodeClientServerHello({
542
546
  channelName: descriptor.channelName,
543
547
  securityIdentity: descriptor.securityIdentity,
544
- normalizedEffectiveMaxMessageBytes: normalizedMessageLimit(dealer.maxMessageSize)
548
+ normalizedEffectiveMaxMessageBytes: normalizeClientServerMessageLimit(dealer.maxMessageSize)
545
549
  })
546
550
  );
547
551
  return dealer.request(message, timeoutMs).then(
@@ -600,7 +604,3 @@ function requireMatchingAdmission(
600
604
  function closeMessages(parts: readonly Message[]): void {
601
605
  for (const part of parts) part.close();
602
606
  }
603
-
604
- function normalizedMessageLimit(value: number): number {
605
- return Number.isSafeInteger(value) && value > 0 ? Math.min(value, 0xffff_ffff) : 0x7fff_ffff;
606
- }
@@ -1,16 +1,40 @@
1
- import type { ZLinkClientServerServerDescriptor } from '../../contracts/Locations';
2
- import { ZLinkFrameworkRuntimeState } from '../../contracts/Locations';
1
+ import { UINT32_MAX } from '@zlink-systems/stream-wire';
2
+ import { normalizeEndpoint } from '../../contracts/Configuration/EndpointNotation';
3
+ import { isValidPublicWeight } from '../../contracts/Configuration/RegistrationBuilderPolicy';
4
+ import {
5
+ type ZLinkClientServerServerDescriptor,
6
+ ZLinkFrameworkRuntimeState
7
+ } from '../../contracts/Locations';
8
+
3
9
  import {
4
10
  decodeCanonicalServiceWireText,
5
11
  decodeServiceWireRoutingId,
6
12
  encodeCanonicalServiceWireText,
7
13
  encodeServiceWireRoutingId
8
14
  } from '../foundation/service-wire-binary-primitives';
9
- import { normalizeEndpoint } from '../../contracts/Configuration/EndpointNotation';
15
+ import {
16
+ SERVICE_WIRE_MAGIC,
17
+ SERVICE_WIRE_MAJOR
18
+ } from '../foundation/service-wire-constants.generated';
19
+ export const DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT = 0x7fff_ffff;
20
+ export function normalizeClientServerMessageLimit(value: number): number {
21
+ return Number.isSafeInteger(value) && value > 0
22
+ ? Math.min(value, UINT32_MAX)
23
+ : DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT;
24
+ }
25
+
26
+ const CLIENT_SERVER_PREFIX_BYTES = 5;
27
+ const CLIENT_SERVER_ROLE_BODY_MAX_BYTES = 0xffff;
28
+ const CLIENT_SERVER_TEXT_MAX_BYTES = 4096;
29
+
30
+ export enum ClientServerRejectReason {
31
+ ProtocolVersionUnsupported = 1,
32
+ AdmissionMismatch = 3
33
+ }
10
34
 
11
- const MAGIC_0 = 0x5a;
12
- const MAGIC_1 = 0x4d;
13
- const WIRE_MAJOR = 1;
35
+ const MAGIC_0 = SERVICE_WIRE_MAGIC[0];
36
+ const MAGIC_1 = SERVICE_WIRE_MAGIC[1];
37
+ const WIRE_MAJOR = SERVICE_WIRE_MAJOR;
14
38
  const TOPOLOGY_CLIENT_SERVER = 2;
15
39
  const ROLE_CLIENT = 1;
16
40
  const ROLE_SERVER = 2;
@@ -22,7 +46,7 @@ const COMMAND_UPDATE = 4;
22
46
  const COMMAND_LIVENESS_PROBE = 5;
23
47
  const COMMAND_LIVENESS_ACK = 6;
24
48
  const MAX_DESCRIPTOR_BYTES = 1024 * 1024;
25
- const MAX_U32 = 0xffff_ffff;
49
+ const MAX_U32 = UINT32_MAX;
26
50
  const MAX_GENERATION = 0x7fff_ffff_ffff_ffffn;
27
51
 
28
52
  export interface ZLinkClientServerHello {
@@ -99,7 +123,10 @@ export function encodeClientServerLivenessAck(probeId: bigint): Buffer {
99
123
 
100
124
  export function isClientServerControlFrame(frame: Uint8Array): boolean {
101
125
  return (
102
- frame.byteLength >= 5 && frame[0] === MAGIC_0 && frame[1] === MAGIC_1 && frame[2] === WIRE_MAJOR
126
+ frame.byteLength >= CLIENT_SERVER_PREFIX_BYTES &&
127
+ frame[0] === MAGIC_0 &&
128
+ frame[1] === MAGIC_1 &&
129
+ frame[2] === WIRE_MAJOR
103
130
  );
104
131
  }
105
132
 
@@ -177,7 +204,8 @@ function encodeServerAdmission(
177
204
  }
178
205
 
179
206
  function encodeAdmission(command: number, role: number, roleBody: Buffer): Buffer {
180
- if (roleBody.byteLength > 0xffff) fail('ClientServer role body is oversized.');
207
+ if (roleBody.byteLength > CLIENT_SERVER_ROLE_BODY_MAX_BYTES)
208
+ fail('ClientServer role body is oversized.');
181
209
  const admission = concat(Buffer.of(role), encodeU16(roleBody.byteLength), roleBody);
182
210
  const result = concat(
183
211
  prefix(command),
@@ -210,7 +238,7 @@ function decodeServerAdmission(reader: Reader): ZLinkClientServerAdmission {
210
238
  const lifecycleGeneration = reader.nonZeroU64('lifecycleGeneration');
211
239
  const descriptorRevision = reader.nonZeroU64('descriptorRevision');
212
240
  const weight = reader.u32('weight');
213
- if (weight > 10_000) fail('ClientServer weight is invalid.');
241
+ if (!isValidPublicWeight(weight)) fail('ClientServer weight is invalid.');
214
242
  return {
215
243
  channelName,
216
244
  serverRid,
@@ -261,7 +289,7 @@ function encodeText8(value: string, field: string): Buffer {
261
289
  }
262
290
 
263
291
  function encodeText16(value: string, field: string): Buffer {
264
- const bytes = encodeCanonicalServiceWireText(value, field, 4096, fail);
292
+ const bytes = encodeCanonicalServiceWireText(value, field, CLIENT_SERVER_TEXT_MAX_BYTES, fail);
265
293
  return concat(encodeU16(bytes.byteLength), bytes);
266
294
  }
267
295
 
@@ -373,7 +401,7 @@ class Reader {
373
401
 
374
402
  text16(field: string): string {
375
403
  const length = this.u16(`${field}.length`);
376
- if (length < 1 || length > 4096) fail(`${field} length is invalid.`);
404
+ if (length < 1 || length > CLIENT_SERVER_TEXT_MAX_BYTES) fail(`${field} length is invalid.`);
377
405
  return decodeText(this.bytes(length, field), field);
378
406
  }
379
407
 
@@ -1,19 +1,21 @@
1
1
  import {
2
- ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
3
2
  ZLinkRuntimeDispatchErrorAction as ZLinkDispatchErrorAction,
4
3
  ZLinkRuntimeDispatchErrorReason as ZLinkDispatchErrorReason,
5
4
  ZLinkDispatchErrorSurface,
6
5
  ZLinkDispatchMessageKind,
6
+ ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
7
7
  type ZLinkDispatchFailure
8
8
  } from '../../contracts/Dispatch/ZLinkDispatchOptions';
9
- import type { ZLinkRuntimeMetrics } from '../diagnostics';
10
9
  import {
11
- ZLinkMessageFlowTracer,
10
+ type ZLinkRuntimeMetrics,
12
11
  DEFAULT_ZLINK_DIAGNOSTICS,
12
+ ZLinkMessageFlowTracer,
13
13
  type ZLinkDiagnosticsContext
14
14
  } from '../diagnostics';
15
- import type { ZLinkDispatchErrorSink } from '../diagnostics/dispatch-error-port';
15
+
16
16
  import { dispatchErrorDetails } from '../diagnostics/dispatch-error-details';
17
+ import type { ZLinkDispatchErrorSink } from '../diagnostics/dispatch-error-port';
18
+ import { METRIC_NAMES } from '../diagnostics/runtime-metrics';
17
19
 
18
20
  export type { ZLinkDispatchErrorSink } from '../diagnostics/dispatch-error-port';
19
21
 
@@ -49,7 +51,7 @@ export class ZLinkDispatchErrorReporter {
49
51
  const normalized = normalizeDispatchFailure(event);
50
52
  const dropReason = channelDropReason(normalized);
51
53
  if (dropReason !== undefined) {
52
- this.metrics?.count('zlink.mesh_node.messages.dropped', 1, {
54
+ this.metrics?.count(METRIC_NAMES.MeshNodeMessagesDropped, 1, {
53
55
  surface: normalized.surface,
54
56
  message_kind: normalized.messageKind,
55
57
  reason: dropReason