@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
@@ -108,7 +108,7 @@ export type ServiceWireRelocationObject = {
108
108
  /** Shared CRC-32C wire bounds for the direct relocation payload transfer. */
109
109
  export declare const RELOCATION_PAYLOAD_TOTAL_LENGTH_MAX = 274877906944n;
110
110
  export declare const RELOCATION_PAYLOAD_CHUNK_COUNT_MAX = 4096;
111
- export declare const RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = 67108864;
111
+ export { RELOCATION_STATE_CHUNK_DATA_MAX_BYTES } from '../../contracts/Configuration/InternalDefaults';
112
112
  interface ServiceWireRelocationBase {
113
113
  readonly relocation: ServiceWireOperationId;
114
114
  readonly targetAttemptGeneration: bigint;
@@ -463,6 +463,7 @@ export type ServiceStatefulWireRecord = {
463
463
  } | {
464
464
  readonly kind: 'instanceSpot';
465
465
  readonly activation: 'ready';
466
+ readonly instanceIntent: boolean;
466
467
  readonly route: ServiceInstanceRouteFence;
467
468
  readonly sourceNodeGeneration: bigint;
468
469
  readonly sourceNodeRid: string;
@@ -549,7 +550,7 @@ export declare function decodeSessionRelocationRoute(frame: Uint8Array): Service
549
550
  export declare function encodeInstanceSpotHeader(route: ServiceInstanceRouteFence, sourceNodeGeneration: bigint, sourceNodeRid: string, sourceSpotId: string | undefined, operationKind: 'send' | 'request', operation: {
550
551
  readonly high: bigint;
551
552
  readonly low: bigint;
552
- }, replyRouteId?: bigint, hasMetadata?: boolean): Buffer;
553
+ }, replyRouteId?: bigint, hasMetadata?: boolean, instanceIntent?: boolean): Buffer;
553
554
  export declare function encodeInstanceSpotActivationHeader(target: ServiceInstanceActivationTarget, sourceNodeGeneration: bigint, sourceNodeRid: string, sourceSpotId: string | undefined, operationKind: 'send' | 'request', operation: {
554
555
  readonly high: bigint;
555
556
  readonly low: bigint;
@@ -599,4 +600,3 @@ export declare function encodeServiceWireFrozenActorApplicationRecord(input: {
599
600
  readonly replyRouteId?: bigint;
600
601
  readonly payload: NonNullable<ServiceMaintenanceReplyRelay['payload']>;
601
602
  }): ServiceWireFrozenRecord;
602
- export {};
@@ -36,15 +36,21 @@ exports.decodeServiceWireFrozenRecord = decodeServiceWireFrozenRecord;
36
36
  exports.decodeServiceWireFrozenRecordPrefix = decodeServiceWireFrozenRecordPrefix;
37
37
  exports.encodeServiceWireFrozenRecord = encodeServiceWireFrozenRecord;
38
38
  exports.encodeServiceWireFrozenActorApplicationRecord = encodeServiceWireFrozenActorApplicationRecord;
39
- const service_runtime_contracts_1 = require("./service-runtime-contracts");
40
- const service_wire_m6a_codec_1 = require("./service-wire-m6a-codec");
39
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
40
+ const InternalDefaults_1 = require("../../contracts/Configuration/InternalDefaults");
41
41
  const framework_errors_internal_1 = require("../framework-errors-internal");
42
- const routing_id_1 = require("../routing-id");
43
- const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
44
- const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
45
42
  const service_wire_codec_generated_1 = require("../protocol/service_wire_codec.generated");
46
43
  const service_wire_pilot_codec_generated_1 = require("../protocol/service_wire_pilot_codec.generated");
47
- const PREFIX_SIZE = 5;
44
+ const routing_id_1 = require("../routing-id");
45
+ const service_runtime_contracts_1 = require("./service-runtime-contracts");
46
+ const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
47
+ const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
48
+ const service_wire_m6a_codec_1 = require("./service-wire-m6a-codec");
49
+ const MESSAGE_FOLLOW_MAX_BODY_BYTES = 16 * 1024 * 1024;
50
+ const MESSAGE_FOLLOW_VERSION = 1;
51
+ const INSTANCE_ROUTE_VERSION = 1;
52
+ const INSTANCE_ACTIVATION_VERSION = 2;
53
+ const PREFIX_SIZE = service_wire_binary_primitives_1.SERVICE_WIRE_PREFIX_SIZE;
48
54
  const MAGIC_0 = service_wire_constants_generated_1.SERVICE_WIRE_MAGIC[0];
49
55
  const MAGIC_1 = service_wire_constants_generated_1.SERVICE_WIRE_MAGIC[1];
50
56
  const MAJOR = service_wire_constants_generated_1.SERVICE_WIRE_MAJOR;
@@ -52,7 +58,8 @@ exports.M6bServiceWireCommand = service_wire_constants_generated_1.ServiceWireCo
52
58
  /** Shared CRC-32C wire bounds for the direct relocation payload transfer. */
53
59
  exports.RELOCATION_PAYLOAD_TOTAL_LENGTH_MAX = 274877906944n;
54
60
  exports.RELOCATION_PAYLOAD_CHUNK_COUNT_MAX = 4096;
55
- exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = 67_108_864;
61
+ var InternalDefaults_2 = require("../../contracts/Configuration/InternalDefaults");
62
+ Object.defineProperty(exports, "RELOCATION_STATE_CHUNK_DATA_MAX_BYTES", { enumerable: true, get: function () { return InternalDefaults_2.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES; } });
56
63
  exports.M6bServiceWireFlag = service_wire_constants_generated_1.ServiceWireFlag;
57
64
  function serviceSessionRelocationIdentityKey(value) {
58
65
  const actor = 'targetNodeGeneration' in value.actor ? value.actor.actor : value.actor;
@@ -498,7 +505,7 @@ const STATEFUL_MESSAGE_CONTEXT = {
498
505
  };
499
506
  const STATEFUL_HEADER_PAYLOAD = {
500
507
  packetName: 'wire',
501
- contentType: 'application/json',
508
+ contentType: stream_wire_1.ZlinkStreamContentType.Json,
502
509
  payload: Buffer.from('{}')
503
510
  };
504
511
  function generatedSpotFence(target) {
@@ -615,8 +622,21 @@ function encodeSessionRelocationRoute(value) {
615
622
  function decodeSessionRelocationRoute(frame) {
616
623
  return fromGeneratedSessionRelocationRoute((0, service_wire_pilot_codec_generated_1.decodeSessionRelocationRoute44)(frame));
617
624
  }
618
- function encodeInstanceSpotHeader(route, sourceNodeGeneration, sourceNodeRid, sourceSpotId, operationKind, operation, replyRouteId, hasMetadata = false) {
619
- const routeBody = concat(rid(route.targetNodeRid, 'targetNodeRid'), u64(route.targetNodeGeneration), rid(route.targetSpotId, 'targetSpotId'), u64(route.objectGeneration), text8(route.ownerId, 'ownerId'), u64(route.authorityOwnerGeneration), u64(route.leaseGeneration), text16(route.storeVersion, 'storeVersion'));
625
+ function encodeInstanceSpotHeader(route, sourceNodeGeneration, sourceNodeRid, sourceSpotId, operationKind, operation, replyRouteId, hasMetadata = false, instanceIntent = false) {
626
+ const encodedRoute = (0, service_wire_codec_generated_1.encodeInstanceRouteV1)({
627
+ routeKind: 'ready',
628
+ targetNodeRid: toGeneratedRoutingId(route.targetNodeRid, 'targetNodeRid'),
629
+ targetNodeGeneration: route.targetNodeGeneration,
630
+ targetSpotId: route.targetSpotId,
631
+ authority: {
632
+ objectGeneration: route.objectGeneration,
633
+ ownerId: route.ownerId,
634
+ authorityOwnerGeneration: route.authorityOwnerGeneration,
635
+ leaseGeneration: route.leaseGeneration,
636
+ storeVersion: route.storeVersion
637
+ },
638
+ instanceIntent: instanceIntent ? 'true' : 'false'
639
+ }, STATEFUL_MESSAGE_CONTEXT);
620
640
  if (operationKind === 'send' &&
621
641
  (operation.high !== 0n || operation.low !== 0n || replyRouteId !== undefined)) {
622
642
  throw new RangeError('Instance Spot send must not carry an operation or reply route.');
@@ -624,7 +644,7 @@ function encodeInstanceSpotHeader(route, sourceNodeGeneration, sourceNodeRid, so
624
644
  if (operationKind === 'request' && operation.high === 0n && operation.low === 0n) {
625
645
  throw new RangeError('Instance Spot request requires a non-zero operation.');
626
646
  }
627
- return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(1), u16(routeBody.byteLength), routeBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), ...(operationKind === 'request' ? [u64(requirePositive(replyRouteId, 'replyRouteId'))] : []));
647
+ return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), encodedRoute, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), ...(operationKind === 'request' ? [u64(requirePositive(replyRouteId, 'replyRouteId'))] : []));
628
648
  }
629
649
  function encodeInstanceSpotActivationHeader(target, sourceNodeGeneration, sourceNodeRid, sourceSpotId, operationKind, operation, deadlineUnixMs, replyRouteId, hasMetadata = false) {
630
650
  if (operation.high === 0n && operation.low === 0n) {
@@ -637,7 +657,7 @@ function encodeInstanceSpotActivationHeader(target, sourceNodeGeneration, source
637
657
  throw new RangeError('Instance Spot send must not carry a reply route.');
638
658
  }
639
659
  const targetBody = concat(rid(target.targetNodeRid, 'targetNodeRid'), u64(target.targetNodeGeneration), rid(target.targetSpotId, 'targetSpotId'), text16(target.stableType, 'stableType'), text16(target.descriptorVersion, 'descriptorVersion'));
640
- return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(2), u16(targetBody.byteLength), targetBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), u64(deadlineUnixMs), ...(operationKind === 'request' ? [u64(requirePositive(replyRouteId, 'replyRouteId'))] : []));
660
+ return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(INSTANCE_ACTIVATION_VERSION), u16(targetBody.byteLength), targetBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), u64(deadlineUnixMs), ...(operationKind === 'request' ? [u64(requirePositive(replyRouteId, 'replyRouteId'))] : []));
641
661
  }
642
662
  function encodeUserSpotCreateHeader(record) {
643
663
  return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeUserSpotCreate47)(toGeneratedUserSpotCreate(record)));
