@zlink-systems/framework 0.25.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
  3. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  4. package/dist/contracts/Common/CoreTypes.js +7 -0
  5. package/dist/contracts/Common/index.d.ts +1 -1
  6. package/dist/contracts/Common/index.js +0 -1
  7. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  8. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  9. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  10. package/dist/contracts/Configuration/Registration.js +58 -36
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  12. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  13. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  14. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  15. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  16. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  17. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  18. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  19. package/dist/contracts/Handlers/JsonContract.js +10 -4
  20. package/dist/contracts/Locations/Authority.d.ts +1 -1
  21. package/dist/contracts/Locations/Authority.js +3 -2
  22. package/dist/contracts/Locations/Options.js +1 -1
  23. package/dist/contracts/Locations/Stores.d.ts +12 -0
  24. package/dist/contracts/Locations/Stores.js +9 -0
  25. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
  26. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  27. package/dist/internal.d.ts +5 -0
  28. package/dist/internal.js +16 -1
  29. package/dist/nest-integration.d.ts +4 -2
  30. package/dist/nest-integration.js +14 -4
  31. package/dist/runtime/abort.d.ts +1 -0
  32. package/dist/runtime/abort.js +8 -5
  33. package/dist/runtime/activation-admission.d.ts +28 -0
  34. package/dist/runtime/activation-admission.js +57 -0
  35. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  36. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  37. package/dist/runtime/actors/actor-client.d.ts +2 -2
  38. package/dist/runtime/actors/actor-client.js +42 -143
  39. package/dist/runtime/actors/actor-context.d.ts +3 -5
  40. package/dist/runtime/actors/actor-context.js +19 -17
  41. package/dist/runtime/actors/actor-handoff.d.ts +13 -7
  42. package/dist/runtime/actors/actor-handoff.js +36 -25
  43. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  44. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  45. package/dist/runtime/actors/actor-local-native-join.js +85 -123
  46. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  47. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  48. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  49. package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
  50. package/dist/runtime/actors/actor-remote-joiner.js +11 -17
  51. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  52. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  53. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  54. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  55. package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
  56. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  57. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  58. package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
  59. package/dist/runtime/actors/bound-session-wire.js +2 -7
  60. package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
  61. package/dist/runtime/actors/deferred-join-completion.js +21 -0
  62. package/dist/runtime/actors/index.d.ts +10 -8
  63. package/dist/runtime/actors/index.js +101 -73
  64. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  65. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  66. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  67. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  68. package/dist/runtime/admission.d.ts +7 -1
  69. package/dist/runtime/admission.js +11 -1
  70. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  71. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  72. package/dist/runtime/backend/contracts/index.d.ts +8 -33
  73. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
  74. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  75. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  76. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
  77. package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
  78. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
  79. package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
  80. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  81. package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
  82. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  83. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
  84. package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
  85. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
  86. package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
  87. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  88. package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
  89. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  90. package/dist/runtime/backend/runtime-values.js +2 -0
  91. package/dist/runtime/channels/channel-clients.d.ts +20 -9
  92. package/dist/runtime/channels/channel-clients.js +68 -60
  93. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  94. package/dist/runtime/channels/channel-envelope.js +47 -29
  95. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  96. package/dist/runtime/channels/channel-outbound-operations.js +9 -18
  97. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  98. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  99. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  100. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  101. package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
  102. package/dist/runtime/channels/channel-runtime-manager.js +4 -12
  103. package/dist/runtime/channels/channel-socket-options.js +3 -2
  104. package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
  105. package/dist/runtime/channels/channel-socket-registry.js +296 -235
  106. package/dist/runtime/channels/channel-transports.d.ts +11 -20
  107. package/dist/runtime/channels/channel-transports.js +68 -47
  108. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  109. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  110. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  111. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  112. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  113. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  114. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  115. package/dist/runtime/channels/fanout-location-runtime.js +133 -81
  116. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  117. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  118. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  119. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  120. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  121. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  122. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  123. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  124. package/dist/runtime/diagnostics/flow-context.js +16 -2
  125. package/dist/runtime/diagnostics/index.d.ts +4 -2
  126. package/dist/runtime/diagnostics/index.js +14 -4
  127. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  128. package/dist/runtime/diagnostics/message-flow.js +10 -19
  129. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  130. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  131. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  132. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  133. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  134. package/dist/runtime/disposal.d.ts +5 -0
  135. package/dist/runtime/disposal.js +22 -0
  136. package/dist/runtime/execution/index.d.ts +22 -9
  137. package/dist/runtime/execution/index.js +107 -37
  138. package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
  139. package/dist/runtime/execution/serial-execution-queue.js +99 -26
  140. package/dist/runtime/execution/state-lane.d.ts +8 -1
  141. package/dist/runtime/execution/state-lane.js +118 -3
  142. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  143. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  144. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  145. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  146. package/dist/runtime/foundation/listener-records.d.ts +11 -0
  147. package/dist/runtime/foundation/listener-records.js +20 -0
  148. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  149. package/dist/runtime/foundation/operation-identity.js +9 -5
  150. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  151. package/dist/runtime/foundation/operation-registry.js +34 -44
  152. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
  153. package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
  154. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  155. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  156. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
  157. package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
  158. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  159. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  160. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  161. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  162. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  163. package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
  164. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  165. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  166. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  167. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
  168. package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
  169. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
  170. package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
  171. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  172. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  173. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  174. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
  175. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  176. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  177. package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
  178. package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
  179. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
  180. package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
  181. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
  182. package/dist/runtime/foundation/service-topology-registry.js +22 -61
  183. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  184. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  185. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  186. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  187. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  188. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  189. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  190. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  191. package/dist/runtime/framework-errors-internal.js +343 -122
  192. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  193. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  194. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  195. package/dist/runtime/host/actor-packet-relay.js +48 -91
  196. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  197. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  198. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  199. package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
  200. package/dist/runtime/host/actor-transfer-runtime.js +210 -256
  201. package/dist/runtime/host/application-job-queue.js +16 -33
  202. package/dist/runtime/host/bound-session-relay.js +1 -1
  203. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  204. package/dist/runtime/host/index.d.ts +19 -14
  205. package/dist/runtime/host/index.js +234 -175
  206. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  207. package/dist/runtime/host/instance-activation-authority.js +17 -45
  208. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  209. package/dist/runtime/host/location-runtime-owner.js +2 -2
  210. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  211. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  212. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  213. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  214. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  215. package/dist/runtime/host/remote-bound-session-relay.js +11 -23
  216. package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
  217. package/dist/runtime/host/route-mesh-runtime.js +178 -257
  218. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  219. package/dist/runtime/host/runtime-shutdown.js +18 -21
  220. package/dist/runtime/host/service-relocation-control.js +6 -1
  221. package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
  222. package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
  223. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  224. package/dist/runtime/host/spot-address-transport.js +34 -136
  225. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  226. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  227. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
  228. package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
  229. package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
  230. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
  231. package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
  232. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  233. package/dist/runtime/locations/authority-key-codec.js +4 -3
  234. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  235. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  236. package/dist/runtime/locations/creation-operation-id.js +6 -4
  237. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  238. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  239. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  240. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  241. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  242. package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
  243. package/dist/runtime/locations/key-codec.js +3 -2
  244. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  245. package/dist/runtime/locations/lease-tracker.js +7 -11
  246. package/dist/runtime/locations/lifecycle.d.ts +5 -10
  247. package/dist/runtime/locations/lifecycle.js +4 -33
  248. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  249. package/dist/runtime/locations/location-store-failure.js +7 -0
  250. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  251. package/dist/runtime/locations/location-store-pages.js +13 -0
  252. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  253. package/dist/runtime/locations/location-store-repository.js +303 -332
  254. package/dist/runtime/locations/relocation-blob.js +18 -5
  255. package/dist/runtime/locations/resolvers.d.ts +5 -5
  256. package/dist/runtime/locations/resolvers.js +44 -30
  257. package/dist/runtime/locations/runtime.d.ts +5 -4
  258. package/dist/runtime/locations/runtime.js +123 -92
  259. package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
  260. package/dist/runtime/locations/spot-location-claims.js +40 -23
  261. package/dist/runtime/messaging/payload-codec.js +26 -20
  262. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  263. package/dist/runtime/messaging/submission-result.js +48 -0
  264. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
  265. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
  266. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
  267. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
  268. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
  269. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
  270. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
  271. package/dist/runtime/spots/index.d.ts +29 -29
  272. package/dist/runtime/spots/index.js +441 -313
  273. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
  274. package/dist/runtime/spots/spot-activation-registry.js +27 -60
  275. package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
  276. package/dist/runtime/spots/spot-activation-state.js +4 -17
  277. package/dist/runtime/spots/spot-activation.d.ts +10 -9
  278. package/dist/runtime/spots/spot-activation.js +103 -81
  279. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  280. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  281. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  282. package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
  283. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
  284. package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
  285. package/dist/runtime/spots/spot-actor-membership.js +44 -53
  286. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  287. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  288. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  289. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  290. package/dist/runtime/spots/spot-context.d.ts +2 -2
  291. package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
  292. package/dist/runtime/spots/spot-entry-activation.js +9 -21
  293. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  294. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  295. package/dist/runtime/spots/spot-manager-public.js +6 -5
  296. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  297. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
  298. package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
  299. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  300. package/dist/runtime/spots/spot-outbound.js +10 -37
  301. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  302. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  303. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  304. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  305. package/dist/runtime/spots/spot-route-replies.js +3 -1
  306. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
  307. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
  308. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
  309. package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
  310. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  311. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  312. package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
  313. package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
  314. package/dist/runtime/spots/spot-serial-executor.js +9 -2
  315. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
  316. package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
  317. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  318. package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
  319. package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
  320. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
  321. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  322. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  323. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  324. package/dist/runtime/streams/bound-session-service.js +12 -19
  325. package/dist/runtime/streams/index.d.ts +15 -14
  326. package/dist/runtime/streams/index.js +38 -39
  327. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  328. package/dist/runtime/streams/managed-stream.js +17 -8
  329. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  330. package/dist/runtime/streams/protocol.d.ts +6 -33
  331. package/dist/runtime/streams/protocol.js +38 -110
  332. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  333. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  334. package/dist/runtime/streams/session-calls.d.ts +1 -1
  335. package/dist/runtime/streams/session-calls.js +5 -4
  336. package/dist/runtime/streams/session-context.d.ts +6 -6
  337. package/dist/runtime/streams/session-context.js +22 -4
  338. package/dist/runtime/streams/session-requests.js +2 -1
  339. package/dist/runtime/streams/session-serial-executor.js +2 -2
  340. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  341. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  342. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  343. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  344. package/dist/runtime/workers/index.d.ts +2 -2
  345. package/dist/runtime/workers/index.js +5 -4
  346. package/package.json +3 -3
  347. package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
  348. package/src/contracts/Common/CoreTypes.ts +7 -0
  349. package/src/contracts/Common/index.ts +1 -1
  350. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  351. package/src/contracts/Configuration/Registration.ts +92 -48
  352. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  353. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  354. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  355. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  356. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  357. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  358. package/src/contracts/Handlers/JsonContract.ts +14 -4
  359. package/src/contracts/Locations/Authority.ts +7 -3
  360. package/src/contracts/Locations/Options.ts +1 -1
  361. package/src/contracts/Locations/Stores.ts +14 -0
  362. package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
  363. package/src/contracts/Spots/Contracts.ts +1 -1
  364. package/src/internal.ts +15 -0
  365. package/src/nest-integration.ts +28 -10
  366. package/src/runtime/abort.ts +6 -5
  367. package/src/runtime/activation-admission.ts +72 -0
  368. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  369. package/src/runtime/actors/actor-client.ts +77 -204
  370. package/src/runtime/actors/actor-context.ts +45 -39
  371. package/src/runtime/actors/actor-handoff.ts +55 -45
  372. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  373. package/src/runtime/actors/actor-local-native-join.ts +174 -215
  374. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  375. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  376. package/src/runtime/actors/actor-remote-joiner.ts +15 -36
  377. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  378. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  379. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  380. package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
  381. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  382. package/src/runtime/actors/actor-source-transfer.ts +5 -18
  383. package/src/runtime/actors/bound-session-wire.ts +2 -8
  384. package/src/runtime/actors/deferred-join-completion.ts +44 -0
  385. package/src/runtime/actors/index.ts +122 -88
  386. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  387. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  388. package/src/runtime/admission.ts +13 -2
  389. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  390. package/src/runtime/backend/contracts/index.ts +15 -42
  391. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
  392. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  393. package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
  394. package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
  395. package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
  396. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  397. package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
  398. package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
  399. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
  400. package/src/runtime/backend/raw-binding-port.ts +14 -1
  401. package/src/runtime/backend/runtime-values.ts +4 -1
  402. package/src/runtime/channels/channel-clients.ts +132 -96
  403. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  404. package/src/runtime/channels/channel-envelope.ts +58 -29
  405. package/src/runtime/channels/channel-outbound-operations.ts +10 -31
  406. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  407. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  408. package/src/runtime/channels/channel-runtime-manager.ts +8 -15
  409. package/src/runtime/channels/channel-socket-options.ts +8 -2
  410. package/src/runtime/channels/channel-socket-registry.ts +369 -262
  411. package/src/runtime/channels/channel-transports.ts +161 -115
  412. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  413. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  414. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  415. package/src/runtime/channels/fanout-location-runtime.ts +175 -106
  416. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  417. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  418. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  419. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  420. package/src/runtime/diagnostics/flow-context.ts +16 -2
  421. package/src/runtime/diagnostics/index.ts +27 -17
  422. package/src/runtime/diagnostics/message-flow.ts +15 -25
  423. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  424. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  425. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  426. package/src/runtime/disposal.ts +19 -0
  427. package/src/runtime/execution/index.ts +116 -38
  428. package/src/runtime/execution/serial-execution-queue.ts +179 -34
  429. package/src/runtime/execution/state-lane.ts +142 -4
  430. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  431. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  432. package/src/runtime/foundation/listener-records.ts +21 -0
  433. package/src/runtime/foundation/operation-identity.ts +11 -5
  434. package/src/runtime/foundation/operation-registry.ts +33 -50
  435. package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
  436. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  437. package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
  438. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  439. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  440. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  441. package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
  442. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  443. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  444. package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
  445. package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
  446. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  447. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  448. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
  449. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  450. package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
  451. package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
  452. package/src/runtime/foundation/service-topology-registry.ts +30 -79
  453. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  454. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  455. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  456. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  457. package/src/runtime/framework-errors-internal.ts +380 -134
  458. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  459. package/src/runtime/host/actor-packet-relay.ts +57 -147
  460. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  461. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  462. package/src/runtime/host/actor-transfer-runtime.ts +266 -418
  463. package/src/runtime/host/application-job-queue.ts +28 -34
  464. package/src/runtime/host/bound-session-relay.ts +1 -2
  465. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  466. package/src/runtime/host/index.ts +408 -312
  467. package/src/runtime/host/instance-activation-authority.ts +89 -109
  468. package/src/runtime/host/location-runtime-owner.ts +4 -2
  469. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  470. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  471. package/src/runtime/host/remote-bound-session-relay.ts +12 -44
  472. package/src/runtime/host/route-mesh-runtime.ts +236 -275
  473. package/src/runtime/host/runtime-shutdown.ts +17 -21
  474. package/src/runtime/host/service-relocation-control.ts +14 -1
  475. package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
  476. package/src/runtime/host/spot-address-transport.ts +73 -195
  477. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  478. package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
  479. package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
  480. package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
  481. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  482. package/src/runtime/locations/authority-key-codec.ts +7 -3
  483. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  484. package/src/runtime/locations/creation-operation-id.ts +6 -3
  485. package/src/runtime/locations/domain-store-contract.ts +12 -3
  486. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  487. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  488. package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
  489. package/src/runtime/locations/key-codec.ts +3 -2
  490. package/src/runtime/locations/lease-tracker.ts +8 -14
  491. package/src/runtime/locations/lifecycle.ts +16 -45
  492. package/src/runtime/locations/location-store-failure.ts +4 -0
  493. package/src/runtime/locations/location-store-pages.ts +18 -0
  494. package/src/runtime/locations/location-store-repository.ts +450 -478
  495. package/src/runtime/locations/relocation-blob.ts +17 -6
  496. package/src/runtime/locations/resolvers.ts +90 -58
  497. package/src/runtime/locations/runtime.ts +220 -110
  498. package/src/runtime/locations/spot-location-claims.ts +54 -26
  499. package/src/runtime/messaging/payload-codec.ts +35 -24
  500. package/src/runtime/messaging/submission-result.ts +57 -1
  501. package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
  502. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
  503. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
  504. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
  505. package/src/runtime/spots/index.ts +687 -437
  506. package/src/runtime/spots/spot-activation-registry.ts +42 -71
  507. package/src/runtime/spots/spot-activation-state.ts +4 -16
  508. package/src/runtime/spots/spot-activation.ts +167 -115
  509. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  510. package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
  511. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
  512. package/src/runtime/spots/spot-actor-membership.ts +107 -75
  513. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  514. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  515. package/src/runtime/spots/spot-context.ts +3 -3
  516. package/src/runtime/spots/spot-entry-activation.ts +13 -33
  517. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  518. package/src/runtime/spots/spot-manager-public.ts +29 -21
  519. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  520. package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
  521. package/src/runtime/spots/spot-outbound.ts +47 -68
  522. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  523. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  524. package/src/runtime/spots/spot-route-replies.ts +6 -4
  525. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
  526. package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
  527. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  528. package/src/runtime/spots/spot-runtime-ports.ts +10 -43
  529. package/src/runtime/spots/spot-serial-executor.ts +10 -2
  530. package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
  531. package/src/runtime/spots/spot-timer.ts +3 -2
  532. package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
  533. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
  534. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  535. package/src/runtime/streams/bound-session-service.ts +23 -37
  536. package/src/runtime/streams/index.ts +102 -88
  537. package/src/runtime/streams/managed-stream.ts +29 -10
  538. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  539. package/src/runtime/streams/protocol.ts +34 -88
  540. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  541. package/src/runtime/streams/session-calls.ts +6 -5
  542. package/src/runtime/streams/session-context.ts +54 -10
  543. package/src/runtime/streams/session-requests.ts +2 -1
  544. package/src/runtime/streams/session-serial-executor.ts +2 -2
  545. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  546. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  547. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  548. package/src/runtime/workers/index.ts +13 -12
  549. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
  550. package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
  551. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  552. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  553. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  554. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  555. package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
  556. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  557. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,33 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkNodeRawMeshBackend = void 0;
