@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,28 +1,27 @@
1
- import type { ZLinkListenerRecords } from '../foundation/listener-records';
2
- import type { ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
3
- import type { ActorRef, RoutingId, ZLinkActor, ZLinkChannelClient, ZLinkFanoutClient, ZLinkMessage, ZLinkMeshNodeDescriptor, ZLinkMessageSerializer, ZLinkSpotPublisherClient } from '../../contracts';
4
- import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
5
- import type { ZLinkRuntimeEventPublisher } from '../diagnostics';
6
- import { ZLinkFrameworkRuntimeState } from '../../contracts';
7
- import { type ZLinkSubmitResult } from '../messaging/submission-result';
8
- import { type ReadyRecord, type ReceiveRecord } from '../foundation/service-runtime-contracts';
1
+ import { type ActorRef, type RoutingId, type ZLinkActor, type ZLinkChannelClient, type ZLinkFanoutClient, type ZLinkMeshNodeDescriptor, type ZLinkMessage, type ZLinkMessageSerializer, type ZLinkSpotPublisherClient, ZLinkFrameworkRuntimeState } from '../../contracts';
9
2
  import type { Message } from '../../contracts/Common/Message';
10
- import type { ZLinkMessageFollowOrigin } from '../foundation/service-runtime-contracts';
11
- import { type ZLinkFrameworkRegistration } from '../configuration';
3
+ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
4
+ import type { ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
5
+ import type { ZLinkActivationConcurrency } from '../activation-admission';
6
+ import type { ZLinkRemoteBoundSessionTarget } from '../actors';
7
+ import type { ZLinkActorHandoffPacket } from '../actors/actor-handoff';
12
8
  import type { ZLinkBackendAdapterFactory, ZLinkBackendContext, ZLinkBackendMeshNode } from '../backend/contracts';
13
9
  import { ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
14
10
  import type { ZLinkDispatchErrorReporter } from '../channels';
11
+ import { type ZLinkFrameworkRegistration } from '../configuration';
12
+ import type { ZLinkRuntimeEventPublisher } from '../diagnostics';
13
+ import type { ZLinkListenerRecords } from '../foundation/listener-records';
14
+ import { type ZLinkMessageFollowOrigin, type ReadyRecord, type ReceiveRecord } from '../foundation/service-runtime-contracts';
15
+ import type { ServiceMessageFollowRecord } from '../foundation/service-stateful-wire-codec';
16
+ import { ApplicationJobQueue } from '../host/application-job-queue';
15
17
  import { ZLinkLocationRuntime, type ZLinkLocationEventSink, type ZLinkLocationRuntimeStores } from '../locations';
16
- import type { ZLinkRemoteBoundSessionTarget } from '../actors';
17
- import type { ZLinkActorHandoffPacket } from '../actors/actor-handoff';
18
+ import { type ZLinkSubmitResult } from '../messaging/submission-result';
18
19
  import type { ZLinkDetachedTaskRunner } from './spot-actor-join-dispatch';
19
20
  import type { ZLinkSpotRoutedTransport } from './spot-outbound';
20
21
  import type { ZLinkSpotRouteResolver } from './spot-routing-internal';
21
- import type { ZLinkEntryActorRuntime, ZLinkSpotActorTransferRuntime, ZLinkSpotActorHandoffRuntime, ZLinkSpotBoundSessionRuntime } from './spot-runtime-ports';
22
- import type { ZLinkActivationConcurrency } from '../activation-admission';
23
- import type { ServiceMessageFollowRecord } from '../foundation/service-stateful-wire-codec';
24
- import { ApplicationJobQueue } from '../host/application-job-queue';
22
+ import type { ZLinkEntryActorRuntime, ZLinkSpotActorHandoffRuntime, ZLinkSpotActorTransferRuntime, ZLinkSpotBoundSessionRuntime } from './spot-runtime-ports';
25
23
  export interface ZLinkSpotNodeRuntimeManagerOptions {
24
+ readonly errorSink: import('../diagnostics/dispatch-error-port').ZLinkDispatchErrorSink;
26
25
  readonly listenerRecords?: ZLinkListenerRecords;
27
26
  readonly registration: ZLinkFrameworkRegistration;
28
27
  readonly primaryMeshName?: string;
@@ -43,7 +42,7 @@ export interface ZLinkSpotNodeRuntimeManagerOptions {
43
42
  readonly actorTransferRuntime?: ZLinkSpotActorTransferRuntime;
44
43
  readonly boundSessionRuntime?: ZLinkSpotBoundSessionRuntime;
45
44
  readonly actorHandoffRuntime?: ZLinkSpotActorHandoffRuntime;
46
- readonly detachedTaskRunner?: ZLinkDetachedTaskRunner;
45
+ readonly detachedTaskRunner: ZLinkDetachedTaskRunner;
47
46
  readonly applicationJobQueue?: ApplicationJobQueue;
48
47
  readonly applicationJobReceiveFlowFailureSink?: (error: unknown) => void;
49
48
  readonly peerAdmissionSealed?: (meshName: string) => boolean;
@@ -60,7 +59,7 @@ export declare class ZLinkSpotNodeRuntimeManager {
60
59
  private readonly entryActivations;
61
60
  private readonly entryActivationStarts;
62
61
  private readonly publishers;
63
- private disposed;
62
+ private readonly disposal;
64
63
  private readonly autoConnectLoops;
65
64
  private readonly publishedMeshNodeDescriptors;
66
65
  private readonly descriptorRevisionByMesh;
@@ -110,6 +109,7 @@ export declare class ZLinkSpotNodeRuntimeManager {
110
109
  notifyEntrySpotActorDisconnected(meshName: string, actor: ZLinkActor, signal?: AbortSignal): Promise<void>;
111
110
  serverChannels(meshName: string): [string, import("../configuration").ZLinkMeshChannelOptions][];
112
111
  dispose(signal?: AbortSignal, deadline?: Date): Promise<void>;
112
+ private disposeCore;
113
113
  private dispatchMeshRecord;
114
114
  dispatchEntrySpotRecord(meshName: string, owner: ReadyRecord, record: ReceiveRecord): Promise<boolean>;
115
115
  private ensureEntryActivation;
@@ -117,6 +117,7 @@ export declare class ZLinkSpotNodeRuntimeManager {
117
117
  private primaryEntryActivation;
118
118
  dispatchEntryActorPacket(actorId: string, parts: readonly Message[], returnResponse?: boolean, remoteBoundSessionTarget?: ZLinkRemoteBoundSessionTarget, fallbackActorRef?: ActorRef, requestTerminal?: (response: unknown) => Promise<void> | void, messageFollowOrigin?: ZLinkMessageFollowOrigin): Promise<unknown>;
119
119
  dispatchEntryActorJoin(meshName: string, actor: ZLinkActor, handoffBacklog?: readonly ZLinkActorHandoffPacket[]): Promise<void>;
120
+ executeEntryActor<T>(meshName: string, actorId: string, operation: () => Promise<T>): Promise<T>;
120
121
  publish(meshName: string, channelName: string, topic: string, packetName: string | undefined, event: Message, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
121
122
  private executePublish;
122
123
  tryPublish(meshName: string, channelName: string, topic: string, packetName: string | undefined, event: Message, metadata?: ReadonlyMap<string, string>): ZLinkSubmitResult;
@@ -2,26 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotNodeRuntimeManager = void 0;
4
4
  exports.createFrameworkEntrySpotId = createFrameworkEntrySpotId;
5
- const framework_errors_internal_1 = require("../framework-errors-internal");
5
+ const disposal_1 = require("../disposal");
6
6
  const node_crypto_1 = require("node:crypto");
7
- const Locations_1 = require("../../contracts/Locations");
8
7
  const contracts_1 = require("../../contracts");
9
- const submission_result_1 = require("../messaging/submission-result");
8
+ const InternalDefaults_1 = require("../../contracts/Configuration/InternalDefaults");
9
+ const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
10
10
  const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
11
+ const Locations_1 = require("../../contracts/Locations");
12
+ const abort_1 = require("../abort");
13
+ const mesh_completion_table_1 = require("../backend/mesh-completion-table");
14
+ const mesh_dispatch_pump_1 = require("../backend/mesh-dispatch-pump");
11
15
  const runtime_values_1 = require("../backend/runtime-values");
12
- const service_runtime_contracts_1 = require("../foundation/service-runtime-contracts");
16
+ const channel_clients_1 = require("../channels/channel-clients");
17
+ const channel_envelope_1 = require("../channels/channel-envelope");
13
18
  const configuration_1 = require("../configuration");
14
- const mesh_dispatch_pump_1 = require("../backend/mesh-dispatch-pump");
15
- const execution_1 = require("../execution");
16
19
  const flow_context_1 = require("../diagnostics/flow-context");
17
- const mesh_completion_table_1 = require("../backend/mesh-completion-table");
18
- const channel_envelope_1 = require("../channels/channel-envelope");
20
+ const execution_1 = require("../execution");
21
+ const service_runtime_contracts_1 = require("../foundation/service-runtime-contracts");
22
+ const framework_errors_internal_1 = require("../framework-errors-internal");
23
+ const application_job_queue_1 = require("../host/application-job-queue");
19
24
  const locations_1 = require("../locations");
25
+ const submission_result_1 = require("../messaging/submission-result");
26
+ const routing_id_1 = require("../routing-id");
20
27
  const spot_entry_activation_1 = require("./spot-entry-activation");
21
28
  const spot_node_autoconnect_1 = require("./spot-node-autoconnect");
22
- const routing_id_1 = require("../routing-id");
23
- const abort_1 = require("../abort");
24
- const application_job_queue_1 = require("../host/application-job-queue");
29
+ const DEFAULT_SPOT_NODE_SHUTDOWN_TIMEOUT_MS = 1000;
25
30
  const ZLINK_SEND_DONT_WAIT = 1;
26
31
  // Shared default for the dominant no-metadata call; avoids a Map allocation
27
32
  // per outbound operation.
@@ -34,7 +39,7 @@ class ZLinkSpotNodeRuntimeManager {
34
39
  entryActivations = new Map();
35
40
  entryActivationStarts = new Map();
36
41
  publishers = new Map();
37
- disposed = false;
42
+ disposal = new disposal_1.RuntimeDisposal();
38
43
  autoConnectLoops = [];
39
44
  publishedMeshNodeDescriptors = new Map();
40
45
  // Keep the revision source separate from the cached Store row. A new owner
@@ -51,6 +56,9 @@ class ZLinkSpotNodeRuntimeManager {
51
56
  applicationJobQueue;
52
57
  constructor(options) {
53
58
  this.options = options;
59
+ if (options.detachedTaskRunner === undefined) {
60
+ throw new configuration_1.ZLinkConfigurationException('Spot node runtime requires a detached task runner.');
61
+ }
54
62
  this.applicationJobQueue =
55
63
  options.applicationJobQueue ??
56
64
  new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
@@ -82,7 +90,8 @@ class ZLinkSpotNodeRuntimeManager {
82
90
  peerResolver: location.resolver,
83
91
  executor: capability.executor,
84
92
  events: location.events,
85
- options: location.options
93
+ options: location.options,
94
+ errorSink: this.options.errorSink
86
95
  });
87
96
  const loop = new locations_1.ZLinkAutoConnectLoop({
88
97
  reconciler,
@@ -185,9 +194,9 @@ class ZLinkSpotNodeRuntimeManager {
185
194
  : Object.keys(spotNode.actorFactories ?? {}).length) > 0;
186
195
  node.configureObjectPlacement({
187
196
  role: spotNode.objectRole ?? (hasLegacyObjectFactories ? 'server' : 'none'),
188
- placementWeight: spotNode.placementWeight ?? 100,
197
+ placementWeight: spotNode.placementWeight ?? RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT,
189
198
  activeCapacityLimit: aggregatePlacementCapacity(spotNode.actorLimit ?? 0, spotNode.spotLimit ?? 0),
190
- pendingCapacityLimit: spotNode.activationConcurrencyLimit ?? 128,
199
+ pendingCapacityLimit: spotNode.activationConcurrencyLimit ?? InternalDefaults_1.DEFAULT_ACTIVATION_CONCURRENCY_LIMIT,
191
200
  objectCapabilities: [
192
201
  ...stableTypes.map((type) => `object-type:${type}`),
193
202
  ...instanceSpotTypes.map((type) => `instance-spot-type:${type}`)
@@ -336,13 +345,13 @@ class ZLinkSpotNodeRuntimeManager {
336
345
  },
337
346
  activationConcurrency: this.options.activationConcurrency?.(meshName) ?? {
338
347
  active: 0,
339
- limit: registration.activationConcurrencyLimit ?? 128
348
+ limit: registration.activationConcurrencyLimit ?? InternalDefaults_1.DEFAULT_ACTIVATION_CONCURRENCY_LIMIT
340
349
  },
341
350
  channelWeights: Object.fromEntries(this.serverChannels(meshName).map(([channelName, channel]) => [
342
351
  channelName,
343
352
  state === contracts_1.ZLinkFrameworkRuntimeState.Draining
344
353
  ? 0
345
- : this.effectiveChannelWeight(meshName, channelName, channel.weight ?? 100)
354
+ : this.effectiveChannelWeight(meshName, channelName, channel.weight ?? RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT)
346
355
  ])),
347
356
  applicationVersion: this.options.registration.applicationVersion,
348
357
  maintenanceWave: this.options.registration.maintenanceWave,
@@ -433,7 +442,9 @@ class ZLinkSpotNodeRuntimeManager {
433
442
  if (registration === undefined) {
434
443
  throw new configuration_1.ZLinkConfigurationException(`Mesh '${meshName}' is not registered.`);
435
444
  }
436
- return this.runtimePlacementWeights.get(meshName) ?? registration.placementWeight ?? 100;
445
+ return (this.runtimePlacementWeights.get(meshName) ??
446
+ registration.placementWeight ??
447
+ RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT);
437
448
  }
438
449
  channelWeight(channelName) {
439
450
  const match = this.resolveChannel(channelName);
@@ -486,17 +497,15 @@ class ZLinkSpotNodeRuntimeManager {
486
497
  return this.runtimeChannelWeights.get(meshName)?.get(channelName) ?? configuredWeight;
487
498
  }
488
499
  resolveChannel(channelName) {
489
- const matches = [...this.options.registration.spotNodes].flatMap(([meshName, registration]) => {
490
- const channel = registration.meshChannels?.[channelName];
491
- return channel === undefined ? [] : [{ meshName, configuredWeight: channel.weight ?? 100 }];
492
- });
493
- if (matches.length === 0) {
500
+ const route = (0, channel_clients_1.resolveChannelRoute)(this.options.registration, channelName);
501
+ if (route?.kind !== 'route-mesh') {
494
502
  throw new configuration_1.ZLinkConfigurationException(`RouteMesh channel '${channelName}' is not registered.`);
495
503
  }
496
- if (matches.length > 1) {
497
- throw new configuration_1.ZLinkConfigurationException(`RouteMesh channel '${channelName}' is registered in more than one Mesh.`);
498
- }
499
- return matches[0];
504
+ const match = (0, channel_clients_1.requireUniqueRouteMeshChannel)(route.matches, `RouteMesh channel '${channelName}' is registered in more than one Mesh.`);
505
+ return {
506
+ meshName: match.meshName,
507
+ configuredWeight: match.mesh.meshChannels?.[channelName]?.weight ?? RegistrationBuilderPolicy_1.ZLINK_DEFAULT_PUBLIC_WEIGHT
508
+ };
500
509
  }
501
510
  scheduleRuntimeWeightPublication(meshName, applyWeight) {
502
511
  const publish = this.runtimeWeightPublication
@@ -508,12 +517,7 @@ class ZLinkSpotNodeRuntimeManager {
508
517
  await this.publishMeshNodeState(state, undefined, meshName);
509
518
  });
510
519
  this.runtimeWeightPublication = publish;
511
- if (this.options.detachedTaskRunner !== undefined) {
512
- this.options.detachedTaskRunner.runDetached(`RouteMesh '${meshName}' runtime weight publication`, async () => await publish);
513
- }
514
- else {
515
- void publish.catch(() => undefined);
516
- }
520
+ this.options.detachedTaskRunner.runDetached(`RouteMesh '${meshName}' runtime weight publication`, async () => await publish);
517
521
  }
518
522
  get primaryMeshCompletions() {
519
523
  const meshName = this.options.primaryMeshName ?? this.meshNodes.keys().next().value;
@@ -553,18 +557,16 @@ class ZLinkSpotNodeRuntimeManager {
553
557
  serverChannels(meshName) {
554
558
  return Object.entries(this.options.registration.spotNodes.get(meshName)?.meshChannels ?? {}).filter(([, channel]) => channel.server === true);
555
559
  }
556
- async dispose(signal, deadline) {
557
- this.disposed = true;
560
+ dispose(signal, deadline) {
561
+ return this.disposal.run(() => this.disposeCore(signal, deadline));
562
+ }
563
+ async disposeCore(signal, deadline) {
558
564
  const autoConnectLoops = [...this.autoConnectLoops];
559
565
  const entryActivations = [...this.entryActivations.values()];
560
566
  const meshPumps = [...this.meshPumps.values()];
561
567
  const meshNodes = [...this.meshNodes.values()];
562
568
  const meshCompletions = [...this.meshCompletions.values()];
563
- this.entryActivations.clear();
564
- this.autoConnectLoops.length = 0;
565
- this.meshPumps.clear();
566
569
  const publishers = [...this.publishers.values()];
567
- this.publishers.clear();
568
570
  const errors = [];
569
571
  const settle = async (operations) => {
570
572
  const results = await Promise.allSettled(operations);
@@ -577,19 +579,23 @@ class ZLinkSpotNodeRuntimeManager {
577
579
  await settle(entryActivations.reverse().map((activation) => activation.dispose(deadline)));
578
580
  await settle(meshPumps.reverse().map((pump) => pump.dispose()));
579
581
  await settle(meshNodes.reverse().map(async (node) => {
580
- node.shutdown(1000);
582
+ node.shutdown(DEFAULT_SPOT_NODE_SHUTDOWN_TIMEOUT_MS);
581
583
  node.close();
582
584
  }));
583
585
  for (const completions of meshCompletions) {
584
586
  completions.dispose();
585
587
  }
586
- this.meshNodes.clear();
587
- this.meshCompletions.clear();
588
588
  await settle(autoConnectLoops.map((loop) => loop.finishTransportShutdown(signal)));
589
589
  if (errors.length === 1)
590
590
  throw errors[0];
591
591
  if (errors.length > 1)
592
592
  throw new AggregateError(errors, 'SPOT node runtime cleanup failed.');
593
+ this.entryActivations.clear();
594
+ this.autoConnectLoops.length = 0;
595
+ this.meshPumps.clear();
596
+ this.publishers.clear();
597
+ this.meshNodes.clear();
598
+ this.meshCompletions.clear();
593
599
  }
594
600
  async dispatchMeshRecord(meshName, owner, record) {
595
601
  if (record.kind === service_runtime_contracts_1.ReceiveKind.Completion) {
@@ -699,7 +705,6 @@ class ZLinkSpotNodeRuntimeManager {
699
705
  spotPublisherClient: this.options.spotPublisherClient,
700
706
  routedTransport: this.options.routedTransport,
701
707
  spotRouterChannelIdForMesh: this.options.spotRouterChannelIdForMesh,
702
- channelMeshNameForChannel: (channelName) => resolveChannelMeshName(this.options.registration, channelName),
703
708
  timerHandlers: spotNode.entrySpotTimerHandlers,
704
709
  packetHandlers: spotNode.entrySpotPacketHandlers,
705
710
  subscriptionHandlers: spotNode.entrySpotSubscriptionHandlers,
@@ -780,8 +785,15 @@ class ZLinkSpotNodeRuntimeManager {
780
785
  }
781
786
  await activation.commitServiceActorJoin(actor, handoffBacklog);
782
787
  }
788
+ executeEntryActor(meshName, actorId, operation) {
789
+ const activation = this.entryActivations.get(meshName);
790
+ if (activation === undefined) {
791
+ throw new configuration_1.ZLinkConfigurationException(`Entry Spot Actor '${actorId}' has no activation for MeshNode '${meshName}'.`);
792
+ }
793
+ return activation.executeActor(actorId, operation);
794
+ }
783
795
  publish(meshName, channelName, topic, packetName, event, signal, metadata = EMPTY_SPOT_METADATA) {
784
- if (this.disposed) {
796
+ if (this.disposal.started) {
785
797
  return Promise.reject(runtimeShutdownError());
786
798
  }
787
799
  if (signal?.aborted === true) {
@@ -803,7 +815,7 @@ class ZLinkSpotNodeRuntimeManager {
803
815
  return this.publishWithFlags(meshName, channelName, topic, packetName, event, ZLINK_SEND_DONT_WAIT, metadata);
804
816
  }
805
817
  publishWithFlags(meshName, channelName, topic, packetName, event, flags, metadata) {
806
- if (this.disposed) {
818
+ if (this.disposal.started) {
807
819
  throw runtimeShutdownError();
808
820
  }
809
821
  const publisher = this.publishers.get(meshName);
@@ -834,31 +846,14 @@ function createFrameworkEntrySpotId(prefix) {
834
846
  }
835
847
  return `${prefix}-entry-${(0, node_crypto_1.randomUUID)()}`;
836
848
  }
837
- function resolveChannelMeshName(registration, channelName) {
838
- const matches = [...registration.spotNodes.entries()]
839
- .filter(([, node]) => Object.prototype.hasOwnProperty.call(node.meshChannels ?? {}, channelName))
840
- .map(([meshName]) => meshName);
841
- return matches.length === 1 ? matches[0] : undefined;
842
- }
843
849
  function mapPublishSubmitStatus(result) {
844
- switch (result) {
845
- case runtime_values_1.SubmitResult.Ok:
846
- return submission_result_1.ZLinkSubmitStatus.Submitted;
847
- case runtime_values_1.SubmitResult.Backpressured:
848
- case runtime_values_1.SubmitResult.NotAdmitted:
849
- return submission_result_1.ZLinkSubmitStatus.Backpressured;
850
- case runtime_values_1.SubmitResult.NotFound:
851
- // A publish with no matching subscriber is a successful zero-recipient
852
- // operation, not an operation-specific not-found failure.
853
- return submission_result_1.ZLinkSubmitStatus.Submitted;
854
- case runtime_values_1.SubmitResult.NotConnected:
855
- return submission_result_1.ZLinkSubmitStatus.RouteNotConnected;
856
- case runtime_values_1.SubmitResult.Terminated:
857
- case runtime_values_1.SubmitResult.InvalidHandle:
858
- return submission_result_1.ZLinkSubmitStatus.Shutdown;
859
- default:
860
- throw new configuration_1.ZLinkConfigurationException(`Logical Multicast failed with submit result '${result}'.`);
861
- }
850
+ // Source publication preserves its local admission status before commit.
851
+ if (result === runtime_values_1.SubmitResult.NotAdmitted || result === runtime_values_1.SubmitResult.Backpressured)
852
+ return submission_result_1.ZLinkSubmitStatus.Backpressured;
853
+ // A publish with no matching subscriber succeeds with zero recipients.
854
+ if (result === runtime_values_1.SubmitResult.NotFound)
855
+ return submission_result_1.ZLinkSubmitStatus.Submitted;
856
+ return (0, submission_result_1.classifySubmitResult)(result, 'Logical Multicast').status;
862
857
  }
863
858
  function requireEntrySpotReply(result) {
864
859
  if (result !== runtime_values_1.SubmitResult.Ok) {
@@ -866,8 +861,8 @@ function requireEntrySpotReply(result) {
866
861
  }
867
862
  }
868
863
  function requirePublicRuntimeWeight(value, label) {
869
- if (!Number.isInteger(value) || value < 0 || value > 10_000) {
870
- throw new configuration_1.ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
864
+ if (!(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(value)) {
865
+ throw new configuration_1.ZLinkConfigurationException(`${label} must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_PUBLIC_WEIGHT}.`);
871
866
  }
872
867
  return value;
873
868
  }
@@ -927,7 +922,7 @@ function objectCapability(objectKind, stableType, factory) {
927
922
  };
928
923
  }
929
924
  function aggregatePlacementCapacity(actorLimit, spotLimit) {
930
- const unlimited = 0x7fff_ffff;
925
+ const unlimited = RegistrationBuilderPolicy_1.ZLINK_MAX_CAPACITY;
931
926
  const actors = actorLimit === 0 ? unlimited : actorLimit;
932
927
  const spots = spotLimit === 0 ? unlimited : spotLimit;
933
928
  return Math.min(unlimited, actors + spots);
@@ -1,9 +1,9 @@
1
- import type { RoutingId, ZLinkChannelClient, ZLinkChannelRequestCall, ZLinkPublishCall, ZLinkSendCall, ZLinkSpotOutbound, ZLinkSpotRequestCall, ZLinkSpotSendCall, ZLinkSpotPublisherClient } from '../../contracts';
2
- import { type ZLinkSubmitResult } from '../messaging/submission-result';
1
+ import { type RoutingId, type ZLinkChannelClient, type ZLinkChannelRequestCall, type ZLinkPublishCall, type ZLinkSendCall, type ZLinkSpotOutbound, type ZLinkSpotPublisherClient, type ZLinkSpotRequestCall, type ZLinkSpotSendCall } from '../../contracts';
3
2
  import type { ZLinkBackendSpot } from '../backend/contracts';
3
+ import { type ZLinkSubmitResult } from '../messaging/submission-result';
4
+ import { type SpotHandle } from './spot-handle';
4
5
  import type { ZLinkSpotRouteTarget } from './spot-routing-internal';
5
6
  import { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
6
- import { type SpotHandle } from './spot-handle';
7
7
  export interface DefaultZLinkSpotOutboundOptions {
8
8
  readonly serial: ZLinkSpotSerialTurnExecutor;
9
9
  readonly channelClient?: ZLinkChannelClient;
@@ -58,6 +58,7 @@ export interface ZLinkSpotRoutedTransport {
58
58
  requestFromSpotToSpot?<TReply = unknown>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: unknown, options: ZLinkSpotRoutedRequestOptions): Promise<TReply>;
59
59
  }
60
60
  export interface ZLinkSpotRoutedSendOptions {
61
+ readonly instanceSpot?: boolean;
61
62
  readonly packetName?: string;
62
63
  /** Internal end-to-end budget remaining for route admission. */
63
64
  readonly timeoutMs?: number;
@@ -3,14 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultZLinkSpotOutbound = void 0;
4
4
  exports.sendToSpotHandle = sendToSpotHandle;
5
5
  exports.requestToSpotHandle = requestToSpotHandle;
6
- const framework_errors_internal_1 = require("../framework-errors-internal");
7
6
  const contracts_1 = require("../../contracts");
8
- const submission_result_1 = require("../messaging/submission-result");
9
- const routing_id_1 = require("../routing-id");
7
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
10
8
  const configuration_1 = require("../configuration");
11
- const workers_1 = require("../workers");
12
9
  const execution_1 = require("../execution");
10
+ const framework_errors_internal_1 = require("../framework-errors-internal");
13
11
  const packet_name_1 = require("../messaging/packet-name");
12
+ const submission_result_1 = require("../messaging/submission-result");
13
+ const routing_id_1 = require("../routing-id");
14
+ const workers_1 = require("../workers");
14
15
  const spot_handle_1 = require("./spot-handle");
15
16
  class DefaultZLinkSpotOutbound {
16
17
  serial;
@@ -93,13 +94,13 @@ function createAddressedSpotSendCall(serial, transport, spotId, message, sourceS
93
94
  selectOnce(options, 'instanceSpot');
94
95
  options.instanceSpot = true;
95
96
  if (instanceSpotType !== undefined) {
96
- options.instanceSpotType = requireAddressValue(instanceSpotType, 'Instance Spot type', 255);
97
+ options.instanceSpotType = requireAddressValue(instanceSpotType, 'Instance Spot type', CoreTypes_1.ZLINK_MAX_STABLE_TYPE_BYTES);
97
98
  }
98
99
  return this;
99
100
  },
100
101
  inMesh(meshName) {
101
102
  selectOnce(options, 'inMesh');
102
- options.initialMeshName = requireAddressValue(meshName, 'Mesh name', 255);
103
+ options.initialMeshName = requireAddressValue(meshName, 'Mesh name', CoreTypes_1.ZLINK_MAX_MESH_NAME_BYTES);
103
104
  return this;
104
105
  },
105
106
  async submit(signal) {
@@ -130,13 +131,13 @@ function createAddressedSpotRequestCall(serial, transport, spotId, request, sour
130
131
  selectOnce(options, 'instanceSpot');
131
132
  options.instanceSpot = true;
132
133
  if (instanceSpotType !== undefined) {
133
- options.instanceSpotType = requireAddressValue(instanceSpotType, 'Instance Spot type', 255);
134
+ options.instanceSpotType = requireAddressValue(instanceSpotType, 'Instance Spot type', CoreTypes_1.ZLINK_MAX_STABLE_TYPE_BYTES);
134
135
  }
135
136
  return this;
136
137
  },
137
138
  inMesh(meshName) {
138
139
  selectOnce(options, 'inMesh');
139
- options.initialMeshName = requireAddressValue(meshName, 'Mesh name', 255);
140
+ options.initialMeshName = requireAddressValue(meshName, 'Mesh name', CoreTypes_1.ZLINK_MAX_MESH_NAME_BYTES);
140
141
  return this;
141
142
  },
142
143
  timeout(timeoutMs) {
@@ -7,6 +7,8 @@ exports.decodeRemoteActorJoinPayload = decodeRemoteActorJoinPayload;
7
7
  exports.decodeHandoffBacklog = decodeHandoffBacklog;
8
8
  exports.decodeRemoteActorRef = decodeRemoteActorRef;
9
9
  exports.decodeRemoteBoundSessionTarget = decodeRemoteBoundSessionTarget;
10
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
11
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
10
12
  const actors_1 = require("../actors");
11
13
  const runtime_message_1 = require("../backend/runtime-message");
12
14
  const routing_id_1 = require("../routing-id");
@@ -58,7 +60,7 @@ function decodeRemoteActorJoinPayload(payload, request, received, raw, envelope)
58
60
  request,
59
61
  requestContentType: typeof payload.requestContentType === 'string'
60
62
  ? payload.requestContentType
61
- : 'application/json'
63
+ : stream_wire_1.ZlinkStreamContentType.Json
62
64
  };
63
65
  }
64
66
  function decodeHandoffBacklog(value) {
@@ -179,8 +181,8 @@ function decodeBoundSessionServiceWireRelocation(value) {
179
181
  }
180
182
  function requireSpotId(value) {
181
183
  const bytes = Buffer.byteLength(value, 'utf8');
182
- if (bytes < 1 || bytes > 255) {
183
- throw new Error('Remote bound session SpotId must contain 1..255 UTF-8 bytes.');
184
+ if (bytes < 1 || bytes > CoreTypes_1.ZLINK_MAX_SPOT_ID_BYTES) {
185
+ throw new Error(`Remote bound session SpotId must contain 1..${CoreTypes_1.ZLINK_MAX_SPOT_ID_BYTES} UTF-8 bytes.`);
184
186
  }
185
187
  return value;
186
188
  }
@@ -1,10 +1,10 @@
1
- import type { ZLinkMessageSerializer, ZLinkSpot } from '../../contracts';
1
+ import { type ZLinkMessageSerializer, type ZLinkSpot } from '../../contracts';
2
2
  import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
3
+ import type { ZLinkApplicationWorkClaim } from '../admission';
3
4
  import type { ZLinkBackendReceived as BackendReceived } from '../backend/runtime-values';
4
5
  import type { ZLinkDispatchErrorReporter } from '../channels';
5
6
  import type { ZLinkSpotHandlerRegistration } from './spot-handler-registry';
6
7
  import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
7
- import type { ZLinkApplicationWorkClaim } from '../admission';
8
8
  interface ZLinkSpotRoutePacketDispatchOptions {
9
9
  readonly packetHandlers: ReadonlyMap<string, readonly ZLinkSpotHandlerRegistration[]>;
10
10
  readonly nativeSpotId: string;
@@ -3,17 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkSpotRoutePacketDispatch = void 0;
4
4
  const contracts_1 = require("../../contracts");
5
5
  const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
6
+ const actors_1 = require("../actors");
7
+ const application_job_queue_scope_1 = require("../application-jobs/application-job-queue-scope");
6
8
  const runtime_message_1 = require("../backend/runtime-message");
7
9
  const channel_envelope_1 = require("../channels/channel-envelope");
8
- const actors_1 = require("../actors");
9
- const handler_instance_scope_1 = require("../handlers/handler-instance-scope");
10
+ const spot_direct_envelope_1 = require("../channels/spot-direct-envelope");
11
+ const flow_context_1 = require("../diagnostics/flow-context");
10
12
  const serial_work_size_1 = require("../execution/serial-work-size");
13
+ const framework_errors_internal_1 = require("../framework-errors-internal");
14
+ const handler_instance_scope_1 = require("../handlers/handler-instance-scope");
11
15
  const spot_remote_codec_1 = require("./spot-remote-codec");
12
16
  const spot_route_replies_1 = require("./spot-route-replies");
13
- const flow_context_1 = require("../diagnostics/flow-context");
14
- const framework_errors_internal_1 = require("../framework-errors-internal");
15
- const application_job_queue_scope_1 = require("../application-jobs/application-job-queue-scope");
16
- const SPOT_DIRECT_ENVELOPE = 'zlink.framework.spot-direct.v1';
17
17
  /** D5: reply metadata attached only to framework-self-generated errors. */
18
18
  const FRAMEWORK_ORIGIN_REPLY_METADATA = Object.freeze({
19
19
  [channel_envelope_1.ZLINK_FRAMEWORK_ORIGIN_METADATA_KEY]: channel_envelope_1.ZLINK_FRAMEWORK_ORIGIN_METADATA_VALUE
@@ -206,7 +206,7 @@ function decodeSpotDirectEnvelope(parts) {
206
206
  }
207
207
  try {
208
208
  const decoded = JSON.parse(parts[0].data().toString());
209
- if (decoded.marker !== SPOT_DIRECT_ENVELOPE ||
209
+ if (decoded.marker !== spot_direct_envelope_1.SPOT_DIRECT_ENVELOPE ||
210
210
  (decoded.kind !== 1 /* ZLinkChannelMessageKind.Request */ &&
211
211
  decoded.kind !== 3 /* ZLinkChannelMessageKind.Command */) ||
212
212
  typeof decoded.channelName !== 'string') {
@@ -232,7 +232,7 @@ function decodeSpotDirectEnvelope(parts) {
232
232
  }
233
233
  function encodeSpotDirectReply(ok, response, error) {
234
234
  return runtime_message_1.ZLinkBufferMessage.fromOwned(Buffer.from(JSON.stringify({
235
- marker: SPOT_DIRECT_ENVELOPE,
235
+ marker: spot_direct_envelope_1.SPOT_DIRECT_ENVELOPE,
236
236
  ok,
237
237
  response,
238
238
  error
@@ -1,7 +1,7 @@
1
- import type { ZLinkBackendMessageLike as MessageLike, ZLinkBackendReceived as BackendReceived } from '../backend/runtime-values';
1
+ import type { ZLinkBackendReceived as BackendReceived, ZLinkBackendMessageLike as MessageLike } from '../backend/runtime-values';
2
2
  import { decodeChannelEnvelope } from '../channels/channel-envelope';
3
- import { encodeSpotRouteBridgeReply } from './spot-route-reply-wire';
4
3
  import type { ZLinkDecodedRemoteActorJoinRequest } from './spot-remote-codec';
4
+ import { encodeSpotRouteBridgeReply } from './spot-route-reply-wire';
5
5
  export interface ZLinkRouteReplySubmitOperation {
6
6
  message(message: MessageLike): ZLinkRouteReplySubmitOperation;
7
7
  submit(): void;
@@ -7,9 +7,11 @@ exports.submitRoutedActorJoinReply = submitRoutedActorJoinReply;
7
7
  exports.submitRoutedActorJoinError = submitRoutedActorJoinError;
8
8
  exports.appendRouteReplyParts = appendRouteReplyParts;
9
9
  exports.hasReplyToken = hasReplyToken;
10
+ const node_os_1 = require("node:os");
10
11
  const channel_envelope_1 = require("../channels/channel-envelope");
11
12
  const configuration_1 = require("../configuration");
12
13
  const spot_route_reply_wire_1 = require("./spot-route-reply-wire");
14
+ const nativeErrnoValues = node_os_1.constants.errno;
13
15
  function submitRouteReply(operation) {
14
16
  try {
15
17
  operation.submit();
@@ -70,5 +72,5 @@ function requireRoutedActorJoinEnvelope(decoded) {
70
72
  function isNativeBadAddress(error) {
71
73
  return (typeof error === 'object' &&
72
74
  error !== null &&
73
- Number(error.nativeErrno) === 14);
75
+ Number(error.nativeErrno) === nativeErrnoValues.EFAULT);
74
76
  }
@@ -1,18 +1,18 @@
1
1
  import type { ZLinkActor, ZLinkMessage, ZLinkMessageSerializer, ZLinkSpotActorJoinResult } from '../../contracts';
2
+ import type { ZLinkActorHandoffPacket, ZLinkActorHandoffResult } from '../actors/actor-handoff';
3
+ import type { ZLinkRemoteBoundSessionTarget } from '../actors/actor-runtime-state';
2
4
  import type { ZLinkBackendReceived as BackendReceived } from '../backend/runtime-values';
3
5
  import { type ZLinkRoutedActorTransferProvider } from './spot-remote-codec';
4
6
  import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
5
- import type { ZLinkActorHandoffPacket, ZLinkActorHandoffResult } from '../actors/actor-handoff';
6
7
  interface ZLinkRoutedActorAdmissionTarget {
7
8
  onActorJoin?(actorId: string, request: ZLinkMessage): Promise<ZLinkSpotActorJoinResult>;
8
9
  }
9
10
  interface ZLinkSpotRoutedActorAdmissionOptions {
10
11
  readonly serial: ZLinkSpotSerialTurnExecutor;
11
- readonly isSpotClosing?: () => boolean;
12
12
  readonly getTarget: () => ZLinkRoutedActorAdmissionTarget;
13
13
  readonly defaultAccept: boolean;
14
14
  readonly routedActorTransferProvider?: ZLinkRoutedActorTransferProvider;
15
- readonly commitTransferredActor?: (actor: ZLinkActor, backlog: readonly ZLinkActorHandoffPacket[]) => Promise<readonly ZLinkActorHandoffResult[]>;
15
+ readonly commitTransferredActor?: (actor: ZLinkActor, backlog: readonly ZLinkActorHandoffPacket[], sealedSession: ZLinkRemoteBoundSessionTarget | undefined) => Promise<readonly ZLinkActorHandoffResult[]>;
16
16
  readonly messageSerializers?: ReadonlyMap<string, ZLinkMessageSerializer>;
17
17
  readonly pendingAdmissionTimeoutMs?: number;
18
18
  /** Spec 27 §4: with tracing Off, inbound flow fields are neither validated nor carried forward. */
@@ -7,7 +7,7 @@ const payload_codec_1 = require("../messaging/payload-codec");
7
7
  const routing_id_1 = require("../routing-id");
8
8
  const spot_remote_codec_1 = require("./spot-remote-codec");
9
9
  const spot_route_replies_1 = require("./spot-route-replies");
10
- const framework_errors_internal_1 = require("../framework-errors-internal");
10
+ const DEFAULT_PENDING_ADMISSION_TIMEOUT_MS = 30_000;
11
11
  class ZLinkSpotRoutedActorAdmission {
12
12
  options;
13
13
  pending = new Map();
@@ -22,15 +22,6 @@ class ZLinkSpotRoutedActorAdmission {
22
22
  if (decoded === undefined) {
23
23
  return false;
24
24
  }
25
- if (this.options.isSpotClosing?.() === true) {
26
- try {
27
- (0, spot_route_replies_1.submitRoutedActorJoinError)(received, decoded, (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestRejected, `Actor '${decoded.actorId}' target Spot is closing.`));
28
- }
29
- finally {
30
- this.closeDecoded(decoded);
31
- }
32
- return true;
33
- }
34
25
  if (decoded.phase === 'admission') {
35
26
  await this.admitTransfer(decoded, received);
36
27
  return true;
@@ -149,7 +140,7 @@ class ZLinkSpotRoutedActorAdmission {
149
140
  throw new Error('Remote actor transfer commit cannot materialize the target actor.');
150
141
  }
151
142
  const { actor, actorRef } = await this.options.routedActorTransferProvider(decoded.actorId, decoded.actorType, decoded.transferAdapterKey, decoded.transferState, decoded.actorEntryNodeRid, decoded.remoteBoundSessionTarget);
152
- const handoffResults = (await this.options.commitTransferredActor?.(actor, decoded.handoffBacklog)) ?? [];
143
+ const handoffResults = (await this.options.commitTransferredActor?.(actor, decoded.handoffBacklog, decoded.remoteBoundSessionTarget)) ?? [];
153
144
  const commitReply = {
154
145
  accepted: true,
155
146
  actorNodeRid: String(actorRef.nodeRid),
@@ -193,7 +184,7 @@ class ZLinkSpotRoutedActorAdmission {
193
184
  pending.deadline = setTimeout(() => {
194
185
  if (this.pending.get(transferId) === pending)
195
186
  this.pending.delete(transferId);
196
- }, this.options.pendingAdmissionTimeoutMs ?? 30_000);
187
+ }, this.options.pendingAdmissionTimeoutMs ?? DEFAULT_PENDING_ADMISSION_TIMEOUT_MS);
197
188
  pending.deadline.unref();
198
189
  }
199
190
  closeDecoded(decoded) {