@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
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceTopologyRegistry = void 0;
4
4
  exports.validateDescriptor = validateDescriptor;
5
5
  exports.sameServiceNodeDescriptor = sameServiceNodeDescriptor;
6
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
7
+ const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
6
8
  const route_mesh_connection_policy_1 = require("./route-mesh-connection-policy");
7
9
  const service_weighted_selection_1 = require("./service-weighted-selection");
8
10
  const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
9
11
  const REQUIRED_CAPABILITY = service_wire_constants_generated_1.SERVICE_WIRE_REQUIRED_CAPABILITY;
10
- const MAX_CAPACITY = 0x7fff_ffff;
11
- const MAX_PUBLIC_WEIGHT = 10_000;
12
12
  /** Owns immutable peer snapshots and fences late physical-connection events. */
13
13
  class ServiceTopologyRegistry {
14
14
  local;
@@ -41,11 +41,10 @@ class ServiceTopologyRegistry {
41
41
  }
42
42
  this.rebuildSelections();
43
43
  }
44
- admit(descriptor, connectionId, expected, connectionDiscriminator = connectionId) {
44
+ admit(descriptor, connectionId, expected) {
45
45
  try {
46
46
  validateDescriptor(descriptor);
47
47
  requireText(connectionId, 'connectionId');
48
- requireText(connectionDiscriminator, 'connectionDiscriminator');
49
48
  }
50
49
  catch (error) {
51
50
  return 'invalidDescriptor';
@@ -83,25 +82,11 @@ class ServiceTopologyRegistry {
83
82
  !sameServiceNodeDescriptor(current.descriptor, descriptor)))) {
84
83
  return 'staleDescriptor';
85
84
  }
86
- if (current !== undefined &&
87
- current.descriptor.lifecycleGeneration === descriptor.lifecycleGeneration &&
88
- current.descriptor.descriptorRevision === descriptor.descriptorRevision &&
89
- sameServiceNodeDescriptor(current.descriptor, descriptor) &&
90
- current.connectionId !== connectionId &&
91
- // A fallback candidate is only a logical placeholder. Once the
92
- // monitor reports the physical connection, its evidence supersedes
93
- // candidate ordering so the request path uses the native route.
94
- !(isUnmonitoredConnectionId(current.connectionId) && !isUnmonitoredConnectionId(connectionId)) &&
95
- compareConnectionCandidate(current.connectionDiscriminator, current.connectionId, connectionDiscriminator, connectionId) <= 0) {
96
- // Both manual directions can reach admission. The same comparison on
97
- // every retry keeps one physical candidate instead of replacing it in
98
- // arrival order.
99
- return 'staleDescriptor';
100
- }
85
+ // Core selects the one route per RID (Core ROUTER §10.1); an admission on
86
+ // that route replaces the admission of a route it replaced.
101
87
  this.peersByRid.set(descriptor.nodeRoutingId, {
102
88
  descriptor: cloneDescriptor(descriptor),
103
- connectionId,
104
- connectionDiscriminator
89
+ connectionId
105
90
  });
106
91
  this.remember(descriptor);
107
92
  this.rebuildSelections();
@@ -149,18 +134,6 @@ class ServiceTopologyRegistry {
149
134
  }
150
135
  this.rebuildSelections();
151
136
  }
