@zlink-systems/framework 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  3. package/dist/contracts/Common/CoreTypes.js +7 -0
  4. package/dist/contracts/Common/index.d.ts +1 -1
  5. package/dist/contracts/Common/index.js +0 -1
  6. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  7. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  8. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  9. package/dist/contracts/Configuration/Registration.js +58 -36
  10. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  12. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  13. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  14. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  15. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  16. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  17. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  18. package/dist/contracts/Handlers/JsonContract.js +10 -4
  19. package/dist/contracts/Locations/Authority.d.ts +1 -1
  20. package/dist/contracts/Locations/Authority.js +3 -2
  21. package/dist/contracts/Locations/Options.js +1 -1
  22. package/dist/contracts/Locations/Stores.d.ts +12 -0
  23. package/dist/contracts/Locations/Stores.js +9 -0
  24. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  25. package/dist/internal.d.ts +4 -0
  26. package/dist/internal.js +15 -1
  27. package/dist/nest-integration.d.ts +4 -2
  28. package/dist/nest-integration.js +14 -4
  29. package/dist/runtime/abort.d.ts +1 -0
  30. package/dist/runtime/abort.js +8 -5
  31. package/dist/runtime/activation-admission.d.ts +1 -2
  32. package/dist/runtime/activation-admission.js +2 -6
  33. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  34. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  35. package/dist/runtime/actors/actor-client.d.ts +2 -2
  36. package/dist/runtime/actors/actor-client.js +42 -143
  37. package/dist/runtime/actors/actor-context.d.ts +3 -5
  38. package/dist/runtime/actors/actor-context.js +13 -11
  39. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  40. package/dist/runtime/actors/actor-handoff.js +8 -8
  41. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  42. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  43. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  44. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  45. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  46. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  47. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  48. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  49. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  50. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  51. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  52. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  53. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  54. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  55. package/dist/runtime/actors/bound-session-wire.js +2 -7
  56. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  57. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  58. package/dist/runtime/actors/index.d.ts +9 -7
  59. package/dist/runtime/actors/index.js +87 -69
  60. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  61. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  62. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  63. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  64. package/dist/runtime/admission.d.ts +2 -0
  65. package/dist/runtime/admission.js +7 -1
  66. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  67. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  68. package/dist/runtime/backend/contracts/index.d.ts +6 -23
  69. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  70. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  71. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  72. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
  73. package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
  74. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  75. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  76. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  77. package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
  78. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  79. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  80. package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
  81. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  82. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  83. package/dist/runtime/backend/runtime-values.js +2 -0
  84. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  85. package/dist/runtime/channels/channel-clients.js +68 -52
  86. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  87. package/dist/runtime/channels/channel-envelope.js +47 -29
  88. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  89. package/dist/runtime/channels/channel-outbound-operations.js +9 -10
  90. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  91. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  92. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  93. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  94. package/dist/runtime/channels/channel-runtime-manager.js +5 -2
  95. package/dist/runtime/channels/channel-socket-options.js +3 -2
  96. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  97. package/dist/runtime/channels/channel-socket-registry.js +248 -174
  98. package/dist/runtime/channels/channel-transports.d.ts +11 -17
  99. package/dist/runtime/channels/channel-transports.js +68 -47
  100. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  101. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  102. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  103. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  104. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  105. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  106. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  107. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  108. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  109. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  110. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  111. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  112. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  113. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  114. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  115. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  116. package/dist/runtime/diagnostics/flow-context.js +16 -2
  117. package/dist/runtime/diagnostics/index.d.ts +4 -2
  118. package/dist/runtime/diagnostics/index.js +14 -4
  119. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  120. package/dist/runtime/diagnostics/message-flow.js +10 -19
  121. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  122. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  123. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  124. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  125. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  126. package/dist/runtime/disposal.d.ts +5 -0
  127. package/dist/runtime/disposal.js +22 -0
  128. package/dist/runtime/execution/index.d.ts +12 -9
  129. package/dist/runtime/execution/index.js +58 -14
  130. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  131. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  132. package/dist/runtime/execution/state-lane.d.ts +8 -1
  133. package/dist/runtime/execution/state-lane.js +118 -3
  134. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  135. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  136. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  137. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  138. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  139. package/dist/runtime/foundation/operation-identity.js +9 -5
  140. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  141. package/dist/runtime/foundation/operation-registry.js +34 -44
  142. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  143. package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
  144. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  145. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  146. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  147. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  148. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  149. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  150. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  151. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  152. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  153. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  154. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  155. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  156. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  157. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  158. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  159. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  160. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  161. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  162. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  163. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  164. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  165. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  166. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  167. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  168. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  169. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  170. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  171. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  172. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  173. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  174. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  175. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  176. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  177. package/dist/runtime/framework-errors-internal.js +343 -122
  178. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  179. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  180. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  181. package/dist/runtime/host/actor-packet-relay.js +48 -91
  182. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  183. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  184. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  185. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  186. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  187. package/dist/runtime/host/application-job-queue.js +16 -33
  188. package/dist/runtime/host/bound-session-relay.js +1 -1
  189. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  190. package/dist/runtime/host/index.d.ts +14 -13
  191. package/dist/runtime/host/index.js +190 -157
  192. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  193. package/dist/runtime/host/instance-activation-authority.js +17 -45
  194. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  195. package/dist/runtime/host/location-runtime-owner.js +2 -2
  196. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  197. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  198. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  199. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  200. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  201. package/dist/runtime/host/remote-bound-session-relay.js +7 -20
  202. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  203. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  204. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  205. package/dist/runtime/host/runtime-shutdown.js +18 -21
  206. package/dist/runtime/host/service-relocation-control.js +6 -1
  207. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  208. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  209. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  210. package/dist/runtime/host/spot-address-transport.js +34 -136
  211. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  212. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  213. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  214. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  215. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  216. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  217. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  218. package/dist/runtime/locations/authority-key-codec.js +4 -3
  219. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  220. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  221. package/dist/runtime/locations/creation-operation-id.js +6 -4
  222. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  223. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  224. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  225. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  226. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  227. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  228. package/dist/runtime/locations/key-codec.js +3 -2
  229. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  230. package/dist/runtime/locations/lease-tracker.js +7 -11
  231. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  232. package/dist/runtime/locations/lifecycle.js +2 -31
  233. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  234. package/dist/runtime/locations/location-store-failure.js +7 -0
  235. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  236. package/dist/runtime/locations/location-store-pages.js +13 -0
  237. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  238. package/dist/runtime/locations/location-store-repository.js +303 -332
  239. package/dist/runtime/locations/relocation-blob.js +18 -5
  240. package/dist/runtime/locations/resolvers.d.ts +5 -5
  241. package/dist/runtime/locations/resolvers.js +37 -28
  242. package/dist/runtime/locations/runtime.d.ts +5 -4
  243. package/dist/runtime/locations/runtime.js +123 -92
  244. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  245. package/dist/runtime/locations/spot-location-claims.js +42 -1
  246. package/dist/runtime/messaging/payload-codec.js +26 -20
  247. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  248. package/dist/runtime/messaging/submission-result.js +48 -0
  249. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  250. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  251. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  252. package/dist/runtime/spots/index.d.ts +14 -20
  253. package/dist/runtime/spots/index.js +302 -176
  254. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  255. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  256. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  257. package/dist/runtime/spots/spot-activation-state.js +2 -2
  258. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  259. package/dist/runtime/spots/spot-activation.js +49 -32
  260. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  261. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  262. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  263. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  264. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  265. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  266. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  267. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  268. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  269. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  270. package/dist/runtime/spots/spot-context.d.ts +2 -2
  271. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  272. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  273. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  274. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  275. package/dist/runtime/spots/spot-manager-public.js +5 -4
  276. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  277. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  278. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  279. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  280. package/dist/runtime/spots/spot-outbound.js +9 -8
  281. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  282. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  283. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  284. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  285. package/dist/runtime/spots/spot-route-replies.js +3 -1
  286. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  287. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  288. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  289. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  290. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  291. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  292. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  293. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  294. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  295. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  296. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  297. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  298. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  299. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  300. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  301. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  302. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  303. package/dist/runtime/streams/bound-session-service.js +11 -1
  304. package/dist/runtime/streams/index.d.ts +14 -15
  305. package/dist/runtime/streams/index.js +20 -21
  306. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  307. package/dist/runtime/streams/managed-stream.js +17 -8
  308. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  309. package/dist/runtime/streams/protocol.d.ts +6 -33
  310. package/dist/runtime/streams/protocol.js +38 -110
  311. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  312. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  313. package/dist/runtime/streams/session-calls.d.ts +1 -1
  314. package/dist/runtime/streams/session-calls.js +5 -4
  315. package/dist/runtime/streams/session-context.d.ts +6 -6
  316. package/dist/runtime/streams/session-context.js +22 -4
  317. package/dist/runtime/streams/session-requests.js +2 -1
  318. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  319. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  320. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  321. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  322. package/dist/runtime/workers/index.d.ts +2 -2
  323. package/dist/runtime/workers/index.js +5 -4
  324. package/package.json +3 -3
  325. package/src/contracts/Common/CoreTypes.ts +7 -0
  326. package/src/contracts/Common/index.ts +1 -1
  327. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  328. package/src/contracts/Configuration/Registration.ts +92 -48
  329. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  330. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  331. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  332. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  333. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  334. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  335. package/src/contracts/Handlers/JsonContract.ts +14 -4
  336. package/src/contracts/Locations/Authority.ts +7 -3
  337. package/src/contracts/Locations/Options.ts +1 -1
  338. package/src/contracts/Locations/Stores.ts +14 -0
  339. package/src/contracts/Spots/Contracts.ts +1 -1
  340. package/src/internal.ts +14 -0
  341. package/src/nest-integration.ts +28 -10
  342. package/src/runtime/abort.ts +6 -5
  343. package/src/runtime/activation-admission.ts +2 -8
  344. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  345. package/src/runtime/actors/actor-client.ts +77 -204
  346. package/src/runtime/actors/actor-context.ts +39 -33
  347. package/src/runtime/actors/actor-handoff.ts +24 -22
  348. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  349. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  350. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  351. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  352. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  353. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  354. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  355. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  356. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  357. package/src/runtime/actors/bound-session-wire.ts +2 -8
  358. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  359. package/src/runtime/actors/index.ts +100 -79
  360. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  361. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  362. package/src/runtime/admission.ts +8 -1
  363. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  364. package/src/runtime/backend/contracts/index.ts +13 -29
  365. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  366. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  367. package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
  368. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  369. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  370. package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
  371. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  372. package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
  373. package/src/runtime/backend/raw-binding-port.ts +1 -1
  374. package/src/runtime/backend/runtime-values.ts +4 -1
  375. package/src/runtime/channels/channel-clients.ts +132 -85
  376. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  377. package/src/runtime/channels/channel-envelope.ts +58 -29
  378. package/src/runtime/channels/channel-outbound-operations.ts +10 -23
  379. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  380. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  381. package/src/runtime/channels/channel-runtime-manager.ts +6 -2
  382. package/src/runtime/channels/channel-socket-options.ts +8 -2
  383. package/src/runtime/channels/channel-socket-registry.ts +301 -192
  384. package/src/runtime/channels/channel-transports.ts +161 -112
  385. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  386. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  387. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  388. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  389. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  390. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  391. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  392. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  393. package/src/runtime/diagnostics/flow-context.ts +16 -2
  394. package/src/runtime/diagnostics/index.ts +27 -17
  395. package/src/runtime/diagnostics/message-flow.ts +15 -25
  396. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  397. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  398. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  399. package/src/runtime/disposal.ts +19 -0
  400. package/src/runtime/execution/index.ts +60 -20
  401. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  402. package/src/runtime/execution/state-lane.ts +142 -4
  403. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  404. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  405. package/src/runtime/foundation/operation-identity.ts +11 -5
  406. package/src/runtime/foundation/operation-registry.ts +33 -50
  407. package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
  408. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  409. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  410. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  411. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  412. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  413. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  414. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  415. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  416. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  417. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  418. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  419. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  420. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  421. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  422. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  423. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  424. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  425. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  426. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  427. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  428. package/src/runtime/framework-errors-internal.ts +380 -134
  429. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  430. package/src/runtime/host/actor-packet-relay.ts +57 -147
  431. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  432. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  433. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  434. package/src/runtime/host/application-job-queue.ts +28 -34
  435. package/src/runtime/host/bound-session-relay.ts +1 -2
  436. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  437. package/src/runtime/host/index.ts +327 -296
  438. package/src/runtime/host/instance-activation-authority.ts +89 -109
  439. package/src/runtime/host/location-runtime-owner.ts +4 -2
  440. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  441. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  442. package/src/runtime/host/remote-bound-session-relay.ts +8 -41
  443. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  444. package/src/runtime/host/runtime-shutdown.ts +17 -21
  445. package/src/runtime/host/service-relocation-control.ts +14 -1
  446. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  447. package/src/runtime/host/spot-address-transport.ts +73 -195
  448. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  449. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  450. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  451. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  452. package/src/runtime/locations/authority-key-codec.ts +7 -3
  453. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  454. package/src/runtime/locations/creation-operation-id.ts +6 -3
  455. package/src/runtime/locations/domain-store-contract.ts +12 -3
  456. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  457. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  458. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  459. package/src/runtime/locations/key-codec.ts +3 -2
  460. package/src/runtime/locations/lease-tracker.ts +8 -14
  461. package/src/runtime/locations/lifecycle.ts +13 -43
  462. package/src/runtime/locations/location-store-failure.ts +4 -0
  463. package/src/runtime/locations/location-store-pages.ts +18 -0
  464. package/src/runtime/locations/location-store-repository.ts +450 -478
  465. package/src/runtime/locations/relocation-blob.ts +17 -6
  466. package/src/runtime/locations/resolvers.ts +75 -49
  467. package/src/runtime/locations/runtime.ts +220 -110
  468. package/src/runtime/locations/spot-location-claims.ts +58 -1
  469. package/src/runtime/messaging/payload-codec.ts +35 -24
  470. package/src/runtime/messaging/submission-result.ts +57 -1
  471. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  472. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  473. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  474. package/src/runtime/spots/index.ts +433 -229
  475. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  476. package/src/runtime/spots/spot-activation-state.ts +2 -2
  477. package/src/runtime/spots/spot-activation.ts +67 -37
  478. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  479. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  480. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  481. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  482. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  483. package/src/runtime/spots/spot-context.ts +3 -3
  484. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  485. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  486. package/src/runtime/spots/spot-manager-public.ts +21 -17
  487. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  488. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  489. package/src/runtime/spots/spot-outbound.ts +45 -23
  490. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  491. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  492. package/src/runtime/spots/spot-route-replies.ts +6 -4
  493. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  494. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  495. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  496. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  497. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  498. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  499. package/src/runtime/spots/spot-timer.ts +3 -2
  500. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  501. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  502. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  503. package/src/runtime/streams/bound-session-service.ts +21 -1
  504. package/src/runtime/streams/index.ts +76 -64
  505. package/src/runtime/streams/managed-stream.ts +29 -10
  506. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  507. package/src/runtime/streams/protocol.ts +34 -88
  508. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  509. package/src/runtime/streams/session-calls.ts +6 -5
  510. package/src/runtime/streams/session-context.ts +54 -10
  511. package/src/runtime/streams/session-requests.ts +2 -1
  512. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  513. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  514. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  515. package/src/runtime/workers/index.ts +13 -12
  516. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  517. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  518. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  519. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  520. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  521. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -2,26 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkNodeRawMeshBackend = void 0;
