@spine-event-engine/server 2.0.0-snapshot.23 → 2.0.0-snapshot.25

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 (300) hide show
  1. package/README.md +38 -11
  2. package/REFERENCE.md +278 -141
  3. package/dist/agent/agent-acceptance-receipts.d.ts +69 -0
  4. package/dist/agent/agent-acceptance-receipts.d.ts.map +1 -0
  5. package/dist/agent/agent-acceptance-receipts.js +198 -0
  6. package/dist/agent/agent-acceptance-receipts.js.map +1 -0
  7. package/dist/agent/agent-execution-capacity.d.ts +37 -9
  8. package/dist/agent/agent-execution-capacity.d.ts.map +1 -1
  9. package/dist/agent/agent-execution-capacity.js +73 -15
  10. package/dist/agent/agent-execution-capacity.js.map +1 -1
  11. package/dist/agent/agent-history.d.ts +15 -10
  12. package/dist/agent/agent-history.d.ts.map +1 -1
  13. package/dist/agent/agent-history.js +26 -14
  14. package/dist/agent/agent-history.js.map +1 -1
  15. package/dist/agent/agent-live-ai-audit.d.ts +95 -0
  16. package/dist/agent/agent-live-ai-audit.d.ts.map +1 -0
  17. package/dist/agent/agent-live-ai-audit.js +290 -0
  18. package/dist/agent/agent-live-ai-audit.js.map +1 -0
  19. package/dist/agent/agent-live-ai-runtime.d.ts +300 -0
  20. package/dist/agent/agent-live-ai-runtime.d.ts.map +1 -0
  21. package/dist/agent/agent-live-ai-runtime.js +611 -0
  22. package/dist/agent/agent-live-ai-runtime.js.map +1 -0
  23. package/dist/agent/agent-live-audit.d.ts +67 -0
  24. package/dist/agent/agent-live-audit.d.ts.map +1 -0
  25. package/dist/agent/agent-live-audit.js +121 -0
  26. package/dist/agent/agent-live-audit.js.map +1 -0
  27. package/dist/agent/agent-live-budget.d.ts +84 -0
  28. package/dist/agent/agent-live-budget.d.ts.map +1 -0
  29. package/dist/agent/agent-live-budget.js +161 -0
  30. package/dist/agent/agent-live-budget.js.map +1 -0
  31. package/dist/agent/agent-live-fault.d.ts +18 -0
  32. package/dist/agent/agent-live-fault.d.ts.map +1 -0
  33. package/dist/agent/{agent-execution-fault.js → agent-live-fault.js} +7 -7
  34. package/dist/agent/agent-live-fault.js.map +1 -0
  35. package/dist/agent/agent-live-inputs.d.ts +74 -0
  36. package/dist/agent/agent-live-inputs.d.ts.map +1 -0
  37. package/dist/agent/agent-live-inputs.js +15 -0
  38. package/dist/agent/agent-live-inputs.js.map +1 -0
  39. package/dist/agent/agent-live-interaction-events.d.ts +46 -0
  40. package/dist/agent/agent-live-interaction-events.d.ts.map +1 -0
  41. package/dist/agent/agent-live-interaction-events.js +104 -0
  42. package/dist/agent/agent-live-interaction-events.js.map +1 -0
  43. package/dist/agent/agent-live-mcp-controls.d.ts +129 -0
  44. package/dist/agent/agent-live-mcp-controls.d.ts.map +1 -0
  45. package/dist/agent/agent-live-mcp-controls.js +228 -0
  46. package/dist/agent/agent-live-mcp-controls.js.map +1 -0
  47. package/dist/agent/agent-live-mcp-host.d.ts +88 -0
  48. package/dist/agent/agent-live-mcp-host.d.ts.map +1 -0
  49. package/dist/agent/{agent-mcp-host.js → agent-live-mcp-host.js} +1 -1
  50. package/dist/agent/agent-live-mcp-host.js.map +1 -0
  51. package/dist/agent/{agent-mcp-runtime.d.ts → agent-live-mcp-runtime.d.ts} +6 -6
  52. package/dist/agent/agent-live-mcp-runtime.d.ts.map +1 -0
  53. package/dist/agent/{agent-mcp-runtime.js → agent-live-mcp-runtime.js} +13 -42
  54. package/dist/agent/agent-live-mcp-runtime.js.map +1 -0
  55. package/dist/agent/agent-live-read-runtime.d.ts +61 -0
  56. package/dist/agent/agent-live-read-runtime.d.ts.map +1 -0
  57. package/dist/agent/agent-live-read-runtime.js +121 -0
  58. package/dist/agent/agent-live-read-runtime.js.map +1 -0
  59. package/dist/agent/agent-model-selection.d.ts +21 -34
  60. package/dist/agent/agent-model-selection.d.ts.map +1 -1
  61. package/dist/agent/agent-model-selection.js +61 -78
  62. package/dist/agent/agent-model-selection.js.map +1 -1
  63. package/dist/bus/command-bus.d.ts +14 -18
  64. package/dist/bus/command-bus.d.ts.map +1 -1
  65. package/dist/bus/command-bus.js +31 -48
  66. package/dist/bus/command-bus.js.map +1 -1
  67. package/dist/bus/event-bus.d.ts +82 -104
  68. package/dist/bus/event-bus.d.ts.map +1 -1
  69. package/dist/bus/event-bus.js +87 -127
  70. package/dist/bus/event-bus.js.map +1 -1
  71. package/dist/context/bounded-context.d.ts +143 -91
  72. package/dist/context/bounded-context.d.ts.map +1 -1
  73. package/dist/context/bounded-context.js +753 -359
  74. package/dist/context/bounded-context.js.map +1 -1
  75. package/dist/context/entity-inbox.d.ts +7 -2
  76. package/dist/context/entity-inbox.d.ts.map +1 -1
  77. package/dist/context/entity-inbox.js +43 -20
  78. package/dist/context/entity-inbox.js.map +1 -1
  79. package/dist/context/local-inbox-handoff.d.ts +35 -34
  80. package/dist/context/local-inbox-handoff.d.ts.map +1 -1
  81. package/dist/context/local-inbox-handoff.js +123 -135
  82. package/dist/context/local-inbox-handoff.js.map +1 -1
  83. package/dist/context/projection-handoff.d.ts +2 -2
  84. package/dist/context/projection-handoff.d.ts.map +1 -1
  85. package/dist/context/projection-handoff.js +12 -8
  86. package/dist/context/projection-handoff.js.map +1 -1
  87. package/dist/context/tenant-index.d.ts +36 -31
  88. package/dist/context/tenant-index.d.ts.map +1 -1
  89. package/dist/context/tenant-index.js +123 -125
  90. package/dist/context/tenant-index.js.map +1 -1
  91. package/dist/context/tenant-unknown-error.d.ts +33 -0
  92. package/dist/context/tenant-unknown-error.d.ts.map +1 -0
  93. package/dist/context/tenant-unknown-error.js +75 -0
  94. package/dist/context/tenant-unknown-error.js.map +1 -0
  95. package/dist/delivery/agent-delivery-scope.d.ts +66 -0
  96. package/dist/delivery/agent-delivery-scope.d.ts.map +1 -0
  97. package/dist/delivery/agent-delivery-scope.js +44 -0
  98. package/dist/delivery/agent-delivery-scope.js.map +1 -0
  99. package/dist/delivery/delivery-builder.d.ts +25 -1
  100. package/dist/delivery/delivery-builder.d.ts.map +1 -1
  101. package/dist/delivery/delivery-builder.js +89 -0
  102. package/dist/delivery/delivery-builder.js.map +1 -1
  103. package/dist/delivery/delivery-monitor.d.ts +12 -9
  104. package/dist/delivery/delivery-monitor.d.ts.map +1 -1
  105. package/dist/delivery/delivery-monitor.js +15 -9
  106. package/dist/delivery/delivery-monitor.js.map +1 -1
  107. package/dist/delivery/delivery-ports.d.ts +6 -13
  108. package/dist/delivery/delivery-ports.d.ts.map +1 -1
  109. package/dist/delivery/delivery-run-control.d.ts +21 -0
  110. package/dist/delivery/delivery-run-control.d.ts.map +1 -1
  111. package/dist/delivery/delivery-run-control.js +10 -0
  112. package/dist/delivery/delivery-run-control.js.map +1 -1
  113. package/dist/delivery/delivery-supervisor.d.ts +33 -5
  114. package/dist/delivery/delivery-supervisor.d.ts.map +1 -1
  115. package/dist/delivery/delivery-supervisor.js +178 -26
  116. package/dist/delivery/delivery-supervisor.js.map +1 -1
  117. package/dist/delivery/delivery-tenant.d.ts +17 -0
  118. package/dist/delivery/delivery-tenant.d.ts.map +1 -0
  119. package/dist/delivery/delivery-tenant.js +50 -0
  120. package/dist/delivery/delivery-tenant.js.map +1 -0
  121. package/dist/delivery/delivery.d.ts +96 -2
  122. package/dist/delivery/delivery.d.ts.map +1 -1
  123. package/dist/delivery/delivery.js +803 -89
  124. package/dist/delivery/delivery.js.map +1 -1
  125. package/dist/delivery/inbox-records.d.ts.map +1 -1
  126. package/dist/delivery/inbox-records.js +9 -16
  127. package/dist/delivery/inbox-records.js.map +1 -1
  128. package/dist/delivery/inbox-storage.d.ts +14 -11
  129. package/dist/delivery/inbox-storage.d.ts.map +1 -1
  130. package/dist/delivery/inbox-storage.js +72 -78
  131. package/dist/delivery/inbox-storage.js.map +1 -1
  132. package/dist/delivery/inbox.d.ts +9 -12
  133. package/dist/delivery/inbox.d.ts.map +1 -1
  134. package/dist/delivery/inbox.js +13 -15
  135. package/dist/delivery/inbox.js.map +1 -1
  136. package/dist/delivery/reception-observation.d.ts +64 -0
  137. package/dist/delivery/reception-observation.d.ts.map +1 -0
  138. package/dist/delivery/reception-observation.js +78 -0
  139. package/dist/delivery/reception-observation.js.map +1 -0
  140. package/dist/delivery/sharded-work-registry.d.ts +6 -0
  141. package/dist/delivery/sharded-work-registry.d.ts.map +1 -1
  142. package/dist/delivery/sharded-work-registry.js +41 -4
  143. package/dist/delivery/sharded-work-registry.js.map +1 -1
  144. package/dist/entity/entity-storage-descriptor.d.ts.map +1 -1
  145. package/dist/entity/entity-storage-descriptor.js +7 -4
  146. package/dist/entity/entity-storage-descriptor.js.map +1 -1
  147. package/dist/index.d.ts +4 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +2 -1
  150. package/dist/index.js.map +1 -1
  151. package/dist/integration/external-messages.d.ts.map +1 -1
  152. package/dist/integration/external-messages.js +9 -15
  153. package/dist/integration/external-messages.js.map +1 -1
  154. package/dist/integration/integration-broker.d.ts.map +1 -1
  155. package/dist/integration/integration-broker.js +112 -6
  156. package/dist/integration/integration-broker.js.map +1 -1
  157. package/dist/integration/third-party-context.d.ts.map +1 -1
  158. package/dist/integration/third-party-context.js +7 -10
  159. package/dist/integration/third-party-context.js.map +1 -1
  160. package/dist/repository/primitive-id.js +26 -11
  161. package/dist/repository/primitive-id.js.map +1 -1
  162. package/dist/repository/repository.d.ts +33 -62
  163. package/dist/repository/repository.d.ts.map +1 -1
  164. package/dist/repository/repository.js +1475 -1827
  165. package/dist/repository/repository.js.map +1 -1
  166. package/dist/runtime/runtime.d.ts +24 -0
  167. package/dist/runtime/runtime.d.ts.map +1 -1
  168. package/dist/runtime/runtime.js +31 -0
  169. package/dist/runtime/runtime.js.map +1 -1
  170. package/dist/runtime/signal-metadata.d.ts.map +1 -1
  171. package/dist/runtime/signal-metadata.js +8 -15
  172. package/dist/runtime/signal-metadata.js.map +1 -1
  173. package/dist/runtime/signal-publisher.d.ts +8 -36
  174. package/dist/runtime/signal-publisher.d.ts.map +1 -1
  175. package/dist/runtime/signal-publisher.js +68 -61
  176. package/dist/runtime/signal-publisher.js.map +1 -1
  177. package/dist/runtime/standalone-handler-runtime.d.ts +0 -7
  178. package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -1
  179. package/dist/runtime/standalone-handler-runtime.js +14 -130
  180. package/dist/runtime/standalone-handler-runtime.js.map +1 -1
  181. package/dist/server/managed-delivery-gate.d.ts +34 -0
  182. package/dist/server/managed-delivery-gate.d.ts.map +1 -0
  183. package/dist/server/managed-delivery-gate.js +70 -0
  184. package/dist/server/managed-delivery-gate.js.map +1 -0
  185. package/dist/server/managed-server-application.d.ts +2 -2
  186. package/dist/server/managed-server-application.d.ts.map +1 -1
  187. package/dist/server/managed-server-application.js +471 -178
  188. package/dist/server/managed-server-application.js.map +1 -1
  189. package/dist/server/node-coordinator.d.ts +14 -0
  190. package/dist/server/node-coordinator.d.ts.map +1 -1
  191. package/dist/server/node-coordinator.js +266 -45
  192. package/dist/server/node-coordinator.js.map +1 -1
  193. package/dist/server/server-environment.d.ts +203 -25
  194. package/dist/server/server-environment.d.ts.map +1 -1
  195. package/dist/server/server-environment.js +661 -133
  196. package/dist/server/server-environment.js.map +1 -1
  197. package/dist/server/server-log.d.ts +7 -0
  198. package/dist/server/server-log.d.ts.map +1 -1
  199. package/dist/server/server-log.js +18 -1
  200. package/dist/server/server-log.js.map +1 -1
  201. package/dist/server/server.d.ts +18 -32
  202. package/dist/server/server.d.ts.map +1 -1
  203. package/dist/server/server.js +62 -203
  204. package/dist/server/server.js.map +1 -1
  205. package/dist/services/spine-services.d.ts +1 -1
  206. package/dist/services/spine-services.d.ts.map +1 -1
  207. package/dist/services/spine-services.js +399 -370
  208. package/dist/services/spine-services.js.map +1 -1
  209. package/dist/stand/event-origin-filter.d.ts +16 -0
  210. package/dist/stand/event-origin-filter.d.ts.map +1 -0
  211. package/dist/stand/event-origin-filter.js +124 -0
  212. package/dist/stand/event-origin-filter.js.map +1 -0
  213. package/dist/stand/stand.d.ts +14 -0
  214. package/dist/stand/stand.d.ts.map +1 -1
  215. package/dist/stand/stand.js +53 -9
  216. package/dist/stand/stand.js.map +1 -1
  217. package/dist/stand/subscription-observer.d.ts.map +1 -1
  218. package/dist/stand/subscription-observer.js +61 -40
  219. package/dist/stand/subscription-observer.js.map +1 -1
  220. package/dist/stand/subscription-registry.d.ts +6 -2
  221. package/dist/stand/subscription-registry.d.ts.map +1 -1
  222. package/dist/stand/subscription-registry.js +15 -11
  223. package/dist/stand/subscription-registry.js.map +1 -1
  224. package/dist/stand/subscription-runtime.d.ts +23 -4
  225. package/dist/stand/subscription-runtime.d.ts.map +1 -1
  226. package/dist/stand/subscription-runtime.js +84 -13
  227. package/dist/stand/subscription-runtime.js.map +1 -1
  228. package/dist/testing/index.d.ts.map +1 -1
  229. package/dist/testing/index.js +3 -2
  230. package/dist/testing/index.js.map +1 -1
  231. package/dist/tsconfig.tsbuildinfo +1 -1
  232. package/package.json +15 -15
  233. package/dist/agent/agent-admission.d.ts +0 -80
  234. package/dist/agent/agent-admission.d.ts.map +0 -1
  235. package/dist/agent/agent-admission.js +0 -127
  236. package/dist/agent/agent-admission.js.map +0 -1
  237. package/dist/agent/agent-ai-runtime.d.ts +0 -76
  238. package/dist/agent/agent-ai-runtime.d.ts.map +0 -1
  239. package/dist/agent/agent-ai-runtime.js +0 -1269
  240. package/dist/agent/agent-ai-runtime.js.map +0 -1
  241. package/dist/agent/agent-execution-fault.d.ts +0 -18
  242. package/dist/agent/agent-execution-fault.d.ts.map +0 -1
  243. package/dist/agent/agent-execution-fault.js.map +0 -1
  244. package/dist/agent/agent-execution-session.d.ts +0 -103
  245. package/dist/agent/agent-execution-session.d.ts.map +0 -1
  246. package/dist/agent/agent-execution-session.js +0 -238
  247. package/dist/agent/agent-execution-session.js.map +0 -1
  248. package/dist/agent/agent-interaction-audit.d.ts +0 -58
  249. package/dist/agent/agent-interaction-audit.d.ts.map +0 -1
  250. package/dist/agent/agent-interaction-audit.js +0 -114
  251. package/dist/agent/agent-interaction-audit.js.map +0 -1
  252. package/dist/agent/agent-interaction-events.d.ts +0 -40
  253. package/dist/agent/agent-interaction-events.d.ts.map +0 -1
  254. package/dist/agent/agent-interaction-events.js +0 -129
  255. package/dist/agent/agent-interaction-events.js.map +0 -1
  256. package/dist/agent/agent-mcp-budget.d.ts +0 -125
  257. package/dist/agent/agent-mcp-budget.d.ts.map +0 -1
  258. package/dist/agent/agent-mcp-budget.js +0 -566
  259. package/dist/agent/agent-mcp-budget.js.map +0 -1
  260. package/dist/agent/agent-mcp-host.d.ts +0 -125
  261. package/dist/agent/agent-mcp-host.d.ts.map +0 -1
  262. package/dist/agent/agent-mcp-host.js.map +0 -1
  263. package/dist/agent/agent-mcp-runtime.d.ts.map +0 -1
  264. package/dist/agent/agent-mcp-runtime.js.map +0 -1
  265. package/dist/agent/agent-read-runtime.d.ts +0 -70
  266. package/dist/agent/agent-read-runtime.d.ts.map +0 -1
  267. package/dist/agent/agent-read-runtime.js +0 -320
  268. package/dist/agent/agent-read-runtime.js.map +0 -1
  269. package/dist/agent/agent-revisions.d.ts +0 -35
  270. package/dist/agent/agent-revisions.d.ts.map +0 -1
  271. package/dist/agent/agent-revisions.js +0 -133
  272. package/dist/agent/agent-revisions.js.map +0 -1
  273. package/dist/agent/agent-scheduler.d.ts +0 -99
  274. package/dist/agent/agent-scheduler.d.ts.map +0 -1
  275. package/dist/agent/agent-scheduler.js +0 -398
  276. package/dist/agent/agent-scheduler.js.map +0 -1
  277. package/dist/bus/saved-dispatcher-binding.d.ts +0 -96
  278. package/dist/bus/saved-dispatcher-binding.d.ts.map +0 -1
  279. package/dist/bus/saved-dispatcher-binding.js +0 -35
  280. package/dist/bus/saved-dispatcher-binding.js.map +0 -1
  281. package/dist/delivery/delivery-run-coordinator.d.ts +0 -218
  282. package/dist/delivery/delivery-run-coordinator.d.ts.map +0 -1
  283. package/dist/delivery/delivery-run-coordinator.js +0 -609
  284. package/dist/delivery/delivery-run-coordinator.js.map +0 -1
  285. package/dist/delivery/parked-delivery-obligations.d.ts +0 -182
  286. package/dist/delivery/parked-delivery-obligations.d.ts.map +0 -1
  287. package/dist/delivery/parked-delivery-obligations.js +0 -390
  288. package/dist/delivery/parked-delivery-obligations.js.map +0 -1
  289. package/dist/server/environment-attachment.d.ts +0 -356
  290. package/dist/server/environment-attachment.d.ts.map +0 -1
  291. package/dist/server/environment-attachment.js +0 -2062
  292. package/dist/server/environment-attachment.js.map +0 -1
  293. package/dist/server/environment-delivery-records.d.ts +0 -77
  294. package/dist/server/environment-delivery-records.d.ts.map +0 -1
  295. package/dist/server/environment-delivery-records.js +0 -282
  296. package/dist/server/environment-delivery-records.js.map +0 -1
  297. package/dist/server/environment-delivery-worker.d.ts +0 -161
  298. package/dist/server/environment-delivery-worker.d.ts.map +0 -1
  299. package/dist/server/environment-delivery-worker.js +0 -673
  300. package/dist/server/environment-delivery-worker.js.map +0 -1
