@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
@@ -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,24 +1,5 @@
1
- export interface ServiceSessionBindingRetainedDelivery {
2
- deliver(): Promise<boolean>;
3
- fail(error: unknown): void;
4
- }
5
- export interface ServiceSessionBindingAdmissionClaim {
6
- readonly actorId: string;
7
- readonly objectGeneration: bigint;
8
- readonly actorNodeRid: string;
9
- readonly actorNodeGeneration: bigint;
10
- readonly authorityOwnerGeneration: bigint;
11
- readonly ownerLeaseGeneration: bigint;
12
- readonly producerNodeRid: string;
13
- readonly producerNodeGeneration: bigint;
14
- readonly sessionIdentity: string;
15
- readonly bindingGeneration: bigint;
16
- }
17
- export type ServiceSessionBindingAdmissionResult = 'passThrough' | 'retained' | 'rejected';
18
1
  export interface ServiceSessionBindingIngressPort {
19
2
  actorSlot(actorId: string, sessionRid: string): Promise<number | undefined>;
20
- retainOutbound(claim: ServiceSessionBindingAdmissionClaim, delivery: ServiceSessionBindingRetainedDelivery): Promise<ServiceSessionBindingAdmissionResult>;
21
- clearOutbound(actorId: string, error: unknown): Promise<void>;
22
3
  }
23
4
  export declare function registerServiceSessionBindingIngressPort(service: object, port: ServiceSessionBindingIngressPort): void;