4
4
  exports.requestFailureResult = requestFailureResult;
5
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
6
+ const zlink_1 = require("@zlink-systems/zlink");
5
7
  const node_crypto_1 = require("node:crypto");
6
8
  const promises_1 = require("node:timers/promises");
7
- const stream_wire_1 = require("@zlink-systems/stream-wire");
8
- const node_socket_backend_adapter_1 = require("./node-socket-backend-adapter");
9
- const node_backend_adapter_support_1 = require("./node-backend-adapter-support");
10
9
  const contracts_1 = require("../../../contracts");
11
- const framework_errors_internal_1 = require("../../framework-errors-internal");
12
- const zlink_1 = require("@zlink-systems/zlink");
13
- const runtime_values_1 = require("../runtime-values");
14
- const runtime_message_1 = require("../runtime-message");
15
- const service_runtime_contracts_1 = require("../../foundation/service-runtime-contracts");
10
+ const ConfigurationException_1 = require("../../../contracts/Configuration/ConfigurationException");
11
+ const EndpointNotation_1 = require("../../../contracts/Configuration/EndpointNotation");
12
+ const InternalDefaults_1 = require("../../../contracts/Configuration/InternalDefaults");
13
+ const Registration_1 = require("../../../contracts/Configuration/Registration");
14
+ const RegistrationBuilderPolicy_1 = require("../../../contracts/Configuration/RegistrationBuilderPolicy");
15
+ const admission_1 = require("../../admission");
16
+ const operation_identity_1 = require("../../foundation/operation-identity");
16
17
  const operation_registry_1 = require("../../foundation/operation-registry");
