@zlink-systems/framework 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  3. package/dist/contracts/Common/CoreTypes.js +7 -0
  4. package/dist/contracts/Common/index.d.ts +1 -1
  5. package/dist/contracts/Common/index.js +0 -1
  6. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  7. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  8. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  9. package/dist/contracts/Configuration/Registration.js +58 -36
  10. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  12. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  13. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  14. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  15. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  16. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  17. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  18. package/dist/contracts/Handlers/JsonContract.js +10 -4
  19. package/dist/contracts/Locations/Authority.d.ts +1 -1
  20. package/dist/contracts/Locations/Authority.js +3 -2
  21. package/dist/contracts/Locations/Options.js +1 -1
  22. package/dist/contracts/Locations/Stores.d.ts +12 -0
  23. package/dist/contracts/Locations/Stores.js +9 -0
  24. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  25. package/dist/internal.d.ts +4 -0
  26. package/dist/internal.js +15 -1
  27. package/dist/nest-integration.d.ts +4 -2
  28. package/dist/nest-integration.js +14 -4
  29. package/dist/runtime/abort.d.ts +1 -0
  30. package/dist/runtime/abort.js +8 -5
  31. package/dist/runtime/activation-admission.d.ts +1 -2
  32. package/dist/runtime/activation-admission.js +2 -6
  33. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  34. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  35. package/dist/runtime/actors/actor-client.d.ts +2 -2
  36. package/dist/runtime/actors/actor-client.js +42 -143
  37. package/dist/runtime/actors/actor-context.d.ts +3 -5
  38. package/dist/runtime/actors/actor-context.js +13 -11
  39. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  40. package/dist/runtime/actors/actor-handoff.js +8 -8
  41. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  42. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  43. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  44. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  45. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  46. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  47. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  48. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  49. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  50. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  51. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  52. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  53. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  54. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  55. package/dist/runtime/actors/bound-session-wire.js +2 -7
  56. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  57. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  58. package/dist/runtime/actors/index.d.ts +9 -7
  59. package/dist/runtime/actors/index.js +87 -69
  60. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  61. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  62. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  63. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  64. package/dist/runtime/admission.d.ts +2 -0
  65. package/dist/runtime/admission.js +7 -1
  66. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  67. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  68. package/dist/runtime/backend/contracts/index.d.ts +6 -23
  69. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  70. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  71. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  72. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
  73. package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
  74. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  75. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  76. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  77. package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
  78. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  79. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  80. package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
  81. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  82. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  83. package/dist/runtime/backend/runtime-values.js +2 -0
  84. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  85. package/dist/runtime/channels/channel-clients.js +68 -52
  86. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  87. package/dist/runtime/channels/channel-envelope.js +47 -29
  88. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  89. package/dist/runtime/channels/channel-outbound-operations.js +9 -10
  90. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  91. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  92. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  93. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  94. package/dist/runtime/channels/channel-runtime-manager.js +5 -2
  95. package/dist/runtime/channels/channel-socket-options.js +3 -2
  96. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  97. package/dist/runtime/channels/channel-socket-registry.js +248 -174
  98. package/dist/runtime/channels/channel-transports.d.ts +11 -17
  99. package/dist/runtime/channels/channel-transports.js +68 -47
  100. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  101. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  102. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  103. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  104. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  105. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  106. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  107. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  108. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  109. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  110. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  111. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  112. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  113. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  114. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  115. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  116. package/dist/runtime/diagnostics/flow-context.js +16 -2
  117. package/dist/runtime/diagnostics/index.d.ts +4 -2
  118. package/dist/runtime/diagnostics/index.js +14 -4
  119. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  120. package/dist/runtime/diagnostics/message-flow.js +10 -19
  121. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  122. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  123. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  124. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  125. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  126. package/dist/runtime/disposal.d.ts +5 -0
  127. package/dist/runtime/disposal.js +22 -0
  128. package/dist/runtime/execution/index.d.ts +12 -9
  129. package/dist/runtime/execution/index.js +58 -14
  130. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  131. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  132. package/dist/runtime/execution/state-lane.d.ts +8 -1
  133. package/dist/runtime/execution/state-lane.js +118 -3
  134. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  135. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  136. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  137. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  138. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  139. package/dist/runtime/foundation/operation-identity.js +9 -5
  140. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  141. package/dist/runtime/foundation/operation-registry.js +34 -44
  142. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  143. package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
  144. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  145. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  146. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  147. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  148. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  149. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  150. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  151. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  152. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  153. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  154. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  155. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  156. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  157. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  158. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  159. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  160. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  161. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  162. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  163. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  164. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  165. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  166. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  167. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  168. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  169. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  170. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  171. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  172. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  173. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  174. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  175. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  176. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  177. package/dist/runtime/framework-errors-internal.js +343 -122
  178. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  179. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  180. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  181. package/dist/runtime/host/actor-packet-relay.js +48 -91
  182. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  183. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  184. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  185. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  186. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  187. package/dist/runtime/host/application-job-queue.js +16 -33
  188. package/dist/runtime/host/bound-session-relay.js +1 -1
  189. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  190. package/dist/runtime/host/index.d.ts +14 -13
  191. package/dist/runtime/host/index.js +190 -157
  192. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  193. package/dist/runtime/host/instance-activation-authority.js +17 -45
  194. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  195. package/dist/runtime/host/location-runtime-owner.js +2 -2
  196. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  197. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  198. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  199. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  200. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  201. package/dist/runtime/host/remote-bound-session-relay.js +7 -20
  202. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  203. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  204. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  205. package/dist/runtime/host/runtime-shutdown.js +18 -21
  206. package/dist/runtime/host/service-relocation-control.js +6 -1
  207. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  208. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  209. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  210. package/dist/runtime/host/spot-address-transport.js +34 -136
  211. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  212. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  213. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  214. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  215. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  216. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  217. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  218. package/dist/runtime/locations/authority-key-codec.js +4 -3
  219. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  220. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  221. package/dist/runtime/locations/creation-operation-id.js +6 -4
  222. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  223. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  224. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  225. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  226. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  227. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  228. package/dist/runtime/locations/key-codec.js +3 -2
  229. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  230. package/dist/runtime/locations/lease-tracker.js +7 -11
  231. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  232. package/dist/runtime/locations/lifecycle.js +2 -31
  233. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  234. package/dist/runtime/locations/location-store-failure.js +7 -0
  235. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  236. package/dist/runtime/locations/location-store-pages.js +13 -0
  237. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  238. package/dist/runtime/locations/location-store-repository.js +303 -332
  239. package/dist/runtime/locations/relocation-blob.js +18 -5
  240. package/dist/runtime/locations/resolvers.d.ts +5 -5
  241. package/dist/runtime/locations/resolvers.js +37 -28
  242. package/dist/runtime/locations/runtime.d.ts +5 -4
  243. package/dist/runtime/locations/runtime.js +123 -92
  244. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  245. package/dist/runtime/locations/spot-location-claims.js +42 -1
  246. package/dist/runtime/messaging/payload-codec.js +26 -20
  247. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  248. package/dist/runtime/messaging/submission-result.js +48 -0
  249. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  250. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  251. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  252. package/dist/runtime/spots/index.d.ts +14 -20
  253. package/dist/runtime/spots/index.js +302 -176
  254. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  255. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  256. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  257. package/dist/runtime/spots/spot-activation-state.js +2 -2
  258. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  259. package/dist/runtime/spots/spot-activation.js +49 -32
  260. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  261. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  262. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  263. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  264. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  265. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  266. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  267. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  268. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  269. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  270. package/dist/runtime/spots/spot-context.d.ts +2 -2
  271. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  272. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  273. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  274. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  275. package/dist/runtime/spots/spot-manager-public.js +5 -4
  276. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  277. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  278. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  279. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  280. package/dist/runtime/spots/spot-outbound.js +9 -8
  281. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  282. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  283. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  284. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  285. package/dist/runtime/spots/spot-route-replies.js +3 -1
  286. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  287. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  288. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  289. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  290. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  291. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  292. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  293. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  294. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  295. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  296. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  297. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  298. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  299. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  300. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  301. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  302. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  303. package/dist/runtime/streams/bound-session-service.js +11 -1
  304. package/dist/runtime/streams/index.d.ts +14 -15
  305. package/dist/runtime/streams/index.js +20 -21
  306. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  307. package/dist/runtime/streams/managed-stream.js +17 -8
  308. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  309. package/dist/runtime/streams/protocol.d.ts +6 -33
  310. package/dist/runtime/streams/protocol.js +38 -110
  311. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  312. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  313. package/dist/runtime/streams/session-calls.d.ts +1 -1
  314. package/dist/runtime/streams/session-calls.js +5 -4
  315. package/dist/runtime/streams/session-context.d.ts +6 -6
  316. package/dist/runtime/streams/session-context.js +22 -4
  317. package/dist/runtime/streams/session-requests.js +2 -1
  318. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  319. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  320. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  321. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  322. package/dist/runtime/workers/index.d.ts +2 -2
  323. package/dist/runtime/workers/index.js +5 -4
  324. package/package.json +3 -3
  325. package/src/contracts/Common/CoreTypes.ts +7 -0
  326. package/src/contracts/Common/index.ts +1 -1
  327. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  328. package/src/contracts/Configuration/Registration.ts +92 -48
  329. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  330. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  331. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  332. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  333. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  334. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  335. package/src/contracts/Handlers/JsonContract.ts +14 -4
  336. package/src/contracts/Locations/Authority.ts +7 -3
  337. package/src/contracts/Locations/Options.ts +1 -1
  338. package/src/contracts/Locations/Stores.ts +14 -0
  339. package/src/contracts/Spots/Contracts.ts +1 -1
  340. package/src/internal.ts +14 -0
  341. package/src/nest-integration.ts +28 -10
  342. package/src/runtime/abort.ts +6 -5
  343. package/src/runtime/activation-admission.ts +2 -8
  344. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  345. package/src/runtime/actors/actor-client.ts +77 -204
  346. package/src/runtime/actors/actor-context.ts +39 -33
  347. package/src/runtime/actors/actor-handoff.ts +24 -22
  348. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  349. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  350. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  351. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  352. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  353. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  354. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  355. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  356. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  357. package/src/runtime/actors/bound-session-wire.ts +2 -8
  358. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  359. package/src/runtime/actors/index.ts +100 -79
  360. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  361. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  362. package/src/runtime/admission.ts +8 -1
  363. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  364. package/src/runtime/backend/contracts/index.ts +13 -29
  365. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  366. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  367. package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
  368. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  369. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  370. package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
  371. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  372. package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
  373. package/src/runtime/backend/raw-binding-port.ts +1 -1
  374. package/src/runtime/backend/runtime-values.ts +4 -1
  375. package/src/runtime/channels/channel-clients.ts +132 -85
  376. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  377. package/src/runtime/channels/channel-envelope.ts +58 -29
  378. package/src/runtime/channels/channel-outbound-operations.ts +10 -23
  379. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  380. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  381. package/src/runtime/channels/channel-runtime-manager.ts +6 -2
  382. package/src/runtime/channels/channel-socket-options.ts +8 -2
  383. package/src/runtime/channels/channel-socket-registry.ts +301 -192
  384. package/src/runtime/channels/channel-transports.ts +161 -112
  385. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  386. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  387. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  388. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  389. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  390. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  391. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  392. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  393. package/src/runtime/diagnostics/flow-context.ts +16 -2
  394. package/src/runtime/diagnostics/index.ts +27 -17
  395. package/src/runtime/diagnostics/message-flow.ts +15 -25
  396. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  397. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  398. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  399. package/src/runtime/disposal.ts +19 -0
  400. package/src/runtime/execution/index.ts +60 -20
  401. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  402. package/src/runtime/execution/state-lane.ts +142 -4
  403. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  404. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  405. package/src/runtime/foundation/operation-identity.ts +11 -5
  406. package/src/runtime/foundation/operation-registry.ts +33 -50
  407. package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
  408. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  409. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  410. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  411. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  412. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  413. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  414. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  415. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  416. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  417. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  418. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  419. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  420. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  421. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  422. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  423. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  424. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  425. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  426. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  427. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  428. package/src/runtime/framework-errors-internal.ts +380 -134
  429. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  430. package/src/runtime/host/actor-packet-relay.ts +57 -147
  431. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  432. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  433. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  434. package/src/runtime/host/application-job-queue.ts +28 -34
  435. package/src/runtime/host/bound-session-relay.ts +1 -2
  436. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  437. package/src/runtime/host/index.ts +327 -296
  438. package/src/runtime/host/instance-activation-authority.ts +89 -109
  439. package/src/runtime/host/location-runtime-owner.ts +4 -2
  440. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  441. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  442. package/src/runtime/host/remote-bound-session-relay.ts +8 -41
  443. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  444. package/src/runtime/host/runtime-shutdown.ts +17 -21
  445. package/src/runtime/host/service-relocation-control.ts +14 -1
  446. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  447. package/src/runtime/host/spot-address-transport.ts +73 -195
  448. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  449. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  450. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  451. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  452. package/src/runtime/locations/authority-key-codec.ts +7 -3
  453. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  454. package/src/runtime/locations/creation-operation-id.ts +6 -3
  455. package/src/runtime/locations/domain-store-contract.ts +12 -3
  456. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  457. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  458. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  459. package/src/runtime/locations/key-codec.ts +3 -2
  460. package/src/runtime/locations/lease-tracker.ts +8 -14
  461. package/src/runtime/locations/lifecycle.ts +13 -43
  462. package/src/runtime/locations/location-store-failure.ts +4 -0
  463. package/src/runtime/locations/location-store-pages.ts +18 -0
  464. package/src/runtime/locations/location-store-repository.ts +450 -478
  465. package/src/runtime/locations/relocation-blob.ts +17 -6
  466. package/src/runtime/locations/resolvers.ts +75 -49
  467. package/src/runtime/locations/runtime.ts +220 -110
  468. package/src/runtime/locations/spot-location-claims.ts +58 -1
  469. package/src/runtime/messaging/payload-codec.ts +35 -24
  470. package/src/runtime/messaging/submission-result.ts +57 -1
  471. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  472. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  473. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  474. package/src/runtime/spots/index.ts +433 -229
  475. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  476. package/src/runtime/spots/spot-activation-state.ts +2 -2
  477. package/src/runtime/spots/spot-activation.ts +67 -37
  478. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  479. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  480. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  481. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  482. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  483. package/src/runtime/spots/spot-context.ts +3 -3
  484. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  485. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  486. package/src/runtime/spots/spot-manager-public.ts +21 -17
  487. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  488. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  489. package/src/runtime/spots/spot-outbound.ts +45 -23
  490. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  491. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  492. package/src/runtime/spots/spot-route-replies.ts +6 -4
  493. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  494. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  495. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  496. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  497. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  498. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  499. package/src/runtime/spots/spot-timer.ts +3 -2
  500. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  501. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  502. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  503. package/src/runtime/streams/bound-session-service.ts +21 -1
  504. package/src/runtime/streams/index.ts +76 -64
  505. package/src/runtime/streams/managed-stream.ts +29 -10
  506. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  507. package/src/runtime/streams/protocol.ts +34 -88
  508. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  509. package/src/runtime/streams/session-calls.ts +6 -5
  510. package/src/runtime/streams/session-context.ts +54 -10
  511. package/src/runtime/streams/session-requests.ts +2 -1
  512. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  513. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  514. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  515. package/src/runtime/workers/index.ts +13 -12
  516. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  517. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  518. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  519. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  520. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  521. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,8 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceDiscoveryRegistry = void 0;