152
- markNotRequired(descriptor) {
153
- validateDescriptor(descriptor);
154
- if (descriptor.meshName !== this.local.meshName ||
155
- descriptor.nodeRoutingId === this.local.nodeRoutingId ||
156
- !(0, route_mesh_connection_policy_1.descriptorConnectionNotRequired)(this.local, descriptor)) {
157
- return;
158
- }
159
- this.peersByRid.delete(descriptor.nodeRoutingId);
160
- this.remember(descriptor);
161
- this.notRequiredByRid.set(descriptor.nodeRoutingId, cloneDescriptor(descriptor));
162
- this.rebuildSelections();
163
- }
164
137
  forgetNotRequired(nodeRoutingId) {
165
138
  if (this.notRequiredByRid.delete(nodeRoutingId))
166
139
  this.rebuildSelections();
@@ -172,7 +145,10 @@ class ServiceTopologyRegistry {
172
145
  }
173
146
  hasKnownChannelTarget(channelName) {
174
147
  requireText(channelName, 'channelName');
175
- return [this.local, ...this.knownByRid.values()].some((descriptor) => selectableChannel(descriptor, channelName) !== undefined);
148
+ return [...this.knownByRid.values()].some((descriptor) => (descriptor.state === 'serving' ||
149
+ descriptor.state === 'retiring' ||
150
+ descriptor.state === 'draining') &&
151
+ findChannel(descriptor, channelName) !== undefined);
176
152
  }
177
153
  remember(descriptor) {
178
154
  const current = this.knownByRid.get(descriptor.nodeRoutingId);
@@ -185,19 +161,12 @@ class ServiceTopologyRegistry {
185
161
  }
186
162
  selectChannel(channelName, isReady = () => true) {
187
163
  requireText(channelName, 'channelName');
188
- return this.selectWeightedCycle(`channel:${channelName}`, () => {
189
- const local = {
190
- descriptor: cloneDescriptor(this.local),
191
- connectionId: 'local',
192
- connectionDiscriminator: 'local'
193
- };
194
- return [local, ...this.peersByRid.values()]
195
- .map((peer) => ({
196
- peer: clonePeer(peer),
197
- channel: selectableChannel(peer.descriptor, channelName)
198
- }))
199
- .filter((value) => value.channel !== undefined);
200
- }, (value) => value.channel.weight, (value) => value.peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.peer.descriptor.nodeRoutingId, right.peer.descriptor.nodeRoutingId), (value) => isReady(value.peer))?.peer;
164
+ return this.selectWeightedCycle(`channel:${channelName}`, () => [...this.peersByRid.values()]
165
+ .map((peer) => ({
166
+ peer: clonePeer(peer),
167
+ channel: selectableChannel(peer.descriptor, channelName)
168
+ }))
169
+ .filter((value) => value.channel !== undefined), (value) => value.channel.weight, (value) => value.peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.peer.descriptor.nodeRoutingId, right.peer.descriptor.nodeRoutingId), (value) => isReady(value.peer))?.peer;
201
170
  }