17
18
  const raw_service_mesh_runtime_1 = require("../../foundation/raw-service-mesh-runtime");
18
- const service_wire_m6a_codec_1 = require("../../foundation/service-wire-m6a-codec");
19
- const service_wire_constants_generated_1 = require("../../foundation/service-wire-constants.generated");
20
- const service_stateful_runtime_1 = require("../../foundation/service-stateful-runtime");
21
- const service_session_binding_ingress_port_1 = require("../../foundation/service-session-binding-ingress-port");
22
19
  const service_metadata_codec_1 = require("../../foundation/service-metadata-codec");
23
- const EndpointNotation_1 = require("../../../contracts/Configuration/EndpointNotation");
24
- const ConfigurationException_1 = require("../../../contracts/Configuration/ConfigurationException");
20
+ const service_runtime_contracts_1 = require("../../foundation/service-runtime-contracts");
21
+ const service_session_binding_ingress_port_1 = require("../../foundation/service-session-binding-ingress-port");
22
+ const service_stateful_runtime_1 = require("../../foundation/service-stateful-runtime");
23
+ const service_wire_binary_primitives_1 = require("../../foundation/service-wire-binary-primitives");
24
+ const service_wire_constants_generated_1 = require("../../foundation/service-wire-constants.generated");
25
+ const service_wire_m6a_codec_1 = require("../../foundation/service-wire-m6a-codec");
26
+ const submission_result_1 = require("../../messaging/submission-result");
27
+ const framework_errors_internal_1 = require("../../framework-errors-internal");
28
+ const runtime_message_1 = require("../runtime-message");
29
+ const runtime_values_1 = require("../runtime-values");
30
+ const node_backend_adapter_support_1 = require("./node-backend-adapter-support");
31
+ const node_socket_backend_adapter_1 = require("./node-socket-backend-adapter");
32
+ const DEFAULT_NATIVE_ACTIVE_CAPACITY = 10_000;
33
+ const UNSTARTED_DIAGNOSTIC_ENDPOINT = 'inproc://not-started';
25
34
  const MULTIPART_PACKET_NAME = service_wire_constants_generated_1.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME;
26
35
  const MULTIPART_CONTENT_TYPE = service_wire_constants_generated_1.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE;
27
36
  const FATAL_UTF8 = new TextDecoder('utf-8', { fatal: true });
@@ -29,6 +38,9 @@ const MAX_DRAIN_RECORDS = 64;
29
38
  // Preserve the existing route observation/admission/liveness cadence. Only the binding
30
39
  // readable handler admits receive work; this timer never probes the socket.
31
40
  const MESH_BACKEND_MAINTENANCE_INTERVAL_MS = 1;
