@zlink-systems/framework 0.25.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 (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
  3. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  4. package/dist/contracts/Common/CoreTypes.js +7 -0
  5. package/dist/contracts/Common/index.d.ts +1 -1
  6. package/dist/contracts/Common/index.js +0 -1
  7. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  8. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  9. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  10. package/dist/contracts/Configuration/Registration.js +58 -36
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  12. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  13. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  14. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  15. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  16. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  17. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  18. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  19. package/dist/contracts/Handlers/JsonContract.js +10 -4
  20. package/dist/contracts/Locations/Authority.d.ts +1 -1
  21. package/dist/contracts/Locations/Authority.js +3 -2
  22. package/dist/contracts/Locations/Options.js +1 -1
  23. package/dist/contracts/Locations/Stores.d.ts +12 -0
  24. package/dist/contracts/Locations/Stores.js +9 -0
  25. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
  26. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  27. package/dist/internal.d.ts +5 -0
  28. package/dist/internal.js +16 -1
  29. package/dist/nest-integration.d.ts +4 -2
  30. package/dist/nest-integration.js +14 -4
  31. package/dist/runtime/abort.d.ts +1 -0
  32. package/dist/runtime/abort.js +8 -5
  33. package/dist/runtime/activation-admission.d.ts +28 -0
  34. package/dist/runtime/activation-admission.js +57 -0
  35. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  36. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  37. package/dist/runtime/actors/actor-client.d.ts +2 -2
  38. package/dist/runtime/actors/actor-client.js +42 -143
  39. package/dist/runtime/actors/actor-context.d.ts +3 -5
  40. package/dist/runtime/actors/actor-context.js +19 -17
  41. package/dist/runtime/actors/actor-handoff.d.ts +13 -7
  42. package/dist/runtime/actors/actor-handoff.js +36 -25
  43. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  44. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  45. package/dist/runtime/actors/actor-local-native-join.js +85 -123
  46. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  47. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  48. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  49. package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
  50. package/dist/runtime/actors/actor-remote-joiner.js +11 -17
  51. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  52. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  53. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  54. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  55. package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
  56. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  57. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  58. package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
  59. package/dist/runtime/actors/bound-session-wire.js +2 -7
  60. package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
  61. package/dist/runtime/actors/deferred-join-completion.js +21 -0
  62. package/dist/runtime/actors/index.d.ts +10 -8
  63. package/dist/runtime/actors/index.js +101 -73
  64. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  65. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  66. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  67. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  68. package/dist/runtime/admission.d.ts +7 -1
  69. package/dist/runtime/admission.js +11 -1
  70. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  71. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  72. package/dist/runtime/backend/contracts/index.d.ts +8 -33
  73. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
  74. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  75. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  76. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
  77. package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
  78. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
  79. package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
  80. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  81. package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
  82. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  83. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
  84. package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
  85. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
  86. package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
  87. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  88. package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
  89. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  90. package/dist/runtime/backend/runtime-values.js +2 -0
  91. package/dist/runtime/channels/channel-clients.d.ts +20 -9
  92. package/dist/runtime/channels/channel-clients.js +68 -60
  93. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  94. package/dist/runtime/channels/channel-envelope.js +47 -29
  95. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  96. package/dist/runtime/channels/channel-outbound-operations.js +9 -18
  97. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  98. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  99. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  100. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  101. package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
  102. package/dist/runtime/channels/channel-runtime-manager.js +4 -12
  103. package/dist/runtime/channels/channel-socket-options.js +3 -2
  104. package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
  105. package/dist/runtime/channels/channel-socket-registry.js +296 -235
  106. package/dist/runtime/channels/channel-transports.d.ts +11 -20
  107. package/dist/runtime/channels/channel-transports.js +68 -47
  108. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  109. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  110. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  111. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  112. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  113. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  114. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  115. package/dist/runtime/channels/fanout-location-runtime.js +133 -81
  116. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  117. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  118. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  119. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  120. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  121. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  122. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  123. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  124. package/dist/runtime/diagnostics/flow-context.js +16 -2
  125. package/dist/runtime/diagnostics/index.d.ts +4 -2
  126. package/dist/runtime/diagnostics/index.js +14 -4
  127. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  128. package/dist/runtime/diagnostics/message-flow.js +10 -19
  129. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  130. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  131. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  132. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  133. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  134. package/dist/runtime/disposal.d.ts +5 -0
  135. package/dist/runtime/disposal.js +22 -0
  136. package/dist/runtime/execution/index.d.ts +22 -9
  137. package/dist/runtime/execution/index.js +107 -37
  138. package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
  139. package/dist/runtime/execution/serial-execution-queue.js +99 -26
  140. package/dist/runtime/execution/state-lane.d.ts +8 -1
  141. package/dist/runtime/execution/state-lane.js +118 -3
  142. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  143. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  144. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  145. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  146. package/dist/runtime/foundation/listener-records.d.ts +11 -0
  147. package/dist/runtime/foundation/listener-records.js +20 -0
  148. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  149. package/dist/runtime/foundation/operation-identity.js +9 -5
  150. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  151. package/dist/runtime/foundation/operation-registry.js +34 -44
  152. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
  153. package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
  154. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  155. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  156. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
  157. package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
  158. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  159. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  160. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  161. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  162. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  163. package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
  164. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  165. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  166. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  167. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
  168. package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
  169. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
  170. package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
  171. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  172. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  173. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  174. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
  175. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  176. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  177. package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
  178. package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
  179. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
  180. package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
  181. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
  182. package/dist/runtime/foundation/service-topology-registry.js +22 -61
  183. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  184. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  185. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  186. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  187. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  188. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  189. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  190. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  191. package/dist/runtime/framework-errors-internal.js +343 -122
  192. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  193. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  194. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  195. package/dist/runtime/host/actor-packet-relay.js +48 -91
  196. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  197. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  198. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  199. package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
  200. package/dist/runtime/host/actor-transfer-runtime.js +210 -256
  201. package/dist/runtime/host/application-job-queue.js +16 -33
  202. package/dist/runtime/host/bound-session-relay.js +1 -1
  203. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  204. package/dist/runtime/host/index.d.ts +19 -14
  205. package/dist/runtime/host/index.js +234 -175
  206. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  207. package/dist/runtime/host/instance-activation-authority.js +17 -45
  208. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  209. package/dist/runtime/host/location-runtime-owner.js +2 -2
  210. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  211. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  212. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  213. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  214. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  215. package/dist/runtime/host/remote-bound-session-relay.js +11 -23
  216. package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
  217. package/dist/runtime/host/route-mesh-runtime.js +178 -257
  218. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  219. package/dist/runtime/host/runtime-shutdown.js +18 -21
  220. package/dist/runtime/host/service-relocation-control.js +6 -1
  221. package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
  222. package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
  223. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  224. package/dist/runtime/host/spot-address-transport.js +34 -136
  225. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  226. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  227. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
  228. package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
  229. package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
  230. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
  231. package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
  232. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  233. package/dist/runtime/locations/authority-key-codec.js +4 -3
  234. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  235. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  236. package/dist/runtime/locations/creation-operation-id.js +6 -4
  237. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  238. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  239. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  240. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  241. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  242. package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
  243. package/dist/runtime/locations/key-codec.js +3 -2
  244. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  245. package/dist/runtime/locations/lease-tracker.js +7 -11
  246. package/dist/runtime/locations/lifecycle.d.ts +5 -10
  247. package/dist/runtime/locations/lifecycle.js +4 -33
  248. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  249. package/dist/runtime/locations/location-store-failure.js +7 -0
  250. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  251. package/dist/runtime/locations/location-store-pages.js +13 -0
  252. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  253. package/dist/runtime/locations/location-store-repository.js +303 -332
  254. package/dist/runtime/locations/relocation-blob.js +18 -5
  255. package/dist/runtime/locations/resolvers.d.ts +5 -5
  256. package/dist/runtime/locations/resolvers.js +44 -30
  257. package/dist/runtime/locations/runtime.d.ts +5 -4
  258. package/dist/runtime/locations/runtime.js +123 -92
  259. package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
  260. package/dist/runtime/locations/spot-location-claims.js +40 -23
  261. package/dist/runtime/messaging/payload-codec.js +26 -20
  262. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  263. package/dist/runtime/messaging/submission-result.js +48 -0
  264. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
  265. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
  266. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
  267. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
  268. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
  269. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
  270. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
  271. package/dist/runtime/spots/index.d.ts +29 -29
  272. package/dist/runtime/spots/index.js +441 -313
  273. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
  274. package/dist/runtime/spots/spot-activation-registry.js +27 -60
  275. package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
  276. package/dist/runtime/spots/spot-activation-state.js +4 -17
  277. package/dist/runtime/spots/spot-activation.d.ts +10 -9
  278. package/dist/runtime/spots/spot-activation.js +103 -81
  279. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  280. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  281. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  282. package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
  283. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
  284. package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
  285. package/dist/runtime/spots/spot-actor-membership.js +44 -53
  286. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  287. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  288. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  289. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  290. package/dist/runtime/spots/spot-context.d.ts +2 -2
  291. package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
  292. package/dist/runtime/spots/spot-entry-activation.js +9 -21
  293. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  294. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  295. package/dist/runtime/spots/spot-manager-public.js +6 -5
  296. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  297. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
  298. package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
  299. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  300. package/dist/runtime/spots/spot-outbound.js +10 -37
  301. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  302. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  303. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  304. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  305. package/dist/runtime/spots/spot-route-replies.js +3 -1
  306. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
  307. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
  308. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
  309. package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
  310. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  311. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  312. package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
  313. package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
  314. package/dist/runtime/spots/spot-serial-executor.js +9 -2
  315. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
  316. package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
  317. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  318. package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
  319. package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
  320. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
  321. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  322. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  323. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  324. package/dist/runtime/streams/bound-session-service.js +12 -19
  325. package/dist/runtime/streams/index.d.ts +15 -14
  326. package/dist/runtime/streams/index.js +38 -39
  327. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  328. package/dist/runtime/streams/managed-stream.js +17 -8
  329. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  330. package/dist/runtime/streams/protocol.d.ts +6 -33
  331. package/dist/runtime/streams/protocol.js +38 -110
  332. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  333. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  334. package/dist/runtime/streams/session-calls.d.ts +1 -1
  335. package/dist/runtime/streams/session-calls.js +5 -4
  336. package/dist/runtime/streams/session-context.d.ts +6 -6
  337. package/dist/runtime/streams/session-context.js +22 -4
  338. package/dist/runtime/streams/session-requests.js +2 -1
  339. package/dist/runtime/streams/session-serial-executor.js +2 -2
  340. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  341. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  342. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  343. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  344. package/dist/runtime/workers/index.d.ts +2 -2
  345. package/dist/runtime/workers/index.js +5 -4
  346. package/package.json +3 -3
  347. package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
  348. package/src/contracts/Common/CoreTypes.ts +7 -0
  349. package/src/contracts/Common/index.ts +1 -1
  350. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  351. package/src/contracts/Configuration/Registration.ts +92 -48
  352. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  353. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  354. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  355. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  356. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  357. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  358. package/src/contracts/Handlers/JsonContract.ts +14 -4
  359. package/src/contracts/Locations/Authority.ts +7 -3
  360. package/src/contracts/Locations/Options.ts +1 -1
  361. package/src/contracts/Locations/Stores.ts +14 -0
  362. package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
  363. package/src/contracts/Spots/Contracts.ts +1 -1
  364. package/src/internal.ts +15 -0
  365. package/src/nest-integration.ts +28 -10
  366. package/src/runtime/abort.ts +6 -5
  367. package/src/runtime/activation-admission.ts +72 -0
  368. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  369. package/src/runtime/actors/actor-client.ts +77 -204
  370. package/src/runtime/actors/actor-context.ts +45 -39
  371. package/src/runtime/actors/actor-handoff.ts +55 -45
  372. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  373. package/src/runtime/actors/actor-local-native-join.ts +174 -215
  374. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  375. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  376. package/src/runtime/actors/actor-remote-joiner.ts +15 -36
  377. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  378. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  379. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  380. package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
  381. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  382. package/src/runtime/actors/actor-source-transfer.ts +5 -18
  383. package/src/runtime/actors/bound-session-wire.ts +2 -8
  384. package/src/runtime/actors/deferred-join-completion.ts +44 -0
  385. package/src/runtime/actors/index.ts +122 -88
  386. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  387. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  388. package/src/runtime/admission.ts +13 -2
  389. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  390. package/src/runtime/backend/contracts/index.ts +15 -42
  391. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
  392. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  393. package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
  394. package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
  395. package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
  396. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  397. package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
  398. package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
  399. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
  400. package/src/runtime/backend/raw-binding-port.ts +14 -1
  401. package/src/runtime/backend/runtime-values.ts +4 -1
  402. package/src/runtime/channels/channel-clients.ts +132 -96
  403. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  404. package/src/runtime/channels/channel-envelope.ts +58 -29
  405. package/src/runtime/channels/channel-outbound-operations.ts +10 -31
  406. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  407. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  408. package/src/runtime/channels/channel-runtime-manager.ts +8 -15
  409. package/src/runtime/channels/channel-socket-options.ts +8 -2
  410. package/src/runtime/channels/channel-socket-registry.ts +369 -262
  411. package/src/runtime/channels/channel-transports.ts +161 -115
  412. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  413. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  414. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  415. package/src/runtime/channels/fanout-location-runtime.ts +175 -106
  416. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  417. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  418. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  419. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  420. package/src/runtime/diagnostics/flow-context.ts +16 -2
  421. package/src/runtime/diagnostics/index.ts +27 -17
  422. package/src/runtime/diagnostics/message-flow.ts +15 -25
  423. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  424. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  425. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  426. package/src/runtime/disposal.ts +19 -0
  427. package/src/runtime/execution/index.ts +116 -38
  428. package/src/runtime/execution/serial-execution-queue.ts +179 -34
  429. package/src/runtime/execution/state-lane.ts +142 -4
  430. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  431. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  432. package/src/runtime/foundation/listener-records.ts +21 -0
  433. package/src/runtime/foundation/operation-identity.ts +11 -5
  434. package/src/runtime/foundation/operation-registry.ts +33 -50
  435. package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
  436. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  437. package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
  438. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  439. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  440. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  441. package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
  442. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  443. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  444. package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
  445. package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
  446. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  447. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  448. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
  449. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  450. package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
  451. package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
  452. package/src/runtime/foundation/service-topology-registry.ts +30 -79
  453. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  454. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  455. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  456. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  457. package/src/runtime/framework-errors-internal.ts +380 -134
  458. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  459. package/src/runtime/host/actor-packet-relay.ts +57 -147
  460. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  461. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  462. package/src/runtime/host/actor-transfer-runtime.ts +266 -418
  463. package/src/runtime/host/application-job-queue.ts +28 -34
  464. package/src/runtime/host/bound-session-relay.ts +1 -2
  465. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  466. package/src/runtime/host/index.ts +408 -312
  467. package/src/runtime/host/instance-activation-authority.ts +89 -109
  468. package/src/runtime/host/location-runtime-owner.ts +4 -2
  469. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  470. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  471. package/src/runtime/host/remote-bound-session-relay.ts +12 -44
  472. package/src/runtime/host/route-mesh-runtime.ts +236 -275
  473. package/src/runtime/host/runtime-shutdown.ts +17 -21
  474. package/src/runtime/host/service-relocation-control.ts +14 -1
  475. package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
  476. package/src/runtime/host/spot-address-transport.ts +73 -195
  477. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  478. package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
  479. package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
  480. package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
  481. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  482. package/src/runtime/locations/authority-key-codec.ts +7 -3
  483. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  484. package/src/runtime/locations/creation-operation-id.ts +6 -3
  485. package/src/runtime/locations/domain-store-contract.ts +12 -3
  486. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  487. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  488. package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
  489. package/src/runtime/locations/key-codec.ts +3 -2
  490. package/src/runtime/locations/lease-tracker.ts +8 -14
  491. package/src/runtime/locations/lifecycle.ts +16 -45
  492. package/src/runtime/locations/location-store-failure.ts +4 -0
  493. package/src/runtime/locations/location-store-pages.ts +18 -0
  494. package/src/runtime/locations/location-store-repository.ts +450 -478
  495. package/src/runtime/locations/relocation-blob.ts +17 -6
  496. package/src/runtime/locations/resolvers.ts +90 -58
  497. package/src/runtime/locations/runtime.ts +220 -110
  498. package/src/runtime/locations/spot-location-claims.ts +54 -26
  499. package/src/runtime/messaging/payload-codec.ts +35 -24
  500. package/src/runtime/messaging/submission-result.ts +57 -1
  501. package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
  502. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
  503. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
  504. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
  505. package/src/runtime/spots/index.ts +687 -437
  506. package/src/runtime/spots/spot-activation-registry.ts +42 -71
  507. package/src/runtime/spots/spot-activation-state.ts +4 -16
  508. package/src/runtime/spots/spot-activation.ts +167 -115
  509. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  510. package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
  511. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
  512. package/src/runtime/spots/spot-actor-membership.ts +107 -75
  513. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  514. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  515. package/src/runtime/spots/spot-context.ts +3 -3
  516. package/src/runtime/spots/spot-entry-activation.ts +13 -33
  517. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  518. package/src/runtime/spots/spot-manager-public.ts +29 -21
  519. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  520. package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
  521. package/src/runtime/spots/spot-outbound.ts +47 -68
  522. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  523. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  524. package/src/runtime/spots/spot-route-replies.ts +6 -4
  525. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
  526. package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
  527. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  528. package/src/runtime/spots/spot-runtime-ports.ts +10 -43
  529. package/src/runtime/spots/spot-serial-executor.ts +10 -2
  530. package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
  531. package/src/runtime/spots/spot-timer.ts +3 -2
  532. package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
  533. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
  534. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  535. package/src/runtime/streams/bound-session-service.ts +23 -37
  536. package/src/runtime/streams/index.ts +102 -88
  537. package/src/runtime/streams/managed-stream.ts +29 -10
  538. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  539. package/src/runtime/streams/protocol.ts +34 -88
  540. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  541. package/src/runtime/streams/session-calls.ts +6 -5
  542. package/src/runtime/streams/session-context.ts +54 -10
  543. package/src/runtime/streams/session-requests.ts +2 -1
  544. package/src/runtime/streams/session-serial-executor.ts +2 -2
  545. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  546. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  547. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  548. package/src/runtime/workers/index.ts +13 -12
  549. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
  550. package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
  551. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  552. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  553. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  554. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  555. package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
  556. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  557. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,46 +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
- import type { ZLinkFanoutListenerStatus } from '../../contracts';
19
2
  import type { Message } from '../../contracts/Common/Message';
20
- import { ZLinkSubmitStatus, type ZLinkSubmitResult } from '../messaging/submission-result';
21
- import { ZLinkConfigurationException } from '../configuration';
22
- import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
3
+ import { DEFAULT_REQUEST_TIMEOUT_MS } from '../../contracts/Configuration/Registration';
23
4
  import { ZLinkSpotKind } from '../../contracts/Spots';
24
5
  import { throwIfAborted } from '../abort';
25
- import type { ZLinkRuntimeMetrics } from '../diagnostics';
6
+ import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
26
7
  import {
27
8
  closeMeshCompletion,
28
9
  type ZLinkMeshCompletion,
29
10
  type ZLinkMeshCompletionTable
30
11
  } from '../backend/mesh-completion-table';
31
- import { routingIdsEqual, toBackendRoutingId as toBackendRoutingId } from '../routing-id';
12
+ import { ZLinkBufferMessage } from '../backend/runtime-message';
32
13
  import {
33
- decodeChannelReply,
34
- encodeChannelEnvelopeParts,
35
- type ZLinkChannelEnvelopeCodecRegistry,
36
- ZLinkChannelMessageKind
37
- } 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';
38
30
  import type {
39
31
  ServiceDirectSpotRouteFence,
40
32
  ServiceInstanceRouteFence
41
33
  } from '../foundation/service-stateful-wire-codec';
42
- import { ServiceStaleGenerationError } from '../foundation/service-stateful-registry';
43
- 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';
44
63
 
45
64
  export interface ZLinkChannelClientTransport {
46
65
  send(
@@ -73,7 +92,6 @@ export interface ZLinkChannelClientTransport {
73
92
  signal?: AbortSignal,
74
93
  metadata?: ReadonlyMap<string, string>
75
94
  ): ZLinkSubmitResult | Promise<ZLinkSubmitResult>;
76
- getFanoutListenerStatus?(channelName: string): ZLinkFanoutListenerStatus;
77
95
  }
78
96
 
79
97
  export type ZLinkChannelClientTransportSource =
@@ -187,7 +205,6 @@ interface ZLinkChannelTransportRuntime {
187
205
  signal?: AbortSignal,
188
206
  metadata?: ReadonlyMap<string, string>
189
207
  ): Promise<ZLinkSubmitResult>;
190
- getFanoutListenerStatus(channelName: string): ZLinkFanoutListenerStatus;
191
208
  canRouteChannel(routerChannelId: string): boolean;
192
209
  canRoutePacketChannel(routerChannelId: string): boolean;
193
210
  routeSubmit(
@@ -281,7 +298,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
281
298
  parts: readonly MessageLike[]
282
299
  ) => ZLinkSubmitResult,
283
300
  private readonly metrics?: ZLinkRuntimeMetrics,
284
- private readonly flowCreationEnabled: () => boolean = () => true
301
+ private readonly flowCreationEnabled: () => boolean = () => true,
302
+ private readonly outboundFlow: () => ZLinkMessageFlowTracer | undefined = () => undefined
285
303
  ) {}
286
304
 
287
305
  canRouteChannel(routerChannelId: string): boolean {
@@ -425,33 +443,92 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
425
443
  metadata
426
444
  );
427
445
  }
