@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,3 +1,4 @@
1
+ import { ZLINK_DEFAULT_PUBLIC_WEIGHT } from '../../contracts/Configuration/RegistrationBuilderPolicy';
1
2
  import type { ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
2
3
  import type { ZLinkPeerLocationFilter } from '../../contracts/Locations/Keys';
3
4
  import type { ZLinkPeerLocationResolver } from '../../contracts/Locations/Resolvers';
@@ -10,6 +11,7 @@ import type { ZLinkBackendMeshNode } from '../backend/contracts';
10
11
  import { AsyncResource } from 'node:async_hooks';
11
12
  import { ZLinkStateLane } from '../execution/state-lane';
12
13
  import { toBackendRoutingId as toBackendRoutingId } from '../routing-id';
14
+ import { MeshPeerRuntimeState } from '../foundation/service-runtime-contracts';
13
15
  import {
14
16
  ZLinkLocationRuntime,
15
17
  ZLinkOwnerLeaseTracker,
@@ -113,7 +115,7 @@ function meshDescriptorPeerResolver(runtime: ZLinkLocationRuntime): ZLinkPeerLoc
113
115
  nodeRid: descriptor.rid,
114
116
  role: ZLinkLocationRole.Router,
115
117
  endpoint: descriptor.endpoint,
116
- weight: 100,
118
+ weight: ZLINK_DEFAULT_PUBLIC_WEIGHT,
117
119
  draining: descriptor.state !== ZLinkFrameworkRuntimeState.Serving,
118
120
  value: descriptor.descriptorRevision,
119
121
  ownerId: descriptor.ownerId,
@@ -205,7 +207,7 @@ class ZLinkSpotNodeAutoConnectExecutor implements IZLinkAutoConnectExecutor {
205
207
  peer.endpoint === target.endpoint &&
206
208
  (target.nodeRid === undefined || String(peer.routingId) === String(target.nodeRid)) &&
207
209
  peer.lifecycleGeneration === target.lifecycleGeneration &&
208
- peer.state === 3
210
+ peer.state === MeshPeerRuntimeState.Serving
209
211
  );
210
212
  }
211
213
 
@@ -241,7 +243,9 @@ class ZLinkSpotNodeAutoConnectExecutor implements IZLinkAutoConnectExecutor {
241
243
  }
242
244
 
243
245
  private prepareConnectCore(key: string): ZLinkSpotNodeConnectionIntent | undefined {
244
- if (this.connectionIntents.has(key)) return undefined;
246
+ const current = this.connectionIntents.get(key);
247
+ if (current !== undefined)
248
+ return current.connectionIntentId === undefined ? current : undefined;
245
249
  const intent: ZLinkSpotNodeConnectionIntent = {};
246
250
  this.connectionIntents.set(key, intent);
247
251
  return intent;
@@ -252,29 +256,19 @@ class ZLinkSpotNodeAutoConnectExecutor implements IZLinkAutoConnectExecutor {
252
256
  key: string,
253
257
  intent: ZLinkSpotNodeConnectionIntent
254
258
  ): Promise<boolean> {
255
- try {
256
- const connectionIntentId = await this.node.connectPeer({
257
- endpoint: target.endpoint,
258
- expectedRid: target.nodeRid === undefined ? undefined : toBackendRoutingId(target.nodeRid),
259
- expectedSecurityIdentity: toAdmissionSecurityIdentity(target.metadata?.securityIdentity),
260
- expectedLifecycleGeneration: target.lifecycleGeneration
261
- });
262
- const accepted = await this.lane.run(() => {
263
- if (this.connectionIntents.get(key) !== intent) return false;
264
- intent.connectionIntentId = connectionIntentId;
265
- return true;
266
- });
267
- if (!accepted) this.node.removePeerConnection(connectionIntentId);
268
- return accepted;
269
- } catch {
270
- // A discovered endpoint can become unavailable between the store read and
271
- // the socket connect. Leave the target inactive so the next reconciliation
272
- // can retry without terminating the host's background runtime.
273
- await this.lane.run(() => {
274
- if (this.connectionIntents.get(key) === intent) this.connectionIntents.delete(key);
275
- });
276
- return false;
277
- }
259
+ const connectionIntentId = await this.node.connectPeer({
260
+ endpoint: target.endpoint,
261
+ expectedRid: target.nodeRid === undefined ? undefined : toBackendRoutingId(target.nodeRid),
262
+ expectedSecurityIdentity: toAdmissionSecurityIdentity(target.metadata?.securityIdentity),
263
+ expectedLifecycleGeneration: target.lifecycleGeneration
264
+ });
265
+ const accepted = await this.lane.run(() => {
266
+ if (this.connectionIntents.get(key) !== intent) return false;
267
+ intent.connectionIntentId = connectionIntentId;
268
+ return true;
269
+ });
270
+ if (!accepted) this.node.removePeerConnection(connectionIntentId);
271
+ return accepted;
278
272
  }
279
273
 
280
274
  private disconnectPeer(target: ZLinkAutoConnectTarget): void {
@@ -1,61 +1,53 @@
1
- import type { ZLinkListenerRecords } from '../foundation/listener-records';
2
- import {
3
- ZLinkFrameworkInternalErrorKind,
4
- createInternalFrameworkException
5
- } from '../framework-errors-internal';
1
+ import { RuntimeDisposal } from '../disposal';
6
2
  import { randomUUID } from 'node:crypto';
7
- import type { ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
8
- import type {
9
- ActorRef,
10
- RoutingId,
11
- ZLinkActor,
12
- ZLinkChannelClient,
13
- ZLinkFanoutClient,
14
- ZLinkMessage,
15
- ZLinkMeshNodeDescriptor,
16
- ZLinkMessageSerializer,
17
- ZLinkSpotPublisherClient
18
- } from '../../contracts';
19
- import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
20
- import type { ZLinkRuntimeEventPublisher } from '../diagnostics';
21
- import { ZLinkLocationWriteIntent, ZLinkLocationWriteStatus } from '../../contracts/Locations';
22
3
  import {
23
- ZLinkFrameworkRuntimeState,
4
+ type ActorRef,
5
+ type RoutingId,
6
+ type ZLinkActor,
7
+ type ZLinkChannelClient,
8
+ type ZLinkFanoutClient,
9
+ type ZLinkMeshNodeDescriptor,
10
+ type ZLinkMessage,
11
+ type ZLinkMessageSerializer,
12
+ type ZLinkSpotPublisherClient,
24
13
  ZLinkFrameworkException,
14
+ ZLinkFrameworkRuntimeState,
25
15
  ZLinkObjectRole
26
16
  } from '../../contracts';
27
- import { ZLinkSubmitStatus, type ZLinkSubmitResult } from '../messaging/submission-result';
17
+
18
+ import type { Message } from '../../contracts/Common/Message';
19
+ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
20
+ import { DEFAULT_ACTIVATION_CONCURRENCY_LIMIT } from '../../contracts/Configuration/InternalDefaults';
21
+ import {
22
+ ZLINK_DEFAULT_PUBLIC_WEIGHT,
23
+ ZLINK_MAX_CAPACITY,
24
+ ZLINK_MAX_PUBLIC_WEIGHT,
25
+ isValidPublicWeight
26
+ } from '../../contracts/Configuration/RegistrationBuilderPolicy';
28
27
  import {
29
28
  ZLinkRuntimeDispatchErrorAction as ZLinkDispatchErrorAction,
30
29
  ZLinkRuntimeDispatchErrorReason as ZLinkDispatchErrorReason,
31
30
  ZLinkDispatchErrorSurface,
32
31
  ZLinkDispatchMessageKind
33
32
  } from '../../contracts/Dispatch/ZLinkDispatchOptions';
34
- import { SubmitResult, isZLinkBackendResultError } from '../backend/runtime-values';
35
- import {
36
- ReceiveKind,
37
- type ReadyRecord,
38
- type ReceiveRecord
39
- } from '../foundation/service-runtime-contracts';
40
- import type { Message } from '../../contracts/Common/Message';
41
- import type { ZLinkMessageFollowOrigin } from '../foundation/service-runtime-contracts';
42
- import {
43
- ZLinkConfigurationException,
44
- type ZLinkFrameworkRegistration,
45
- type ZLinkSpotNodeOptions
46
- } from '../configuration';
33
+ import { ZLinkLocationWriteIntent, ZLinkLocationWriteStatus } from '../../contracts/Locations';
34
+ import type { ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
35
+ import type { ZLinkLocationOwnerToken } from '../../contracts/Locations/Writes';
36
+ import { createAbortError } from '../abort';
37
+ import type { ZLinkActivationConcurrency } from '../activation-admission';
38
+ import type { ZLinkRemoteBoundSessionTarget } from '../actors';
39
+ import type { ZLinkActorHandoffPacket } from '../actors/actor-handoff';
47
40
  import type {
48
41
  ZLinkBackendAdapterFactory,
49
42
  ZLinkBackendContext,
50
43
  ZLinkBackendMeshNode,
51
44
  ZLinkBackendSpotNode
52
45
  } from '../backend/contracts';
53
- import type { ZLinkLocationOwnerToken } from '../../contracts/Locations/Writes';
54
- import { ZLinkMeshDispatchPump } from '../backend/mesh-dispatch-pump';
55
- import { requireZLinkInfrastructureExecutionArea } from '../execution';
56
- import { runWithOutboundFlow } from '../diagnostics/flow-context';
57
46
  import { ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
47
+ import { ZLinkMeshDispatchPump } from '../backend/mesh-dispatch-pump';
48
+ import { SubmitResult, isZLinkBackendResultError } from '../backend/runtime-values';
58
49
  import type { ZLinkDispatchErrorReporter } from '../channels';
50
+ import { requireUniqueRouteMeshChannel, resolveChannelRoute } from '../channels/channel-clients';
59
51
  import {
60
52
  decodeChannelEnvelope,
61
53
  decodeChannelPayload,
@@ -63,6 +55,31 @@ import {
63
55
  encodeChannelPublishEnvelopeParts,
64
56
  encodeChannelReplyParts
65
57
  } from '../channels/channel-envelope';
58
+ import {
59
+ ZLinkConfigurationException,
60
+ type ZLinkFrameworkRegistration,
61
+ type ZLinkSpotNodeOptions
62
+ } from '../configuration';
63
+ import type { ZLinkRuntimeEventPublisher } from '../diagnostics';
64
+ import { runWithOutboundFlow } from '../diagnostics/flow-context';
65
+ import { requireZLinkInfrastructureExecutionArea } from '../execution';
66
+ import type { ZLinkListenerRecords } from '../foundation/listener-records';
67
+ import {
68
+ type ZLinkMessageFollowOrigin,
69
+ ReceiveKind,
70
+ type ReadyRecord,
71
+ type ReceiveRecord
72
+ } from '../foundation/service-runtime-contracts';
73
+
74
+ import type { ServiceMessageFollowRecord } from '../foundation/service-stateful-wire-codec';
75
+ import {
76
+ ZLinkFrameworkInternalErrorKind,
77
+ createInternalFrameworkException
78
+ } from '../framework-errors-internal';
79
+ import {
80
+ ApplicationJobQueue,
81
+ resolveApplicationJobQueueConfiguration
82
+ } from '../host/application-job-queue';
66
83
  import {
67
84
  ZLinkAutoConnectLoop,
68
85
  ZLinkAutoConnectReconciler,
@@ -70,8 +87,12 @@ import {
70
87
  type ZLinkLocationEventSink,
71
88
  type ZLinkLocationRuntimeStores
72
89
  } from '../locations';
73
- import type { ZLinkRemoteBoundSessionTarget } from '../actors';
74
- import type { ZLinkActorHandoffPacket } from '../actors/actor-handoff';
90
+ import {
91
+ classifySubmitResult,
92
+ ZLinkSubmitStatus,
93
+ type ZLinkSubmitResult
94
+ } from '../messaging/submission-result';
95
+ import { routingIdsEqual, toBackendRoutingId } from '../routing-id';
75
96
  import type { ZLinkDetachedTaskRunner } from './spot-actor-join-dispatch';
76
97
  import { ZLinkEntrySpotActivation } from './spot-entry-activation';
77
98
  import {
@@ -81,20 +102,13 @@ import {
81
102
  } from './spot-node-autoconnect';
82
103
  import type { ZLinkSpotRoutedTransport } from './spot-outbound';
83
104
  import type { ZLinkSpotRouteResolver } from './spot-routing-internal';
84
- import { routingIdsEqual, toBackendRoutingId } from '../routing-id';
85
105
  import type {
86
106
  ZLinkEntryActorRuntime,
87
- ZLinkSpotActorTransferRuntime,
88
107
  ZLinkSpotActorHandoffRuntime,
108
+ ZLinkSpotActorTransferRuntime,
89
109
  ZLinkSpotBoundSessionRuntime
90
110
  } from './spot-runtime-ports';
91
- import { createAbortError } from '../abort';
92
- import type { ZLinkActivationConcurrency } from '../activation-admission';
93
- import type { ServiceMessageFollowRecord } from '../foundation/service-stateful-wire-codec';
94
- import {
95
- ApplicationJobQueue,
96
- resolveApplicationJobQueueConfiguration
97
- } from '../host/application-job-queue';
111
+ const DEFAULT_SPOT_NODE_SHUTDOWN_TIMEOUT_MS = 1000;
98
112
 
99
113
  const ZLINK_SEND_DONT_WAIT = 1;
100
114
 
@@ -103,6 +117,7 @@ const ZLINK_SEND_DONT_WAIT = 1;
103
117
  const EMPTY_SPOT_METADATA: ReadonlyMap<string, string> = new Map();
104
118
 
105
119
  export interface ZLinkSpotNodeRuntimeManagerOptions {
120
+ readonly errorSink: import('../diagnostics/dispatch-error-port').ZLinkDispatchErrorSink;
106
121
  readonly listenerRecords?: ZLinkListenerRecords;
107
122
  readonly registration: ZLinkFrameworkRegistration;
108
123
  readonly primaryMeshName?: string;
@@ -123,7 +138,7 @@ export interface ZLinkSpotNodeRuntimeManagerOptions {
123
138
  readonly actorTransferRuntime?: ZLinkSpotActorTransferRuntime;
124
139
  readonly boundSessionRuntime?: ZLinkSpotBoundSessionRuntime;
125
140
  readonly actorHandoffRuntime?: ZLinkSpotActorHandoffRuntime;
126
- readonly detachedTaskRunner?: ZLinkDetachedTaskRunner;
141
+ readonly detachedTaskRunner: ZLinkDetachedTaskRunner;
127
142
  readonly applicationJobQueue?: ApplicationJobQueue;
128
143
  readonly applicationJobReceiveFlowFailureSink?: (error: unknown) => void;
129
144
  readonly peerAdmissionSealed?: (meshName: string) => boolean;
@@ -147,7 +162,7 @@ export class ZLinkSpotNodeRuntimeManager {
147
162
  string,
148
163
  ReturnType<ZLinkBackendMeshNode['createPublisher']>
149
164
  >();
150
- private disposed = false;
165
+ private readonly disposal = new RuntimeDisposal();
151
166
  private readonly autoConnectLoops: ZLinkAutoConnectLoop[] = [];
152
167
  private readonly publishedMeshNodeDescriptors = new Map<string, ZLinkMeshNodeDescriptor>();
153
168
  // Keep the revision source separate from the cached Store row. A new owner
@@ -164,6 +179,9 @@ export class ZLinkSpotNodeRuntimeManager {
164
179
  private readonly applicationJobQueue: ApplicationJobQueue;
165
180
 
166
181
  constructor(private readonly options: ZLinkSpotNodeRuntimeManagerOptions) {
182
+ if ((options.detachedTaskRunner as unknown) === undefined) {
183
+ throw new ZLinkConfigurationException('Spot node runtime requires a detached task runner.');
184
+ }
167
185
  this.applicationJobQueue =
168
186
  options.applicationJobQueue ??
169
187
  new ApplicationJobQueue(resolveApplicationJobQueueConfiguration());
@@ -207,7 +225,8 @@ export class ZLinkSpotNodeRuntimeManager {
207
225
  peerResolver: location.resolver,
208
226
  executor: capability.executor,
209
227
  events: location.events,
210
- options: location.options
228
+ options: location.options,
229
+ errorSink: this.options.errorSink
211
230
  });
212
231
  const loop = new ZLinkAutoConnectLoop({
213
232
  reconciler,
@@ -323,12 +342,13 @@ export class ZLinkSpotNodeRuntimeManager {
323
342
  : Object.keys(spotNode.actorFactories ?? {}).length) > 0;
324
343
  node.configureObjectPlacement({
325
344
  role: spotNode.objectRole ?? (hasLegacyObjectFactories ? 'server' : 'none'),
326
- placementWeight: spotNode.placementWeight ?? 100,
345
+ placementWeight: spotNode.placementWeight ?? ZLINK_DEFAULT_PUBLIC_WEIGHT,
327
346
  activeCapacityLimit: aggregatePlacementCapacity(
328
347
  spotNode.actorLimit ?? 0,
329
348
  spotNode.spotLimit ?? 0
330
349
  ),
331
- pendingCapacityLimit: spotNode.activationConcurrencyLimit ?? 128,
350
+ pendingCapacityLimit:
351
+ spotNode.activationConcurrencyLimit ?? DEFAULT_ACTIVATION_CONCURRENCY_LIMIT,
332
352
  objectCapabilities: [
333
353
  ...stableTypes.map((type) => `object-type:${type}`),
334
354
  ...instanceSpotTypes.map((type) => `instance-spot-type:${type}`)
@@ -491,14 +511,18 @@ export class ZLinkSpotNodeRuntimeManager {
491
511
  },
492
512
  activationConcurrency: this.options.activationConcurrency?.(meshName) ?? {
493
513
  active: 0,
494
- limit: registration.activationConcurrencyLimit ?? 128
514
+ limit: registration.activationConcurrencyLimit ?? DEFAULT_ACTIVATION_CONCURRENCY_LIMIT
495
515
  },
496
516
  channelWeights: Object.fromEntries(
497
517
  this.serverChannels(meshName).map(([channelName, channel]) => [
498
518
  channelName,
499
519
  state === ZLinkFrameworkRuntimeState.Draining
500
520
  ? 0
501
- : this.effectiveChannelWeight(meshName, channelName, channel.weight ?? 100)
521
+ : this.effectiveChannelWeight(
522
+ meshName,
523
+ channelName,
524
+ channel.weight ?? ZLINK_DEFAULT_PUBLIC_WEIGHT
525
+ )
502
526
  ])
503
527
  ),
504
528
  applicationVersion: this.options.registration.applicationVersion,
@@ -613,7 +637,11 @@ export class ZLinkSpotNodeRuntimeManager {
613
637
  if (registration === undefined) {
614
638
  throw new ZLinkConfigurationException(`Mesh '${meshName}' is not registered.`);
615
639
  }
616
- return this.runtimePlacementWeights.get(meshName) ?? registration.placementWeight ?? 100;
640
+ return (
641
+ this.runtimePlacementWeights.get(meshName) ??
642
+ registration.placementWeight ??
643
+ ZLINK_DEFAULT_PUBLIC_WEIGHT
644
+ );
617
645
  }
618
646
 
619
647
  channelWeight(channelName: string): number {
@@ -686,21 +714,21 @@ export class ZLinkSpotNodeRuntimeManager {
686
714
  readonly meshName: string;
687
715
  readonly configuredWeight: number;
688
716
  } {
689
- const matches = [...this.options.registration.spotNodes].flatMap(([meshName, registration]) => {
690
- const channel = registration.meshChannels?.[channelName];
691
- return channel === undefined ? [] : [{ meshName, configuredWeight: channel.weight ?? 100 }];
692
- });
693
- if (matches.length === 0) {
717
+ const route = resolveChannelRoute(this.options.registration, channelName);
718
+ if (route?.kind !== 'route-mesh') {
694
719
  throw new ZLinkConfigurationException(
695
720
  `RouteMesh channel '${channelName}' is not registered.`
696
721
  );
697
722
  }
698
- if (matches.length > 1) {
699
- throw new ZLinkConfigurationException(
700
- `RouteMesh channel '${channelName}' is registered in more than one Mesh.`
701
- );
702
- }
703
- return matches[0]!;
723
+ const match = requireUniqueRouteMeshChannel(
724
+ route.matches,
725
+ `RouteMesh channel '${channelName}' is registered in more than one Mesh.`
726
+ );
727
+ return {
728
+ meshName: match.meshName,
729
+ configuredWeight:
730
+ match.mesh.meshChannels?.[channelName]?.weight ?? ZLINK_DEFAULT_PUBLIC_WEIGHT
731
+ };
704
732
  }
705
733
 
706
734
  private scheduleRuntimeWeightPublication(
@@ -717,14 +745,10 @@ export class ZLinkSpotNodeRuntimeManager {
717
745
  await this.publishMeshNodeState(state, undefined, meshName);
718
746
  });
719
747
  this.runtimeWeightPublication = publish;
720
- if (this.options.detachedTaskRunner !== undefined) {
721
- this.options.detachedTaskRunner.runDetached(
722
- `RouteMesh '${meshName}' runtime weight publication`,
723
- async () => await publish
724
- );
725
- } else {
726
- void publish.catch(() => undefined);
727
- }
748
+ this.options.detachedTaskRunner.runDetached(
749
+ `RouteMesh '${meshName}' runtime weight publication`,
750
+ async () => await publish
751
+ );
728
752
  }
729
753
 
730
754
  get primaryMeshCompletions(): ZLinkMeshCompletionTable | undefined {
@@ -791,18 +815,17 @@ export class ZLinkSpotNodeRuntimeManager {
791
815
  ).filter(([, channel]) => channel.server === true);
792
816
  }
793
817
 
794
- async dispose(signal?: AbortSignal, deadline?: Date): Promise<void> {
795
- this.disposed = true;
818
+ dispose(signal?: AbortSignal, deadline?: Date): Promise<void> {
819
+ return this.disposal.run(() => this.disposeCore(signal, deadline));
820
+ }
821
+
822
+ private async disposeCore(signal?: AbortSignal, deadline?: Date): Promise<void> {
796
823
  const autoConnectLoops = [...this.autoConnectLoops];
797
824
  const entryActivations = [...this.entryActivations.values()];
798
825
  const meshPumps = [...this.meshPumps.values()];
799
826
  const meshNodes = [...this.meshNodes.values()];
800
827
  const meshCompletions = [...this.meshCompletions.values()];
801
- this.entryActivations.clear();
802
- this.autoConnectLoops.length = 0;
803
- this.meshPumps.clear();
804
828
  const publishers = [...this.publishers.values()];
805
- this.publishers.clear();
806
829
  const errors: unknown[] = [];
807
830
  const settle = async (operations: readonly Promise<unknown>[]) => {
808
831
  const results = await Promise.allSettled(operations);
@@ -818,18 +841,22 @@ export class ZLinkSpotNodeRuntimeManager {
818
841
  await settle(meshPumps.reverse().map((pump) => pump.dispose()));
819
842
  await settle(
820
843
  meshNodes.reverse().map(async (node) => {
821
- node.shutdown(1000);
844
+ node.shutdown(DEFAULT_SPOT_NODE_SHUTDOWN_TIMEOUT_MS);
822
845
  node.close();
823
846
  })
824
847
  );
825
848
  for (const completions of meshCompletions) {
826
849
  completions.dispose();
827
850
  }
828
- this.meshNodes.clear();
829
- this.meshCompletions.clear();
830
851
  await settle(autoConnectLoops.map((loop) => loop.finishTransportShutdown(signal)));
831
852
  if (errors.length === 1) throw errors[0];
832
853
  if (errors.length > 1) throw new AggregateError(errors, 'SPOT node runtime cleanup failed.');
854
+ this.entryActivations.clear();
855
+ this.autoConnectLoops.length = 0;
856
+ this.meshPumps.clear();
857
+ this.publishers.clear();
858
+ this.meshNodes.clear();
859
+ this.meshCompletions.clear();
833
860
  }
834
861
 
835
862
  private async dispatchMeshRecord(
@@ -979,8 +1006,6 @@ export class ZLinkSpotNodeRuntimeManager {
979
1006
  spotPublisherClient: this.options.spotPublisherClient,
980
1007
  routedTransport: this.options.routedTransport,
981
1008
  spotRouterChannelIdForMesh: this.options.spotRouterChannelIdForMesh,
982
- channelMeshNameForChannel: (channelName) =>
983
- resolveChannelMeshName(this.options.registration, channelName),
984
1009
  timerHandlers: spotNode.entrySpotTimerHandlers,
985
1010
  packetHandlers: spotNode.entrySpotPacketHandlers,
986
1011
  subscriptionHandlers: spotNode.entrySpotSubscriptionHandlers,
@@ -1083,6 +1108,16 @@ export class ZLinkSpotNodeRuntimeManager {
1083
1108
  await activation.commitServiceActorJoin(actor, handoffBacklog);
1084
1109
  }
1085
1110
 
1111
+ executeEntryActor<T>(meshName: string, actorId: string, operation: () => Promise<T>): Promise<T> {
1112
+ const activation = this.entryActivations.get(meshName);
1113
+ if (activation === undefined) {
1114
+ throw new ZLinkConfigurationException(
1115
+ `Entry Spot Actor '${actorId}' has no activation for MeshNode '${meshName}'.`
1116
+ );
1117
+ }
1118
+ return activation.executeActor(actorId, operation);
1119
+ }
1120
+
1086
1121
  publish(
1087
1122
  meshName: string,
1088
1123
  channelName: string,
@@ -1092,7 +1127,7 @@ export class ZLinkSpotNodeRuntimeManager {
1092
1127
  signal?: AbortSignal,
1093
1128
  metadata: ReadonlyMap<string, string> = EMPTY_SPOT_METADATA
1094
1129
  ): Promise<ZLinkSubmitResult> {
1095
- if (this.disposed) {
1130
+ if (this.disposal.started) {
1096
1131
  return Promise.reject(runtimeShutdownError());
1097
1132
  }
1098
1133
  if (signal?.aborted === true) {
@@ -1159,7 +1194,7 @@ export class ZLinkSpotNodeRuntimeManager {
1159
1194
  flags: number,
1160
1195
  metadata: ReadonlyMap<string, string>
1161
1196
  ): ZLinkSubmitResult {
1162
- if (this.disposed) {
1197
+ if (this.disposal.started) {
1163
1198
  throw runtimeShutdownError();
1164
1199
  }
1165
1200
  const publisher = this.publishers.get(meshName);
@@ -1208,39 +1243,13 @@ export function createFrameworkEntrySpotId(prefix: string): string {
1208
1243
  return `${prefix}-entry-${randomUUID()}`;
1209
1244
  }
1210
1245
 
1211
- function resolveChannelMeshName(
1212
- registration: ZLinkFrameworkRegistration,
1213
- channelName: string
1214
- ): string | undefined {
1215
- const matches = [...registration.spotNodes.entries()]
1216
- .filter(([, node]) =>
1217
- Object.prototype.hasOwnProperty.call(node.meshChannels ?? {}, channelName)
1218
- )
1219
- .map(([meshName]) => meshName);
1220
- return matches.length === 1 ? matches[0] : undefined;
1221
- }
1222
-
1223
1246
  function mapPublishSubmitStatus(result: number): ZLinkSubmitStatus {
1224
- switch (result) {
1225
- case SubmitResult.Ok:
1226
- return ZLinkSubmitStatus.Submitted;
1227
- case SubmitResult.Backpressured:
1228
- case SubmitResult.NotAdmitted:
1229
- return ZLinkSubmitStatus.Backpressured;
1230
- case SubmitResult.NotFound:
1231
- // A publish with no matching subscriber is a successful zero-recipient
1232
- // operation, not an operation-specific not-found failure.
1233
- return ZLinkSubmitStatus.Submitted;
1234
- case SubmitResult.NotConnected:
1235
- return ZLinkSubmitStatus.RouteNotConnected;
1236
- case SubmitResult.Terminated:
1237
- case SubmitResult.InvalidHandle:
1238
- return ZLinkSubmitStatus.Shutdown;
1239
- default:
1240
- throw new ZLinkConfigurationException(
1241
- `Logical Multicast failed with submit result '${result}'.`
1242
- );
1243
- }
1247
+ // Source publication preserves its local admission status before commit.
1248
+ if (result === SubmitResult.NotAdmitted || result === SubmitResult.Backpressured)
1249
+ return ZLinkSubmitStatus.Backpressured;
1250
+ // A publish with no matching subscriber succeeds with zero recipients.
1251
+ if (result === SubmitResult.NotFound) return ZLinkSubmitStatus.Submitted;
1252
+ return classifySubmitResult(result, 'Logical Multicast').status;
1244
1253
  }
1245
1254
 
1246
1255
  function requireEntrySpotReply(result: number): void {
@@ -1252,8 +1261,10 @@ function requireEntrySpotReply(result: number): void {
1252
1261
  }
1253
1262
 
1254
1263
  function requirePublicRuntimeWeight(value: number, label: string): number {
1255
- if (!Number.isInteger(value) || value < 0 || value > 10_000) {
1256
- throw new ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
1264
+ if (!isValidPublicWeight(value)) {
1265
+ throw new ZLinkConfigurationException(
1266
+ `${label} must be an integer in 0..${ZLINK_MAX_PUBLIC_WEIGHT}.`
1267
+ );
1257
1268
  }
1258
1269
  return value;
1259
1270
  }
@@ -1345,7 +1356,7 @@ function objectCapability(
1345
1356
  }
1346
1357
 
1347
1358
  function aggregatePlacementCapacity(actorLimit: number, spotLimit: number): number {
1348
- const unlimited = 0x7fff_ffff;
1359
+ const unlimited = ZLINK_MAX_CAPACITY;
1349
1360
  const actors = actorLimit === 0 ? unlimited : actorLimit;
1350
1361
  const spots = spotLimit === 0 ? unlimited : spotLimit;
1351
1362
  return Math.min(unlimited, actors + spots);
@@ -1,35 +1,40 @@
1
+ import {
2
+ type RoutingId,
3
+ type ZLinkChannelClient,
4
+ type ZLinkChannelRequestCall,
5
+ type ZLinkMessageMetadata,
6
+ type ZLinkPublishCall,
7
+ type ZLinkRequestCall,
8
+ type ZLinkSendCall,
9
+ type ZLinkSpotOutbound,
10
+ type ZLinkSpotPublisherClient,
11
+ type ZLinkSpotRequestCall,
12
+ type ZLinkSpotSendCall,
13
+ ZLinkSpotKind
14
+ } from '../../contracts';
15
+
16
+ import {
17
+ ZLINK_MAX_MESH_NAME_BYTES,
18
+ ZLINK_MAX_STABLE_TYPE_BYTES
19
+ } from '../../contracts/Common/CoreTypes';
20
+ import type { ZLinkBackendSpot } from '../backend/contracts';
21
+ import { ZLinkConfigurationException } from '../configuration';
22
+ import { requireZLinkYieldTurn } from '../execution';
1
23
  import {
2
24
  ZLinkFrameworkInternalErrorKind,
3
25
  createInternalFrameworkException
4
26
  } from '../framework-errors-internal';
5
- import { ZLinkSpotKind } from '../../contracts';
6
- import type {
7
- RoutingId,
8
- ZLinkChannelClient,
9
- ZLinkChannelRequestCall,
10
- ZLinkPublishCall,
11
- ZLinkRequestCall,
12
- ZLinkSendCall,
13
- ZLinkMessageMetadata,
14
- ZLinkSpotOutbound,
15
- ZLinkSpotRequestCall,
16
- ZLinkSpotSendCall,
17
- ZLinkSpotPublisherClient
18
- } from '../../contracts';
27
+ import { resolveFrameworkPacketName } from '../messaging/packet-name';
19
28
  import {
20
29
  requireOneWayCompletion,
21
30
  throwAlreadySubmitted,
22
31
  type ZLinkSubmitResult
23
32
  } from '../messaging/submission-result';
24
33
  import { normalizeOpaqueRoutingId } from '../routing-id';
25
- import { ZLinkConfigurationException } from '../configuration';
26
- import type { ZLinkBackendSpot } from '../backend/contracts';
27
34
  import { deliverOnSerial } from '../workers';
28
- import { requireZLinkYieldTurn } from '../execution';
29
- import { resolveFrameworkPacketName } from '../messaging/packet-name';
35
+ import { resolveSpotHandle, type ResolvedSpotHandle, type SpotHandle } from './spot-handle';
30
36
  import type { ZLinkSpotRouteTarget } from './spot-routing-internal';
31
37
  import { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
32
- import { resolveSpotHandle, type SpotHandle, type ResolvedSpotHandle } from './spot-handle';
33
38
 
34
39
  export interface DefaultZLinkSpotOutboundOptions {
35
40
  readonly serial: ZLinkSpotSerialTurnExecutor;
@@ -221,6 +226,7 @@ export interface ZLinkSpotRoutedTransport {
221
226
  }
222
227
 
223
228
  export interface ZLinkSpotRoutedSendOptions {
229
+ readonly instanceSpot?: boolean;
224
230
  readonly packetName?: string;
225
231
  /** Internal end-to-end budget remaining for route admission. */
226
232
  readonly timeoutMs?: number;
@@ -260,13 +266,21 @@ function createAddressedSpotSendCall(
260
266
  selectOnce(options, 'instanceSpot');
261
267
  options.instanceSpot = true;
262
268
  if (instanceSpotType !== undefined) {
263
- options.instanceSpotType = requireAddressValue(instanceSpotType, 'Instance Spot type', 255);
269
+ options.instanceSpotType = requireAddressValue(
270
+ instanceSpotType,
271
+ 'Instance Spot type',
272
+ ZLINK_MAX_STABLE_TYPE_BYTES
273
+ );
264
274
  }
265
275
  return this;
266
276
  },
267
277
  inMesh(meshName: string) {
268
278
  selectOnce(options, 'inMesh');
269
- options.initialMeshName = requireAddressValue(meshName, 'Mesh name', 255);
279
+ options.initialMeshName = requireAddressValue(
280
+ meshName,
281
+ 'Mesh name',
282
+ ZLINK_MAX_MESH_NAME_BYTES
283
+ );
270
284
  return this;
271
285
  },
272
286
  async submit(signal?: AbortSignal): Promise<void> {
@@ -316,13 +330,21 @@ function createAddressedSpotRequestCall(
316
330
  selectOnce(options, 'instanceSpot');
317
331
  options.instanceSpot = true;
318
332
  if (instanceSpotType !== undefined) {
319
- options.instanceSpotType = requireAddressValue(instanceSpotType, 'Instance Spot type', 255);
333
+ options.instanceSpotType = requireAddressValue(
334
+ instanceSpotType,
335
+ 'Instance Spot type',
336
+ ZLINK_MAX_STABLE_TYPE_BYTES
337
+ );
320
338
  }
321
339
  return this;
322
340
  },
323
341
  inMesh(meshName: string) {
324
342
  selectOnce(options, 'inMesh');
325
- options.initialMeshName = requireAddressValue(meshName, 'Mesh name', 255);
343
+ options.initialMeshName = requireAddressValue(
344
+ meshName,
345
+ 'Mesh name',
346
+ ZLINK_MAX_MESH_NAME_BYTES
347
+ );
326
348
  return this;
327
349
  },
328
350
  timeout(timeoutMs: number) {