24
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 {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceTerminalOperationRegistry = exports.ServiceStatefulRegistry = exports.ServiceStaleGenerationError = void 0;
4
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
4
5
  const operation_registry_1 = require("./operation-registry");
5
6
  class ServiceStaleGenerationError extends Error {
6
7
  objectKind;
@@ -184,6 +185,7 @@ class ServiceStatefulRegistry {
184
185
  this.actorGenerations.set(actor.actorId, max(this.actorGenerations.get(actor.actorId) ?? 0n, actor.generation));
185
186
  this.actorTypes.set(actor.actorId, stableType);
186
187
  this.actors.set(actor.actorId, restored);
188
+ this.updateBindingMembership(restored);
187
189
  return restored;
188
190
  }
189
191
  actor(actorId) {
@@ -443,6 +445,12 @@ class ServiceTerminalOperationRegistry {
443
445
  isPending(id) {
444
446
  return this.operations.isPending(id);
445
447
  }
448
+ get size() {
449
+ return this.operations.size;
450
+ }
451
+ expire(nowMs, turnDeadlineMs) {
452
+ return this.operations.expire(nowMs, turnDeadlineMs);
453
+ }
446
454
  close() {
447
455
  this.operations.close('Stateful runtime closed.');
448
456
  }
@@ -453,8 +461,8 @@ function actorKey(actor) {
453
461
  }
454
462
  function requireText(value, name) {
455
463
  const bytes = Buffer.byteLength(value);
456
- if (bytes < 1 || bytes > 255 || value.includes('\0')) {
457
- throw new RangeError(`${name} must be 1..255 UTF-8 bytes without NUL.`);
464
+ if (bytes < 1 || bytes > CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES || value.includes('\0')) {
465
+ throw new RangeError(`${name} must be 1..${CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES} UTF-8 bytes without NUL.`);
458
466
  }
459
467
  }
460
468
  function requirePositive(value, name) {
@@ -1,21 +1,16 @@
1
+ import type { ZLinkAuthoritySnapshot } from '../locations/internal-location-contracts';
1
2
  import type { ZLinkDispatchErrorReporter } from '../channels/dispatch-error-reporter';
2
3
  import type { RawServiceMeshRuntime } from './raw-service-mesh-runtime';
3
- import { type ReceiveKindData, type StreamSessionActorAuthorityFence } from './service-runtime-contracts';
4
+ import type { ServiceInstanceActivationRecoveryEnvelope } from './service-instance-activation-recovery-codec';
4
5
  import type { ServiceMailboxRecord } from './service-mailbox';
6
+ import { type ReceiveKindData, type ServiceStreamSessionBinding, type StreamSessionActorAuthorityFence } from './service-runtime-contracts';
5
7
  import { ServiceStatefulRegistry, type ServiceActorRef, type ServiceActorState, type ServiceSessionBinding, type ServiceSpotRef, type ServiceSpotState } from './service-stateful-registry';
6
- import { type ServiceActorRouteFence, type ServiceRetiredBoundSessionRouteFence, type ServiceActorCreateRecord, type ServiceInstanceActivationTarget, type ServiceInstanceRouteFence, type ServiceDirectSpotRouteFence, type ServiceStatefulReplyTail, type ServiceUserSpotCloseRecord, type ServiceUserSpotCreateRecord } from './service-stateful-wire-codec';
8
+ import { type ServiceActorCreateRecord, type ServiceActorRouteFence, type ServiceDirectSpotRouteFence, type ServiceInstanceActivationTarget, type ServiceInstanceRouteFence, type ServiceRetiredBoundSessionRouteFence, type ServiceStatefulReplyTail, type ServiceStatefulWireRecord, type ServiceUserSpotCloseRecord, type ServiceUserSpotCreateRecord } from './service-stateful-wire-codec';
7
9
  import { type ServiceApplicationPayload } from './service-wire-m6a-codec';
8
- import type { ServiceInstanceActivationRecoveryEnvelope } from './service-instance-activation-recovery-codec';
9
- import type { ServiceSessionBindingIngressPort } from './service-session-binding-ingress-port';
10
10
  export interface ServiceSpotMessageFollowSeal {
11
11
  readonly key: string;
12
12
  readonly serial: bigint;
13
13
  }
14
- export interface ServiceBoundSessionSendFence {
15
- readonly targetNodeGeneration: bigint;
16
- readonly authorityOwnerGeneration: bigint;
17
- readonly ownerLeaseGeneration: bigint;
18
- }
19
14
  export interface ServiceStatefulResult {
20
15
  readonly terminalResult: number;
21
16
  readonly failureCode: number;
@@ -50,7 +45,11 @@ export interface ServiceStatefulMailboxData {
50
45
  readonly isPending?: () => boolean;
51
46
  /** Carries the local operation deadline into the lifecycle dispatch lane. */
52
47
  readonly deadlineUnixMs?: bigint;
48
+ readonly activationRecord?: Extract<ServiceStatefulWireRecord, {
49
+ readonly kind: 'instanceSpot';
50
+ }>;
53
51
  readonly onTerminalCompletion?: () => void | Promise<void>;
52
+ readonly onHandlerTurnStarted?: () => void;
54
53
  /** Decoded only by the canonical command-28 generator path. */
55
54
  readonly canonicalApplicationPayload?: ServiceApplicationPayload;
56
55
  readonly reply?: (terminalResult: number, failureCode: number, payload?: ServiceApplicationPayload, tail?: ServiceStatefulReplyTail) => boolean;
@@ -70,9 +69,8 @@ export interface ServiceCanonicalActorJoinCandidate {
70
69
  }
71
70
  export interface ServiceSessionDelivery {
72
71
  readonly binding: ServiceSessionBinding;
73
- readonly bindingIngress?: ServiceSessionBindingIngressPort;
74
72
  /**
75
- * Delivers the retained M6A application frame after the binding fence has
73
+ * Delivers the M6A application frame after the binding fence has
76
74
  * been validated. The stream adapter owns multipart decoding at that point.
77
75
  */
78
76
  readonly deliver: (sessionRid: string, payloadFrame: Uint8Array) => Promise<boolean>;
@@ -91,7 +89,6 @@ export type ServiceInstanceApplicationTarget = ServiceInstanceApplicationIdentit
91
89
  export interface ServiceInstanceApplicationLifecycle {
92
90
  isMaterialized(target: ServiceInstanceApplicationIdentity): boolean;
93
91
  isMaterializing?(target: ServiceInstanceApplicationIdentity): boolean;
94
- isClosing?(target: ServiceInstanceApplicationIdentity): boolean;
95
92
  isIdleEvicting?(target: ServiceInstanceApplicationIdentity): boolean;
96
93
  beginIdleEviction?(target: ServiceInstanceApplicationIdentity): boolean;
97
94
  materialize(target: ServiceInstanceApplicationIdentity, objectGeneration: bigint): Promise<void>;
@@ -119,9 +116,11 @@ export type ServiceInstanceAuthorityRead = {
119
116
  readonly kind: 'creating';
120
117
  readonly objectGeneration: bigint;
121
118
  readonly authorityOwnerGeneration: bigint;
119
+ readonly authority?: ZLinkAuthoritySnapshot;
122
120
  } | {
123
121
  readonly kind: 'ready';
124
122
  readonly route: ServiceInstanceRouteFence;
123
+ readonly authority?: ZLinkAuthoritySnapshot;
125
124
  };
126
125
  export type ServiceInstanceAuthorityReserve = {
127
126
  readonly kind: 'reserved';
@@ -153,9 +152,9 @@ export interface ServiceInstanceActivationAuthority {
153
152
  */
154
153
  export interface ServiceAsyncInstanceActivationAuthority {
155
154
  read(target: ServiceInstanceActivationTarget): Promise<ServiceInstanceAuthorityRead>;
156
- reserve(activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>): Promise<ServiceInstanceAuthorityReserve>;
155
+ reserve(activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>, signal?: AbortSignal): Promise<ServiceInstanceAuthorityReserve>;
157
156
  resume(target: ServiceInstanceActivationTarget, pending: ServicePendingInstanceActivation): Promise<ServiceInstanceActivationReservation>;
158
- commit(target: ServiceInstanceActivationTarget, reservation: ServiceInstanceActivationReservation, spot: ServiceSpotState): Promise<{
157
+ commit(target: ServiceInstanceActivationTarget, reservation: ServiceInstanceActivationReservation, spot: ServiceSpotState, deadlineUnixMs?: bigint): Promise<{
159
158
  readonly kind: 'committed' | 'lost';
160
159
  readonly route: ServiceInstanceRouteFence;
161
160
  }>;
@@ -201,7 +200,6 @@ export declare class ServiceStatefulRuntime {
201
200
  private readonly subscriptions;
202
201
  private readonly instanceIntents;
203
202
  private readonly admittedInstanceOperations;
204
- private readonly pendingInstanceTerminals;
205
203
  private readonly pendingInstanceAuthorityTerminals;
206
204
  private readonly instanceApplicationWaiters;
207
205
  private readonly canonicalActorJoinHandoffs;
@@ -227,7 +225,7 @@ export declare class ServiceStatefulRuntime {
227
225
  private readonly admittedUserSpotOperations;
228
226
  private readonly pendingInstanceActivations;
229
227
  private closed;
230
- constructor(raw: RawServiceMeshRuntime, nodeRid: string, nodeGeneration: bigint);
228
+ constructor(raw: RawServiceMeshRuntime, nodeRid: string, nodeGeneration: bigint, onPendingOperationsChanged?: () => void);
231
229
  setMailboxDropHandler(handler: (record: {
232
230
  readonly kind: 'spot_multicast' | 'actor_control' | 'actor_binding';
233
231
  readonly owner: string;
@@ -263,6 +261,7 @@ export declare class ServiceStatefulRuntime {
263
261
  private finishRecoveredInstanceActivation;
264
262
  recoverPendingInstanceActivation(envelope: ServiceInstanceActivationRecoveryEnvelope, pending: ServicePendingInstanceActivation, expectedCurrentRoute?: ServiceInstanceRouteFence | null): Promise<boolean>;
265
263
  completeRecoveredInstanceActivation(target: ServiceInstanceActivationTarget, route: ServiceInstanceRouteFence, expectedCurrentRoute?: ServiceInstanceRouteFence | null): Promise<ServiceInstanceRouteFence | undefined>;
264
+ /** Resolves once every first terminal record of an activated Instance message is durable. */
266
265
  waitForInstanceApplicationQuiescence(spotId: string, signal?: AbortSignal): Promise<void>;
267
266
  rememberActorRoute(route: ServiceActorRouteFence): void;
268
267
  rememberSpotRoute(route: ServiceDirectSpotRouteFence, expectedCurrentRoute?: ServiceDirectSpotRouteFence | null): void;
@@ -287,10 +286,10 @@ export declare class ServiceStatefulRuntime {
287
286
  readonly sessionRid: string;
288
287
  readonly bindingGeneration: bigint;
289
288
  }): ServiceStatefulPendingOperation;
290
- sendToInstanceSpot(route: ServiceInstanceRouteFence, payload: ServiceApplicationPayload, sourceSpotId?: string, metadataFrame?: Uint8Array): Promise<number>;
289
+ sendToInstanceSpot(route: ServiceInstanceRouteFence, payload: ServiceApplicationPayload, sourceSpotId?: string, metadataFrame?: Uint8Array, instanceIntent?: boolean): Promise<number>;
291
290
  sendToMissingInstanceSpot(target: ServiceInstanceActivationTarget, payload: ServiceApplicationPayload, deadlineUnixMs: bigint, sourceSpotId?: string, metadataFrame?: Uint8Array): Promise<number>;
292
291
  sendToMissingInstanceSpotFrame(target: ServiceInstanceActivationTarget, payloadFrame: Buffer, deadlineUnixMs: bigint, sourceSpotId?: string, metadataFrame?: Uint8Array): Promise<number>;
293
- requestToInstanceSpot(route: ServiceInstanceRouteFence, payload: ServiceApplicationPayload, timeoutMs: number, sourceSpotId?: string, metadataFrame?: Uint8Array): ServiceStatefulPendingOperation;
292
+ requestToInstanceSpot(route: ServiceInstanceRouteFence, payload: ServiceApplicationPayload, timeoutMs: number, sourceSpotId?: string, metadataFrame?: Uint8Array, instanceIntent?: boolean): ServiceStatefulPendingOperation;
294
293
  requestToMissingInstanceSpot(target: ServiceInstanceActivationTarget, payload: ServiceApplicationPayload, timeoutMs: number, sourceSpotId?: string, metadataFrame?: Uint8Array): ServiceStatefulPendingOperation;
295
294
  requestToMissingInstanceSpotFrame(target: ServiceInstanceActivationTarget, payloadFrame: Buffer, deadlineUnixMs: bigint, sourceSpotId?: string, metadataFrame?: Uint8Array): ServiceStatefulPendingOperation;
296
295
  lookupRemoteActor(targetNodeRid: string, actorId: string, timeoutMs: number): ServiceStatefulPendingOperation;
@@ -300,12 +299,14 @@ export declare class ServiceStatefulRuntime {
300
299
  joinActorEntrySpot(actor: ServiceActorRef, targetNodeRid: string, payload: ServiceApplicationPayload | undefined, timeoutMs: number): ServiceStatefulPendingOperation;
301
300
  joinActorEntrySpotCanonical(actor: ServiceActorRef, targetNodeRid: string, request: ServiceApplicationPayload, actorFence: ServiceCanonicalActorJoinCandidate['actorFence'], local: ServiceCanonicalActorJoinCandidate['local'], timeoutMs: number): ServiceStatefulPendingOperation;
302
301
  leaveActor(actor: ServiceActorRef, expectedMembershipEpoch: bigint, timeoutMs: number): ServiceStatefulPendingOperation;
303
- bindSession(sessionRid: string, actor: ServiceActorRef, timeoutMs: number, deliver: ServiceSessionDelivery['deliver'], onBindingReplaced?: ServiceSessionDelivery['onBindingReplaced'], bindingIngress?: ServiceSessionBindingIngressPort, actorAuthority?: StreamSessionActorAuthorityFence): ServiceStatefulPendingOperation;
302
+ bindSession(sessionRid: string, actor: ServiceActorRef, timeoutMs: number, deliver: ServiceSessionDelivery['deliver'], onBindingReplaced?: ServiceSessionDelivery['onBindingReplaced'], actorAuthority?: StreamSessionActorAuthorityFence): ServiceStatefulPendingOperation;
304
303
  unbindSession(sessionRid: string, actor: ServiceActorRef, expectedBindingGeneration: bigint, timeoutMs: number): ServiceStatefulPendingOperation;
305
- sessionBindings(sessionRid: string): readonly ServiceSessionBinding[];
304
+ sessionBindings(sessionRid: string): readonly ServiceStreamSessionBinding[];
306
305
  allSessionBindings(): readonly ServiceSessionBinding[];
307
306
  sendSessionToActor(sessionRid: string, actor: ServiceActorRef, payload: ServiceApplicationPayload): Promise<number>;
308
- sendBoundSession(actor: ServiceActorRef, expectedBindingGeneration: bigint, payload: ServiceApplicationPayload, senderFence?: ServiceBoundSessionSendFence): Promise<number>;
307
+ sendBoundSession(actor: ServiceActorRef, expectedBindingGeneration: bigint, payload: ServiceApplicationPayload): Promise<number>;
308
+ expireOperations(nowMs: number, turnDeadlineMs: number): number;
309
+ get pendingOperationCount(): number;
309
310
  close(): void;
310
311
  private ingress;
311
312
  private handleIngress;
@@ -314,12 +315,15 @@ export declare class ServiceStatefulRuntime {
314
315
  private enqueueActivatedInstanceSpot;
315
316
  private continueMissingInstanceActivation;
316
317
  private continueReadyInstanceMaterialization;
318
+ /**
319
+ * Spot messaging §4 step 12 with §7 step 1: a Close waits for the first terminal
320
+ * record only of a message whose handler turn started before it; a message queued
321
+ * behind that Close is not counted, so it cannot hold the Close it follows.
322
+ */
317
323
  private activationTerminalCompletion;
318
324
  private instanceApplicationTerminalCompletion;
319
325
  private instanceApplicationTarget;
320
- private beginInstanceApplicationOperation;
321
326
  private beginInstanceAuthorityOperation;
322
- private completeInstanceApplicationOperation;
323
327
  private completeInstanceAuthorityOperation;
324
328
  private completeInstanceApplicationWaitersIfQuiescent;
325
329
  private relayMissingInstanceActivation;
@@ -349,6 +353,7 @@ export declare class ServiceStatefulRuntime {
349
353
  private enqueueSessionBindingTombstone;
350
354
  private enqueueSessionBindingRetirement;
351
355
  private deliverBoundSession;
356
+ private traceRejectedBoundSessionSend;
352
357
  private enqueueApplicationFrame;
353
358
  private enqueueLifecycleFrame;
354
359
  private enqueueFrame;
@@ -384,7 +389,6 @@ export declare class ServiceStatefulRuntime {
384
389
  private peekSpotMessageFollow;
385
390
  private takeSpotMessageFollow;
386
391
  private actorFence;
387
- private tryBoundSessionSendFence;
388
392
  private tryActorFence;
389
393
  private acceptCanonicalActorFence;
390
394
  private trySpotFence;