428
- throwIfAborted(signal);
429
- if (node.isObjectClientNodeDirectTarget?.(toBackendRoutingId(targetNodeRid)) === true) {
430
- throw createInternalFrameworkException(
431
- ZLinkFrameworkInternalErrorKind.RequestTargetNotFound,
432
- `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
433
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;
434
508
  }
435
- const parts = this.encodeMessage(
436
- 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,
437
526
  meshName,
527
+ targetRid,
438
528
  packetName,
439
- request,
440
- timeoutMs ?? 30_000,
441
- metadata
442
- );
443
- const completion = await this.submitRequestOperation(
444
- meshName,
445
- timeoutMs,
446
- signal,
447
- `MeshNode '${meshName}' request to node '${targetNodeRid}'`,
448
- (remainingTimeoutMs) =>
449
- node.requestToNode(toBackendRoutingId(targetNodeRid), parts, {
450
- flags: 1,
451
- timeoutMs: remainingTimeoutMs
452
- })
453
- );
454
- return this.decodeMeshReply(meshName, completion);
529
+ correlationId,
530
+ ...(error instanceof Error ? { errorType: error.name, errorMessage: error.message } : {})
531
+ });
455
532
  }
456
533
 
457
534
  submitToChannel(
@@ -537,7 +614,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
537
614
  channelName,
538
615
  packetName,
539
616
  request,
540
- timeoutMs ?? 30_000,
617
+ timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS,
541
618
  metadata
542
619
  );
543
620
  const metric = this.metrics?.startRequest(meshName, 'channel');
@@ -571,7 +648,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
571
648
  remainingTimeoutMs: number
572
649
  ) => ReturnType<Parameters<ZLinkMeshCompletionTable['submit']>[0]>
573
650
  ): Promise<ZLinkMeshCompletion> {
574
- const effectiveTimeoutMs = Math.max(1, timeoutMs ?? 30_000);
651
+ const effectiveTimeoutMs = Math.max(1, timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS);
575
652
  const deadlineMs = performance.now() + effectiveTimeoutMs;
576
653
  const remainingTimeoutMs = deadlineMs - performance.now();
577
654
  if (remainingTimeoutMs <= 0) {
@@ -593,12 +670,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
593
670
  sendToSpot(
594
671
  spotRouteTarget: ZLinkSpotRouteTarget,
595
672
  message: unknown,
596
- options: {
597
- readonly packetName?: string;
598
- readonly timeoutMs?: number;
599
- readonly signal?: AbortSignal;
600
- readonly metadata?: ReadonlyMap<string, string>;
601
- }
673
+ options: ZLinkSpotRoutedSendOptions
602
674
  ): Promise<ZLinkSubmitResult> {
603
675
  return runWithOutboundFlow(this.flowCreationEnabled(), () =>
604
676
  this.sendToSpotScoped(spotRouteTarget, message, options)
@@ -608,12 +680,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
608
680
  private async sendToSpotScoped(
609
681
  spotRouteTarget: ZLinkSpotRouteTarget,
610
682
  message: unknown,
611
- options: {
612
- readonly packetName?: string;
613
- readonly timeoutMs?: number;
614
- readonly signal?: AbortSignal;
615
- readonly metadata?: ReadonlyMap<string, string>;
616
- }
683
+ options: ZLinkSpotRoutedSendOptions
617
684
  ): Promise<ZLinkSubmitResult> {
618
685
  const node = this.meshNode(spotRouteTarget.routerChannelId);
619
686
  if (node === undefined) {
@@ -649,7 +716,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
649
716
  instanceSpotRouteFence(spotRouteTarget),
650
717
  encoded,
651
718
  undefined,
652
- options.metadata
719
+ options.metadata,
720
+ options.instanceSpot
653
721
  )
654
722
  );
655
723
  }
@@ -699,12 +767,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
699
767
  requestToSpot<TReply = unknown>(
700
768
  spotRouteTarget: ZLinkSpotRouteTarget,
701
769
  request: unknown,
702
- options: {
703
- readonly packetName?: string;
704
- readonly timeoutMs?: number;
705
- readonly signal?: AbortSignal;
706
- readonly metadata?: ReadonlyMap<string, string>;
707
- }
770
+ options: ZLinkSpotRoutedRequestOptions
708
771
  ): Promise<TReply> {
709
772
  return runWithOutboundFlow(this.flowCreationEnabled(), () =>
710
773
  this.requestToSpotScoped<TReply>(spotRouteTarget, request, options)
@@ -714,12 +777,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
714
777
  private async requestToSpotScoped<TReply = unknown>(
715
778
  spotRouteTarget: ZLinkSpotRouteTarget,
716
779
  request: unknown,
717
- options: {
718
- readonly packetName?: string;
719
- readonly timeoutMs?: number;
720
- readonly signal?: AbortSignal;
721
- readonly metadata?: ReadonlyMap<string, string>;
722
- }
780
+ options: ZLinkSpotRoutedRequestOptions
723
781
  ): Promise<TReply> {
724
782
  const meshName = spotRouteTarget.routerChannelId;
725
783
  const node = this.meshNode(meshName);
@@ -757,7 +815,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
757
815
  encoded,
758
816
  options.timeoutMs,
759
817
  undefined,
760
- options.metadata
818
+ options.metadata,
819
+ options.instanceSpot
761
820
  )
762
821
  : node
763
822
  .entrySpot()
@@ -970,7 +1029,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
970
1029
  packetName: string | undefined,
971
1030
  message: unknown,
972
1031
  timeoutMs?: number,
973
- metadata?: ReadonlyMap<string, string>
1032
+ metadata?: ReadonlyMap<string, string>,
1033
+ correlationId?: string
974
1034
  ): readonly MessageLike[] {
975
1035
  return encodeChannelEnvelopeParts(
976
1036
  kind,
@@ -980,7 +1040,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
980
1040
  timeoutMs,
981
1041
  undefined,
982
1042
  this.codecs,
983
- undefined,
1043
+ correlationId,
984
1044
  this.flowCreationEnabled(),
985
1045
  metadata
986
1046
  );
@@ -1024,7 +1084,7 @@ function directSpotRouteFence(
1024
1084
  target.authorityStoreVersion === undefined
1025
1085
  ) {
1026
1086
  throw createInternalFrameworkException(
1027
- ZLinkFrameworkInternalErrorKind.SpotRouteNotFound,
1087
+ ZLinkFrameworkInternalErrorKind.RouteNotConnected,
1028
1088
  `Spot '${String(target.spotId)}' has no complete Ready authority fence.`
1029
1089
  );
1030
1090
  }
@@ -1068,24 +1128,7 @@ function instanceSpotRouteFence(target: ZLinkSpotRouteTarget): ServiceInstanceRo
1068
1128
  }
1069
1129
 
1070
1130
  function mapMeshSubmitResult(result: number): ZLinkSubmitResult {
1071
- switch (result) {
1072
- case SubmitResult.Ok:
1073
- return { status: ZLinkSubmitStatus.Submitted };
1074
- case SubmitResult.Backpressured:
1075
- case SubmitResult.NotAdmitted:
1076
- return { status: ZLinkSubmitStatus.Backpressured };
1077
- case SubmitResult.NotFound:
1078
- return { status: ZLinkSubmitStatus.TargetNotFound };
1079
- case SubmitResult.NotConnected:
1080
- return { status: ZLinkSubmitStatus.RouteNotConnected };
1081
- case SubmitResult.Terminated:
1082
- return { status: ZLinkSubmitStatus.Shutdown };
1083
- default:
1084
- throw createInternalFrameworkException(
1085
- ZLinkFrameworkInternalErrorKind.RequestFailed,
1086
- `Mesh submission failed with result ${result}.`
1087
- );
1088
- }
1131
+ return classifySubmitResult(result, 'Mesh submission');
1089
1132
  }
1090
1133
 
1091
1134
  function mapMeshSubmissionError(error: unknown, operation: string): Error {
@@ -1106,18 +1149,21 @@ function mapMeshSubmissionError(error: unknown, operation: string): Error {
1106
1149
  );
1107
1150
  }
1108
1151
  if (isZLinkBackendResultError(error)) {
1109
- const notFound = error.result === SubmitResult.NotFound || error.result === 102;
1110
- const retriable =
1111
- error.result === SubmitResult.Backpressured ||
1112
- error.result === SubmitResult.NotConnected ||
1113
- error.result === 109 ||
1114
- error.result === 113;
1115
- return createInternalFrameworkException(
1116
- notFound
1117
- ? ZLinkFrameworkInternalErrorKind.RequestTargetNotFound
1118
- : 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),
1119
1166
  `${operation} failed with result ${error.result}.`,
1120
- retriable,
1121
1167
  error
1122
1168
  );
1123
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