4
- exports.genericOperationFailure = genericOperationFailure;
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
9
  const contracts_1 = require("../../../contracts");
10
- const framework_errors_internal_1 = require("../../framework-errors-internal");
11
- const zlink_1 = require("@zlink-systems/zlink");
12
- const runtime_values_1 = require("../runtime-values");
13
- const runtime_message_1 = require("../runtime-message");
14
- 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");
15
17
  const operation_registry_1 = require("../../foundation/operation-registry");
16
18
  const raw_service_mesh_runtime_1 = require("../../foundation/raw-service-mesh-runtime");
17
- const service_wire_m6a_codec_1 = require("../../foundation/service-wire-m6a-codec");
18
- const service_wire_constants_generated_1 = require("../../foundation/service-wire-constants.generated");
19
- const service_stateful_runtime_1 = require("../../foundation/service-stateful-runtime");
20
- const service_session_binding_ingress_port_1 = require("../../foundation/service-session-binding-ingress-port");
21
19
  const service_metadata_codec_1 = require("../../foundation/service-metadata-codec");
22
- const EndpointNotation_1 = require("../../../contracts/Configuration/EndpointNotation");
23
- 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';
24
34
  const MULTIPART_PACKET_NAME = service_wire_constants_generated_1.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME;
25
35
  const MULTIPART_CONTENT_TYPE = service_wire_constants_generated_1.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE;