@@ -13,14 +13,14 @@
13
13
  */
14
14
  import * as http2 from "node:http2";
15
15
  import { randomUUID } from "node:crypto";
16
- import { clone, create, fromBinary, toBinary } from "@bufbuild/protobuf";
16
+ import { clone, create, equals, fromBinary, toBinary } from "@bufbuild/protobuf";
17
17
  import { EmptySchema } from "@bufbuild/protobuf/wkt";
18
18
  import { Code, ConnectError, createClient } from "@connectrpc/connect";
19
19
  import { connectNodeAdapter, createGrpcTransport, Http2SessionManager, } from "@connectrpc/connect-node";
20
20
  import { BackendMembershipKernel, } from "@spine-event-engine/deployment/spi/backend-membership";
21
21
  import { SUBSCRIPTION_ACTIVATION_HANDSHAKE_MS } from "@spine-event-engine/core/spi/subscription-lifecycle";
22
22
  import { AckSchema, ResponseSchema, StatusSchema, } from "@spine-event-engine/proto";
23
- import { QueryResponseSchema, CommandService, QueryService, SubscriptionIdSchema, SubscriptionSchema, SubscriptionService, SubscriptionUpdateSchema, } from "@spine-event-engine/proto/client";
23
+ import { QueryResponseSchema, CommandService, QueryService, SubscriptionIdSchema, SubscriptionSchema, SubscriptionService, SubscriptionUpdateSchema, TopicSchema, } from "@spine-event-engine/proto/client";
24
24
  const defaultHost = "127.0.0.1";