@@ -651,10 +671,10 @@ function encodeUserSpotCloseHeader(record) {
651
671
  function encodeMessageFollowHeader(record) {
652
672
  validateMessageFollowRecord(record);
653
673
  const body = concat(messageFollowRoute(record.source), messageFollowRoute(record.target), Buffer.of(record.hopCount), u32(record.queuedMessages, 'queuedMessages'), u32(record.queuedBytes, 'queuedBytes'), u64Any(record.originalOperation.high), u64Any(record.originalOperation.low), u64Any(record.originalReplyRouteId));
654
- if (body.byteLength > 16 * 1024 * 1024) {
655
- throw new RangeError('Message Follow body exceeds 16 MiB.');
674
+ if (body.byteLength > MESSAGE_FOLLOW_MAX_BODY_BYTES) {
675
+ throw new RangeError(`Message Follow body exceeds ${MESSAGE_FOLLOW_MAX_BODY_BYTES / (1024 * 1024)} MiB.`);
656
676
  }
657
- return concat(prefix(exports.M6bServiceWireCommand.messageFollow), Buffer.of(1), u32(body.byteLength, 'messageFollow.length'), body);
677
+ return concat(prefix(exports.M6bServiceWireCommand.messageFollow), Buffer.of(MESSAGE_FOLLOW_VERSION), u32(body.byteLength, 'messageFollow.length'), body);
658
678
  }
659
679
  function decodeStatefulHeader(frame, payloadFrame, metadataFrame) {
660
680
  switch (frame[3]) {
@@ -860,33 +880,44 @@ function decodeStatefulHeader(frame, payloadFrame, metadataFrame) {
860
880
  if ((command.flags & ~exports.M6bServiceWireFlag.metadata) !== 0) {
861
881
  fail(`Invalid command flags '${command.flags}'.`);
862
882
  }
883
+ const routeStart = reader.offset;
863
884
  const version = reader.u8('instanceRoute.version');
864
- if (version !== 1 && version !== 2)
885
+ if (version !== INSTANCE_ROUTE_VERSION && version !== INSTANCE_ACTIVATION_VERSION)
865
886
  fail('Unsupported Instance route version.');
866
887
  const routeLength = reader.u16('instanceRoute.length');
867
888
  const routeEnd = reader.offset + routeLength;
868
- const commonTarget = {
869
- targetNodeRid: reader.rid('targetNodeRid'),
870
- targetNodeGeneration: reader.nonZeroU64('targetNodeGeneration'),
871
- targetSpotId: reader.rid('targetSpotId')
872
- };
873
- const route = version === 1
889
+ const generatedReadyRoute = version === INSTANCE_ROUTE_VERSION
890
+ ? (0, service_wire_codec_generated_1.decodeInstanceRouteV1)(reader.bytes.subarray(routeStart, routeEnd), STATEFUL_MESSAGE_CONTEXT)
891
+ : undefined;
892
+ if (generatedReadyRoute !== undefined && generatedReadyRoute.routeKind !== 'ready') {
893
+ fail('Invalid Ready Instance route kind.');
894
+ }
895
+ const commonTarget = generatedReadyRoute?.routeKind === 'ready'
896
+ ? {
897
+ targetNodeRid: fromGeneratedRoutingId(generatedReadyRoute.targetNodeRid, 'targetNodeRid'),
898
+ targetNodeGeneration: generatedReadyRoute.targetNodeGeneration,
899
+ targetSpotId: generatedReadyRoute.targetSpotId
900
+ }
901
+ : {
902
+ targetNodeRid: reader.rid('targetNodeRid'),
903
+ targetNodeGeneration: reader.nonZeroU64('targetNodeGeneration'),
904
+ targetSpotId: reader.rid('targetSpotId')
905
+ };
906
+ const route = generatedReadyRoute?.routeKind === 'ready'
874
907
  ? {
875
908
  ...commonTarget,
876
- objectGeneration: reader.nonZeroU64('objectGeneration'),
877
- ownerId: reader.text8('ownerId'),
878
- authorityOwnerGeneration: reader.nonZeroU64('authorityOwnerGeneration'),
879
- leaseGeneration: reader.nonZeroU64('leaseGeneration'),
880
- storeVersion: reader.text16('storeVersion')
909
+ ...generatedReadyRoute.authority
881
910
  }
882
911
  : undefined;
883
- const target = version === 2
912
+ const target = version === INSTANCE_ACTIVATION_VERSION
884
913
  ? {
885
914
  ...commonTarget,
886
915
  stableType: reader.text16('stableType'),
887
916
  descriptorVersion: reader.text16('descriptorVersion')
888
917
  }
889
918
  : undefined;
919
+ if (generatedReadyRoute !== undefined)
920
+ reader.offset = routeEnd;
890
921
  if (reader.offset !== routeEnd)
891
922
  fail('Invalid Instance route body length.');
892
923
  const sourceNodeGeneration = reader.nonZeroU64('sourceNodeGeneration');
@@ -900,15 +931,17 @@ function decodeStatefulHeader(frame, payloadFrame, metadataFrame) {
900
931
  low: reader.u64('operation.low')
901
932
  };
902
933
  const operationKind = operationValue === 1 ? 'send' : 'request';
903
- if (version === 1 &&
934
+ if (version === INSTANCE_ROUTE_VERSION &&
904
935
  ((operationKind === 'send' && (operation.high !== 0n || operation.low !== 0n)) ||
905
936
  (operationKind === 'request' && operation.high === 0n && operation.low === 0n))) {
906
937
  fail('Invalid Instance operation identity.');
907
938
  }
908
- if (version === 2 && operation.high === 0n && operation.low === 0n) {
939
+ if (version === INSTANCE_ACTIVATION_VERSION &&
940
+ operation.high === 0n &&
941
+ operation.low === 0n) {
909
942
  fail('Instance activation requires a non-zero operation identity.');
910
943
  }
911
- const deadlineUnixMs = version === 2 ? reader.nonZeroU64('deadlineUnixMs') : undefined;
944
+ const deadlineUnixMs = version === INSTANCE_ACTIVATION_VERSION ? reader.nonZeroU64('deadlineUnixMs') : undefined;
912
945
  const replyRouteId = operationKind === 'request' ? reader.nonZeroU64('replyRouteId') : undefined;
913
946
  reader.end();
914
947
  const common = {
@@ -920,8 +953,13 @@ function decodeStatefulHeader(frame, payloadFrame, metadataFrame) {
920
953
  operation,
921
954
  ...(replyRouteId === undefined ? {} : { replyRouteId })
922
955
  };
923
- return version === 1
924
- ? { ...common, activation: 'ready', route: route }
956
+ return version === INSTANCE_ROUTE_VERSION
957
+ ? {
958
+ ...common,
959
+ activation: 'ready',
960
+ route: route,
961
+ instanceIntent: generatedReadyRoute.instanceIntent === 'true'
962
+ }
925
963
  : {
926
964
  ...common,
927
965
  activation: 'missing',
@@ -931,12 +969,12 @@ function decodeStatefulHeader(frame, payloadFrame, metadataFrame) {
931
969
  }
932
970
  case exports.M6bServiceWireCommand.messageFollow: {
933
971
  requireFlags(command.flags, 0);
934
- if (reader.u8('messageFollow.version') !== 1) {
972
+ if (reader.u8('messageFollow.version') !== MESSAGE_FOLLOW_VERSION) {
935
973
  fail('Unsupported Message Follow version.');
936
974
  }
937
975
  const length = reader.u32('messageFollow.length');
938
976
  const end = reader.offset + length;
939
- if (length > 16 * 1024 * 1024 || end > reader.bytes.byteLength) {
977
+ if (length > MESSAGE_FOLLOW_MAX_BODY_BYTES || end > reader.bytes.byteLength) {
940
978
  fail('Invalid Message Follow body length.');
941
979
  }
942
980
  const record = {
@@ -1110,7 +1148,7 @@ function decodeStatefulReply(frame, expectedCorrelation, operationKind, hasPaylo
1110
1148
  ? 0
1111
1149
  : (() => {
1112
1150
  const value = reader.u32('receiveChunkLimitBytes');
1113
- if (value > exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
1151
+ if (value > InternalDefaults_1.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
1114
1152
  fail('receiveChunkLimitBytes exceeds the relocation state chunk data bound.');
1115
1153
  }
1116
1154
  return value;
@@ -1214,7 +1252,7 @@ function encodeReplyTail(tail) {
1214
1252
  }
1215
1253
  const receiveChunkLimitBytes = tail.receiveChunkLimitBytes ?? 0;
1216
1254
  if (receiveChunkLimitBytes < 0 ||
1217
- receiveChunkLimitBytes > exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
1255
+ receiveChunkLimitBytes > InternalDefaults_1.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
1218
1256
  fail('receiveChunkLimitBytes exceeds the relocation state chunk data bound.');
1219
1257
  }
1220
1258
  const body = concat(spotRef(tail.spot), u64(tail.membershipEpoch), u32(receiveChunkLimitBytes, 'receiveChunkLimitBytes'));
@@ -1275,7 +1313,7 @@ function validateRelocationPhase(value) {
1275
1313
  }
1276
1314
  function applicationPayload(value) {
1277
1315
  const body = concat(text8(value.packetName, 'packetName'), text8(value.contentType, 'contentType'), u32(value.bytes.byteLength, 'payload.length'), value.bytes);
1278
- return concat(Buffer.of(1), u32(body.byteLength, 'applicationPayload.length'), body);
1316
+ return concat(Buffer.of(service_wire_m6a_codec_1.APPLICATION_PAYLOAD_VERSION), u32(body.byteLength, 'applicationPayload.length'), body);
1279
1317
  }
1280
1318
  function prefix(command, flags = 0) {
1281
1319
  return Buffer.from([MAGIC_0, MAGIC_1, MAJOR, command, flags]);
@@ -1323,7 +1361,7 @@ function validateMessageFollowRecord(value, invalid = (message) => {
1323
1361
  if (value.originalOperation.high === 0n && value.originalOperation.low === 0n) {
1324
1362
  invalid('Message Follow originalOperation must not be zero.');
1325
1363
  }
1326
- if (value.originalReplyRouteId < 0n || value.originalReplyRouteId > 0xffffffffffffffffn) {
1364
+ if (value.originalReplyRouteId < 0n || value.originalReplyRouteId > stream_wire_1.UINT64_MAX) {
1327
1365
  invalid('Message Follow originalReplyRouteId must be a u64.');
1328
1366
  }
1329
1367
  }
@@ -1373,7 +1411,7 @@ function u64(value) {
1373
1411
  return result;
1374
1412
  }
1375
1413
  function u64Any(value) {
1376
- if (value < 0n || value > 0xffffffffffffffffn) {
1414
+ if (value < 0n || value > stream_wire_1.UINT64_MAX) {
1377
1415
  throw new RangeError('u64 value is out of range.');
1378
1416
  }
1379
1417
  const result = Buffer.alloc(8);
@@ -1381,7 +1419,7 @@ function u64Any(value) {
1381
1419
  return result;
1382
1420
  }
1383
1421
  function requirePositive(value, name) {
1384
- if (value === undefined || value < 1n || value > 0xffffffffffffffffn) {
1422
+ if (value === undefined || value < 1n || value > stream_wire_1.UINT64_MAX) {
1385
1423
  throw new RangeError(`${name} must be a non-zero u64.`);
1386
1424
  }
1387
1425
  return value;
@@ -1828,7 +1866,7 @@ class FrozenReader {
1828
1866
  return new FrozenReader(body);
1829
1867
  }
1830
1868
  applicationPayload() {
1831
- if (this.u8('applicationPayload.version') !== 1) {
1869
+ if (this.u8('applicationPayload.version') !== service_wire_m6a_codec_1.APPLICATION_PAYLOAD_VERSION) {
1832
1870
  fail('Application payload envelope version must be one.');
1833
1871
  }
1834
1872
  const body = this.body32('application payload');
@@ -1992,26 +2030,22 @@ class FrozenReader {
1992
2030
  body.end('send-ready destination');
1993
2031
  }
1994
2032
  instanceRoute() {
2033
+ const start = this.offset;
1995
2034
  const kind = this.u8('instanceRouteKind');
1996
2035
  if (kind < 1 || kind > 2)
1997
2036
  fail('Invalid Instance route kind.');
1998
2037
  const body = this.body16('Instance route');
2038
+ if (kind === INSTANCE_ROUTE_VERSION) {
2039
+ (0, service_wire_codec_generated_1.decodeInstanceRouteV1)(this.bytes.subarray(start, this.offset), STATEFUL_MESSAGE_CONTEXT);
2040
+ return;
2041
+ }
1999
2042
  body.rid8('targetNodeRid');
2000
2043
  body.nonZeroU64('targetNodeGeneration');
2001
2044
  body.text8('targetSpotId');
2002
- if (kind === 1) {
2003
- body.nonZeroU64('objectGeneration');
2004
- body.text8('ownerId');
2005
- body.nonZeroU64('authorityOwnerGeneration');
2006
- body.nonZeroU64('leaseGeneration');
2007
- body.text16('storeVersion');
2008
- }
2009
- else {
2010
- body.text8('targetMeshName');
2011
- body.text8('stableType');
2012
- body.text8('targetDescriptorVersion');
2013
- body.nonZeroU64('deadlineUnixMs');
2014
- }
2045
+ body.text8('targetMeshName');
2046
+ body.text8('stableType');
2047
+ body.text8('targetDescriptorVersion');
2048
+ body.nonZeroU64('deadlineUnixMs');
2015
2049
  body.end('Instance route');
2016
2050
  }
2017
2051
  relocationObject() {
@@ -51,7 +51,6 @@ export declare class ServiceTopologyRegistry {
51
51
  private peersCore;
52
52
  notRequiredPeers(): readonly ServiceNodeDescriptor[];
53
53
  replaceDiscoveredNotRequired(descriptors: readonly ServiceNodeDescriptor[]): void;
54
- markNotRequired(descriptor: ServiceNodeDescriptor): void;
55
54
  forgetNotRequired(nodeRoutingId: string): void;
56
55
  knownDescriptor(nodeRoutingId: string): ServiceNodeDescriptor | undefined;
57
56
  hasKnownChannelTarget(channelName: string): boolean;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceTopologyRegistry = void 0;
4
4
  exports.validateDescriptor = validateDescriptor;
5
5
  exports.sameServiceNodeDescriptor = sameServiceNodeDescriptor;
6
+ const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
7
+ const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
6
8
  const route_mesh_connection_policy_1 = require("./route-mesh-connection-policy");
7
9
  const service_weighted_selection_1 = require("./service-weighted-selection");
8
10
  const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
9
11
  const REQUIRED_CAPABILITY = service_wire_constants_generated_1.SERVICE_WIRE_REQUIRED_CAPABILITY;
10
- const MAX_CAPACITY = 0x7fff_ffff;
11
- const MAX_PUBLIC_WEIGHT = 10_000;
12
12
  /** Owns immutable peer snapshots and fences late physical-connection events. */
13
13
  class ServiceTopologyRegistry {
14
14
  local;
@@ -134,18 +134,6 @@ class ServiceTopologyRegistry {
134
134
  }
135
135
  this.rebuildSelections();
136
136
  }
137
- markNotRequired(descriptor) {
138
- validateDescriptor(descriptor);
139
- if (descriptor.meshName !== this.local.meshName ||
140
- descriptor.nodeRoutingId === this.local.nodeRoutingId ||
141
- !(0, route_mesh_connection_policy_1.descriptorConnectionNotRequired)(this.local, descriptor)) {
142
- return;
143
- }
144
- this.peersByRid.delete(descriptor.nodeRoutingId);
145
- this.remember(descriptor);
146
- this.notRequiredByRid.set(descriptor.nodeRoutingId, cloneDescriptor(descriptor));
147
- this.rebuildSelections();
148
- }
149
137
  forgetNotRequired(nodeRoutingId) {
150
138
  if (this.notRequiredByRid.delete(nodeRoutingId))
151
139
  this.rebuildSelections();
@@ -157,7 +145,10 @@ class ServiceTopologyRegistry {
157
145
  }
158
146
  hasKnownChannelTarget(channelName) {
159
147
  requireText(channelName, 'channelName');
160
- return [this.local, ...this.knownByRid.values()].some((descriptor) => selectableChannel(descriptor, channelName) !== undefined);
148
+ return [...this.knownByRid.values()].some((descriptor) => (descriptor.state === 'serving' ||
149
+ descriptor.state === 'retiring' ||
150
+ descriptor.state === 'draining') &&
151
+ findChannel(descriptor, channelName) !== undefined);
161
152
  }
162
153
  remember(descriptor) {
163
154
  const current = this.knownByRid.get(descriptor.nodeRoutingId);
@@ -170,18 +161,12 @@ class ServiceTopologyRegistry {
170
161
  }
171
162
  selectChannel(channelName, isReady = () => true) {
172
163
  requireText(channelName, 'channelName');
173
- return this.selectWeightedCycle(`channel:${channelName}`, () => {
174
- const local = {
175
- descriptor: cloneDescriptor(this.local),
176
- connectionId: 'local'
177
- };
178
- return [local, ...this.peersByRid.values()]
179
- .map((peer) => ({
180
- peer: clonePeer(peer),
181
- channel: selectableChannel(peer.descriptor, channelName)
182
- }))
183
- .filter((value) => value.channel !== undefined);
184
- }, (value) => value.channel.weight, (value) => value.peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.peer.descriptor.nodeRoutingId, right.peer.descriptor.nodeRoutingId), (value) => isReady(value.peer))?.peer;
164
+ return this.selectWeightedCycle(`channel:${channelName}`, () => [...this.peersByRid.values()]
165
+ .map((peer) => ({
166
+ peer: clonePeer(peer),
167
+ channel: selectableChannel(peer.descriptor, channelName)
168
+ }))
169
+ .filter((value) => value.channel !== undefined), (value) => value.channel.weight, (value) => value.peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.peer.descriptor.nodeRoutingId, right.peer.descriptor.nodeRoutingId), (value) => isReady(value.peer))?.peer;
185
170
  }
186
171
  selectPlacement(isReady = () => true) {
187
172
  return this.selectWeightedCycle('placement', () => [...this.peersByRid.values()]
@@ -275,8 +260,8 @@ function validateDescriptor(descriptor) {
275
260
  }
276
261
  if (descriptor.maintenanceWave !== undefined) {
277
262
  requireText(descriptor.maintenanceWave, 'maintenanceWave');
278
- if (Buffer.byteLength(descriptor.maintenanceWave, 'utf8') > 255) {
279
- throw new RangeError('maintenanceWave must not exceed 255 UTF-8 bytes.');
263
+ if (Buffer.byteLength(descriptor.maintenanceWave, 'utf8') > CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES) {
264
+ throw new RangeError(`maintenanceWave must not exceed ${CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES} UTF-8 bytes.`);
280
265
  }
281
266
  }
282
267
  validatePublicWeight(descriptor.placementWeight, 'placementWeight');
@@ -302,13 +287,13 @@ function validateDescriptor(descriptor) {
302
287
  }
303
288
  }
304
289
  function validateCapacity(value, allowZero, field) {
305
- if (!Number.isInteger(value) || value < (allowZero ? 0 : 1) || value > MAX_CAPACITY) {
290
+ if (!(allowZero ? (0, RegistrationBuilderPolicy_1.isValidCapacity)(value) : (0, RegistrationBuilderPolicy_1.isValidPositiveCapacity)(value))) {
306
291
  throw new RangeError(`${field} is outside its supported range.`);
307
292
  }
308
293
  }
309
294
  function validatePublicWeight(value, field) {
310
- if (!Number.isInteger(value) || value < 0 || value > MAX_PUBLIC_WEIGHT) {
311
- throw new RangeError(`${field} must be an integer in 0..10000.`);
295
+ if (!(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(value)) {
296
+ throw new RangeError(`${field} must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_PUBLIC_WEIGHT}.`);
312
297
  }
313
298
  }
314
299
  function validateSortedUnique(values, key, field) {
@@ -1,4 +1,9 @@
1
1
  import type { RoutingId } from '../../contracts';
2
+ export declare const SERVICE_WIRE_MAJOR_OFFSET = 2;
3
+ export declare const SERVICE_WIRE_COMMAND_OFFSET: number;
4
+ export declare const SERVICE_WIRE_FLAGS_OFFSET: number;
5
+ export declare const SERVICE_WIRE_PREFIX_SIZE: number;
6
+ export declare const SERVICE_WIRE_TEXT8_MAX_BYTES = 255;
2
7
  export type ServiceWireInvalid = (message: string) => never;
3
8
  /** Encodes text without silently replacing an unpaired UTF-16 surrogate. */
4
9
  export declare function encodeCanonicalServiceWireText(value: string, field: string, maximumBytes: number, invalid: ServiceWireInvalid): Buffer;
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SERVICE_WIRE_TEXT8_MAX_BYTES = exports.SERVICE_WIRE_PREFIX_SIZE = exports.SERVICE_WIRE_FLAGS_OFFSET = exports.SERVICE_WIRE_COMMAND_OFFSET = exports.SERVICE_WIRE_MAJOR_OFFSET = void 0;
3
4
  exports.encodeCanonicalServiceWireText = encodeCanonicalServiceWireText;
4
5
  exports.decodeCanonicalServiceWireText = decodeCanonicalServiceWireText;
5
6
  exports.encodeServiceWireRoutingId = encodeServiceWireRoutingId;
6
7
  exports.decodeServiceWireRoutingId = decodeServiceWireRoutingId;
7
8
  const routing_id_1 = require("../routing-id");
9
+ exports.SERVICE_WIRE_MAJOR_OFFSET = 2;
10
+ exports.SERVICE_WIRE_COMMAND_OFFSET = exports.SERVICE_WIRE_MAJOR_OFFSET + 1;
11
+ exports.SERVICE_WIRE_FLAGS_OFFSET = exports.SERVICE_WIRE_COMMAND_OFFSET + 1;
12
+ exports.SERVICE_WIRE_PREFIX_SIZE = exports.SERVICE_WIRE_FLAGS_OFFSET + 1;
13
+ exports.SERVICE_WIRE_TEXT8_MAX_BYTES = 255;
8
14
  /** Encodes text without silently replacing an unpaired UTF-16 surrogate. */
9
15
  function encodeCanonicalServiceWireText(value, field, maximumBytes, invalid) {
10
16
  const bytes = Buffer.from(value, 'utf8');
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceWireDecodeError = void 0;
4
4
  exports.createServiceWireCodec = createServiceWireCodec;
5
- const PREFIX_SIZE = 5;
5
+ const stream_wire_1 = require("@zlink-systems/stream-wire");
6
+ const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
7
+ const PREFIX_SIZE = service_wire_binary_primitives_1.SERVICE_WIRE_PREFIX_SIZE;
6
8
  const LIVENESS_FRAME_SIZE = PREFIX_SIZE + 8;
7
9
  class ServiceWireDecodeError extends Error {
8
10
  code;
@@ -21,15 +23,15 @@ function createServiceWireCodec(definition) {
21
23
  record.command !== definition.commands.livenessAck) {
22
24
  throw new RangeError('command must be a liveness command.');
23
25
  }
24
- if (record.probeId <= 0n || record.probeId > 0xffffffffffffffffn) {
26
+ if (record.probeId <= 0n || record.probeId > stream_wire_1.UINT64_MAX) {
25
27
  throw new RangeError('probeId must be a non-zero unsigned 64-bit integer.');
26
28
  }
27
29
  const frame = Buffer.allocUnsafe(LIVENESS_FRAME_SIZE);
28
30
  frame[0] = definition.magic[0];
29
31
  frame[1] = definition.magic[1];
30
- frame[2] = definition.major;
31
- frame[3] = record.command;
32
- frame[4] = 0;
32
+ frame[service_wire_binary_primitives_1.SERVICE_WIRE_MAJOR_OFFSET] = definition.major;
33
+ frame[service_wire_binary_primitives_1.SERVICE_WIRE_COMMAND_OFFSET] = record.command;
34
+ frame[service_wire_binary_primitives_1.SERVICE_WIRE_FLAGS_OFFSET] = 0;
33
35
  frame.writeBigUInt64BE(record.probeId, PREFIX_SIZE);
34
36
  return frame;
35
37
  },
@@ -39,16 +41,16 @@ function createServiceWireCodec(definition) {
39
41
  if (frame[0] !== definition.magic[0] || frame[1] !== definition.magic[1]) {
40
42
  fail('invalid-magic');
41
43
  }
42
- if (frame[2] !== definition.major)
44
+ if (frame[service_wire_binary_primitives_1.SERVICE_WIRE_MAJOR_OFFSET] !== definition.major)
43
45
  fail('unsupported-major');
44
- const command = frame[3];
46
+ const command = frame[service_wire_binary_primitives_1.SERVICE_WIRE_COMMAND_OFFSET];
45
47
  if (!knownCommands.has(command))
46
48
  fail('unknown-command');
47
49
  if (command !== definition.commands.livenessProbe &&
48
50
  command !== definition.commands.livenessAck) {
49
51
  fail('unknown-command');
50
52
  }
51
- if (frame[4] !== 0)
53
+ if (frame[service_wire_binary_primitives_1.SERVICE_WIRE_FLAGS_OFFSET] !== 0)
52
54
  fail('forbidden-flag');
53
55
  if (frame.byteLength < LIVENESS_FRAME_SIZE)
54
56
  fail('truncated-field');
@@ -1,5 +1,6 @@
1
1
  export declare const SERVICE_WIRE_MAGIC: readonly [90, 77];
2
2
  export declare const SERVICE_WIRE_MAJOR: 1;
3
+ export declare const SERVICE_WIRE_METADATA_BYTES: 1024;
3
4
  export declare const SERVICE_WIRE_REQUIRED_CAPABILITY: "framework-service-v13";
4
5
  export declare const SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME: "ZLinkFrameworkMultipart";
5
6
  export declare const SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE: "application/x-zlink-multipart";
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidServiceWireTerminalFailure = exports.ServiceWireExactTerminalByFailureCode = exports.ServiceWireBoundaryTerminalResults = exports.ServiceWireFrameworkErrorCode = exports.ServiceWireFlag = exports.ServiceWireCommand = exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = exports.SERVICE_WIRE_REQUIRED_CAPABILITY = exports.SERVICE_WIRE_MAJOR = exports.SERVICE_WIRE_MAGIC = void 0;
3
+ exports.isValidServiceWireTerminalFailure = exports.ServiceWireExactTerminalByFailureCode = exports.ServiceWireBoundaryTerminalResults = exports.ServiceWireFrameworkErrorCode = exports.ServiceWireFlag = exports.ServiceWireCommand = exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = exports.SERVICE_WIRE_REQUIRED_CAPABILITY = exports.SERVICE_WIRE_METADATA_BYTES = exports.SERVICE_WIRE_MAJOR = exports.SERVICE_WIRE_MAGIC = void 0;
4
4
  // Generated from service-wire-v1.schema.json. Do not edit.
5
5
  exports.SERVICE_WIRE_MAGIC = [90, 77];
6
6
  exports.SERVICE_WIRE_MAJOR = 1;
7
+ exports.SERVICE_WIRE_METADATA_BYTES = 1024;
7
8
  exports.SERVICE_WIRE_REQUIRED_CAPABILITY = "framework-service-v13";
8
9
  exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = "ZLinkFrameworkMultipart";
9
10
  exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = "application/x-zlink-multipart";
@@ -1,4 +1,6 @@
1
1
  import { type ServiceNodeDescriptor } from './service-topology-registry';
2
+ export declare const APPLICATION_PAYLOAD_VERSION = 1;
3
+ export declare const APPLICATION_PAYLOAD_MINIMUM_FIELD_BYTES: number;
2
4
  export declare const M6A_SERVICE_WIRE_MAGIC: readonly [90, 77];
3
5
  export declare const M6A_SERVICE_WIRE_MAJOR: 1;
4
6
  export declare const M6A_SERVICE_WIRE_REQUIRED_CAPABILITY: "framework-service-v13";