26
36
  const FATAL_UTF8 = new TextDecoder('utf-8', { fatal: true });
27
37
  const MAX_DRAIN_RECORDS = 64;
28
- // Preserve the existing monitor/admission/liveness cadence. Only the binding
38
+ // Preserve the existing route observation/admission/liveness cadence. Only the binding
29
39
  // readable handler admits receive work; this timer never probes the socket.
30
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;
31
44
  /**
32
45
  * Conservative Actor Join admission cap for relocation state chunks (spec 15
33
46
  * §4.2): a stable lower bound safe on any deployment, never lowered on
@@ -60,22 +73,33 @@ class ZLinkNodeRawMeshBackend {
60
73
  readyHandler;
61
74
  maintenanceTimer;
62
75
  pumping = false;
63
- readable = false;
64
- onReadable = () => {
65
- this.readable = true;
76
+ readable = 0;
77
+ onReadable = (receiveReady, routeReady) => {
78
+ if (receiveReady)
79
+ this.readable |= 1;
80
+ if (routeReady)
81
+ this.readable |= 2;
66
82
  if (!this.closed && !this.pumping)
67
83
  void this.pump();
68
84
  };
69
85
  onMaintenance = () => {
70
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();
71
94
  void this.pump();
72
95
  };
96
+ onPendingOperationsChanged = () => this.scheduleMaintenance();
73
97
  nextPeerIntent = 1n;
74
98
  closed = false;
75
99
  objectRole = 'none';
76
- placementWeight = 100;
77
- activeCapacityLimit = 10_000;
78
- pendingCapacityLimit = 128;
100
+ placementWeight = RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT;
101
+ activeCapacityLimit = DEFAULT_NATIVE_ACTIVE_CAPACITY;
102
+ pendingCapacityLimit = InternalDefaults_1.DEFAULT_ACTIVATION_CONCURRENCY_LIMIT;
79
103
  objectCapabilities = [];
80
104
  maintenanceWave;
81
105
  mailboxRecordDropped;
@@ -176,6 +200,7 @@ class ZLinkNodeRawMeshBackend {
176
200
  throw new Error('MeshNode bind endpoint is not configured.');
177
201
  const descriptor = this.createDescriptor();
178
202
  const runtime = new raw_service_mesh_runtime_1.RawServiceMeshRuntime({
203
+ onPendingOperationsChanged: this.onPendingOperationsChanged,
179
204
  descriptor,
180
205
  resolveAdvertisedEndpoint: (boundEndpoint) => this.resolveAdvertisedEndpoint(boundEndpoint),
181
206
  bindingPort: this.bindingPort,
@@ -209,7 +234,7 @@ class ZLinkNodeRawMeshBackend {
209
234
  }
210
235
  });
211
236
  runtime.start();
212
- this.stateful = new service_stateful_runtime_1.ServiceStatefulRuntime(runtime, descriptor.nodeRoutingId, descriptor.lifecycleGeneration);
237
+ this.stateful = new service_stateful_runtime_1.ServiceStatefulRuntime(runtime, descriptor.nodeRoutingId, descriptor.lifecycleGeneration, this.onPendingOperationsChanged);
213
238
  if (this.dispatchErrors !== undefined) {
214
239
  this.stateful.setDispatchErrorReporter(this.dispatchErrors, this.meshName);
215
240
  }
@@ -245,7 +270,6 @@ class ZLinkNodeRawMeshBackend {
245
270
  close() {
246
271
  if (this.closed)
247
272
  return;
248
- this.closed = true;
249
273
  if (this.maintenanceTimer !== undefined)
250
274
  clearTimeout(this.maintenanceTimer);
251
275
  this.maintenanceTimer = undefined;
@@ -254,6 +278,7 @@ class ZLinkNodeRawMeshBackend {
254
278
  this.runtime?.close();
255
279
  this.runtime = undefined;
256
280
  this.clearCompletions();
281
+ this.closed = true;
257
282
  }
258
283
  addChannelName(name) {
259
284
  this.requireNotStarted();
@@ -303,8 +328,6 @@ class ZLinkNodeRawMeshBackend {
303
328
  lifecycleGeneration: options.expectedLifecycleGeneration
304
329
  })
305
330
  });
306
- if (nodeRoutingId !== undefined)
307
- await runtime.announcePeer(nodeRoutingId);
308
331
  return intent;
309
332
  }
310
333
  expectPeer(peer) {
@@ -377,17 +400,17 @@ class ZLinkNodeRawMeshBackend {
377
400
  : zlink_1.SubmitResult.NotConnected;
378
401
  }
379
402
  async requestInfrastructureControlFrames(targetRid, frames, options) {
380
- 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);
381
404
  }
382
405
  requestToNode(targetRid, parts, options) {
383
- 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);
384
407
  return this.observeCompletion(pending.id, service_runtime_contracts_1.OperationKind.NodeRequest, pending.promise);
385
408
  }
386
409
  async sendToChannel(channelName, parts) {
387
410
  return this.requireRuntime().sendToChannel(channelName, encodeMultipartApplicationFrame(parts));
388
411
  }
389
412
  requestToChannel(channelName, parts, options) {
390
- 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);
391
414
  return this.observeCompletion(pending.id, service_runtime_contracts_1.OperationKind.ChannelRequest, pending.promise);
392
415
  }
393
416
  status() {
@@ -423,7 +446,7 @@ class ZLinkNodeRawMeshBackend {
423
446
  connectionIntentId: findIntent(peer.descriptor.nodeRoutingId, peer.descriptor.advertisedEndpoint)?.id ?? 0n,
424
447
  source: 1,
425
448
  state: this.runtime?.isPeerRouteReady(peer.descriptor.nodeRoutingId) === false
426
- ? 1
449
+ ? service_runtime_contracts_1.MeshPeerRuntimeState.Connecting
427
450
  : peerStateCode(peer.descriptor.state),
428
451
  routingId: peer.descriptor.nodeRoutingId,
429
452
  lifecycleGeneration: peer.descriptor.lifecycleGeneration,
@@ -436,7 +459,7 @@ class ZLinkNodeRawMeshBackend {
436
459
  const notRequired = (this.runtime?.topology.notRequiredPeers() ?? []).map((descriptor) => ({
437
460
  connectionIntentId: findIntent(descriptor.nodeRoutingId, descriptor.advertisedEndpoint)?.id ?? 0n,
438
461
  source: 1,
439
- state: 6,
462
+ state: service_runtime_contracts_1.MeshPeerRuntimeState.NotRequired,
440
463
  routingId: descriptor.nodeRoutingId,
441
464
  lifecycleGeneration: descriptor.lifecycleGeneration,
442
465
  descriptorRevision: descriptor.descriptorRevision,
@@ -559,7 +582,9 @@ class ZLinkNodeRawMeshBackend {
559
582
  return this.requireStateful().createActor(actorId).ref;
560
583
  }
561
584
  restoreActorAuthority(actorId, stableType, generation, authorityOwnerGeneration, spotId, spotGeneration, membershipEpoch) {
562
- 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;
563
588
  }
564
589
  discardRelocatedActor(actor) {
565
590
  this.requireStateful().discardRelocatedActor({
@@ -637,17 +662,19 @@ class ZLinkNodeRawMeshBackend {
637
662
  forgetSpotRoute(spot, authorityOwnerGeneration, storeVersion) {
638
663
  this.requireStateful().forgetSpotRoute(spot, authorityOwnerGeneration, storeVersion);
639
664
  }
640
- async sendToInstanceSpot(route, parts, sourceSpotId, metadata) {
641
- 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);
642
667
  return result;
643
668
  }
644
- requestInstanceSpot(route, parts, timeoutMs = 30_000, sourceSpotId, metadata) {
645
- 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));
646
671
  }
647
672
  actorLookup(actorId) {
648
673
  const actor = this.requireStateful().actor(actorId);
649
674
  if (actor === undefined) {
650
- 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;
651
678
  }
652
679
  return {
653
680
  actor: actor.ref,
@@ -656,23 +683,23 @@ class ZLinkNodeRawMeshBackend {
656
683
  membershipEpoch: actor.membershipEpoch
657
684
  };
658
685
  }
659
- lookupRemoteActor(targetNodeRid, actorId, timeoutMs = 30_000) {
686
+ lookupRemoteActor(targetNodeRid, actorId, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
660
687
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorLookup, this.requireStateful().lookupRemoteActor(String(targetNodeRid), actorId, timeoutMs));
661
688
  }
662
- destroyActor(actor, timeoutMs = 30_000) {
689
+ destroyActor(actor, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
663
690
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorDestroy, this.requireStateful().destroyActor(actor, timeoutMs));
664
691
  }
665
- joinActorSpot(actor, targetNodeRid, targetSpotId, targetSpotGeneration, request, timeoutMs = 30_000) {
692
+ joinActorSpot(actor, targetNodeRid, targetSpotId, targetSpotGeneration, request, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
666
693
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorJoin, this.requireStateful().joinActor(actor, String(targetNodeRid), { spotId: String(targetSpotId), generation: targetSpotGeneration }, targetSpotGeneration, request, timeoutMs));
667
694
  }
668
- 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) {
669
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));
670
697
  }
671
- joinActorEntrySpot(actor, targetNodeRid, request, timeoutMs = 30_000) {
698
+ joinActorEntrySpot(actor, targetNodeRid, request, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
672
699
  const target = String(targetNodeRid);
673
700
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorJoin, this.requireStateful().joinActorEntrySpot(actor, target, request, timeoutMs));
674
701
  }
675
- joinActorEntrySpotCanonical(actor, targetNodeRid, request, actorFence, local, timeoutMs = 30_000) {
702
+ joinActorEntrySpotCanonical(actor, targetNodeRid, request, actorFence, local, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
676
703
  const target = String(targetNodeRid);
677
704
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorJoin, this.requireStateful().joinActorEntrySpotCanonical(actor, target, request, actorFence, local, timeoutMs));
678
705
  }
@@ -680,25 +707,25 @@ class ZLinkNodeRawMeshBackend {
680
707
  return this.requireStateful().sendToActor(actor, this.peerGeneration(String(actor.nodeRid)), actor.generation, encodeMultipart(parts));
681
708
  }
682
709
  requestToActor(actor, parts, options) {
683
- 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));
684
711
  }
685
712
  async actorSendToActor(source, target, parts) {
686
713
  return (await this.requireStateful().sendToActor(target, this.peerGeneration(String(target.nodeRid)), target.generation, encodeMultipart(parts), source));
687
714
  }
688
715
  actorRequestToActor(source, target, parts, options) {
689
- 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));
690
717
  }
691
- async sendActorBoundSession(actor, expectedBindingGeneration, parts, _flags, actorFence) {
692
- return (await this.requireStateful().sendBoundSession(actor, expectedBindingGeneration, encodeMultipart(parts), actorFence));
718
+ async sendActorBoundSession(actor, expectedBindingGeneration, parts, _flags) {
719
+ return (await this.requireStateful().sendBoundSession(actor, expectedBindingGeneration, encodeMultipart(parts)));
693
720
  }
694
- closeActorBoundSession(actor, expectedBindingGeneration, timeoutMs = 30_000) {
721
+ closeActorBoundSession(actor, expectedBindingGeneration, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
695
722
  const binding = this.requireStateful().registry.binding(actor);
696
723
  if (binding === undefined) {
697
724
  return this.enqueueImmediateFailure(service_runtime_contracts_1.OperationKind.StreamUnbind, zlink_1.RequestResult.NotFound);
698
725
  }
699
726
  return this.observeStateful(service_runtime_contracts_1.OperationKind.StreamUnbind, this.requireStateful().unbindSession(binding.sessionRid, actor, expectedBindingGeneration, timeoutMs));
700
727
  }
701
- leaveActor(actor, expectedMembershipEpoch, timeoutMs = 30_000) {
728
+ leaveActor(actor, expectedMembershipEpoch, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
702
729
  return this.observeStateful(service_runtime_contracts_1.OperationKind.ActorLeave, this.requireStateful().leaveActor(actor, expectedMembershipEpoch, timeoutMs));
703
730
  }
704
731
  createStreamSessionService(stream) {
@@ -734,7 +761,7 @@ class ZLinkNodeRawMeshBackend {
734
761
  nodeRoutingId: this.routingId,
735
762
  lifecycleGeneration: this.lifecycleGeneration,
736
763
  descriptorRevision: 1n,
737
- advertisedEndpoint: this.bindEndpoint ?? 'inproc://not-started',
764
+ advertisedEndpoint: this.bindEndpoint ?? UNSTARTED_DIAGNOSTIC_ENDPOINT,
738
765
  channels,
739
766
  state: 'preparing',
740
767
  // Plaintext RouteMesh peers use the shared default admission identity.
@@ -758,29 +785,35 @@ class ZLinkNodeRawMeshBackend {
758
785
  return result;
759
786
  }
760
787
  scheduleMaintenance() {
761
- if (this.closed || this.maintenanceTimer !== undefined)
788
+ if (this.closed)
762
789
  return;
763
- this.maintenanceTimer = setTimeout(this.onMaintenance, MESH_BACKEND_MAINTENANCE_INTERVAL_MS);
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())
793
+ return;
794
+ if (pending) {
795
+ this.maintenanceTimer.ref();
796
+ }
797
+ else {
798
+ this.maintenanceTimer.unref();
799
+ }
764
800
  }
765
801
  async pump() {
766
802
  if (this.isClosed() || this.pumping)
767
803
  return;
768
804
  this.pumping = true;
769
- if (this.maintenanceTimer !== undefined)
770
- clearTimeout(this.maintenanceTimer);
771
- this.maintenanceTimer = undefined;
772
805
  try {
773
806
  do {
774
- const receiveReady = this.readable;
775
- this.readable = false;
776
- 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);
777
810
  if (more) {
778
811
  // Yield only after actual progress, retaining readiness across the
779
812
  // existing batch limits until receive reports no data.
780
- this.readable = true;
813
+ this.readable |= 1;
781
814
  await (0, promises_1.setImmediate)();
782
815
  }
783
- } while (!this.closed && this.readable);
816
+ } while (!this.closed && this.readable !== 0);
784
817
  }
785
818
  finally {
786
819
  this.pumping = false;
@@ -804,12 +837,12 @@ class ZLinkNodeRawMeshBackend {
804
837
  }
805
838
  observeCompletion(low, operationKind, promise) {
806
839
  const id = { high: 1n, low };
807
- void promise.then((result) => this.enqueueCompletion(id, operationKind, result), (error) => this.enqueueCompletion(id, operationKind, genericOperationFailure(error)));
840
+ void promise.then((result) => this.enqueueCompletion(id, operationKind, result), (error) => this.enqueueCompletion(id, operationKind, requestFailureResult(error)));
808
841
  return id;
809
842
  }
810
843
  observeStateful(operationKind, pending) {
811
- const id = { high: 2n, low: pending.id };
812
- void pending.promise.then((result) => this.enqueueCompletion(id, operationKind, result), (error) => this.enqueueCompletion(id, operationKind, statefulOperationFailure(error)));
844
+ const id = { high: operation_identity_1.ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE, low: pending.id };
845
+ void pending.promise.then((result) => this.enqueueCompletion(id, operationKind, result), (error) => this.enqueueCompletion(id, operationKind, requestFailureResult(error)));
813
846
  return id;
814
847
  }
815
848
  enqueueImmediateFailure(operationKind, terminalResult) {
@@ -849,7 +882,7 @@ class ZLinkNodeRawMeshBackend {
849
882
  if (this.completionCount === 0) {
850
883
  this.clearCompletions();
851
884
  }
852
- else if (this.completionHead >= 1024 && this.completionHead * 2 >= this.completions.length) {
885
+ else if ((0, admission_1.shouldCompactBackingArray)(this.completionHead, this.completions.length)) {
853
886
  this.completions.splice(0, this.completionHead);
854
887
  this.completionHead = 0;
855
888
  }
@@ -942,7 +975,7 @@ class RawServiceSpot {
942
975
  const routeFence = requireDirectSpotRouteFence(options?.routeFence, String(targetNodeRid), String(targetSpotId), targetSpotGeneration, options?.entrySpot === true
943
976
  ? this.backend.entrySpotRouteFence(String(targetNodeRid), String(targetSpotId))
944
977
  : undefined);
945
- 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);
946
979
  }
947
980
  async publish(channelName, topic, parts, options) {
948
981
  this.requireOpen();
@@ -1000,7 +1033,7 @@ class RawStreamSessionService {
1000
1033
  stateful;
1001
1034
  stream;
1002
1035
  observe;
1003
- state = 1;
1036
+ state = service_runtime_contracts_1.StreamSessionRuntimeState.Created;
1004
1037
  closed = false;
1005
1038
  sessionTargets = new Map();
1006
1039
  constructor(stateful, stream, observe) {
@@ -1011,7 +1044,7 @@ class RawStreamSessionService {
1011
1044
  start() {
1012
1045
  if (this.closed)
1013
1046
  throw new Error('STREAM session service is closed.');
1014
- this.state = 2;
1047
+ this.state = service_runtime_contracts_1.StreamSessionRuntimeState.Started;
1015
1048
  }
1016
1049
  shutdown(_timeoutMs) {
1017
1050
  this.close();
@@ -1021,7 +1054,7 @@ class RawStreamSessionService {
1021
1054
  if (this.closed)
1022
1055
  return;
1023
1056
  this.closed = true;
1024
- this.state = 5;
1057
+ this.state = service_runtime_contracts_1.StreamSessionRuntimeState.Closed;
1025
1058
  this.sessionTargets.clear();
1026
1059
  }
1027
1060
  status() {
@@ -1036,17 +1069,17 @@ class RawStreamSessionService {
1036
1069
  lastError: 0
1037
1070
  };
1038
1071
  }
1039
- lookupActor(targetNodeRid, actorId, timeoutMs = 30_000) {
1072
+ lookupActor(targetNodeRid, actorId, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
1040
1073
  this.requireStarted();
1041
1074
  return this.observe(service_runtime_contracts_1.OperationKind.ActorLookup, this.stateful.lookupRemoteActor(String(targetNodeRid), actorId, timeoutMs));
1042
1075
  }
1043
- bindActor(sessionRid, actor, timeoutMs = 30_000, onBindingReplaced, actorAuthority) {
1076
+ bindActor(sessionRid, actor, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, onBindingReplaced, actorAuthority) {
1044
1077
  this.requireStarted();
1045
1078
  const sessionKey = String(sessionRid);
1046
1079
  this.sessionTargets.set(sessionKey, sessionRid);
1047
- 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));
1048
1081
  }
1049
- unbindActor(sessionRid, actor, expectedBindingGeneration, timeoutMs = 30_000) {
1082
+ unbindActor(sessionRid, actor, expectedBindingGeneration, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS) {
1050
1083
  this.requireStarted();
1051
1084
  return this.observe(service_runtime_contracts_1.OperationKind.StreamUnbind, this.stateful.unbindSession(String(sessionRid), actor, expectedBindingGeneration, timeoutMs));
1052
1085
  }
@@ -1101,7 +1134,7 @@ class RawStreamSessionService {
1101
1134
  }
1102
1135
  }
1103
1136
  requireStarted() {
1104
- if (this.state !== 2 || this.closed) {
1137
+ if (this.state !== service_runtime_contracts_1.StreamSessionRuntimeState.Started || this.closed) {
1105
1138
  throw new Error('STREAM session service is not started.');
1106
1139
  }
1107
1140
  }
@@ -1326,7 +1359,7 @@ function decodeMultipartRecord(runtime, record) {
1326
1359
  };
1327
1360
  }
1328
1361
  const header = record.parts[0];
1329
- const command = header[3];
1362
+ const command = header[service_wire_binary_primitives_1.SERVICE_WIRE_COMMAND_OFFSET];
1330
1363
  const payloadFrame = record.parts[1];
1331
1364
  const application = decodeApplicationEnvelope(payloadFrame);
1332
1365
  const channelName = record.owner.startsWith('channel:')
@@ -1335,11 +1368,11 @@ function decodeMultipartRecord(runtime, record) {
1335
1368
  const operationId = record.correlation === undefined
1336
1369
  ? { high: 0n, low: 0n }
1337
1370
  : { high: 1n, low: record.correlation };
1338
- const kind = command === 16
1371
+ const kind = command === service_wire_constants_generated_1.ServiceWireCommand.nodeSend
1339
1372
  ? service_runtime_contracts_1.ReceiveKind.NodeSend
1340
- : command === 17
1373
+ : command === service_wire_constants_generated_1.ServiceWireCommand.nodeRequest
1341
1374
  ? service_runtime_contracts_1.ReceiveKind.NodeRequest
1342
- : command === 18
1375
+ : command === service_wire_constants_generated_1.ServiceWireCommand.channelSend
1343
1376
  ? service_runtime_contracts_1.ReceiveKind.ChannelSend
1344
1377
  : service_runtime_contracts_1.ReceiveKind.ChannelRequest;
1345
1378
  const operationKind = kind === service_runtime_contracts_1.ReceiveKind.NodeRequest
@@ -1389,7 +1422,7 @@ function decodeStatefulRecord(record, stateful) {
1389
1422
  : decodeApplicationEnvelope(payloadFrame);
1390
1423
  const operationId = record.correlation === undefined
1391
1424
  ? { high: 0n, low: 0n }
1392
- : { high: 2n, low: record.correlation };
1425
+ : { high: operation_identity_1.ZLINK_NATIVE_CORRELATION_OPERATION_NAMESPACE, low: record.correlation };
1393
1426
  const ingressLifecycle = receiveIngressLifecycle(record);
1394
1427
  return {
1395
1428
  kind: stateful.receiveKind,
@@ -1420,12 +1453,18 @@ function decodeStatefulRecord(record, stateful) {
1420
1453
  : decodeMultipart(application.payload),
1421
1454
  ...(stateful.isPending === undefined ? {} : { isPending: stateful.isPending }),
1422
1455
  ...(stateful.deadlineUnixMs === undefined ? {} : { deadlineUnixMs: stateful.deadlineUnixMs }),
1456
+ ...(stateful.activationRecord === undefined
1457
+ ? {}
1458
+ : { activationRecord: stateful.activationRecord }),
1423
1459
  ...(stateful.messageFollowOrigin === undefined
1424
1460
  ? {}
1425
1461
  : { messageFollowOrigin: stateful.messageFollowOrigin }),
1426
1462
  ...(stateful.onTerminalCompletion === undefined
1427
1463
  ? {}
1428
1464
  : { onTerminalCompletion: stateful.onTerminalCompletion }),
1465
+ ...(stateful.onHandlerTurnStarted === undefined
1466
+ ? {}
1467
+ : { onHandlerTurnStarted: stateful.onHandlerTurnStarted }),
1429
1468
  reply(parts) {
1430
1469
  if (stateful.reply === undefined)
1431
1470
  return zlink_1.SubmitResult.InvalidState;
@@ -1519,37 +1558,44 @@ function readyDomain(domain) {
1519
1558
  return domain === 'infrastructure' ? service_runtime_contracts_1.ReadyDomain.Infrastructure : service_runtime_contracts_1.ReadyDomain.Application;
1520
1559
  }
1521
1560
  /**
1522
- * Classifies a generic node/channel request rejection into a completion
1523
- * terminal. Spec 32-framework-error-model:91-92 — a reply that could not be
1524
- * decoded (ServiceWireProtocolError from the reply parser) is a protocol
1525
- * failure, not connection loss; only genuine transport rejections collapse to
1526
- * NotConnected.
1561
+ * The one classification of a failed node/channel/stateful request into its
1562
+ * completion terminal. A binding REQUEST result is Core's decision and is kept
1563
+ * as is; a submit failure is classified from its submission or completion phase.
1564
+ * A reply that could not be decoded is a protocol
1565
+ * failure (spec 32-framework-error-model:91-92). The failure code is a wire
1566
+ * code, so a Core result carries 0.
1527
1567
  */