25
25
  const defaultPort = 0;
26
26
  const defaultMessageMaxBytes = 4_194_304;
@@ -57,7 +57,17 @@ export class NodeCoordinator {
57
57
  */
58
58
  baseUrl;
59
59
  #close;
60
+ #networkClose;
61
+ #draining = false;
60
62
  #membershipReconciliation = Promise.resolve();
63
+ /**
64
+ * Creates the native node coordinator around its HTTP/2 listener and member source.
65
+ *
66
+ * @param options The coordinator configuration.
67
+ * @param server The HTTP/2 server.
68
+ * @param address The listening address.
69
+ * @param sessions Tracked HTTP/2 sessions.
70
+ */
61
71
  constructor(options, server, address, sessions) {
62
72
  this.#members = options.members;
63
73
  this.#unaryKernel = new BackendMembershipKernel(NodeCoordinatorValues.unaryKernelOptions());
@@ -84,10 +94,7 @@ export class NodeCoordinator {
84
94
  * @returns The running private Coordinator.
85
95
  */
86
96
  static async open(options) {
87
- const host = NodeCoordinatorValues.host(options.host ?? defaultHost);
88
- const port = NodeCoordinatorValues.port(options.port ?? defaultPort);
89
- const readMaxBytes = NodeCoordinatorValues.messageLimit(options.readMaxBytes ?? defaultMessageMaxBytes);
90
- const writeMaxBytes = NodeCoordinatorValues.messageLimit(options.writeMaxBytes ?? defaultMessageMaxBytes);
97
+ const { host, port, readMaxBytes, writeMaxBytes } = this.#listenerOptions(options);
91
98
  // eslint-disable-next-line prefer-const -- routes capture the Coordinator before the listener exists.
92
99
  let coordinator;
93
100
  const sessions = new Set();
@@ -112,15 +119,38 @@ export class NodeCoordinator {
112
119
  readMaxBytes,
113
120
  writeMaxBytes,
114
121
  }));
115
- server.on("session", (session) => {
116
- sessions.add(session);
117
- session.once("close", () => sessions.delete(session));
118
- });
122
+ this.#trackSessions(server, sessions);
119
123
  const address = await NodeCoordinatorValues.listen(server, host, port);
120
124
  coordinator = new NodeCoordinator(options, server, address, sessions);
121
125
  await coordinator.#reconcile();
122
126
  return coordinator;
123
127
  }
128
+ /**
129
+ * Validates private listener and message limits before opening the server.
130
+ *
131
+ * @param options The private Coordinator configuration.
132
+ * @returns Validated listener and message limits.
133
+ */
134
+ static #listenerOptions(options) {
135
+ return {
136
+ host: NodeCoordinatorValues.host(options.host ?? defaultHost),
137
+ port: NodeCoordinatorValues.port(options.port ?? defaultPort),
138
+ readMaxBytes: NodeCoordinatorValues.messageLimit(options.readMaxBytes ?? defaultMessageMaxBytes),
139
+ writeMaxBytes: NodeCoordinatorValues.messageLimit(options.writeMaxBytes ?? defaultMessageMaxBytes),
140
+ };
141
+ }
142
+ /**
143
+ * Tracks HTTP/2 sessions for normal listener cleanup.
144
+ *
145
+ * @param server The private Coordinator listener.
146
+ * @param sessions Receives active HTTP/2 sessions.
147
+ */
148
+ static #trackSessions(server, sessions) {
149
+ server.on("session", (session) => {
150
+ sessions.add(session);
151
+ session.once("close", () => sessions.delete(session));
152
+ });
153
+ }
124
154
  /**
125
155
  * Stops public intake, active sessions, and private child clients.
126
156
  *
@@ -139,8 +169,18 @@ export class NodeCoordinator {
139
169
  * @returns Completion after the unary member snapshot becomes empty.
140
170
  */