41
+ // Spec 08 §4.2 bounds the combined turn. Raw gets one equal share; stateful
42
+ // can use the remaining turn, including time the raw registry did not consume.
43
+ const MESH_BACKEND_RAW_MAINTENANCE_SHARE = 1 / 2;
32
44
  /**
33
45
  * Conservative Actor Join admission cap for relocation state chunks (spec 15
34
46
  * §4.2): a stable lower bound safe on any deployment, never lowered on
@@ -61,29 +73,39 @@ class ZLinkNodeRawMeshBackend {
61
73
  readyHandler;
62
74
  maintenanceTimer;
63
75
  pumping = false;
64
- readable = false;
65
- onReadable = () => {
66
- this.readable = true;
76
+ readable = 0;
77
+ onReadable = (receiveReady, routeReady) => {
78
+ if (receiveReady)
79
+ this.readable |= 1;
80
+ if (routeReady)
81
+ this.readable |= 2;
67
82
  if (!this.closed && !this.pumping)
68
83
  void this.pump();
69
84
  };
70
85
  onMaintenance = () => {
71
86
  this.maintenanceTimer = undefined;
87
+ if (this.closed)
88
+ return;
89
+ const nowMs = performance.now();
90
+ const turnDeadlineMs = nowMs + raw_service_mesh_runtime_1.RAW_MESH_RECEIVE_TIME_BUDGET_MS;
91
+ this.runtime?.expireOperations(nowMs, nowMs + raw_service_mesh_runtime_1.RAW_MESH_RECEIVE_TIME_BUDGET_MS * MESH_BACKEND_RAW_MAINTENANCE_SHARE);
92
+ this.stateful?.expireOperations(nowMs, turnDeadlineMs);
93
+ this.scheduleMaintenance();
72
94
  void this.pump();
73
95
  };
96
+ onPendingOperationsChanged = () => this.scheduleMaintenance();
74
97
  nextPeerIntent = 1n;
75
98
  closed = false;
76
99
  objectRole = 'none';
77
- placementWeight = 100;
78
- activeCapacityLimit = 10_000;
79
- pendingCapacityLimit = 128;
100
+ placementWeight = RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT;
101
+ activeCapacityLimit = DEFAULT_NATIVE_ACTIVE_CAPACITY;
102
+ pendingCapacityLimit = InternalDefaults_1.DEFAULT_ACTIVATION_CONCURRENCY_LIMIT;
80
103
  objectCapabilities = [];
81
104
  maintenanceWave;
82
105
  mailboxRecordDropped;
83
106
  protocolError;
84
107
  messageFollowHandler;
85
108
  dispatchErrors;
86
- spotAdmissionProvider;
87
109
  peerDisconnectedHandlers = new Set();
88
110
  constructor(meshName, routingId, bindingPort, applicationJobQueue, applicationJobReceiveFlowFailureSink, peerAdmissionSealed) {
89
111
  this.meshName = meshName;
@@ -116,10 +138,6 @@ class ZLinkNodeRawMeshBackend {
116
138
  this.dispatchErrors = reporter;
117
139
  this.stateful?.setDispatchErrorReporter(reporter, this.meshName);
118
140
  }
119
- setSpotAdmissionProvider(provider) {
120
- this.spotAdmissionProvider = provider;
121
- this.stateful?.setSpotAdmissionProvider(provider);
122
- }
123
141
  setProtocolErrorHandler(handler) {
124
142
  this.protocolError = handler;
125
143
  }
@@ -182,6 +200,7 @@ class ZLinkNodeRawMeshBackend {
182
200
  throw new Error('MeshNode bind endpoint is not configured.');
183
201
  const descriptor = this.createDescriptor();
184
202
  const runtime = new raw_service_mesh_runtime_1.RawServiceMeshRuntime({
203
+ onPendingOperationsChanged: this.onPendingOperationsChanged,
185
204
  descriptor,
186
205
  resolveAdvertisedEndpoint: (boundEndpoint) => this.resolveAdvertisedEndpoint(boundEndpoint),
187
206
  bindingPort: this.bindingPort,
@@ -215,10 +234,7 @@ class ZLinkNodeRawMeshBackend {
215
234
  }
216
235
  });
217
236
  runtime.start();
218
- this.stateful = new service_stateful_runtime_1.ServiceStatefulRuntime(runtime, descriptor.nodeRoutingId, descriptor.lifecycleGeneration);
219
- if (this.spotAdmissionProvider !== undefined) {
220
- this.stateful.setSpotAdmissionProvider(this.spotAdmissionProvider);
221
- }
237
+ this.stateful = new service_stateful_runtime_1.ServiceStatefulRuntime(runtime, descriptor.nodeRoutingId, descriptor.lifecycleGeneration, this.onPendingOperationsChanged);
222
238
  if (this.dispatchErrors !== undefined) {
223
239
  this.stateful.setDispatchErrorReporter(this.dispatchErrors, this.meshName);
224
240
  }
@@ -254,7 +270,6 @@ class ZLinkNodeRawMeshBackend {
254
270
  close() {
255
271
  if (this.closed)
256
272
  return;
257
- this.closed = true;
258
273
  if (this.maintenanceTimer !== undefined)
259
274
  clearTimeout(this.maintenanceTimer);
260
275
  this.maintenanceTimer = undefined;
@@ -263,6 +278,7 @@ class ZLinkNodeRawMeshBackend {
263
278
  this.runtime?.close();
264
279
  this.runtime = undefined;
265
280
  this.clearCompletions();
281
+ this.closed = true;
266
282
  }
267
283
  addChannelName(name) {
268
284
  this.requireNotStarted();
@@ -312,8 +328,6 @@ class ZLinkNodeRawMeshBackend {
312
328
  lifecycleGeneration: options.expectedLifecycleGeneration
313
329
  })
314
330
  });
315
- if (nodeRoutingId !== undefined)
316
- await runtime.announcePeer(nodeRoutingId);
317
331
  return intent;
318
332
  }
319
333
  expectPeer(peer) {
@@ -386,17 +400,17 @@ class ZLinkNodeRawMeshBackend {
386
400
  : zlink_1.SubmitResult.NotConnected;
387
401
  }
388
402
  async requestInfrastructureControlFrames(targetRid, frames, options) {
389
- return await this.requireRuntime().requestService(String(targetRid), frames.map((frame) => Buffer.from(frame)), options?.timeoutMs ?? 30_000);
403
+ return await this.requireRuntime().requestService(String(targetRid), frames.map((frame) => Buffer.from(frame)), options?.timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS);
390
404
  }
391
405
  requestToNode(targetRid, parts, options) {
392
- const pending = this.requireRuntime().requestToNode(String(targetRid), encodeMultipartApplicationFrame(parts), options?.timeoutMs ?? 30_000);
406
+ const pending = this.requireRuntime().requestToNode(String(targetRid), encodeMultipartApplicationFrame(parts), options?.timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS);
393
407
  return this.observeCompletion(pending.id, service_runtime_contracts_1.OperationKind.NodeRequest, pending.promise);
394
408
  }
395
409
  async sendToChannel(channelName, parts) {
396
410
  return this.requireRuntime().sendToChannel(channelName, encodeMultipartApplicationFrame(parts));
397
411
  }
398
412
  requestToChannel(channelName, parts, options) {
399
- const pending = this.requireRuntime().requestToChannel(channelName, encodeMultipartApplicationFrame(parts), options?.timeoutMs ?? 30_000);
413
+ const pending = this.requireRuntime().requestToChannel(channelName, encodeMultipartApplicationFrame(parts), options?.timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS);
400
414
  return this.observeCompletion(pending.id, service_runtime_contracts_1.OperationKind.ChannelRequest, pending.promise);
401
415
  }
402
416
  status() {
@@ -432,7 +446,7 @@ class ZLinkNodeRawMeshBackend {
432
446
  connectionIntentId: findIntent(peer.descriptor.nodeRoutingId, peer.descriptor.advertisedEndpoint)?.id ?? 0n,
433
447
  source: 1,
434
448
  state: this.runtime?.isPeerRouteReady(peer.descriptor.nodeRoutingId) === false
435
- ? 1
449
+ ? service_runtime_contracts_1.MeshPeerRuntimeState.Connecting
436
450
  : peerStateCode(peer.descriptor.state),
437
451
  routingId: peer.descriptor.nodeRoutingId,
438
452
  lifecycleGeneration: peer.descriptor.lifecycleGeneration,
@@ -445,7 +459,7 @@ class ZLinkNodeRawMeshBackend {
445
459
  const notRequired = (this.runtime?.topology.notRequiredPeers() ?? []).map((descriptor) => ({
446
460
  connectionIntentId: findIntent(descriptor.nodeRoutingId, descriptor.advertisedEndpoint)?.id ?? 0n,
447
461
  source: 1,
448
- state: 6,
462
+ state: service_runtime_contracts_1.MeshPeerRuntimeState.NotRequired,
449
463
  routingId: descriptor.nodeRoutingId,
450
464
  lifecycleGeneration: descriptor.lifecycleGeneration,
451
465
  descriptorRevision: descriptor.descriptorRevision,
@@ -568,7 +582,9 @@ class ZLinkNodeRawMeshBackend {
568
582
  return this.requireStateful().createActor(actorId).ref;
569
583
  }
570
584
  restoreActorAuthority(actorId, stableType, generation, authorityOwnerGeneration, spotId, spotGeneration, membershipEpoch) {
571
- return this.requireStateful().restoreActorAuthority(actorId, stableType, generation, authorityOwnerGeneration, spotId, spotGeneration, membershipEpoch).ref;
585
+ const stateful = this.requireStateful();
586
+ const entry = spotId === undefined ? stateful.entrySpot().ref : undefined;
587
+ return stateful.restoreActorAuthority(actorId, stableType, generation, authorityOwnerGeneration, entry?.spotId ?? spotId, entry?.generation ?? spotGeneration, membershipEpoch).ref;
572
588
  }
573
589
  discardRelocatedActor(actor) {
574
590
  this.requireStateful().discardRelocatedActor({
@@ -646,17 +662,19 @@ class ZLinkNodeRawMeshBackend {
646
662
  forgetSpotRoute(spot, authorityOwnerGeneration, storeVersion) {
647
663
  this.requireStateful().forgetSpotRoute(spot, authorityOwnerGeneration, storeVersion);
648
664
  }
649
- async sendToInstanceSpot(route, parts, sourceSpotId, metadata) {
650
- const result = await this.requireStateful().sendToInstanceSpot(route, encodeMultipart(parts), sourceSpotId, metadata === undefined ? undefined : (0, service_metadata_codec_1.encodeServiceMetadataFrame)(metadata));
665
+ async sendToInstanceSpot(route, parts, sourceSpotId, metadata, instanceIntent = false) {
666
+ const result = await this.requireStateful().sendToInstanceSpot(route, encodeMultipart(parts), sourceSpotId, metadata === undefined ? undefined : (0, service_metadata_codec_1.encodeServiceMetadataFrame)(metadata), instanceIntent);
651
667
  return result;
652
668
  }
653
- requestInstanceSpot(route, parts, timeoutMs = 30_000, sourceSpotId, metadata) {
654
- return this.observeStateful(service_runtime_contracts_1.OperationKind.InstanceSpotRequest, this.requireStateful().requestToInstanceSpot(route, encodeMultipart(parts), timeoutMs, sourceSpotId, metadata === undefined ? undefined : (0, service_metadata_codec_1.encodeServiceMetadataFrame)(metadata)));
669
+ requestInstanceSpot(route, parts, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, sourceSpotId, metadata, instanceIntent = false) {
670
+ return this.observeStateful(service_runtime_contracts_1.OperationKind.InstanceSpotRequest, this.requireStateful().requestToInstanceSpot(route, encodeMultipart(parts), timeoutMs, sourceSpotId, metadata === undefined ? undefined : (0, service_metadata_codec_1.encodeServiceMetadataFrame)(metadata), instanceIntent));
655
671
  }
656
672
  actorLookup(actorId) {
657
673
  const actor = this.requireStateful().actor(actorId);
658
674
  if (actor === undefined) {
659
- throw Object.assign(new Error(`Actor '${actorId}' was not found.`), { nativeErrno: 2 });
675
+ const error = new zlink_1.ConfigError(zlink_1.ConfigResult.NotFound);
676
+ error.message = `Actor '${actorId}' was not found.`;
677
+ throw error;
660
678
  }
661
679
  return {
662
680
  actor: actor.ref,
@@ -665,23 +683,23 @@ class ZLinkNodeRawMeshBackend {
665
683
  membershipEpoch: actor.membershipEpoch
666
684
  };
667
685
  }
668
- lookupRemoteActor(targetNodeRid, actorId, timeoutMs = 30_000) {
686
+ lookupRemoteActor(targetNodeRid, actorId, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
669
687
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorLookup, this.requireStateful().lookupRemoteActor(String(targetNodeRid), actorId, timeoutMs));
670
688
  }
671
- destroyActor(actor, timeoutMs = 30_000) {
689
+ destroyActor(actor, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
672
690
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorDestroy, this.requireStateful().destroyActor(actor, timeoutMs));
673
691
  }
674
- joinActorSpot(actor, targetNodeRid, targetSpotId, targetSpotGeneration, request, timeoutMs = 30_000) {
692
+ joinActorSpot(actor, targetNodeRid, targetSpotId, targetSpotGeneration, request, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
675
693
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorJoin, this.requireStateful().joinActor(actor, String(targetNodeRid), { spotId: String(targetSpotId), generation: targetSpotGeneration }, targetSpotGeneration, request, timeoutMs));
676
694
  }
677
- joinActorSpotCanonical(actor, targetNodeRid, targetSpotId, targetSpotGeneration, request, actorFence, local, timeoutMs = 30_000) {
695
+ joinActorSpotCanonical(actor, targetNodeRid, targetSpotId, targetSpotGeneration, request, actorFence, local, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
678
696
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorJoin, this.requireStateful().joinActorCanonical(actor, String(targetNodeRid), { spotId: String(targetSpotId), generation: targetSpotGeneration }, targetSpotGeneration, request, actorFence, local, timeoutMs));
679
697
  }
680
- joinActorEntrySpot(actor, targetNodeRid, request, timeoutMs = 30_000) {
698
+ joinActorEntrySpot(actor, targetNodeRid, request, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
681
699
  const target = String(targetNodeRid);
682
700
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorJoin, this.requireStateful().joinActorEntrySpot(actor, target, request, timeoutMs));
683
701
  }
684
- joinActorEntrySpotCanonical(actor, targetNodeRid, request, actorFence, local, timeoutMs = 30_000) {
702
+ joinActorEntrySpotCanonical(actor, targetNodeRid, request, actorFence, local, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
685
703
  const target = String(targetNodeRid);
686
704
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorJoin, this.requireStateful().joinActorEntrySpotCanonical(actor, target, request, actorFence, local, timeoutMs));
687
705
  }
@@ -689,25 +707,25 @@ class ZLinkNodeRawMeshBackend {
689
707
  return this.requireStateful().sendToActor(actor, this.peerGeneration(String(actor.nodeRid)), actor.generation, encodeMultipart(parts));
690
708
  }
691
709
  requestToActor(actor, parts, options) {
692
- return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorRequest, this.requireStateful().requestToActor(actor, this.peerGeneration(String(actor.nodeRid)), actor.generation, encodeMultipart(parts), options?.timeoutMs ?? 30_000));
710
+ return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorRequest, this.requireStateful().requestToActor(actor, this.peerGeneration(String(actor.nodeRid)), actor.generation, encodeMultipart(parts), options?.timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS));
693
711
  }
694
712
  async actorSendToActor(source, target, parts) {
695
713
  return (await this.requireStateful().sendToActor(target, this.peerGeneration(String(target.nodeRid)), target.generation, encodeMultipart(parts), source));
696
714
  }
697
715
  actorRequestToActor(source, target, parts, options) {
698
- return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorRequest, this.requireStateful().requestToActor(target, this.peerGeneration(String(target.nodeRid)), target.generation, encodeMultipart(parts), options?.timeoutMs ?? 30_000, source));
716
+ return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorRequest, this.requireStateful().requestToActor(target, this.peerGeneration(String(target.nodeRid)), target.generation, encodeMultipart(parts), options?.timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, source));
699
717
  }
700
718
  async sendActorBoundSession(actor, expectedBindingGeneration, parts, _flags) {
701
719
  return (await this.requireStateful().sendBoundSession(actor, expectedBindingGeneration, encodeMultipart(parts)));
702
720
  }
703
- closeActorBoundSession(actor, expectedBindingGeneration, timeoutMs = 30_000) {
721
+ closeActorBoundSession(actor, expectedBindingGeneration, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
704
722
  const binding = this.requireStateful().registry.binding(actor);
705
723
  if (binding === undefined) {
706
724
  return this.enqueueImmediateFailure(service_runtime_contracts_1.OperationKind.StreamUnbind, zlink_1.RequestResult.NotFound);
707
725
  }
708
726
  return this.observeStateful(service_runtime_contracts_1.OperationKind.StreamUnbind, this.requireStateful().unbindSession(binding.sessionRid, actor, expectedBindingGeneration, timeoutMs));
709
727
  }
710
- leaveActor(actor, expectedMembershipEpoch, timeoutMs = 30_000) {
728
+ leaveActor(actor, expectedMembershipEpoch, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
711
729
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorLeave, this.requireStateful().leaveActor(actor, expectedMembershipEpoch, timeoutMs));
712
730
  }
713
731
  createStreamSessionService(stream) {
@@ -743,7 +761,7 @@ class ZLinkNodeRawMeshBackend {
743
761
  nodeRoutingId: this.routingId,
744
762
  lifecycleGeneration: this.lifecycleGeneration,
745
763
  descriptorRevision: 1n,
746
- advertisedEndpoint: this.bindEndpoint ?? 'inproc://not-started',
764
+ advertisedEndpoint: this.bindEndpoint ?? UNSTARTED_DIAGNOSTIC_ENDPOINT,
747
765
  channels,
748
766
  state: 'preparing',
749
767
  // Plaintext RouteMesh peers use the shared default admission identity.
@@ -767,29 +785,35 @@ class ZLinkNodeRawMeshBackend {
767
785
  return result;
768
786
  }
769
787
  scheduleMaintenance() {
770
- if (this.closed || this.maintenanceTimer !== undefined)
788
+ if (this.closed)
789
+ return;
790
+ this.maintenanceTimer ??= setTimeout(this.onMaintenance, MESH_BACKEND_MAINTENANCE_INTERVAL_MS);
791
+ const pending = (this.runtime?.pendingOperationCount ?? 0) + (this.stateful?.pendingOperationCount ?? 0) > 0;
792
+ if (pending === this.maintenanceTimer.hasRef())
771
793
  return;
772
- this.maintenanceTimer = setTimeout(this.onMaintenance, MESH_BACKEND_MAINTENANCE_INTERVAL_MS);
794
+ if (pending) {
795
+ this.maintenanceTimer.ref();
796
+ }
797
+ else {
798
+ this.maintenanceTimer.unref();
799
+ }
773
800
  }
774
801
  async pump() {
775
802
  if (this.isClosed() || this.pumping)
776
803
  return;
777
804
  this.pumping = true;
778
- if (this.maintenanceTimer !== undefined)
779
- clearTimeout(this.maintenanceTimer);
780
- this.maintenanceTimer = undefined;
781
805
  try {
782
806
  do {
783
- const receiveReady = this.readable;
784
- this.readable = false;
785
- const more = await this.requireRuntime().pumpBatch(receiveReady);
807
+ const ready = this.readable;
808
+ this.readable = 0;
809
+ const more = await this.requireRuntime().pumpBatch((ready & 1) !== 0, (ready & 2) !== 0);
786
810
  if (more) {
787
811
  // Yield only after actual progress, retaining readiness across the
788
812
  // existing batch limits until receive reports no data.
789
- this.readable = true;
813
+ this.readable |= 1;
790
814
  await (0, promises_1.setImmediate)();
791
815
  }
792
- } while (!this.closed && this.readable);
816
+ } while (!this.closed && this.readable !== 0);
793
817
  }
794
818
  finally {
795
819
  this.pumping = false;
@@ -817,7 +841,7 @@ class ZLinkNodeRawMeshBackend {
817
841
  return id;
818
842
  }
819
843
  observeStateful(operationKind, pending) {
820
- const id = { high: 2n, low: pending.id };
844
+ const id = { high: operation_identity_1.ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE, low: pending.id };
821
845
  void pending.promise.then((result) => this.enqueueCompletion(id, operationKind, result), (error) => this.enqueueCompletion(id, operationKind, requestFailureResult(error)));
822
846
  return id;
823
847
  }
@@ -858,7 +882,7 @@ class ZLinkNodeRawMeshBackend {
858
882
  if (this.completionCount === 0) {
859
883
  this.clearCompletions();
860
884
  }
861
- else if (this.completionHead >= 1024 && this.completionHead * 2 >= this.completions.length) {
885
+ else if ((0, admission_1.shouldCompactBackingArray)(this.completionHead, this.completions.length)) {
862
886
  this.completions.splice(0, this.completionHead);
863
887
  this.completionHead = 0;
864
888
  }
@@ -951,7 +975,7 @@ class RawServiceSpot {
951
975
  const routeFence = requireDirectSpotRouteFence(options?.routeFence, String(targetNodeRid), String(targetSpotId), targetSpotGeneration, options?.entrySpot === true
952
976
  ? this.backend.entrySpotRouteFence(String(targetNodeRid), String(targetSpotId))
953
977
  : undefined);
954
- return this.backend.requestFromSpot(this.state, routeFence, parts, options?.timeoutMs ?? 30_000);
978
+ return this.backend.requestFromSpot(this.state, routeFence, parts, options?.timeoutMs ?? Registration_1.DEFAULT_REQUEST_TIMEOUT_MS);
955
979
  }
956
980
  async publish(channelName, topic, parts, options) {
957
981
  this.requireOpen();
@@ -1009,7 +1033,7 @@ class RawStreamSessionService {
1009
1033
  stateful;
1010
1034
  stream;
1011
1035
  observe;
1012
- state = 1;
1036
+ state = service_runtime_contracts_1.StreamSessionRuntimeState.Created;
1013
1037
  closed = false;
1014
1038
  sessionTargets = new Map();
1015
1039
  constructor(stateful, stream, observe) {
@@ -1020,7 +1044,7 @@ class RawStreamSessionService {
1020
1044
  start() {
1021
1045
  if (this.closed)
1022
1046
  throw new Error('STREAM session service is closed.');
1023
- this.state = 2;
1047
+ this.state = service_runtime_contracts_1.StreamSessionRuntimeState.Started;
1024
1048
  }
1025
1049
  shutdown(_timeoutMs) {
1026
1050
  this.close();
@@ -1030,7 +1054,7 @@ class RawStreamSessionService {
1030
1054
  if (this.closed)
1031
1055
  return;
1032
1056
  this.closed = true;
1033
- this.state = 5;
1057
+ this.state = service_runtime_contracts_1.StreamSessionRuntimeState.Closed;
1034
1058
  this.sessionTargets.clear();
1035
1059
  }
1036
1060
  status() {
@@ -1045,17 +1069,17 @@ class RawStreamSessionService {
1045
1069
  lastError: 0
1046
1070
  };
1047
1071
  }
1048
- lookupActor(targetNodeRid, actorId, timeoutMs = 30_000) {
1072
+ lookupActor(targetNodeRid, actorId, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
1049
1073
  this.requireStarted();
1050
1074
  return this.observe(service_runtime_contracts_1.OperationKind.ActorLookup, this.stateful.lookupRemoteActor(String(targetNodeRid), actorId, timeoutMs));
1051
1075
  }
1052
- bindActor(sessionRid, actor, timeoutMs = 30_000, onBindingReplaced, actorAuthority) {
1076
+ bindActor(sessionRid, actor, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, onBindingReplaced, actorAuthority) {
1053
1077
  this.requireStarted();
1054
1078
  const sessionKey = String(sessionRid);
1055
1079
  this.sessionTargets.set(sessionKey, sessionRid);
1056
- return this.observe(service_runtime_contracts_1.OperationKind.StreamBind, this.stateful.bindSession(sessionKey, actor, timeoutMs, (targetSessionRid, payloadFrame) => this.deliver(targetSessionRid, actor.actorId, payloadFrame), onBindingReplaced, (0, service_session_binding_ingress_port_1.serviceSessionBindingIngressPortIfRegistered)(this), actorAuthority));
1080
+ return this.observe(service_runtime_contracts_1.OperationKind.StreamBind, this.stateful.bindSession(sessionKey, actor, timeoutMs, (targetSessionRid, payloadFrame) => this.deliver(targetSessionRid, actor.actorId, payloadFrame), onBindingReplaced, actorAuthority));
1057
1081
  }
1058
- unbindActor(sessionRid, actor, expectedBindingGeneration, timeoutMs = 30_000) {
1082
+ unbindActor(sessionRid, actor, expectedBindingGeneration, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
1059
1083
  this.requireStarted();
1060
1084
  return this.observe(service_runtime_contracts_1.OperationKind.StreamUnbind, this.stateful.unbindSession(String(sessionRid), actor, expectedBindingGeneration, timeoutMs));
1061
1085
  }
@@ -1110,7 +1134,7 @@ class RawStreamSessionService {
1110
1134
  }
1111
1135
  }
1112
1136
  requireStarted() {
1113
- if (this.state !== 2 || this.closed) {
1137
+ if (this.state !== service_runtime_contracts_1.StreamSessionRuntimeState.Started || this.closed) {
1114
1138
  throw new Error('STREAM session service is not started.');
1115
1139
  }
1116
1140
  }
@@ -1335,7 +1359,7 @@ function decodeMultipartRecord(runtime, record) {
1335
1359
  };
1336
1360
  }
1337
1361
  const header = record.parts[0];
1338
- const command = header[3];
1362
+ const command = header[service_wire_binary_primitives_1.SERVICE_WIRE_COMMAND_OFFSET];
1339
1363
  const payloadFrame = record.parts[1];
1340
1364
  const application = decodeApplicationEnvelope(payloadFrame);
1341
1365
  const channelName = record.owner.startsWith('channel:')
@@ -1344,11 +1368,11 @@ function decodeMultipartRecord(runtime, record) {
1344
1368
  const operationId = record.correlation === undefined
1345
1369
  ? { high: 0n, low: 0n }
1346
1370
  : { high: 1n, low: record.correlation };
1347
- const kind = command === 16
1371
+ const kind = command === service_wire_constants_generated_1.ServiceWireCommand.nodeSend
1348
1372
  ? service_runtime_contracts_1.ReceiveKind.NodeSend
1349
- : command === 17
1373
+ : command === service_wire_constants_generated_1.ServiceWireCommand.nodeRequest
1350
1374
  ? service_runtime_contracts_1.ReceiveKind.NodeRequest
1351
- : command === 18
1375
+ : command === service_wire_constants_generated_1.ServiceWireCommand.channelSend
1352
1376
  ? service_runtime_contracts_1.ReceiveKind.ChannelSend
1353
1377
  : service_runtime_contracts_1.ReceiveKind.ChannelRequest;
1354
1378
  const operationKind = kind === service_runtime_contracts_1.ReceiveKind.NodeRequest
@@ -1398,7 +1422,7 @@ function decodeStatefulRecord(record, stateful) {
1398
1422
  : decodeApplicationEnvelope(payloadFrame);
1399
1423
  const operationId = record.correlation === undefined
1400
1424
  ? { high: 0n, low: 0n }
1401
- : { high: 2n, low: record.correlation };
1425
+ : { high: operation_identity_1.ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE, low: record.correlation };
1402
1426
  const ingressLifecycle = receiveIngressLifecycle(record);
1403
1427
  return {
1404
1428
  kind: stateful.receiveKind,
@@ -1429,12 +1453,18 @@ function decodeStatefulRecord(record, stateful) {
1429
1453
  : decodeMultipart(application.payload),
1430
1454
  ...(stateful.isPending === undefined ? {} : { isPending: stateful.isPending }),
1431
1455
  ...(stateful.deadlineUnixMs === undefined ? {} : { deadlineUnixMs: stateful.deadlineUnixMs }),
1456
+ ...(stateful.activationRecord === undefined
1457
+ ? {}
1458
+ : { activationRecord: stateful.activationRecord }),
1432
1459
  ...(stateful.messageFollowOrigin === undefined
1433
1460
  ? {}
1434
1461
  : { messageFollowOrigin: stateful.messageFollowOrigin }),
1435
1462
  ...(stateful.onTerminalCompletion === undefined
1436
1463
  ? {}
1437
1464
  : { onTerminalCompletion: stateful.onTerminalCompletion }),
1465
+ ...(stateful.onHandlerTurnStarted === undefined
1466
+ ? {}
1467
+ : { onHandlerTurnStarted: stateful.onHandlerTurnStarted }),
1438
1468
  reply(parts) {
1439
1469
  if (stateful.reply === undefined)
1440
1470
  return zlink_1.SubmitResult.InvalidState;
@@ -1530,7 +1560,7 @@ function readyDomain(domain) {
1530
1560
  /**
1531
1561
  * The one classification of a failed node/channel/stateful request into its
1532
1562
  * completion terminal. A binding REQUEST result is Core's decision and is kept
1533
- * as is; a submit failure retains its Core meaning at the request boundary.
1563
+ * as is; a submit failure is classified from its submission or completion phase.
1534
1564
  * A reply that could not be decoded is a protocol
1535
1565
  * failure (spec 32-framework-error-model:91-92). The failure code is a wire
1536
1566
  * code, so a Core result carries 0.
@@ -1539,14 +1569,19 @@ function requestFailureResult(error) {
1539
1569
  const failure = (0, node_backend_adapter_support_1.translateBindingResultError)(error);
1540
1570
  if ((0, runtime_values_1.isZLinkBackendResultError)(failure)) {
1541
1571
  return {
1542
- terminalResult: failure.operation === 'request' ? failure.result : submitFailureTerminal(failure.result),
1572
+ terminalResult: failure.operation === 'request'
1573
+ ? failure.result
1574
+ : (0, submission_result_1.submitToRequestResult)(failure.result, failure.phase),
1543
1575
  failureCode: 0
1544
1576
  };
1545
1577
  }
1546
1578
  // requestProtocolError(16): the schema terminal-failure-integrity rule
1547
1579
  // forbids a typed terminal (104) with failure none.
1548
1580
  if (failure instanceof service_wire_m6a_codec_1.ServiceWireProtocolError) {
1549
- return { terminalResult: zlink_1.RequestResult.ProtocolError, failureCode: 16 };
1581
+ return {
1582
+ terminalResult: zlink_1.RequestResult.ProtocolError,
1583
+ failureCode: service_wire_constants_generated_1.ServiceWireFrameworkErrorCode.requestProtocolError
1584
+ };
1550
1585
  }
1551
1586
  if (failure instanceof contracts_1.ZLinkFrameworkException) {
1552
1587
  return (0, framework_errors_internal_1.internalFrameworkWireReply)(failure);
@@ -1557,31 +1592,10 @@ function requestFailureResult(error) {
1557
1592
  if (failure instanceof operation_registry_1.OperationCancelledError) {
1558
1593
  return { terminalResult: zlink_1.RequestResult.NotConnected, failureCode: 0 };
1559
1594
  }
1560
- return { terminalResult: zlink_1.RequestResult.InternalError, failureCode: 17 };
1561
- }
1562
- function submitFailureTerminal(result) {
1563
- switch (result) {
1564
- case zlink_1.SubmitResult.Backpressured:
1565
- return zlink_1.RequestResult.Backpressured;
1566
- case zlink_1.SubmitResult.NotConnected:
1567
- return zlink_1.RequestResult.NotConnected;
1568
- case zlink_1.SubmitResult.NotFound:
1569
- return zlink_1.RequestResult.NotFound;
1570
- case zlink_1.SubmitResult.NotAdmitted:
1571
- return zlink_1.RequestResult.Rejected;
1572
- case zlink_1.SubmitResult.InvalidHandle:
1573
- case zlink_1.SubmitResult.InvalidArgument:
1574
- case zlink_1.SubmitResult.ThreadViolation:
1575
- return zlink_1.RequestResult.InvalidArgument;
1576
- case zlink_1.SubmitResult.InvalidState:
1577
- return zlink_1.RequestResult.InvalidState;
1578
- case zlink_1.SubmitResult.NotSupported:
1579
- return zlink_1.RequestResult.NotSupported;
1580
- case zlink_1.SubmitResult.Terminated:
1581
- return zlink_1.RequestResult.Terminated;
1582
- default:
1583
- return zlink_1.RequestResult.InternalError;
1584
- }
1595
+ return {
1596
+ terminalResult: zlink_1.RequestResult.InternalError,
1597
+ failureCode: service_wire_constants_generated_1.ServiceWireFrameworkErrorCode.requestFailed
1598
+ };
1585
1599
  }
1586
1600
  function encodeMultipart(parts) {
1587
1601
  const values = Array.isArray(parts) ? parts : [parts];
@@ -1616,7 +1630,8 @@ function encodeMultipartApplicationFrame(parts) {
1616
1630
  }
1617
1631
  function decodeApplicationEnvelope(frame) {
1618
1632
  const bytes = Buffer.from(frame.buffer, frame.byteOffset, frame.byteLength);
1619
- if (bytes.length < 11 || bytes[0] !== 1) {
1633
+ if (bytes.length < service_wire_m6a_codec_1.APPLICATION_PAYLOAD_MINIMUM_FIELD_BYTES ||
1634
+ bytes[0] !== service_wire_m6a_codec_1.APPLICATION_PAYLOAD_VERSION) {
1620
1635
  throw new service_wire_m6a_codec_1.ServiceWireProtocolError('Invalid application envelope.');
1621
1636
  }
1622
1637
  const bodyLength = bytes.readUInt32BE(1);
@@ -1714,20 +1729,33 @@ function requireRawReadyBatch(batch) {
1714
1729
  return batch;
1715
1730
  }
1716
1731
  function stateCode(state) {
1717
- return ['preparing', 'serving', 'retiring', 'draining', 'stopped', 'error'].indexOf(state) + 1;
1732
+ switch (state) {
1733
+ case 'preparing':
1734
+ return service_runtime_contracts_1.MeshNodeRuntimeState.Preparing;
1735
+ case 'serving':
1736
+ return service_runtime_contracts_1.MeshNodeRuntimeState.Serving;
1737
+ case 'retiring':
1738
+ return service_runtime_contracts_1.MeshNodeRuntimeState.Retiring;
1739
+ case 'draining':
1740
+ return service_runtime_contracts_1.MeshNodeRuntimeState.Draining;
1741
+ case 'stopped':
1742
+ return service_runtime_contracts_1.MeshNodeRuntimeState.Stopped;
1743
+ case 'error':
1744
+ return service_runtime_contracts_1.MeshNodeRuntimeState.Error;
1745
+ }
1718
1746
  }
1719
1747
  function peerStateCode(state) {
1720
1748
  switch (state) {
1721
1749
  case 'preparing':
1722
- return 2;
1750
+ return service_runtime_contracts_1.MeshPeerRuntimeState.Preparing;
1723
1751
  case 'serving':
1724
1752
  case 'retiring':
1725
- return 3;
1753
+ return service_runtime_contracts_1.MeshPeerRuntimeState.Serving;
1726
1754
  case 'draining':
1727
- return 4;
1755
+ return service_runtime_contracts_1.MeshPeerRuntimeState.Draining;
1728
1756
  case 'stopped':
1729
1757
  case 'error':
1730
- return 5;
1758
+ return service_runtime_contracts_1.MeshPeerRuntimeState.Closed;
1731
1759
  }
1732
1760
  }
1733
1761
  function createLifecycleGeneration() {
@@ -1738,14 +1766,14 @@ function createLifecycleGeneration() {
1738
1766
  return generation === 0n ? 1n : generation;
1739
1767
  }
1740
1768
  function requirePositivePlacementValue(value, name) {
1741
- if (!Number.isSafeInteger(value) || value <= 0 || value > 0x7fff_ffff) {
1742
- throw new RangeError(`${name} must be an integer in 1..2147483647.`);
1769
+ if (!(0, RegistrationBuilderPolicy_1.isValidPositiveCapacity)(value)) {
1770
+ throw new RangeError(`${name} must be an integer in 1..${RegistrationBuilderPolicy_1.ZLINK_MAX_CAPACITY}.`);
1743
1771
  }
1744
1772
  return value;
1745
1773
  }
1746
1774
  function requirePublicWeight(value, name) {
1747
- if (!Number.isInteger(value) || value < 0 || value > 10_000) {
1748
- throw new RangeError(`${name} must be an integer in 0..10000.`);
1775
+ if (!(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(value)) {
1776
+ throw new RangeError(`${name} must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_PUBLIC_WEIGHT}.`);
1749
1777
  }
1750
1778
  return value;
1751
1779
  }
@@ -4,6 +4,7 @@ exports.wrapSocket = wrapSocket;
4
4
  exports.nodeEventLoopPollerOf = nodeEventLoopPollerOf;
5
5
  exports.disconnectStreamPeer = disconnectStreamPeer;
6
6
  exports.isEndpointCloseIgnorableError = isEndpointCloseIgnorableError;
7
+ const RegistrationBuilderPolicy_1 = require("../../../contracts/Configuration/RegistrationBuilderPolicy");
7
8
  const node_backend_adapter_support_1 = require("./node-backend-adapter-support");
8
9
  const node_event_loop_poller_1 = require("./node-event-loop-poller");
9
10
  const eventLoopPollers = new WeakMap();
@@ -68,7 +69,7 @@ function wrapSocket(nativeInstance, pollCompletion) {
68
69
  nativeInstance.setRoutingId((0, node_backend_adapter_support_1.toNativeRoutingId)(routingId));
69
70
  },
70
71
  get peerWeight() {
71
- return socket.options?.peerWeight ?? 100;
72
+ return socket.options?.peerWeight ?? RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT;
72
73
  },
73
74
  set peerWeight(value) {
74
75
  requireSocketOptions(socket).peerWeight = value;
@@ -243,6 +244,6 @@ function isEndpointCloseIgnorableError(error) {
243
244
  return ((0, node_backend_adapter_support_1.isContextTerminatedError)(error) ||
244
245
  (error instanceof Error &&
245
246
  'code' in error &&
246
- (error.code === 604 ||
247
+ (error.code === node_backend_adapter_support_1.zlink.ConnectResult.InternalError ||
247
248
  error.code === node_backend_adapter_support_1.zlink.ConnectResult.NotFound)));
248
249
  }
@@ -24,7 +24,7 @@ export interface ZLinkRawMonitorRecord {
24
24
  readonly flags?: number;
25
25
  }
26
26
  export interface ZLinkRawSocketPort {
27
- setReadableHandler(handler: () => void): void;
27
+ setReadableHandler(handler: (receiveReady: boolean, routeReady: boolean) => void): void;
28
28
  bind(endpoint: string): void;
29
29
  unbind(endpoint: string): void;
30
30
  connect(endpoint: string): void;