1528
- function genericOperationFailure(error) {
1529
- // requestProtocolError(16): the schema terminal-failure-integrity rule
1530
- // forbids a typed terminal (104) with failure none, so the synthesized
1531
- // decode-failure pair is 104+16; genuine transport loss stays 109+0.
1532
- return error instanceof service_wire_m6a_codec_1.ServiceWireProtocolError
1533
- ? { terminalResult: zlink_1.RequestResult.ProtocolError, failureCode: 16 }
1534
- : { terminalResult: zlink_1.RequestResult.NotConnected, failureCode: 0 };
1535
- }
1536
- function statefulOperationFailure(error) {
1537
- if (error instanceof contracts_1.ZLinkFrameworkException) {
1538
- return (0, framework_errors_internal_1.internalFrameworkWireReply)(error);
1539
- }
1540
- if (error instanceof operation_registry_1.OperationTimeoutError) {
1541
- return { terminalResult: zlink_1.RequestResult.TimedOut, failureCode: 0 };
1568
+ function requestFailureResult(error) {
1569
+ const failure = (0, node_backend_adapter_support_1.translateBindingResultError)(error);
1570
+ if ((0, runtime_values_1.isZLinkBackendResultError)(failure)) {
1571
+ return {
1572
+ terminalResult: failure.operation === 'request'
1573
+ ? failure.result
1574
+ : (0, submission_result_1.submitToRequestResult)(failure.result, failure.phase),
1575
+ failureCode: 0
1576
+ };
1542
1577
  }
1543
- if ((0, runtime_values_1.isZLinkBackendResultError)(error)) {
1578
+ // requestProtocolError(16): the schema terminal-failure-integrity rule
1579
+ // forbids a typed terminal (104) with failure none.
1580
+ if (failure instanceof service_wire_m6a_codec_1.ServiceWireProtocolError) {
1544
1581
  return {
1545
- terminalResult: error.result,
1546
- failureCode: error.nativeErrno ?? 0
1582
+ terminalResult: zlink_1.RequestResult.ProtocolError,
1583
+ failureCode: service_wire_constants_generated_1.ServiceWireFrameworkErrorCode.requestProtocolError
1547
1584
  };
1548
1585
  }
1549
- if (error instanceof operation_registry_1.OperationCancelledError) {
1586
+ if (failure instanceof contracts_1.ZLinkFrameworkException) {
1587
+ return (0, framework_errors_internal_1.internalFrameworkWireReply)(failure);
1588
+ }
1589
+ if (failure instanceof operation_registry_1.OperationTimeoutError) {
1590
+ return { terminalResult: zlink_1.RequestResult.TimedOut, failureCode: 0 };
1591
+ }
1592
+ if (failure instanceof operation_registry_1.OperationCancelledError) {
1550
1593
  return { terminalResult: zlink_1.RequestResult.NotConnected, failureCode: 0 };
1551
1594
  }
1552
- return { terminalResult: zlink_1.RequestResult.InternalError, failureCode: 17 };
1595
+ return {
1596
+ terminalResult: zlink_1.RequestResult.InternalError,
1597
+ failureCode: service_wire_constants_generated_1.ServiceWireFrameworkErrorCode.requestFailed
1598
+ };
1553
1599
  }
1554
1600
  function encodeMultipart(parts) {
1555
1601
  const values = Array.isArray(parts) ? parts : [parts];
@@ -1584,7 +1630,8 @@ function encodeMultipartApplicationFrame(parts) {
1584
1630
  }
1585
1631
  function decodeApplicationEnvelope(frame) {
1586
1632
  const bytes = Buffer.from(frame.buffer, frame.byteOffset, frame.byteLength);
1587
- 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) {
1588
1635
  throw new service_wire_m6a_codec_1.ServiceWireProtocolError('Invalid application envelope.');
1589
1636
  }
1590
1637
  const bodyLength = bytes.readUInt32BE(1);
@@ -1682,20 +1729,33 @@ function requireRawReadyBatch(batch) {
1682
1729
  return batch;
1683
1730
  }
1684
1731
  function stateCode(state) {
1685
- 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
+ }
1686
1746
  }
1687
1747
  function peerStateCode(state) {
1688
1748
  switch (state) {
1689
1749
  case 'preparing':
1690
- return 2;
1750
+ return service_runtime_contracts_1.MeshPeerRuntimeState.Preparing;
1691
1751
  case 'serving':
1692
1752
  case 'retiring':
1693
- return 3;
1753
+ return service_runtime_contracts_1.MeshPeerRuntimeState.Serving;
1694
1754
  case 'draining':
1695
- return 4;
1755
+ return service_runtime_contracts_1.MeshPeerRuntimeState.Draining;
1696
1756
  case 'stopped':
1697
1757
  case 'error':
1698
- return 5;
1758
+ return service_runtime_contracts_1.MeshPeerRuntimeState.Closed;
1699
1759
  }
1700
1760
  }
1701
1761
  function createLifecycleGeneration() {
@@ -1706,14 +1766,14 @@ function createLifecycleGeneration() {
1706
1766
  return generation === 0n ? 1n : generation;
1707
1767
  }
1708
1768
  function requirePositivePlacementValue(value, name) {
1709
- if (!Number.isSafeInteger(value) || value <= 0 || value > 0x7fff_ffff) {
1710
- 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}.`);
1711
1771
  }
1712
1772
  return value;
1713
1773
  }
1714
1774
  function requirePublicWeight(value, name) {
1715
- if (!Number.isInteger(value) || value < 0 || value > 10_000) {
1716
- 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}.`);
1717
1777
  }
1718
1778
  return value;
1719
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();
@@ -20,7 +21,7 @@ function wrapSocket(nativeInstance, pollCompletion) {
20
21
  async dispose() {
21
22
  eventLoopPoller?.dispose();
22
23
  (0, node_backend_adapter_support_1.disableSocketLinger)(nativeInstance);
23
- await (0, node_backend_adapter_support_1.closeWithBusyRetry)(nativeInstance);
24
+ (0, node_backend_adapter_support_1.closeBindingHandle)(nativeInstance);
24
25
  },
25
26
  close() {
26
27
  eventLoopPoller?.dispose();
@@ -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
  }