141
171
  beginDrain() {
172
+ this.#draining = true;
142
173
  return this.#unaryKernel.reconcile([]);
143
174
  }
175
+ /**
176
+ * Cancels backend relays while managed child listeners can still accept Cancel.
177
+ *
178
+ * @returns Completion after private child subscriptions are removed.
179
+ */
180
+ async closeSubscriptions() {
181
+ await this.#membershipReconciliation;
182
+ await this.#subscriptionKernel.close();
183
+ }
144
184
  async #post(command, context) {
145
185
  const request = {
146
186
  kind: "command",
@@ -162,6 +202,8 @@ export class NodeCoordinator {
162
202
  return request.response;
163
203
  }
164
204
  async #subscribe(topic, context) {
205
+ if (this.#draining)
206
+ throw new ConnectError("Managed application is closing.", Code.Unavailable);
165
207
  const subscription = create(SubscriptionSchema, {
166
208
  id: create(SubscriptionIdSchema, { value: `s-${randomUUID()}` }),
167
209
  topic,
@@ -172,10 +214,24 @@ export class NodeCoordinator {
172
214
  catch (error) {
173
215
  throw this.#availabilityError(error);
174
216
  }
217
+ if (this.#isDraining()) {
218
+ await this.#cancelDefinition(toBinary(SubscriptionSchema, subscription), context.signal);
219
+ throw new ConnectError("Managed application is closing.", Code.Unavailable);
220
+ }
175
221
  this.#schedulePendingActivation(subscription);
176
222
  return subscription;
177
223
  }
224
+ /**
225
+ * Reads current admission state after an asynchronous backend Subscribe.
226
+ *
227
+ * @returns Whether the Coordinator is draining.
228
+ */
229
+ #isDraining() {
230
+ return this.#draining;
231
+ }
178
232
  async *#activate(subscription, context) {
233
+ if (this.#draining)
234
+ throw new ConnectError("Managed application is closing.", Code.Unavailable);
179
235
  const definition = toBinary(SubscriptionSchema, subscription);
180
236
  this.#clearPendingActivation(subscription);
181
237
  const overflow = new AbortController();
@@ -186,15 +242,7 @@ export class NodeCoordinator {
186
242
  if (context.signal.aborted)
187
243
  abort();
188
244
  const updates = new SubscriptionUpdateQueue(subscriptionQueueLimit, abort);
189
- const activation = this.#subscriptionKernel
190
- .activate(definition, async (childUpdate) => {
191
- const update = fromBinary(SubscriptionUpdateSchema, childUpdate);
192
- update.subscription = clone(SubscriptionSchema, subscription);
193
- await updates.push(update);
194
- }, overflow.signal)
195
- .finally(() => {
196
- updates.close();
197
- });
245
+ const activation = this.#activateChild(definition, subscription, updates, overflow.signal);
198
246
  let failure;
199
247
  try {
200
248
  for await (const update of updates)
@@ -210,6 +258,26 @@ export class NodeCoordinator {
210
258
  await this.#finishActivation(definition, activation, failure);
211
259
  }
212
260
  }
261
+ /**
262
+ * Relays accepted child updates through the bounded logical stream.
263
+ *
264
+ * @param definition The validated child subscription bytes.
265
+ * @param subscription The logical subscription exposed to callers.
266
+ * @param updates The bounded caller stream queue.
267
+ * @param signal Cancels the active child relay.
268
+ * @returns Completion after the backend activation ends.
269
+ */
270
+ #activateChild(definition, subscription, updates, signal) {
271
+ return this.#subscriptionKernel
272
+ .activate(definition, async (childUpdate) => {
273
+ const update = fromBinary(SubscriptionUpdateSchema, childUpdate);
274
+ update.subscription = clone(SubscriptionSchema, subscription);
275
+ await updates.push(update);
276
+ }, signal)
277
+ .finally(() => {
278
+ updates.close();
279
+ });
280
+ }
213
281
  async #finishActivation(definition, activation, previousFailure) {
214
282
  const failures = previousFailure === undefined ? [] : [previousFailure];
215
283
  try {
@@ -238,6 +306,8 @@ export class NodeCoordinator {
238
306
  });
239
307
  }
240
308
  async #forward(request) {
309
+ if (this.#draining)
310
+ throw new ConnectError("No ready application replica is available.", Code.Unavailable);
241
311
  try {
242
312
  await this.#unaryKernel.forward(request);
243
313
  }
@@ -315,7 +385,7 @@ export class NodeCoordinator {
315
385
  clearTimeout(pending.timer);
316
386
  this.#pendingActivations.clear();
317
387
  await this.#membershipReconciliation;
318
- const network = NodeCoordinatorValues.closeNetwork(this.#server, this.#sessions);
388
+ const network = (this.#networkClose ??= NodeCoordinatorValues.closeNetwork(this.#server, this.#sessions));
319
389
  await Promise.all([network, this.#unaryKernel.close(), this.#subscriptionKernel.close()]);
320
390
  }
321
391
  }
@@ -397,6 +467,12 @@ export class SubscriptionUpdateQueue {
397
467
  }
398
468
  }
399
469
  const NodeCoordinatorValues = Object.freeze({
470
+ /**
471
+ * Builds membership options for native unary forwarding.
472
+ *
473
+ * @param members The ready member source when available.
474
+ * @returns The configured membership kernel options.
475
+ */
400
476
  unaryKernelOptions(members) {
401
477
  // The Coordinator deliberately uses only the kernel's member lifecycle and
402
478
  // one-shot forwarding operations. Subscription fan-out is owned by T-0208.
@@ -405,32 +481,57 @@ const NodeCoordinatorValues = Object.freeze({
405
481
  memberKey: (member) => `${member.slot.toString()}/${member.incarnation}`,
406
482
  sameMember: (left, right) => left.endpoint === right.endpoint,
407
483
  definitionKey: (definition) => fromBinary(SubscriptionSchema, definition).id?.value,
408
- childDefinition: (definition, member) => {
409
- const subscription = clone(SubscriptionSchema, fromBinary(SubscriptionSchema, definition));
410
- const id = NodeCoordinatorValues.requiredValue(subscription.id, "Coordinator subscription definition is missing an ID.");
411
- id.value = `${id.value}/${member.slot.toString()}-${member.incarnation}`;
412
- return toBinary(SubscriptionSchema, subscription);
413
- },
484
+ childDefinition: NodeCoordinatorValues.childDefinition,
414
485
  childSize: (child) => child.byteLength,
486
+ ...NodeCoordinatorValues.activationAckOptions(members),
487
+ };
488
+ },
489
+ /**
490
+ * Builds strict child ACK validation for the subscription membership kernel.
491
+ *
492
+ * @param members The subscription-ready member source when configured.
493
+ * @returns Child acknowledgement recognition and logical rewriting callbacks.
494
+ */
495
+ activationAckOptions(members) {
496
+ if (members === undefined)
497
+ return {};
498
+ return {
499
+ isActivationAck: (bytes) => {
500
+ const update = fromBinary(SubscriptionUpdateSchema, bytes);
501
+ return update.response?.status?.status.case === "ok" && update.update.case === undefined;
502
+ },
503
+ logicalActivationAck: (definition, childAck) => {
504
+ const update = fromBinary(SubscriptionUpdateSchema, childAck);
505
+ update.subscription = fromBinary(SubscriptionSchema, definition);
506
+ return toBinary(SubscriptionUpdateSchema, update);
507
+ },
415
508
  };
416
509
  },
510
+ /**
511
+ * Builds the member-specific native subscription definition.
512
+ *
513
+ * @param definition The logical subscription bytes.
514
+ * @param member The selected backend member.
515
+ * @returns The child definition bytes.
516
+ */
517
+ childDefinition(definition, member) {
518
+ const subscription = clone(SubscriptionSchema, fromBinary(SubscriptionSchema, definition));
519
+ const id = NodeCoordinatorValues.requiredValue(subscription.id, "Coordinator subscription definition is missing an ID.");
520
+ id.value = `${id.value}/${member.slot.toString()}-${member.incarnation}`;
521
+ return toBinary(SubscriptionSchema, subscription);
522
+ },
523
+ /**
524
+ * Creates a native transport client for one member.
525
+ *
526
+ * @param member The discovered backend member.
527
+ * @param members The ready member source when available.
528
+ * @returns The member transport client.
529
+ */
417
530
  client(member, members) {
418
531
  const manager = new Http2SessionManager(member.endpoint);
419
532
  const transport = createGrpcTransport({ baseUrl: member.endpoint, sessionManager: manager });
420
533
  return {
421
- forward: async (request) => {
422
- if (request.kind === "command") {
423
- const response = await transport.unary(CommandService.method.post, request.context.signal, request.context.timeoutMs(), NodeCoordinatorValues.applicationHeaders(request.context.requestHeader), request.command);
424
- NodeCoordinatorValues.responseMetadata(response.header, response.trailer, request.context);
425
- request.response = response.message;
426
- }
427
- else {
428
- const response = await transport.unary(QueryService.method.read, request.context.signal, request.context.timeoutMs(), NodeCoordinatorValues.applicationHeaders(request.context.requestHeader), request.query);
429
- NodeCoordinatorValues.responseMetadata(response.header, response.trailer, request.context);
430
- request.response = response.message;
431
- }
432
- return new Uint8Array();
433
- },
534
+ forward: (request) => NodeCoordinatorValues.forward(transport, request),
434
535
  close: () => {
435
536
  manager.abort();
436
537
  return Promise.resolve();
@@ -440,12 +541,7 @@ const NodeCoordinatorValues = Object.freeze({
440
541
  const created = await createClient(SubscriptionService, transport).subscribe(NodeCoordinatorValues.requiredValue(subscription.topic, "Coordinator subscription definition is missing a Topic."), { signal });
441
542
  return toBinary(SubscriptionSchema, created);
442
543
  },
443
- activate: async (child, updates, signal) => {
444
- const subscription = fromBinary(SubscriptionSchema, child);
445
- members?.onChildSubscriptionActivated?.(member, subscription);
446
- for await (const update of createClient(SubscriptionService, transport).activate(subscription, { signal }))
447
- await updates(toBinary(SubscriptionUpdateSchema, update));
448
- },
544
+ activate: (child, updates, signal) => NodeCoordinatorValues.activateChild(transport, member, members, child, updates, signal),
449
545
  dispose: async (child, signal) => {
450
546
  const subscription = fromBinary(SubscriptionSchema, child);
451
547
  members?.onChildSubscriptionCancelled?.(member, subscription);
@@ -453,12 +549,72 @@ const NodeCoordinatorValues = Object.freeze({
453
549
  },
454
550
  };
455
551
  },
552
+ /**
553
+ * Sends one native Command or Query to a ready member.
554
+ *
555
+ * @param transport The connected native transport.
556
+ * @param request The request to forward.
557
+ * @returns Empty routing bytes after the response is assigned.
558
+ */
559
+ async forward(transport, request) {
560
+ if (request.kind === "command") {
561
+ const response = await transport.unary(CommandService.method.post, request.context.signal, request.context.timeoutMs(), NodeCoordinatorValues.applicationHeaders(request.context.requestHeader), request.command);
562
+ NodeCoordinatorValues.responseMetadata(response.header, response.trailer, request.context);
563
+ request.response = response.message;
564
+ }
565
+ else {
566
+ const response = await transport.unary(QueryService.method.read, request.context.signal, request.context.timeoutMs(), NodeCoordinatorValues.applicationHeaders(request.context.requestHeader), request.query);
567
+ NodeCoordinatorValues.responseMetadata(response.header, response.trailer, request.context);
568
+ request.response = response.message;
569
+ }
570
+ return new Uint8Array();
571
+ },
572
+ /**
573
+ * Streams validated updates from one native child subscription.
574
+ *
575
+ * @param transport The connected native transport.
576
+ * @param member The backend member.
577
+ * @param members The ready member source when available.
578
+ * @param child The serialized child subscription.
579
+ * @param updates The logical update sink.
580
+ * @param signal Cancels child activation.
581
+ * @returns Completion after the child stream closes.
582
+ */
583
+ async activateChild(transport, member, members, child, updates, signal) {
584
+ const subscription = fromBinary(SubscriptionSchema, child);
585
+ members?.onChildSubscriptionActivated?.(member, subscription);
586
+ for await (const update of createClient(SubscriptionService, transport).activate(subscription, {
587
+ signal,
588
+ })) {
589
+ const topic = subscription.topic;
590
+ const updateTopic = update.subscription?.topic;
591
+ if (update.subscription?.id?.value !== subscription.id?.value ||
592
+ topic === undefined ||
593
+ updateTopic === undefined ||
594
+ !equals(TopicSchema, updateTopic, topic))
595
+ throw new Error("Backend child update does not match its subscription.");
596
+ await updates(toBinary(SubscriptionUpdateSchema, update));
597
+ }
598
+ },
599
+ /**
600
+ * Copies backend response metadata into the public context.
601
+ *
602
+ * @param headers Headers received from the backend.
603
+ * @param trailers Trailers received from the backend.
604
+ * @param context The authenticated or RPC context.
605
+ */
456
606
  responseMetadata(headers, trailers, context) {
457
607
  for (const [name, value] of NodeCoordinatorValues.applicationHeaders(headers))
458
608
  context.responseHeader.append(name, value);
459
609
  for (const [name, value] of NodeCoordinatorValues.applicationHeaders(trailers))
460
610
  context.responseTrailer.append(name, value);
461
611
  },
612
+ /**
613
+ * Copies application headers for forwarding.
614
+ *
615
+ * @param headers Headers received from the backend.
616
+ * @returns Forwardable application headers.
617
+ */
462
618
  applicationHeaders(headers) {
463
619
  const forwarded = new Headers(headers);
464
620
  for (const name of [...forwarded.keys()]) {
@@ -471,35 +627,81 @@ const NodeCoordinatorValues = Object.freeze({
471
627
  }
472
628
  return forwarded;
473
629
  },
630
+ /**
631
+ * Returns a required non-null value or throws.
632
+ *
633
+ * @typeParam Value The required input type.
634
+ * @param value The caller-supplied value.
635
+ * @param message Error text for a missing value.
636
+ * @returns The non-null value.
637
+ */
474
638
  requiredValue(value, message) {
475
639
  if (value === undefined)
476
640
  throw new Error(message);
477
641
  return value;
478
642
  },
643
+ /**
644
+ * Converts an unknown error to a Connect error.
645
+ *
646
+ * @param error The original error.
647
+ * @returns The normalized Connect error.
648
+ */
479
649
  error(error) {
480
650
  return error instanceof Error
481
651
  ? error
482
652
  : new Error("Coordinator subscription operation failed.", { cause: error });
483
653
  },
654
+ /**
655
+ * Validates a configured host.
656
+ *
657
+ * @param value The caller-supplied value.
658
+ * @returns The validated host.
659
+ */
484
660
  host(value) {
485
661
  const normalized = value.trim();
486
662
  if (normalized.length === 0)
487
663
  throw new Error("Server host must not be blank.");
488
664
  return normalized;
489
665
  },
666
+ /**
667
+ * Formats a host for a transport URL.
668
+ *
669
+ * @param host The configured host.
670
+ * @returns The URL-safe host.
671
+ */
490
672
  formatHostForUrl(host) {
491
673
  return host.includes(":") && !host.startsWith("[") ? `[${host}]` : host;
492
674
  },
675
+ /**
676
+ * Validates a configured network port.
677
+ *
678
+ * @param value The caller-supplied value.
679
+ * @returns The validated port.
680
+ */
493
681
  port(value) {
494
682
  if (!Number.isSafeInteger(value) || value < 0 || value > 65_535)
495
683
  throw new Error("Managed server port must be a safe integer between 0 and 65535.");
496
684
  return value;
497
685
  },
686
+ /**
687
+ * Validates a message size limit.
688
+ *
689
+ * @param value The caller-supplied value.
690
+ * @returns The validated message limit.
691
+ */
498
692
  messageLimit(value) {
499
693
  if (!Number.isSafeInteger(value) || value < 1 || value > 0xffff_ffff)
500
694
  throw new Error("Managed server message limit must be a safe integer between 1 and 4294967295.");
501
695
  return value;
502
696
  },
697
+ /**
698
+ * Starts the coordinator HTTP/2 listener.
699
+ *
700
+ * @param server The HTTP/2 server.
701
+ * @param host The configured host.
702
+ * @param port The configured port.
703
+ * @returns Completion when the listener starts.
704
+ */
503
705
  listen(server, host, port) {
504
706
  return new Promise((resolve, reject) => {
505
707
  const onError = (error) => {
@@ -515,6 +717,12 @@ const NodeCoordinatorValues = Object.freeze({
515
717
  server.listen(port, host);
516
718
  });
517
719
  },
720
+ /**
721
+ * Closes the HTTP/2 server.
722
+ *
723
+ * @param server The HTTP/2 server.
724
+ * @returns Completion after server shutdown.
725
+ */
518
726
  closeServer(server) {
519
727
  return new Promise((resolve, reject) => {
520
728
  if (!server.listening) {
@@ -529,11 +737,24 @@ const NodeCoordinatorValues = Object.freeze({
529
737
  });
530
738
  });
531
739
  },
740
+ /**
741
+ * Closes the HTTP/2 server and active sessions.
742
+ *
743
+ * @param server The HTTP/2 server.
744
+ * @param sessions Tracked HTTP/2 sessions.
745
+ * @returns Completion after network shutdown.
746
+ */
532
747
  async closeNetwork(server, sessions) {
533
748
  const closed = NodeCoordinatorValues.closeServer(server);
534
749
  await Promise.all([...sessions].map((session) => NodeCoordinatorValues.closeSession(session)));
535
750
  await closed;
536
751
  },
752
+ /**
753
+ * Closes an HTTP/2 session.
754
+ *
755
+ * @param session The HTTP/2 session.
756
+ * @returns Completion after session shutdown.
757
+ */
537
758
  closeSession(session) {
538
759
  return new Promise((resolve) => {
539
760
  const timer = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"node-coordinator.js","sourceRoot":"","sources":["../../src/server/node-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-coordinator.js","sourceRoot":"","sources":["../../src/server/node-coordinator.ts"],"names":[],"mappings":"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"}