202
171
  selectPlacement(isReady = () => true) {
203
172
  return this.selectWeightedCycle('placement', () => [...this.peersByRid.values()]
@@ -291,8 +260,8 @@ function validateDescriptor(descriptor) {
291
260
  }
292
261
  if (descriptor.maintenanceWave !== undefined) {
293
262
  requireText(descriptor.maintenanceWave, 'maintenanceWave');
294
- if (Buffer.byteLength(descriptor.maintenanceWave, 'utf8') > 255) {
295
- throw new RangeError('maintenanceWave must not exceed 255 UTF-8 bytes.');
263
+ if (Buffer.byteLength(descriptor.maintenanceWave, 'utf8') > CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES) {
264
+ throw new RangeError(`maintenanceWave must not exceed ${CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES} UTF-8 bytes.`);
296
265
  }
297
266
  }
298
267
  validatePublicWeight(descriptor.placementWeight, 'placementWeight');
@@ -318,13 +287,13 @@ function validateDescriptor(descriptor) {
318
287
  }
319
288
  }
320
289
  function validateCapacity(value, allowZero, field) {
321
- if (!Number.isInteger(value) || value < (allowZero ? 0 : 1) || value > MAX_CAPACITY) {
290
+ if (!(allowZero ? (0, RegistrationBuilderPolicy_1.isValidCapacity)(value) : (0, RegistrationBuilderPolicy_1.isValidPositiveCapacity)(value))) {
322
291
  throw new RangeError(`${field} is outside its supported range.`);
323
292
  }
324
293
  }
325
294
  function validatePublicWeight(value, field) {
326
- if (!Number.isInteger(value) || value < 0 || value > MAX_PUBLIC_WEIGHT) {
327
- throw new RangeError(`${field} must be an integer in 0..10000.`);
295
+ if (!(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(value)) {
296
+ throw new RangeError(`${field} must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_PUBLIC_WEIGHT}.`);
328
297
  }
329
298
  }
330
299
  function validateSortedUnique(values, key, field) {
@@ -361,8 +330,7 @@ function cloneDescriptor(descriptor) {
361
330
  function clonePeer(peer) {
362
331
  return {
363
332
  descriptor: cloneDescriptor(peer.descriptor),
364
- connectionId: peer.connectionId,
365
- connectionDiscriminator: peer.connectionDiscriminator
333
+ connectionId: peer.connectionId
366
334
  };
367
335
  }
368
336
  function sameServiceNodeDescriptor(left, right) {
@@ -382,13 +350,6 @@ function sameImmutableDescriptor(left, right) {
382
350
  function arraysEqual(left, right) {
383
351
  return left.length === right.length && left.every((value, index) => value === right[index]);
384
352
  }
385
- function isUnmonitoredConnectionId(connectionId) {
386
- return connectionId.startsWith('unmonitored:');
387
- }
388
- function compareConnectionCandidate(leftDiscriminator, leftId, rightDiscriminator, rightId) {
389
- const discriminator = compareOrdinal(leftDiscriminator, rightDiscriminator);
390
- return discriminator === 0 ? compareOrdinal(leftId, rightId) : discriminator;
391
- }
392
353
  function compareOrdinal(left, right) {
393
354
  return left < right ? -1 : left > right ? 1 : 0;
394
355
  }
@@ -1,4 +1,9 @@
1
1
  import type { RoutingId } from '../../contracts';
2
+ export declare const SERVICE_WIRE_MAJOR_OFFSET = 2;
3
+ export declare const SERVICE_WIRE_COMMAND_OFFSET: number;
4
+ export declare const SERVICE_WIRE_FLAGS_OFFSET: number;
5
+ export declare const SERVICE_WIRE_PREFIX_SIZE: number;
6
+ export declare const SERVICE_WIRE_TEXT8_MAX_BYTES = 255;
2
7
  export type ServiceWireInvalid = (message: string) => never;
3
8
  /** Encodes text without silently replacing an unpaired UTF-16 surrogate. */
4
9
  export declare function encodeCanonicalServiceWireText(value: string, field: string, maximumBytes: number, invalid: ServiceWireInvalid): Buffer;
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SERVICE_WIRE_TEXT8_MAX_BYTES = exports.SERVICE_WIRE_PREFIX_SIZE = exports.SERVICE_WIRE_FLAGS_OFFSET = exports.SERVICE_WIRE_COMMAND_OFFSET = exports.SERVICE_WIRE_MAJOR_OFFSET = void 0;
3
4
  exports.encodeCanonicalServiceWireText = encodeCanonicalServiceWireText;
4
5
  exports.decodeCanonicalServiceWireText = decodeCanonicalServiceWireText;
5
6
  exports.encodeServiceWireRoutingId = encodeServiceWireRoutingId;
6
7
  exports.decodeServiceWireRoutingId = decodeServiceWireRoutingId;
7
8
  const routing_id_1 = require("../routing-id");
9
+ exports.SERVICE_WIRE_MAJOR_OFFSET = 2;
10
+ exports.SERVICE_WIRE_COMMAND_OFFSET = exports.SERVICE_WIRE_MAJOR_OFFSET + 1;
11
+ exports.SERVICE_WIRE_FLAGS_OFFSET = exports.SERVICE_WIRE_COMMAND_OFFSET + 1;
12
+ exports.SERVICE_WIRE_PREFIX_SIZE = exports.SERVICE_WIRE_FLAGS_OFFSET + 1;
13
+ exports.SERVICE_WIRE_TEXT8_MAX_BYTES = 255;
8
14
  /** Encodes text without silently replacing an unpaired UTF-16 surrogate. */
9
15
  function encodeCanonicalServiceWireText(value, field, maximumBytes, invalid) {
10
16
  const bytes = Buffer.from(value, 'utf8');
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceWireDecodeError = void 0;
4
4
  exports.createServiceWireCodec = createServiceWireCodec;
5
- const PREFIX_SIZE = 5;
5
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
6
+ const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
7
+ const PREFIX_SIZE = service_wire_binary_primitives_1.SERVICE_WIRE_PREFIX_SIZE;
6
8
  const LIVENESS_FRAME_SIZE = PREFIX_SIZE + 8;
7
9
  class ServiceWireDecodeError extends Error {
8
10
  code;
@@ -21,15 +23,15 @@ function createServiceWireCodec(definition) {
21
23
  record.command !== definition.commands.livenessAck) {
22
24
  throw new RangeError('command must be a liveness command.');
23
25
  }
24
- if (record.probeId <= 0n || record.probeId > 0xffffffffffffffffn) {
26
+ if (record.probeId <= 0n || record.probeId > stream_wire_1.UINT64_MAX) {
25
27
  throw new RangeError('probeId must be a non-zero unsigned 64-bit integer.');
26
28
  }
27
29
  const frame = Buffer.allocUnsafe(LIVENESS_FRAME_SIZE);
28
30
  frame[0] = definition.magic[0];
29
31
  frame[1] = definition.magic[1];
30
- frame[2] = definition.major;
31
- frame[3] = record.command;
32
- frame[4] = 0;
32
+ frame[service_wire_binary_primitives_1.SERVICE_WIRE_MAJOR_OFFSET] = definition.major;
33
+ frame[service_wire_binary_primitives_1.SERVICE_WIRE_COMMAND_OFFSET] = record.command;
34
+ frame[service_wire_binary_primitives_1.SERVICE_WIRE_FLAGS_OFFSET] = 0;
33
35
  frame.writeBigUInt64BE(record.probeId, PREFIX_SIZE);
34
36
  return frame;
35
37
  },
@@ -39,16 +41,16 @@ function createServiceWireCodec(definition) {
39
41
  if (frame[0] !== definition.magic[0] || frame[1] !== definition.magic[1]) {
40
42
  fail('invalid-magic');
41
43
  }
42
- if (frame[2] !== definition.major)
44
+ if (frame[service_wire_binary_primitives_1.SERVICE_WIRE_MAJOR_OFFSET] !== definition.major)
43
45
  fail('unsupported-major');
44
- const command = frame[3];
46
+ const command = frame[service_wire_binary_primitives_1.SERVICE_WIRE_COMMAND_OFFSET];
45
47
  if (!knownCommands.has(command))
46
48
  fail('unknown-command');
47
49
  if (command !== definition.commands.livenessProbe &&
48
50
  command !== definition.commands.livenessAck) {
49
51
  fail('unknown-command');
50
52
  }
51
- if (frame[4] !== 0)
53
+ if (frame[service_wire_binary_primitives_1.SERVICE_WIRE_FLAGS_OFFSET] !== 0)
52
54
  fail('forbidden-flag');
53
55
  if (frame.byteLength < LIVENESS_FRAME_SIZE)
54
56
  fail('truncated-field');
@@ -1,5 +1,6 @@
1
1
  export declare const SERVICE_WIRE_MAGIC: readonly [90, 77];
2
2
  export declare const SERVICE_WIRE_MAJOR: 1;
3
+ export declare const SERVICE_WIRE_METADATA_BYTES: 1024;
3
4
  export declare const SERVICE_WIRE_REQUIRED_CAPABILITY: "framework-service-v13";
4
5
  export declare const SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME: "ZLinkFrameworkMultipart";
5
6
  export declare const SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE: "application/x-zlink-multipart";
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidServiceWireTerminalFailure = exports.ServiceWireExactTerminalByFailureCode = exports.ServiceWireBoundaryTerminalResults = exports.ServiceWireFrameworkErrorCode = exports.ServiceWireFlag = exports.ServiceWireCommand = exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = exports.SERVICE_WIRE_REQUIRED_CAPABILITY = exports.SERVICE_WIRE_MAJOR = exports.SERVICE_WIRE_MAGIC = void 0;
3
+ exports.isValidServiceWireTerminalFailure = exports.ServiceWireExactTerminalByFailureCode = exports.ServiceWireBoundaryTerminalResults = exports.ServiceWireFrameworkErrorCode = exports.ServiceWireFlag = exports.ServiceWireCommand = exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = exports.SERVICE_WIRE_REQUIRED_CAPABILITY = exports.SERVICE_WIRE_METADATA_BYTES = exports.SERVICE_WIRE_MAJOR = exports.SERVICE_WIRE_MAGIC = void 0;
4
4
  // Generated from service-wire-v1.schema.json. Do not edit.
5
5
  exports.SERVICE_WIRE_MAGIC = [90, 77];
6
6
  exports.SERVICE_WIRE_MAJOR = 1;
7
+ exports.SERVICE_WIRE_METADATA_BYTES = 1024;
7
8
  exports.SERVICE_WIRE_REQUIRED_CAPABILITY = "framework-service-v13";
8
9
  exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = "ZLinkFrameworkMultipart";
9
10
  exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = "application/x-zlink-multipart";
@@ -1,4 +1,6 @@
1
1
  import { type ServiceNodeDescriptor } from './service-topology-registry';
2
+ export declare const APPLICATION_PAYLOAD_VERSION = 1;
3
+ export declare const APPLICATION_PAYLOAD_MINIMUM_FIELD_BYTES: number;
2
4
  export declare const M6A_SERVICE_WIRE_MAGIC: readonly [90, 77];
3
5
  export declare const M6A_SERVICE_WIRE_MAJOR: 1;
4
6
  export declare const M6A_SERVICE_WIRE_REQUIRED_CAPABILITY: "framework-service-v13";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ServiceWireProtocolError = exports.M6aServiceWireCommand = exports.M6A_SERVICE_WIRE_REQUIRED_CAPABILITY = exports.M6A_SERVICE_WIRE_MAJOR = exports.M6A_SERVICE_WIRE_MAGIC = void 0;
3
+ exports.ServiceWireProtocolError = exports.M6aServiceWireCommand = exports.M6A_SERVICE_WIRE_REQUIRED_CAPABILITY = exports.M6A_SERVICE_WIRE_MAJOR = exports.M6A_SERVICE_WIRE_MAGIC = exports.APPLICATION_PAYLOAD_MINIMUM_FIELD_BYTES = exports.APPLICATION_PAYLOAD_VERSION = void 0;
4
4
  exports.encodeNodeSendHeader = encodeNodeSendHeader;
5
5
  exports.encodeNodeRequestHeader = encodeNodeRequestHeader;
6
6
  exports.decodeNodeRequestHeader = decodeNodeRequestHeader;
@@ -20,13 +20,23 @@ exports.decodeRouteMeshAdmission = decodeRouteMeshAdmission;
20
20
  exports.encodeReject = encodeReject;
21
21
  exports.decodeReject = decodeReject;
22
22
  exports.decodeHeader = decodeHeader;
23
- const service_topology_registry_1 = require("./service-topology-registry");
23
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
24
24
  const EndpointNotation_1 = require("../../contracts/Configuration/EndpointNotation");
25
- const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
25
+ const service_topology_registry_1 = require("./service-topology-registry");
26
26
  const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
27
- const PREFIX_SIZE = 5;
28
- const MAX_U32 = 0xffff_ffff;
29
- const MAX_U64 = 0xffffffffffffffffn;
27
+ const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
28
+ const PREFIX_SIZE = service_wire_binary_primitives_1.SERVICE_WIRE_PREFIX_SIZE;
29
+ const REPLY_HEADER_MIN_BYTES = PREFIX_SIZE + 16;
30
+ const SERVICE_ROUTE_TEXT_MAX_BYTES = 4096;
31
+ exports.APPLICATION_PAYLOAD_VERSION = 1;
32
+ const APPLICATION_PAYLOAD_LENGTH_FIELD_BYTES = 4;
33
+ const APPLICATION_PAYLOAD_TEXT_LENGTH_FIELD_BYTES = 1;
34
+ exports.APPLICATION_PAYLOAD_MINIMUM_FIELD_BYTES = 1 +
35
+ APPLICATION_PAYLOAD_LENGTH_FIELD_BYTES +
36
+ 2 * APPLICATION_PAYLOAD_TEXT_LENGTH_FIELD_BYTES +
37
+ APPLICATION_PAYLOAD_LENGTH_FIELD_BYTES;
38
+ const MAX_U32 = stream_wire_1.UINT32_MAX;
39
+ const MAX_U64 = stream_wire_1.UINT64_MAX;
30
40
  exports.M6A_SERVICE_WIRE_MAGIC = service_wire_constants_generated_1.SERVICE_WIRE_MAGIC;
31
41
  exports.M6A_SERVICE_WIRE_MAJOR = service_wire_constants_generated_1.SERVICE_WIRE_MAJOR;
32
42
  exports.M6A_SERVICE_WIRE_REQUIRED_CAPABILITY = service_wire_constants_generated_1.SERVICE_WIRE_REQUIRED_CAPABILITY;
@@ -100,7 +110,7 @@ function decodeReplyHeader(frame) {
100
110
  const header = decodeHeader(frame);
101
111
  if (header.command !== exports.M6aServiceWireCommand.reply ||
102
112
  header.flags !== 0 ||
103
- frame.byteLength < 21) {
113
+ frame.byteLength < REPLY_HEADER_MIN_BYTES) {
104
114
  fail('Invalid reply header.');
105
115
  }
106
116
  const bytes = asBuffer(frame);
@@ -125,7 +135,7 @@ function encodeApplicationPayload(payload) {
125
135
  if (bodyLength > MAX_U32)
126
136
  fail('Application payload body exceeds u32.');
127
137
  const result = Buffer.alloc(5 + bodyLength);
128
- result[0] = 1;
138
+ result[0] = exports.APPLICATION_PAYLOAD_VERSION;
129
139
  result.writeUInt32BE(bodyLength, 1);
130
140
  let offset = 5;
131
141
  offset += packetName.copy(result, offset);
@@ -159,7 +169,7 @@ function encodeMultipartApplicationPayload(parts, packetName, contentType) {
159
169
  if (bodyLength > MAX_U32)
160
170
  fail('Application payload body exceeds u32.');
161
171
  const result = Buffer.alloc(5 + bodyLength);
162
- result[0] = 1;
172
+ result[0] = exports.APPLICATION_PAYLOAD_VERSION;
163
173
  result.writeUInt32BE(bodyLength, 1);
164
174
  let offset = 5;
165
175
  offset += packetNameBytes.copy(result, offset);
@@ -190,7 +200,7 @@ function decodeApplicationPayload(frame) {
190
200
  */
191
201
  function decodeApplicationPayloadView(frame) {
192
202
  const reader = new Reader(frame);
193
- if (reader.u8('version') !== 1)
203
+ if (reader.u8('version') !== exports.APPLICATION_PAYLOAD_VERSION)
194
204
  fail('Invalid application payload version.');
195
205
  const bodyLength = reader.u32('bodyLength');
196
206
  if (bodyLength !== reader.remaining)
@@ -212,7 +222,7 @@ function decodeApplicationPayloadView(frame) {
212
222
  */
213
223
  function validateApplicationPayloadFrame(frame) {
214
224
  const reader = new Reader(frame);
215
- if (reader.u8('version') !== 1)
225
+ if (reader.u8('version') !== exports.APPLICATION_PAYLOAD_VERSION)
216
226
  fail('Invalid application payload version.');
217
227
  const bodyLength = reader.u32('bodyLength');
218
228
  if (bodyLength !== reader.remaining)
@@ -413,7 +423,7 @@ function encodeText8(value, field) {
413
423
  return concat(Buffer.of(bytes.byteLength), bytes);
414
424
  }
415
425
  function encodeText16(value, field) {
416
- const bytes = (0, service_wire_binary_primitives_1.encodeCanonicalServiceWireText)(value, field, 4096, fail);
426
+ const bytes = (0, service_wire_binary_primitives_1.encodeCanonicalServiceWireText)(value, field, SERVICE_ROUTE_TEXT_MAX_BYTES, fail);
417
427
  return concat(encodeU16(bytes.byteLength), bytes);
418
428
  }
419
429
  function tlv(id, value) {
@@ -539,7 +549,7 @@ class Reader {
539
549
  }
540
550
  text16(field) {
541
551
  const length = this.u16(`${field}.length`);
542
- if (length === 0 || length > 4096)
552
+ if (length === 0 || length > SERVICE_ROUTE_TEXT_MAX_BYTES)
543
553
  fail(`${field} has invalid length.`);
544
554
  return decodeText(this.bytes(length, field), field);
545
555
  }
@@ -45,6 +45,7 @@ export declare enum ZLinkFrameworkInternalErrorKind {
45
45
  ActorRouteUnavailable = "actorRouteUnavailable"
46
46
  }
47
47
  export declare const ZLINK_FRAMEWORK_INTERNAL_ERROR_KIND_VALUES: Readonly<Record<ZLinkFrameworkInternalErrorKind, number>>;
48
+ export declare function frameworkRelocationFailureCode(error: ZLinkFrameworkErrorKind | ZLinkFrameworkException): number;
48
49
  export declare function createInternalFrameworkException(kind: ZLinkFrameworkInternalErrorKind, message: string, causeOrRetry?: unknown, cause?: unknown): ZLinkFrameworkException;
49
50
  export declare function internalFrameworkErrorKind(error: ZLinkFrameworkException): ZLinkFrameworkInternalErrorKind | undefined;
50
51
  /**
@@ -83,7 +84,7 @@ export declare function wireReplyFailureException(terminalResult: number, failur
83
84
  export declare function translateWireReplyDecodeError(error: unknown): unknown;
84
85
  export declare function internalFrameworkErrorCode(error: ZLinkFrameworkException): number;
85
86
  /** Produces the canonical stateful wire terminal without leaking internal kinds. */
86
- export declare function internalFrameworkWireReply(error: ZLinkFrameworkException): {
87
+ export declare function internalFrameworkWireReply(error: ZLinkFrameworkException | ZLinkFrameworkInternalErrorKind | ZLinkFrameworkErrorKind): {
87
88
  readonly terminalResult: number;
88
89
  readonly failureCode: number;
89
90
  };