4
+ const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
5
+ const service_weighted_selection_1 = require("./service-weighted-selection");
4
6
  /** Dedicated discovery state; fanout publishers never reuse RouteMesh peer rows. */
5
7
  class ServiceDiscoveryRegistry {
8
+ clientServerChanged = new Set();
9
+ onClientServerChanged(listener) {
10
+ this.clientServerChanged.add(listener);
11
+ return () => {
12
+ this.clientServerChanged.delete(listener);
13
+ };
14
+ }
15
+ dispose(error) {
16
+ for (const listener of this.clientServerChanged)
17
+ listener(error);
18
+ this.clientServerChanged.clear();
19
+ }
6
20
  clientServers = new Map();
7
21
  fanoutPublishers = new Map();
8
22
  clientServerSelections = new Map();
@@ -56,6 +70,10 @@ class ServiceDiscoveryRegistry {
56
70
  }
57
71
  return selection.select();
58
72
  }
73
+ hasReadyClientServer(channelName) {
74
+ return [...this.clientServers.values()].some(({ descriptor }) => descriptor.channelName === channelName &&
75
+ (descriptor.state === 'serving' || descriptor.state === 'retiring'));
76
+ }
59
77
  clientServerDescriptors(channelName) {
60
78
  return [...this.clientServers.values()]
61
79
  .map((value) => value.descriptor)
@@ -94,6 +112,8 @@ class ServiceDiscoveryRegistry {
94
112
  if (this.clientServerSelections.has(channelName)) {
95
113
  this.clientServerSelections.get(channelName).rebuild();
96
114
  }
115
+ for (const listener of this.clientServerChanged)
116
+ listener();
97
117
  }
98
118
  clientServerCandidates(channelName) {
99
119
  return [...this.clientServers.values()]
@@ -150,8 +170,8 @@ function validateClientServer(descriptor) {
150
170
  requireText(descriptor.securityIdentity, 'securityIdentity');
151
171
  requireText(descriptor.advertisedEndpoint, 'advertisedEndpoint');
152
172
  validateRevision(descriptor.lifecycleGeneration, descriptor.descriptorRevision);
153
- if (!Number.isInteger(descriptor.weight) || descriptor.weight < 0 || descriptor.weight > 10_000) {
154
- throw new RangeError('ClientServer weight must be an integer in 0..10000.');
173
+ if (!(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(descriptor.weight)) {
174
+ throw new RangeError(`ClientServer weight must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_PUBLIC_WEIGHT}.`);
155
175
  }
156
176
  if (!Number.isSafeInteger(descriptor.effectiveMaxMessageBytes) ||
157
177
  descriptor.effectiveMaxMessageBytes < 1) {
@@ -174,4 +194,3 @@ function requireText(value, field) {
174
194
  throw new TypeError(`${field} must be non-empty text without NUL.`);
175
195
  }
176
196
  }
177
- const service_weighted_selection_1 = require("./service-weighted-selection");
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodeInstanceActivationRecoveryEnvelope = encodeInstanceActivationRecoveryEnvelope;
4
4
  exports.decodeInstanceActivationRecoveryEnvelope = decodeInstanceActivationRecoveryEnvelope;
5
+ const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
6
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
5
7
  const service_relocation_runtime_1 = require("./service-relocation-runtime");
6
8
  const service_wire_m6a_codec_1 = require("./service-wire-m6a-codec");
7
9
  const service_metadata_codec_1 = require("./service-metadata-codec");
@@ -175,8 +177,10 @@ function requireOperation(value) {
175
177
  }
176
178
  function textBytes(value, name) {
177
179
  const bytes = Buffer.from(value, 'utf8');
178
- if (bytes.byteLength < 1 || bytes.byteLength > 255 || bytes.includes(0)) {
179
- throw new RangeError(`${name} must contain 1..255 UTF-8 bytes without NUL.`);
180
+ if (bytes.byteLength < 1 ||
181
+ bytes.byteLength > service_wire_binary_primitives_1.SERVICE_WIRE_TEXT8_MAX_BYTES ||
182
+ bytes.includes(0)) {
183
+ throw new RangeError(`${name} must contain 1..${service_wire_binary_primitives_1.SERVICE_WIRE_TEXT8_MAX_BYTES} UTF-8 bytes without NUL.`);
180
184
  }
181
185
  return bytes;
182
186
  }
@@ -189,12 +193,12 @@ function writeText8(target, offset, value) {
189
193
  return offset + 1 + value.byteLength;
190
194
  }
191
195
  function validatePositiveU64(value, name) {
192
- if (value <= 0n || value > 0xffffffffffffffffn) {
196
+ if (value <= 0n || value > stream_wire_1.UINT64_MAX) {
193
197
  throw new RangeError(`${name} is out of range.`);
194
198
  }
195
199
  }
196
200
  function validateU64(value, name) {
197
- if (value < 0n || value > 0xffffffffffffffffn) {
201
+ if (value < 0n || value > stream_wire_1.UINT64_MAX) {
198
202
  throw new RangeError(`${name} is out of range.`);
199
203
  }
200
204
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceLivenessRegistry = exports.DEFAULT_SERVICE_PEER_TIMEOUT_MS = exports.DEFAULT_SERVICE_PROBE_INTERVAL_MS = void 0;
4
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
4
5
  exports.DEFAULT_SERVICE_PROBE_INTERVAL_MS = 5_000;
5
6
  exports.DEFAULT_SERVICE_PEER_TIMEOUT_MS = 15_000;
6
7
  /** Uses monotonic milliseconds and never treats application traffic as a probe ACK. */
@@ -101,7 +102,7 @@ class ServiceLivenessRegistry {
101
102
  }
102
103
  allocateProbeId() {
103
104
  const result = this.nextProbeId++;
104
- if (this.nextProbeId > 0xffffffffffffffffn)
105
+ if (this.nextProbeId > stream_wire_1.UINT64_MAX)
105
106
  this.nextProbeId = 1n;
106
107
  return result;
107
108
  }
@@ -42,4 +42,3 @@ export declare class ServiceMaintenanceRuntime {
42
42
  private publishCore;
43
43
  private notify;
44
44
  }
45
- export declare function classifyRelocationRecovery(publishedReference: boolean, payloadPresent: boolean, checksumMatches: boolean, inventoryMatches: boolean): 'resume' | 'orphan' | 'relocationDataLost';
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceMaintenanceRuntime = void 0;
4
- exports.classifyRelocationRecovery = classifyRelocationRecovery;
5
4
  const node_async_hooks_1 = require("node:async_hooks");
6
5
  const state_lane_1 = require("../execution/state-lane");
7
6
  const detachedStateLaneResource = new node_async_hooks_1.AsyncResource('zlink:service-maintenance-runtime');
@@ -210,8 +209,3 @@ exports.ServiceMaintenanceRuntime = ServiceMaintenanceRuntime;
210
209
  function startOutsideStateLane(work) {
211
210
  return detachedStateLaneResource.runInAsyncScope(work);
212
211
  }
213
- function classifyRelocationRecovery(publishedReference, payloadPresent, checksumMatches, inventoryMatches) {
214
- if (!publishedReference)
215
- return payloadPresent ? 'orphan' : 'resume';
216
- return payloadPresent && checksumMatches && inventoryMatches ? 'resume' : 'relocationDataLost';
217
- }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodeServiceMetadataFrame = encodeServiceMetadataFrame;
4
4
  exports.validateServiceMetadataFrame = validateServiceMetadataFrame;
5
- const MAX_METADATA_BYTES = 1024;
5
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
6
6
  const FATAL_UTF8 = new TextDecoder('utf-8', { fatal: true });
7
7
  function encodeServiceMetadataFrame(entries) {
8
8
  if (entries.size > 0xff) {
@@ -19,8 +19,8 @@ function encodeServiceMetadataFrame(entries) {
19
19
  return validateServiceMetadataFrame(Buffer.concat(encoded));
20
20
  }
21
21
  function validateServiceMetadataFrame(frame) {
22
- if (frame.byteLength > MAX_METADATA_BYTES) {
23
- throw new RangeError('Application metadata frame exceeds 1024 bytes.');
22
+ if (frame.byteLength > stream_wire_1.ZLINK_STREAM_MAX_METADATA_BYTES) {
23
+ throw new RangeError(`Application metadata frame exceeds ${stream_wire_1.ZLINK_STREAM_MAX_METADATA_BYTES} bytes.`);
24
24
  }
25
25
  const bytes = Buffer.from(frame);
26
26
  let offset = 0;
@@ -20,16 +20,13 @@ export interface ServicePreparedRelocationAggregate {
20
20
  readonly fence: ZLinkAggregateFence;
21
21
  readonly plan: ServiceRelocationAggregatePlan;
22
22
  }
23
- type AggregateStore = Pick<ZLinkObjectCreationStore, 'prepareAggregate' | 'commitAggregate' | 'abortAggregate'> & Pick<ZLinkAuthorityStore, 'readAuthority'>;
24
- /** Commits every owner and membership row through one Location Store fence. */
23
+ type AggregateStore = Pick<ZLinkObjectCreationStore, 'prepareAggregate' | 'abortAggregate'> & Pick<ZLinkAuthorityStore, 'readAuthority'>;
24
+ /** Prepares and aborts relocation through one Location Store fence. */
25
25
  export declare class ServiceRelocationAggregateCommitter {
26
26
  private readonly store;
27
27
  constructor(store: AggregateStore);
28
28
  prepare(plan: ServiceRelocationAggregatePlan, signal?: AbortSignal): Promise<ServicePreparedRelocationAggregate>;
29
29
  private authorityStoreVersionsUnchanged;
30
- commit(prepared: ServicePreparedRelocationAggregate, signal?: AbortSignal): Promise<ReadonlyMap<string, ZLinkAuthoritySnapshot>>;
31
30
  abort(prepared: ServicePreparedRelocationAggregate, signal?: AbortSignal): Promise<void>;
32
- private commitFence;
33
- private readCommittedParticipants;
34
31
  }
35
32
  export {};
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceRelocationAggregateCommitter = void 0;
4
4
  const service_relocation_runtime_1 = require("./service-relocation-runtime");
5
5
  const MAX_PREPARE_CONFLICT_ATTEMPTS = 8;
6
- /** Commits every owner and membership row through one Location Store fence. */
6
+ /** Prepares and aborts relocation through one Location Store fence. */
7
7
  class ServiceRelocationAggregateCommitter {
8
8
  store;
9
9
  constructor(store) {
@@ -52,59 +52,12 @@ class ServiceRelocationAggregateCommitter {
52
52
  }
53
53
  return true;
54
54
  }
55
- async commit(prepared, signal) {
56
- try {
57
- await this.commitFence(prepared.fence, signal);
58
- }
59
- catch (firstError) {
60
- // A lost commit response is reconciled by repeating the exact durable fence.
61
- try {
62
- await this.commitFence(prepared.fence, signal);
63
- }
64
- catch {
65
- throw firstError;
66
- }
67
- }
68
- return await this.readCommittedParticipants(prepared.plan, signal);
69
- }
70
55
  async abort(prepared, signal) {
71
56
  const result = await this.store.abortAggregate(prepared.fence, signal);
72
57
  if (result.kind !== 'aborted' && result.kind !== 'alreadyAborted') {
73
58
  throw new Error(`Location Store rejected relocation aggregate abort: ${result.kind}.`);
74
59
  }
75
60
  }
76
- async commitFence(fence, signal) {
77
- const result = await this.store.commitAggregate(fence, signal);
78
- if (result.kind !== 'committed' && result.kind !== 'alreadyCommitted') {
79
- throw new Error(`Location Store rejected relocation aggregate commit: ${result.kind}.`);
80
- }
81
- }
82
- async readCommittedParticipants(plan, signal) {
83
- const committed = new Map();
84
- for (const participant of plan.participants) {
85
- const current = await this.store.readAuthority(participant.key, signal);
86
- if (current.kind !== 'snapshot' ||
87
- current.objectGeneration !== participant.expected.objectGeneration ||
88
- current.storeVersion.value === participant.expected.storeVersion.value ||
89
- !Buffer.from(current.payload).equals(Buffer.from(participant.authorityPayload))) {
90
- throw new Error('Committed relocation aggregate does not match its exact participant plan.');
91
- }
92
- if (participant.ownerTransition === 'newOwner') {
93
- if (current.ownerId !== plan.targetOwner.ownerId ||
94
- current.ownerLeaseGeneration !== plan.targetOwner.leaseGeneration ||
95
- current.authorityOwnerGeneration <= participant.expected.authorityOwnerGeneration) {
96
- throw new Error('Committed relocation participant has a different owner fence.');
97
- }
98
- }
99
- else if (current.ownerId !== participant.expected.ownerId ||
100
- current.ownerLeaseGeneration !== participant.expected.ownerLeaseGeneration ||
101
- current.authorityOwnerGeneration !== participant.expected.authorityOwnerGeneration) {
102
- throw new Error('Preserved relocation participant changed its owner fence.');
103
- }
104
- committed.set(participant.key.value, current);
105
- }
106
- return committed;
107
- }
108
61
  }
109
62
  exports.ServiceRelocationAggregateCommitter = ServiceRelocationAggregateCommitter;
110
63
  function validateAndEncodeParticipants(plan) {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceRelocationObjectRestoreOwner = exports.ServiceRelocationObjectCaptureOwner = exports.ServiceCapturedObjectRelocation = void 0;
4
+ const DEFAULT_RELOCATION_CALLBACK_CONCURRENCY = 8;
4
5
  class ServiceCapturedObjectRelocation {
5
6
  envelope;
6
7
  units;
@@ -56,7 +57,7 @@ exports.ServiceCapturedObjectRelocation = ServiceCapturedObjectRelocation;
56
57
  /** Captures the two valid relocation units: User Spot aggregate or one Actor. */
57
58
  class ServiceRelocationObjectCaptureOwner {
58
59
  maxConcurrentCallbacks;
59
- constructor(maxConcurrentCallbacks = 8) {
60
+ constructor(maxConcurrentCallbacks = DEFAULT_RELOCATION_CALLBACK_CONCURRENCY) {
60
61
  this.maxConcurrentCallbacks = maxConcurrentCallbacks;
61
62
  requireCallbackConcurrency(maxConcurrentCallbacks);
62
63
  }
@@ -127,7 +128,7 @@ class ServiceRelocationObjectRestoreOwner {
127
128
  target;
128
129
  authorityKey;
129
130
  maxConcurrentCallbacks;
130
- constructor(target, authorityKey, maxConcurrentCallbacks = 8) {
131
+ constructor(target, authorityKey, maxConcurrentCallbacks = DEFAULT_RELOCATION_CALLBACK_CONCURRENCY) {
131
132
  this.target = target;
132
133
  this.authorityKey = authorityKey;
133
134
  this.maxConcurrentCallbacks = maxConcurrentCallbacks;
@@ -11,9 +11,18 @@ exports.encodeServiceRelocationEnvelope = encodeServiceRelocationEnvelope;
11
11
  exports.decodeServiceRelocationEnvelope = decodeServiceRelocationEnvelope;
12
12
  exports.inventoryDigest = inventoryDigest;
13
13
  exports.crc32c = crc32c;
14
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
14
15
  const node_crypto_1 = require("node:crypto");
16
+ const InternalDefaults_1 = require("../../contracts/Configuration/InternalDefaults");
15
17
  const authority_key_codec_1 = require("../locations/authority-key-codec");
18
+ const service_wire_codec_generated_1 = require("../protocol/service_wire_codec.generated");
16
19
  const service_wire_pilot_codec_generated_1 = require("../protocol/service_wire_pilot_codec.generated");
20
+ const actor_join_recovery_codec_1 = require("./actor-join-recovery-codec");
21
+ const MAX_RELOCATION_GENERATION = 0x7fffffffffffffffn;
22
+ const RELOCATION_PREPARING_PHASE = (0, service_wire_codec_generated_1.enumWireRelocationPhase)('preparing');
23
+ const RELOCATION_ACTIVATING_PHASE = (0, service_wire_codec_generated_1.enumWireRelocationPhase)('activating');
24
+ const RELOCATION_COMPLETED_PHASE = (0, service_wire_codec_generated_1.enumWireRelocationPhase)('completed');
25
+ const RELOCATION_LAST_PHASE = (0, service_wire_codec_generated_1.enumWireRelocationPhase)('aborted');
17
26
  /** Deterministic Location authority wrapper for one immutable relocation root. */
18
27
  class ServiceRelocationAuthorityPayloadCodec {
19
28
  publish(currentPayload, publication) {
@@ -109,7 +118,7 @@ function projectServiceRelocationAuthorityTargetReady(payload, target) {
109
118
  coordinatorNodeRid: target.nodeRid,
110
119
  coordinatorNodeGeneration: target.nodeGeneration,
111
120
  coordinatorExpectedStoreVersion: target.coordinatorExpectedStoreVersion,
112
- phase: 5,
121
+ phase: RELOCATION_ACTIVATING_PHASE,
113
122
  sourceCleanupState: 0
114
123
  });
115
124
  return replaceCanonicalRelocationSlot(layout, slot);
@@ -150,7 +159,7 @@ function decodeCanonicalAuthorityPublication(payload) {
150
159
  function decodeCanonicalAuthorityLayout(payload) {
151
160
  try {
152
161
  const bytes = Buffer.from(payload);
153
- if (bytes.byteLength < 20 || bytes.byteLength > 1024 * 1024)
162
+ if (bytes.byteLength < 20 || bytes.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES)
154
163
  return undefined;
155
164
  const reader = new CanonicalReader(bytes);
156
165
  reader.expect(Buffer.from('ZLAU'));
@@ -223,21 +232,21 @@ function decodeCanonicalRelocationSlot(payload, rootAggregateGeneration) {
223
232
  const sourceCleanupState = reader.u8();
224
233
  if (!reader.done ||
225
234
  aggregateGeneration > 0x7ffffffffffffffen ||
226
- (aggregateGeneration === 0n && phase !== 1) ||
235
+ (aggregateGeneration === 0n && phase !== RELOCATION_PREPARING_PHASE) ||
227
236
  (rootAggregateGeneration !== undefined && aggregateGeneration !== rootAggregateGeneration) ||
228
- targetAttemptGeneration > 0x7fffffffffffffffn ||
237
+ targetAttemptGeneration > MAX_RELOCATION_GENERATION ||
229
238
  sourceNodeGeneration === 0n ||
230
- sourceNodeGeneration > 0x7fffffffffffffffn ||
239
+ sourceNodeGeneration > MAX_RELOCATION_GENERATION ||
231
240
  sourceOwnerLeaseGeneration === 0n ||
232
- sourceOwnerLeaseGeneration > 0x7fffffffffffffffn ||
233
- targetNodeGeneration > 0x7fffffffffffffffn ||
234
- targetOwnerLeaseGeneration > 0x7fffffffffffffffn ||
241
+ sourceOwnerLeaseGeneration > MAX_RELOCATION_GENERATION ||
242
+ targetNodeGeneration > MAX_RELOCATION_GENERATION ||
243
+ targetOwnerLeaseGeneration > MAX_RELOCATION_GENERATION ||
235
244
  coordinatorLeaseGeneration === 0n ||
236
- coordinatorLeaseGeneration > 0x7fffffffffffffffn ||
245
+ coordinatorLeaseGeneration > MAX_RELOCATION_GENERATION ||
237
246
  coordinatorNodeGeneration === 0n ||
238
- coordinatorNodeGeneration > 0x7fffffffffffffffn ||
239
- phase < 1 ||
240
- phase > 9 ||
247
+ coordinatorNodeGeneration > MAX_RELOCATION_GENERATION ||
248
+ phase < RELOCATION_PREPARING_PHASE ||
249
+ phase > RELOCATION_LAST_PHASE ||
241
250
  applicationVersion < 0n ||
242
251
  sourceCleanupState > 2)
243
252
  return undefined;
@@ -276,10 +285,10 @@ function encodeCanonicalRelocationSlot(value) {
276
285
  if (aggregateGeneration > 0x7ffffffffffffffen) {
277
286
  throw new TypeError('Aggregate generation exceeds the issued range.');
278
287
  }
279
- if (aggregateGeneration === 0n && value.phase !== 1) {
288
+ if (aggregateGeneration === 0n && value.phase !== RELOCATION_PREPARING_PHASE) {
280
289
  throw new TypeError('Zero aggregate generation is only valid while preparing.');
281
290
  }
282
- if (targetAttemptGeneration > 0x7fffffffffffffffn) {
291
+ if (targetAttemptGeneration > MAX_RELOCATION_GENERATION) {
283
292
  throw new TypeError('Target attempt generation exceeds the ordinal range.');
284
293
  }
285
294
  const sourceNodeGeneration = canonicalNonZeroOrdinal(value.sourceNodeGeneration, 'source node generation');
@@ -288,7 +297,9 @@ function encodeCanonicalRelocationSlot(value) {
288
297
  const targetOwnerLeaseGeneration = canonicalOrdinal(value.targetOwnerLeaseGeneration, 'target owner lease generation');
289
298
  const coordinatorLeaseGeneration = canonicalNonZeroOrdinal(value.coordinatorLeaseGeneration, 'coordinator lease generation');
290
299
  const coordinatorNodeGeneration = canonicalNonZeroOrdinal(value.coordinatorNodeGeneration, 'coordinator node generation');
291
- if (!Number.isInteger(value.phase) || value.phase < 1 || value.phase > 9) {
300
+ if (!Number.isInteger(value.phase) ||
301
+ value.phase < RELOCATION_PREPARING_PHASE ||
302
+ value.phase > RELOCATION_LAST_PHASE) {
292
303
  throw new TypeError('Canonical relocation phase is invalid.');
293
304
  }
294
305
  if (!Number.isInteger(value.sourceCleanupState) ||
@@ -348,7 +359,7 @@ function encodeCanonicalRelocationPublicationSlot(layout, publication) {
348
359
  coordinatorNodeRid: publication.coordinatorNodeRid ?? nodeRid,
349
360
  coordinatorNodeGeneration: publication.coordinatorNodeGeneration ?? layout.nodeGeneration,
350
361
  coordinatorExpectedStoreVersion: publication.coordinatorExpectedStoreVersion ?? '',
351
- phase: publication.canonicalPhase ?? 8,
362
+ phase: publication.canonicalPhase ?? RELOCATION_COMPLETED_PHASE,
352
363
  applicationVersion,
353
364
  sourceCleanupState: publication.canonicalSourceCleanupState ?? 0
354
365
  });
@@ -370,8 +381,8 @@ function replaceCanonicalRelocationSlot(layout, slot) {
370
381
  body
371
382
  ]);
372
383
  const result = Buffer.concat([envelope, canonicalU32(crc32c(envelope))]);
373
- if (result.byteLength > 1024 * 1024) {
374
- throw new TypeError('Canonical authority payload exceeds 1 MiB.');
384
+ if (result.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
385
+ throw new TypeError(`Canonical authority payload exceeds ${InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`);
375
386
  }
376
387
  return result;
377
388
  }
@@ -721,8 +732,8 @@ function encodeAuthorityEnvelope(base, publication) {
721
732
  }
722
733
  const aggregateGeneration = positiveBigInt(publication.aggregateGeneration, 'aggregate generation');
723
734
  const targetOwnerLeaseGeneration = positiveBigInt(publication.targetOwnerLeaseGeneration, 'target owner lease generation');
724
- if (aggregateGeneration > 0x7fffffffffffffffn ||
725
- targetOwnerLeaseGeneration > 0x7fffffffffffffffn) {
735
+ if (aggregateGeneration > MAX_RELOCATION_GENERATION ||
736
+ targetOwnerLeaseGeneration > MAX_RELOCATION_GENERATION) {
726
737
  throw new TypeError('Relocation publication generations must fit signed 64-bit storage.');
727
738
  }
728
739
  const payload = Buffer.concat([
@@ -738,8 +749,8 @@ function encodeAuthorityEnvelope(base, publication) {
738
749
  i64le(targetOwnerLeaseGeneration),
739
750
  bytes32le(base)
740
751
  ]);
741
- if (payload.byteLength > 1024 * 1024) {
742
- throw new TypeError('Location authority relocation payload exceeds 1 MiB.');
752
+ if (payload.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
753
+ throw new TypeError(`Location authority relocation payload exceeds ${InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`);
743
754
  }
744
755
  return payload;
745
756
  }
@@ -759,8 +770,8 @@ function decodeAuthorityEnvelope(payload) {
759
770
  const base = reader.bytes32();
760
771
  if (!reader.done ||
761
772
  aggregateGeneration === 0n ||
762
- aggregateGeneration > 0x7fffffffffffffffn ||
763
- inventoryDigestBytes.byteLength !== 32 ||
773
+ aggregateGeneration > MAX_RELOCATION_GENERATION ||
774
+ inventoryDigestBytes.byteLength !== actor_join_recovery_codec_1.SHA256_DIGEST_BYTES ||
764
775
  targetOwnerLeaseGeneration <= 0n) {
765
776
  return undefined;
766
777
  }
@@ -852,8 +863,8 @@ function text16le(value) {
852
863
  }
853
864
  function bytes32le(value) {
854
865
  const bytes = Buffer.from(value);
855
- if (bytes.byteLength > 1024 * 1024) {
856
- throw new TypeError('Relocation byte field exceeds 1 MiB.');
866
+ if (bytes.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
867
+ throw new TypeError(`Relocation byte field exceeds ${InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`);
857
868
  }
858
869
  const length = Buffer.alloc(4);
859
870
  length.writeInt32LE(bytes.byteLength);
@@ -1001,7 +1012,7 @@ function canonicalU32(value) {
1001
1012
  return result;
1002
1013
  }
1003
1014
  function canonicalU64(value) {
1004
- if (value < 0n || value > 0xffffffffffffffffn) {
1015
+ if (value < 0n || value > stream_wire_1.UINT64_MAX) {
1005
1016
  throw new TypeError('Canonical authority u64 is invalid.');
1006
1017
  }
1007
1018
  const result = Buffer.alloc(8);
@@ -1010,7 +1021,7 @@ function canonicalU64(value) {
1010
1021
  }
1011
1022
  function canonicalOrdinal(value, name) {
1012
1023
  const ordinal = nonNegativeBigInt(value, name);
1013
- if (ordinal > 0x7fffffffffffffffn) {
1024
+ if (ordinal > MAX_RELOCATION_GENERATION) {
1014
1025
  throw new TypeError(`${name} exceeds the ordinal range.`);
1015
1026
  }
1016
1027
  return ordinal;
@@ -1022,7 +1033,7 @@ function canonicalNonZeroOrdinal(value, name) {
1022
1033
  return ordinal;
1023
1034
  }
1024
1035
  function canonicalI64(value) {
1025
- if (value < 0n || value > 0x7fffffffffffffffn) {
1036
+ if (value < 0n || value > MAX_RELOCATION_GENERATION) {
1026
1037
  throw new TypeError('Canonical authority i64 is invalid.');
1027
1038
  }
1028
1039
  const result = Buffer.alloc(8);
@@ -1034,8 +1045,8 @@ class DotnetBinaryReader {
1034
1045
  offset = 0;
1035
1046
  constructor(payload) {
1036
1047
  this.bytes = Buffer.from(payload);
1037
- if (this.bytes.byteLength > 1024 * 1024) {
1038
- throw new TypeError('Location authority relocation payload exceeds 1 MiB.');
1048
+ if (this.bytes.byteLength > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
1049
+ throw new TypeError(`Location authority relocation payload exceeds ${InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`);
1039
1050
  }
1040
1051
  }
1041
1052
  get done() {
@@ -1066,7 +1077,7 @@ class DotnetBinaryReader {
1066
1077
  }
1067
1078
  bytes32() {
1068
1079
  const length = this.take(4).readInt32LE(0);
1069
- if (length < 0 || length > 1024 * 1024) {
1080
+ if (length < 0 || length > InternalDefaults_1.AUTHORITY_ENVELOPE_MAX_BYTES) {
1070
1081
  throw new TypeError('Location authority relocation byte field is invalid.');
1071
1082
  }
1072
1083
  return Buffer.from(this.take(length));
@@ -1,9 +1,30 @@
1
- import type { Message } from '../../contracts/Common/Message';
2
- import type { RequestResult, SubmitResult, ZLinkBackendMessageLike as MessageLike } from '../backend/runtime-values';
3
1
  import type { RoutingId } from '../../contracts';
2
+ import type { Message } from '../../contracts/Common/Message';
4
3
  import type { ApplicationJobPermitPort } from '../application-jobs/contracts';
4
+ import type { ZLinkBackendMessageLike as MessageLike, RequestResult, SubmitResult } from '../backend/runtime-values';
5
5
  import type { ServiceActorRef } from './service-stateful-registry';
6
6
  import type { ServiceDirectSpotRouteFence, ServiceRetiredBoundSessionRouteFence } from './service-stateful-wire-codec';
7
+ export declare enum StreamSessionRuntimeState {
8
+ Created = 1,
9
+ Started = 2,
10
+ Closed = 5
11
+ }
12
+ export declare enum MeshNodeRuntimeState {
13
+ Preparing = 1,
14
+ Serving = 2,
15
+ Retiring = 3,
16
+ Draining = 4,
17
+ Stopped = 5,
18
+ Error = 6
19
+ }
20
+ export declare enum MeshPeerRuntimeState {
21
+ Connecting = 1,
22
+ Preparing = 2,
23
+ Serving = 3,
24
+ Draining = 4,
25
+ Closed = 5,
26
+ NotRequired = 6
27
+ }
7
28
  export interface MeshOperationId {
8
29
  readonly high: bigint;
9
30
  readonly low: bigint;
@@ -142,6 +163,17 @@ export interface ActorTransferControlPayload {
142
163
  readonly resultCode: number;
143
164
  readonly failureErrno: number;
144
165
  }
166
+ /** The Session owner's registry view of one Session binding (Session–Actor binding §5-2). */
167
+ export interface ServiceStreamSessionBinding {
168
+ readonly sessionRid: RoutingId;
169
+ readonly actor: ServiceActorRef;
170
+ readonly sessionOwnerNodeRid: RoutingId;
171
+ readonly sessionOwnerNodeGeneration: bigint;
172
+ readonly sessionOwnerId: string;
173
+ readonly sessionOwnerLeaseGeneration: bigint;
174
+ readonly bindingGeneration: bigint;
175
+ readonly membershipEpoch: bigint;
176
+ }
145
177
  export interface ActorBindingControlPayload {
146
178
  readonly kind: 'actorBinding';
147
179
  readonly transition: 'active' | 'tombstone';
@@ -199,8 +231,13 @@ export interface ReceiveRecord {
199
231
  readonly isPending?: () => boolean;
200
232
  /** Absolute deadline used by the local lifecycle dispatch fence. */
201
233
  readonly deadlineUnixMs?: bigint;
234
+ readonly activationRecord?: Extract<import('./service-stateful-wire-codec').ServiceStatefulWireRecord, {
235
+ readonly kind: 'instanceSpot';
236
+ }>;
202
237
  readonly messageFollowOrigin?: ZLinkMessageFollowOrigin;
203
238
  readonly onTerminalCompletion?: () => void | Promise<void>;
239
+ /** Marks the start of the first handler turn whose terminal record a Close waits for. */
240
+ readonly onHandlerTurnStarted?: () => void;
204
241
  readonly applicationJobPermit?: ApplicationJobPermitPort;
205
242
  readonly releaseRetainedIngress?: () => void;
206
243
  reply(parts: MessageLike | readonly MessageLike[], flags?: number): SubmitResult;
@@ -279,12 +316,7 @@ export interface StreamSessionService {
279
316
  lookupActor(targetNodeRid: RoutingId, actorId: string, timeoutMs?: number): MeshOperationId;
280
317
  bindActor(sessionRid: RoutingId, actor: ServiceActorRef, timeoutMs?: number, onBindingReplaced?: (actorId: string, retiredSession: ServiceRetiredBoundSessionRouteFence, actor: ServiceActorRef) => void, actorAuthority?: StreamSessionActorAuthorityFence): MeshOperationId;
281
318
  unbindActor(sessionRid: RoutingId, actor: ServiceActorRef, expectedBindingGeneration: bigint, timeoutMs?: number): MeshOperationId;
282
- bindings(sessionRid: RoutingId): ReadonlyArray<{
283
- readonly sessionRid: RoutingId;
284
- readonly actor: ServiceActorRef;
285
- readonly bindingGeneration: bigint;
286
- readonly membershipEpoch: bigint;
287
- }>;
319
+ bindings(sessionRid: RoutingId): ReadonlyArray<ServiceStreamSessionBinding>;
288
320
  sendToActor(sessionRid: RoutingId, actor: ServiceActorRef, parts: MessageLike | readonly MessageLike[], options?: {
289
321
  flags?: number;
290
322
  }): Promise<SubmitResult>;
@@ -1,7 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ActorTransferPhase = exports.ActorTransferRole = exports.ActorLifecycleKind = exports.OperationKind = exports.ReceiveKind = exports.ReadyOwnerKind = exports.ReadyDomain = void 0;
3
+ exports.ActorTransferPhase = exports.ActorTransferRole = exports.ActorLifecycleKind = exports.OperationKind = exports.ReceiveKind = exports.ReadyOwnerKind = exports.ReadyDomain = exports.MeshPeerRuntimeState = exports.MeshNodeRuntimeState = exports.StreamSessionRuntimeState = void 0;
4
4
  exports.operationRequiresReply = operationRequiresReply;
5
+ var StreamSessionRuntimeState;
6
+ (function (StreamSessionRuntimeState) {
7
+ StreamSessionRuntimeState[StreamSessionRuntimeState["Created"] = 1] = "Created";
8
+ StreamSessionRuntimeState[StreamSessionRuntimeState["Started"] = 2] = "Started";
9
+ StreamSessionRuntimeState[StreamSessionRuntimeState["Closed"] = 5] = "Closed";
10
+ })(StreamSessionRuntimeState || (exports.StreamSessionRuntimeState = StreamSessionRuntimeState = {}));
11
+ var MeshNodeRuntimeState;
12
+ (function (MeshNodeRuntimeState) {
13
+ MeshNodeRuntimeState[MeshNodeRuntimeState["Preparing"] = 1] = "Preparing";
14
+ MeshNodeRuntimeState[MeshNodeRuntimeState["Serving"] = 2] = "Serving";
15
+ MeshNodeRuntimeState[MeshNodeRuntimeState["Retiring"] = 3] = "Retiring";
16
+ MeshNodeRuntimeState[MeshNodeRuntimeState["Draining"] = 4] = "Draining";
17
+ MeshNodeRuntimeState[MeshNodeRuntimeState["Stopped"] = 5] = "Stopped";
18
+ MeshNodeRuntimeState[MeshNodeRuntimeState["Error"] = 6] = "Error";
19
+ })(MeshNodeRuntimeState || (exports.MeshNodeRuntimeState = MeshNodeRuntimeState = {}));
20
+ var MeshPeerRuntimeState;
21
+ (function (MeshPeerRuntimeState) {
22
+ MeshPeerRuntimeState[MeshPeerRuntimeState["Connecting"] = 1] = "Connecting";
23
+ MeshPeerRuntimeState[MeshPeerRuntimeState["Preparing"] = 2] = "Preparing";
24
+ MeshPeerRuntimeState[MeshPeerRuntimeState["Serving"] = 3] = "Serving";
25
+ MeshPeerRuntimeState[MeshPeerRuntimeState["Draining"] = 4] = "Draining";
26
+ MeshPeerRuntimeState[MeshPeerRuntimeState["Closed"] = 5] = "Closed";
27
+ MeshPeerRuntimeState[MeshPeerRuntimeState["NotRequired"] = 6] = "NotRequired";
28
+ })(MeshPeerRuntimeState || (exports.MeshPeerRuntimeState = MeshPeerRuntimeState = {}));
5
29
  exports.ReadyDomain = Object.freeze({
6
30
  None: 0,
7
31
  Application: 1,
@@ -1,17 +1,5 @@
1
- export interface ServiceSessionBindingRetainedDelivery {
2
- deliver(): Promise<boolean>;
3
- fail(error: unknown): void;
4
- }
5
- export type ServiceSessionBindingAdmissionResult = 'passThrough' | 'retained' | 'rejected';
6
1
  export interface ServiceSessionBindingIngressPort {
7
2
  actorSlot(actorId: string, sessionRid: string): Promise<number | undefined>;
8
- /**
9
- * Holds a current-binding push while its relocation seal is open
10
- * (Session–Actor binding §8.1). The caller has already decided that the push
11
- * names the current binding.
12
- */
13
- retainOutbound(actorId: string, delivery: ServiceSessionBindingRetainedDelivery): Promise<ServiceSessionBindingAdmissionResult>;
14
- clearOutbound(actorId: string, error: unknown): Promise<void>;
15
3
  }
16
4
  export declare function registerServiceSessionBindingIngressPort(service: object, port: ServiceSessionBindingIngressPort): void;
17
5
  export declare function serviceSessionBindingIngressPortIfRegistered(service: object): ServiceSessionBindingIngressPort | undefined;
@@ -137,6 +137,8 @@ export declare class ServiceTerminalOperationRegistry<T> {
137
137
  fail(id: bigint, error: unknown): boolean;
138
138
  cancel(id: bigint): boolean;
139
139
  isPending(id: bigint): boolean;
140
+ get size(): number;
141
+ expire(nowMs: number, turnDeadlineMs: number): number;
140
142
  close(): void;
141
143
  }
142
144
  export {};