@spine-event-engine/server 2.0.0-snapshot.24 → 2.0.0-snapshot.26

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 (374) hide show
  1. package/README.md +86 -19
  2. package/REFERENCE.md +538 -150
  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 +33 -12
  12. package/dist/agent/agent-history.d.ts.map +1 -1
  13. package/dist/agent/agent-history.js +61 -18
  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 +72 -0
  56. package/dist/agent/agent-live-read-runtime.d.ts.map +1 -0
  57. package/dist/agent/agent-live-read-runtime.js +122 -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/browser/browser-server.d.ts +163 -0
  64. package/dist/browser/browser-server.d.ts.map +1 -1
  65. package/dist/browser/browser-server.js +579 -188
  66. package/dist/browser/browser-server.js.map +1 -1
  67. package/dist/browser/durable-subscription-bindings.d.ts +5 -0
  68. package/dist/browser/durable-subscription-bindings.d.ts.map +1 -1
  69. package/dist/browser/durable-subscription-bindings.js +226 -38
  70. package/dist/browser/durable-subscription-bindings.js.map +1 -1
  71. package/dist/browser/options.d.ts +5 -0
  72. package/dist/browser/options.d.ts.map +1 -1
  73. package/dist/bus/command-bus.d.ts +17 -18
  74. package/dist/bus/command-bus.d.ts.map +1 -1
  75. package/dist/bus/command-bus.js +97 -54
  76. package/dist/bus/command-bus.js.map +1 -1
  77. package/dist/bus/command-errors.d.ts +20 -4
  78. package/dist/bus/command-errors.d.ts.map +1 -1
  79. package/dist/bus/command-errors.js +47 -7
  80. package/dist/bus/command-errors.js.map +1 -1
  81. package/dist/bus/event-bus.d.ts +20 -4
  82. package/dist/bus/event-bus.d.ts.map +1 -1
  83. package/dist/bus/event-bus.js +166 -14
  84. package/dist/bus/event-bus.js.map +1 -1
  85. package/dist/context/bounded-context.d.ts +169 -98
  86. package/dist/context/bounded-context.d.ts.map +1 -1
  87. package/dist/context/bounded-context.js +837 -503
  88. package/dist/context/bounded-context.js.map +1 -1
  89. package/dist/context/entity-inbox.d.ts +7 -2
  90. package/dist/context/entity-inbox.d.ts.map +1 -1
  91. package/dist/context/entity-inbox.js +22 -13
  92. package/dist/context/entity-inbox.js.map +1 -1
  93. package/dist/context/local-inbox-handoff.d.ts +34 -34
  94. package/dist/context/local-inbox-handoff.d.ts.map +1 -1
  95. package/dist/context/local-inbox-handoff.js +108 -150
  96. package/dist/context/local-inbox-handoff.js.map +1 -1
  97. package/dist/context/projection-handoff.d.ts +2 -2
  98. package/dist/context/projection-handoff.d.ts.map +1 -1
  99. package/dist/context/projection-handoff.js +10 -8
  100. package/dist/context/projection-handoff.js.map +1 -1
  101. package/dist/context/tenant-index.d.ts +36 -31
  102. package/dist/context/tenant-index.d.ts.map +1 -1
  103. package/dist/context/tenant-index.js +123 -125
  104. package/dist/context/tenant-index.js.map +1 -1
  105. package/dist/context/tenant-unknown-error.d.ts +33 -0
  106. package/dist/context/tenant-unknown-error.d.ts.map +1 -0
  107. package/dist/context/tenant-unknown-error.js +75 -0
  108. package/dist/context/tenant-unknown-error.js.map +1 -0
  109. package/dist/delivery/agent-delivery-scope.d.ts +66 -0
  110. package/dist/delivery/agent-delivery-scope.d.ts.map +1 -0
  111. package/dist/delivery/agent-delivery-scope.js +44 -0
  112. package/dist/delivery/agent-delivery-scope.js.map +1 -0
  113. package/dist/delivery/delivery-builder.d.ts +25 -1
  114. package/dist/delivery/delivery-builder.d.ts.map +1 -1
  115. package/dist/delivery/delivery-builder.js +89 -0
  116. package/dist/delivery/delivery-builder.js.map +1 -1
  117. package/dist/delivery/delivery-monitor.d.ts +1 -1
  118. package/dist/delivery/delivery-monitor.js +1 -1
  119. package/dist/delivery/delivery-run-control.d.ts +6 -0
  120. package/dist/delivery/delivery-run-control.d.ts.map +1 -1
  121. package/dist/delivery/delivery-run-control.js +10 -0
  122. package/dist/delivery/delivery-run-control.js.map +1 -1
  123. package/dist/delivery/delivery-supervisor.d.ts.map +1 -1
  124. package/dist/delivery/delivery-supervisor.js +28 -4
  125. package/dist/delivery/delivery-supervisor.js.map +1 -1
  126. package/dist/delivery/delivery-tenant.d.ts +17 -0
  127. package/dist/delivery/delivery-tenant.d.ts.map +1 -0
  128. package/dist/delivery/delivery-tenant.js +50 -0
  129. package/dist/delivery/delivery-tenant.js.map +1 -0
  130. package/dist/delivery/delivery.d.ts +96 -2
  131. package/dist/delivery/delivery.d.ts.map +1 -1
  132. package/dist/delivery/delivery.js +693 -53
  133. package/dist/delivery/delivery.js.map +1 -1
  134. package/dist/delivery/inbox-records.d.ts.map +1 -1
  135. package/dist/delivery/inbox-records.js +9 -16
  136. package/dist/delivery/inbox-records.js.map +1 -1
  137. package/dist/delivery/inbox-storage.d.ts +6 -0
  138. package/dist/delivery/inbox-storage.d.ts.map +1 -1
  139. package/dist/delivery/inbox-storage.js +43 -6
  140. package/dist/delivery/inbox-storage.js.map +1 -1
  141. package/dist/delivery/inbox.d.ts.map +1 -1
  142. package/dist/delivery/inbox.js +3 -2
  143. package/dist/delivery/inbox.js.map +1 -1
  144. package/dist/delivery/reception-observation.d.ts +12 -4
  145. package/dist/delivery/reception-observation.d.ts.map +1 -1
  146. package/dist/delivery/reception-observation.js +14 -3
  147. package/dist/delivery/reception-observation.js.map +1 -1
  148. package/dist/delivery/sharded-work-registry.d.ts +6 -0
  149. package/dist/delivery/sharded-work-registry.d.ts.map +1 -1
  150. package/dist/delivery/sharded-work-registry.js +41 -4
  151. package/dist/delivery/sharded-work-registry.js.map +1 -1
  152. package/dist/entity/entity-storage-descriptor.d.ts.map +1 -1
  153. package/dist/entity/entity-storage-descriptor.js +7 -4
  154. package/dist/entity/entity-storage-descriptor.js.map +1 -1
  155. package/dist/entity/entity.d.ts +59 -0
  156. package/dist/entity/entity.d.ts.map +1 -1
  157. package/dist/entity/entity.js +60 -0
  158. package/dist/entity/entity.js.map +1 -1
  159. package/dist/handler/app-query-handler.d.ts +60 -0
  160. package/dist/handler/app-query-handler.d.ts.map +1 -0
  161. package/dist/{bus/saved-dispatcher-binding.js → handler/app-query-handler.js} +8 -12
  162. package/dist/handler/app-query-handler.js.map +1 -0
  163. package/dist/handler/generated-registry-discovery.d.ts +6 -0
  164. package/dist/handler/generated-registry-discovery.d.ts.map +1 -1
  165. package/dist/handler/generated-registry-discovery.js +71 -2
  166. package/dist/handler/generated-registry-discovery.js.map +1 -1
  167. package/dist/handler/handler-decorators.d.ts +8 -29
  168. package/dist/handler/handler-decorators.d.ts.map +1 -1
  169. package/dist/handler/handler-decorators.js +33 -210
  170. package/dist/handler/handler-decorators.js.map +1 -1
  171. package/dist/handler/spine-metadata-inventory.d.ts +99 -0
  172. package/dist/handler/spine-metadata-inventory.d.ts.map +1 -0
  173. package/dist/handler/spine-metadata-inventory.js +162 -0
  174. package/dist/handler/spine-metadata-inventory.js.map +1 -0
  175. package/dist/index.d.ts +9 -5
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +6 -3
  178. package/dist/index.js.map +1 -1
  179. package/dist/integration/external-messages.d.ts.map +1 -1
  180. package/dist/integration/external-messages.js +9 -15
  181. package/dist/integration/external-messages.js.map +1 -1
  182. package/dist/integration/integration-broker.d.ts.map +1 -1
  183. package/dist/integration/integration-broker.js +112 -6
  184. package/dist/integration/integration-broker.js.map +1 -1
  185. package/dist/integration/third-party-context.d.ts.map +1 -1
  186. package/dist/integration/third-party-context.js +7 -10
  187. package/dist/integration/third-party-context.js.map +1 -1
  188. package/dist/repository/primitive-id.js +26 -11
  189. package/dist/repository/primitive-id.js.map +1 -1
  190. package/dist/repository/repository.d.ts +75 -60
  191. package/dist/repository/repository.d.ts.map +1 -1
  192. package/dist/repository/repository.js +1757 -1818
  193. package/dist/repository/repository.js.map +1 -1
  194. package/dist/runtime/runtime.d.ts +13 -0
  195. package/dist/runtime/runtime.d.ts.map +1 -1
  196. package/dist/runtime/runtime.js +18 -0
  197. package/dist/runtime/runtime.js.map +1 -1
  198. package/dist/runtime/signal-metadata.d.ts.map +1 -1
  199. package/dist/runtime/signal-metadata.js +6 -6
  200. package/dist/runtime/signal-metadata.js.map +1 -1
  201. package/dist/runtime/signal-publisher.d.ts +0 -6
  202. package/dist/runtime/signal-publisher.d.ts.map +1 -1
  203. package/dist/runtime/signal-publisher.js +1 -9
  204. package/dist/runtime/signal-publisher.js.map +1 -1
  205. package/dist/runtime/standalone-handler-runtime.d.ts +0 -7
  206. package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -1
  207. package/dist/runtime/standalone-handler-runtime.js +13 -99
  208. package/dist/runtime/standalone-handler-runtime.js.map +1 -1
  209. package/dist/server/managed-delivery-gate.d.ts +34 -0
  210. package/dist/server/managed-delivery-gate.d.ts.map +1 -0
  211. package/dist/server/managed-delivery-gate.js +70 -0
  212. package/dist/server/managed-delivery-gate.js.map +1 -0
  213. package/dist/server/managed-server-application.d.ts +12 -11
  214. package/dist/server/managed-server-application.d.ts.map +1 -1
  215. package/dist/server/managed-server-application.js +48 -29
  216. package/dist/server/managed-server-application.js.map +1 -1
  217. package/dist/server/node-coordinator.d.ts +18 -5
  218. package/dist/server/node-coordinator.d.ts.map +1 -1
  219. package/dist/server/node-coordinator.js +554 -84
  220. package/dist/server/node-coordinator.js.map +1 -1
  221. package/dist/server/reserved-spine-rpc-paths.json +1 -0
  222. package/dist/server/server-environment.d.ts +220 -25
  223. package/dist/server/server-environment.d.ts.map +1 -1
  224. package/dist/server/server-environment.js +734 -145
  225. package/dist/server/server-environment.js.map +1 -1
  226. package/dist/server/server-log.d.ts +7 -0
  227. package/dist/server/server-log.d.ts.map +1 -1
  228. package/dist/server/server-log.js +14 -1
  229. package/dist/server/server-log.js.map +1 -1
  230. package/dist/server/server.d.ts +60 -29
  231. package/dist/server/server.d.ts.map +1 -1
  232. package/dist/server/server.js +155 -201
  233. package/dist/server/server.js.map +1 -1
  234. package/dist/services/app-query-execution.d.ts +53 -0
  235. package/dist/services/app-query-execution.d.ts.map +1 -0
  236. package/dist/services/app-query-execution.js +408 -0
  237. package/dist/services/app-query-execution.js.map +1 -0
  238. package/dist/services/query-reader.d.ts +32 -7
  239. package/dist/services/query-reader.d.ts.map +1 -1
  240. package/dist/services/query-reader.js +22 -2
  241. package/dist/services/query-reader.js.map +1 -1
  242. package/dist/services/read-request-status.d.ts +65 -0
  243. package/dist/services/read-request-status.d.ts.map +1 -0
  244. package/dist/services/read-request-status.js +151 -0
  245. package/dist/services/read-request-status.js.map +1 -0
  246. package/dist/services/spine-services.d.ts +37 -8
  247. package/dist/services/spine-services.d.ts.map +1 -1
  248. package/dist/services/spine-services.js +1103 -470
  249. package/dist/services/spine-services.js.map +1 -1
  250. package/dist/services/trusted-reader-ingress.d.ts +92 -0
  251. package/dist/services/trusted-reader-ingress.d.ts.map +1 -0
  252. package/dist/services/trusted-reader-ingress.js +89 -0
  253. package/dist/services/trusted-reader-ingress.js.map +1 -0
  254. package/dist/spi/handler-registry.d.ts +2 -0
  255. package/dist/spi/handler-registry.d.ts.map +1 -1
  256. package/dist/spi/handler-registry.js +1 -1
  257. package/dist/spi/handler-registry.js.map +1 -1
  258. package/dist/stand/event-origin-filter.js +3 -3
  259. package/dist/stand/event-origin-filter.js.map +1 -1
  260. package/dist/stand/read-side-filter-engine.d.ts +46 -0
  261. package/dist/stand/read-side-filter-engine.d.ts.map +1 -0
  262. package/dist/stand/read-side-filter-engine.js +356 -0
  263. package/dist/stand/read-side-filter-engine.js.map +1 -0
  264. package/dist/stand/read-side-filter.d.ts +247 -0
  265. package/dist/stand/read-side-filter.d.ts.map +1 -0
  266. package/dist/stand/read-side-filter.js +39 -0
  267. package/dist/stand/read-side-filter.js.map +1 -0
  268. package/dist/stand/read-side-message.d.ts +66 -0
  269. package/dist/stand/read-side-message.d.ts.map +1 -0
  270. package/dist/stand/read-side-message.js +167 -0
  271. package/dist/stand/read-side-message.js.map +1 -0
  272. package/dist/stand/stand-direct-delivery.d.ts +161 -0
  273. package/dist/stand/stand-direct-delivery.d.ts.map +1 -0
  274. package/dist/stand/stand-direct-delivery.js +210 -0
  275. package/dist/stand/stand-direct-delivery.js.map +1 -0
  276. package/dist/stand/stand.d.ts +94 -42
  277. package/dist/stand/stand.d.ts.map +1 -1
  278. package/dist/stand/stand.js +460 -60
  279. package/dist/stand/stand.js.map +1 -1
  280. package/dist/stand/subscription-observer.d.ts.map +1 -1
  281. package/dist/stand/subscription-observer.js +157 -40
  282. package/dist/stand/subscription-observer.js.map +1 -1
  283. package/dist/stand/subscription-read-filters.d.ts +40 -0
  284. package/dist/stand/subscription-read-filters.d.ts.map +1 -0
  285. package/dist/stand/subscription-read-filters.js +91 -0
  286. package/dist/stand/subscription-read-filters.js.map +1 -0
  287. package/dist/stand/subscription-reader-binding.d.ts +20 -0
  288. package/dist/stand/subscription-reader-binding.d.ts.map +1 -0
  289. package/dist/stand/subscription-reader-binding.js +56 -0
  290. package/dist/stand/subscription-reader-binding.js.map +1 -0
  291. package/dist/stand/subscription-records.d.ts +30 -3
  292. package/dist/stand/subscription-records.d.ts.map +1 -1
  293. package/dist/stand/subscription-records.js +61 -16
  294. package/dist/stand/subscription-records.js.map +1 -1
  295. package/dist/stand/subscription-registry.d.ts +54 -15
  296. package/dist/stand/subscription-registry.d.ts.map +1 -1
  297. package/dist/stand/subscription-registry.js +164 -41
  298. package/dist/stand/subscription-registry.js.map +1 -1
  299. package/dist/stand/subscription-runtime.d.ts +12 -5
  300. package/dist/stand/subscription-runtime.d.ts.map +1 -1
  301. package/dist/stand/subscription-runtime.js +183 -34
  302. package/dist/stand/subscription-runtime.js.map +1 -1
  303. package/dist/testing/index.d.ts.map +1 -1
  304. package/dist/testing/index.js +4 -3
  305. package/dist/testing/index.js.map +1 -1
  306. package/dist/tsconfig.tsbuildinfo +1 -1
  307. package/package.json +14 -14
  308. package/dist/agent/agent-admission.d.ts +0 -80
  309. package/dist/agent/agent-admission.d.ts.map +0 -1
  310. package/dist/agent/agent-admission.js +0 -127
  311. package/dist/agent/agent-admission.js.map +0 -1
  312. package/dist/agent/agent-ai-runtime.d.ts +0 -76
  313. package/dist/agent/agent-ai-runtime.d.ts.map +0 -1
  314. package/dist/agent/agent-ai-runtime.js +0 -1269
  315. package/dist/agent/agent-ai-runtime.js.map +0 -1
  316. package/dist/agent/agent-execution-fault.d.ts +0 -18
  317. package/dist/agent/agent-execution-fault.d.ts.map +0 -1
  318. package/dist/agent/agent-execution-fault.js.map +0 -1
  319. package/dist/agent/agent-execution-session.d.ts +0 -103
  320. package/dist/agent/agent-execution-session.d.ts.map +0 -1
  321. package/dist/agent/agent-execution-session.js +0 -238
  322. package/dist/agent/agent-execution-session.js.map +0 -1
  323. package/dist/agent/agent-interaction-audit.d.ts +0 -58
  324. package/dist/agent/agent-interaction-audit.d.ts.map +0 -1
  325. package/dist/agent/agent-interaction-audit.js +0 -114
  326. package/dist/agent/agent-interaction-audit.js.map +0 -1
  327. package/dist/agent/agent-interaction-events.d.ts +0 -40
  328. package/dist/agent/agent-interaction-events.d.ts.map +0 -1
  329. package/dist/agent/agent-interaction-events.js +0 -129
  330. package/dist/agent/agent-interaction-events.js.map +0 -1
  331. package/dist/agent/agent-mcp-budget.d.ts +0 -125
  332. package/dist/agent/agent-mcp-budget.d.ts.map +0 -1
  333. package/dist/agent/agent-mcp-budget.js +0 -566
  334. package/dist/agent/agent-mcp-budget.js.map +0 -1
  335. package/dist/agent/agent-mcp-host.d.ts +0 -125
  336. package/dist/agent/agent-mcp-host.d.ts.map +0 -1
  337. package/dist/agent/agent-mcp-host.js.map +0 -1
  338. package/dist/agent/agent-mcp-runtime.d.ts.map +0 -1
  339. package/dist/agent/agent-mcp-runtime.js.map +0 -1
  340. package/dist/agent/agent-read-runtime.d.ts +0 -70
  341. package/dist/agent/agent-read-runtime.d.ts.map +0 -1
  342. package/dist/agent/agent-read-runtime.js +0 -320
  343. package/dist/agent/agent-read-runtime.js.map +0 -1
  344. package/dist/agent/agent-revisions.d.ts +0 -35
  345. package/dist/agent/agent-revisions.d.ts.map +0 -1
  346. package/dist/agent/agent-revisions.js +0 -133
  347. package/dist/agent/agent-revisions.js.map +0 -1
  348. package/dist/agent/agent-scheduler.d.ts +0 -99
  349. package/dist/agent/agent-scheduler.d.ts.map +0 -1
  350. package/dist/agent/agent-scheduler.js +0 -398
  351. package/dist/agent/agent-scheduler.js.map +0 -1
  352. package/dist/bus/saved-dispatcher-binding.d.ts +0 -53
  353. package/dist/bus/saved-dispatcher-binding.d.ts.map +0 -1
  354. package/dist/bus/saved-dispatcher-binding.js.map +0 -1
  355. package/dist/delivery/delivery-run-coordinator.d.ts +0 -218
  356. package/dist/delivery/delivery-run-coordinator.d.ts.map +0 -1
  357. package/dist/delivery/delivery-run-coordinator.js +0 -609
  358. package/dist/delivery/delivery-run-coordinator.js.map +0 -1
  359. package/dist/delivery/parked-delivery-obligations.d.ts +0 -182
  360. package/dist/delivery/parked-delivery-obligations.d.ts.map +0 -1
  361. package/dist/delivery/parked-delivery-obligations.js +0 -390
  362. package/dist/delivery/parked-delivery-obligations.js.map +0 -1
  363. package/dist/server/environment-attachment.d.ts +0 -356
  364. package/dist/server/environment-attachment.d.ts.map +0 -1
  365. package/dist/server/environment-attachment.js +0 -2062
  366. package/dist/server/environment-attachment.js.map +0 -1
  367. package/dist/server/environment-delivery-records.d.ts +0 -77
  368. package/dist/server/environment-delivery-records.d.ts.map +0 -1
  369. package/dist/server/environment-delivery-records.js +0 -282
  370. package/dist/server/environment-delivery-records.js.map +0 -1
  371. package/dist/server/environment-delivery-worker.d.ts +0 -161
  372. package/dist/server/environment-delivery-worker.d.ts.map +0 -1
  373. package/dist/server/environment-delivery-worker.js +0 -973
  374. package/dist/server/environment-delivery-worker.js.map +0 -1
@@ -2,18 +2,43 @@ import type { MessageSchema } from "@spine-event-engine/core";
2
2
  import type { TenantId } from "@spine-event-engine/proto";
3
3
  import { type Query } from "@spine-event-engine/proto/client";
4
4
  import type { NormalizedQueryPlan } from "@spine-event-engine/storage";
5
- import type { Stand, StandReadResult } from "../stand/stand.js";
5
+ import { type Stand, type StandReadResult } from "../stand/stand.js";
6
+ import type { ReadSideContext } from "../stand/read-side-filter.js";
7
+ /**
8
+ * Callback notified when a typed Stand query is read.
9
+ */
6
10
  type QueryReaderObserver = (query: Readonly<Query>) => void;
11
+ /**
12
+ * Describes typed Stand queries and the testing-only read observer.
13
+ */
14
+ interface QueryReaderAccess {
15
+ /**
16
+ * Reads a typed state through its Stand while retaining the actual query context.
17
+ * @typeParam Schema Registered state schema.
18
+ * @param stand Context read facade.
19
+ * @param schema Requested state schema.
20
+ * @param plan Normalized storage plan.
21
+ * @param tenantId Effective tenant.
22
+ * @param candidateLimit Existing query candidate limit.
23
+ * @param query Original submitted Query, if present.
24
+ * @param readSide Trusted invocation context, if present.
25
+ * @returns Visible state records.
26
+ */
27
+ read<Schema extends MessageSchema>(stand: Stand, schema: Schema, plan: NormalizedQueryPlan<unknown>, tenantId: TenantId | undefined, candidateLimit: number, query?: Query, readSide?: ReadSideContext): Promise<readonly StandReadResult<Schema>[]>;
28
+ /**
29
+ * Observes original queries for tests without changing read execution.
30
+ * @param onRead Observer called with a detached Query.
31
+ * @returns Handle that removes this observer.
32
+ */
33
+ observe(onRead: QueryReaderObserver): {
34
+ readonly close: () => void;
35
+ };
36
+ }
7
37
  /**
8
38
  * Executes normalized Entity query plans against a Stand and exposes a testing-only read observer.
9
39
  *
10
40
  * @internal
11
41
  */
12
- export declare const QueryReader: Readonly<{
13
- readonly read: <Schema extends MessageSchema>(stand: Stand, schema: Schema, plan: NormalizedQueryPlan<unknown>, tenantId: TenantId | undefined, candidateLimit: number, query?: Query) => Promise<readonly StandReadResult<Schema>[]>;
14
- readonly observe: (onRead: QueryReaderObserver) => {
15
- readonly close: () => void;
16
- };
17
- }>;
42
+ export declare const QueryReader: Readonly<QueryReaderAccess>;
18
43
  export {};
19
44
  //# sourceMappingURL=query-reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-reader.d.ts","sourceRoot":"","sources":["../../src/services/query-reader.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEhE,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AAI5D;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,SAAS,aAAa,EAC1C,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAClC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,KAAK,KACV,OAAO,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CACnF,CA+BC,CAAC"}
1
+ {"version":3,"file":"query-reader.d.ts","sourceRoot":"","sources":["../../src/services/query-reader.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAe,KAAK,KAAK,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;GAEG;AACH,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AAI5D;;GAEG;AACH,UAAU,iBAAiB;IACzB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,MAAM,SAAS,aAAa,EAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAClC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,KAAK,EACb,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE/C;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CACtE;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CA+ClD,CAAC"}
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { clone } from "@bufbuild/protobuf";
15
15
  import { QuerySchema } from "@spine-event-engine/proto/client";
16
+ import { standAccess } from "../stand/stand.js";
16
17
  const observers = new Set();
17
18
  /**
18
19
  * Executes normalized Entity query plans against a Stand and exposes a testing-only read observer.
@@ -20,7 +21,19 @@ const observers = new Set();
20
21
  * @internal
21
22
  */
22
23
  export const QueryReader = Object.freeze({
23
- read(stand, schema, plan, tenantId, candidateLimit, query) {
24
+ /**
25
+ * Reads the plan and forwards original query facts to Stand policy callbacks.
26
+ * @typeParam Schema Registered state schema.
27
+ * @param stand Context read facade.
28
+ * @param schema Requested state schema.
29
+ * @param plan Normalized storage plan.
30
+ * @param tenantId Effective tenant.
31
+ * @param candidateLimit Existing query candidate limit.
32
+ * @param query Original submitted Query, if present.
33
+ * @param readSide Trusted invocation context, if present.
34
+ * @returns Visible state records.
35
+ */
36
+ read(stand, schema, plan, tenantId, candidateLimit, query, readSide) {
24
37
  if (query !== undefined) {
25
38
  for (const observer of observers) {
26
39
  try {
@@ -31,8 +44,15 @@ export const QueryReader = Object.freeze({
31
44
  }
32
45
  }
33
46
  }
34
- return stand.queryPlanVersioned(schema, { ...plan, candidateLimit }, tenantId === undefined ? {} : { tenantId });
47
+ const options = tenantId === undefined ? {} : { tenantId };
48
+ const selected = { ...plan, candidateLimit };
49
+ return readSide === undefined
50
+ ? stand.queryPlanVersioned(schema, selected, options)
51
+ : standAccess.queryPlanVersioned(stand, schema, selected, options, readSide);
35
52
  },
53
+ /**
54
+ * Registers a testing observer and returns a handle that removes it.
55
+ */
36
56
  observe(onRead) {
37
57
  observers.add(onRead);
38
58
  return Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"query-reader.js","sourceRoot":"","sources":["../../src/services/query-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAc,MAAM,kCAAkC,CAAC;AAO3E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAUnB,MAAM,CAAC,MAAM,CAAC;IACjB,IAAI,CACF,KAAY,EACZ,MAAc,EACd,IAAkC,EAClC,QAA8B,EAC9B,cAAsB,EACtB,KAAa;QAEb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACP,+DAA+D;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,kBAAkB,CAC7B,MAAM,EACN,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,EAC3B,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAC3C,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,MAA2B;QACjC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"query-reader.js","sourceRoot":"","sources":["../../src/services/query-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAc,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAoC,MAAM,mBAAmB,CAAC;AAQlF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;AAoCjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgC,MAAM,CAAC,MAAM,CAAC;IACpE;;;;;;;;;;;OAWG;IACH,IAAI,CACF,KAAY,EACZ,MAAc,EACd,IAAkC,EAClC,QAA8B,EAC9B,cAAsB,EACtB,KAAa,EACb,QAA0B;QAE1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACP,+DAA+D;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;QAC7C,OAAO,QAAQ,KAAK,SAAS;YAC3B,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;YACrD,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAA2B;QACjC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { Any } from "@bufbuild/protobuf/wkt";
2
+ import { ConnectError } from "@connectrpc/connect";
3
+ import { type Subscription } from "@spine-event-engine/proto/client";
4
+ import type { TenantUnknownError } from "../context/tenant-unknown-error.js";
5
+ /**
6
+ * Public read-side requests with distinct Spine validation enums.
7
+ */
8
+ export type ReadRequestKind = "query" | "topic" | "subscription";
9
+ /**
10
+ * Maps read-side validation to native Spine Error trailers and Connect details.
11
+ */
12
+ export declare const ReadRequestStatus: {
13
+ /**
14
+ * Maps policy failures to sanitized transport codes without exposing private messages.
15
+ * @param error Policy, handler, or storage failure.
16
+ * @param message Public boundary failure message.
17
+ * @returns Sanitized recognized status or an internal error.
18
+ */
19
+ technical(error: unknown, message: string): ConnectError;
20
+ /**
21
+ * Creates a structured NotFound for a receiving context's missing membership.
22
+ *
23
+ * @param error Confirmed missing tenant from the target context.
24
+ * @returns Native and Connect status carrying the stable tenant type.
25
+ */
26
+ unknownTenant(error: TenantUnknownError): ConnectError;
27
+ /**
28
+ * Creates the status for a well-formed activation without a registry record.
29
+ *
30
+ * @returns A structured NotFound status for direct and managed clients.
31
+ */
32
+ unknownSubscription(): ConnectError;
33
+ /**
34
+ * Validates a complete request and sanitizes unexpected validator failures.
35
+ *
36
+ * @param kind The public request kind.
37
+ * @param validate Performs declared Protobuf validation.
38
+ */
39
+ check(kind: ReadRequestKind, validate: () => unknown): void;
40
+ /**
41
+ * Rejects unusable Topic criteria in lifecycle requests before record access.
42
+ *
43
+ * @param subscription Validated activation or cancellation request.
44
+ */
45
+ checkLifecycleCriterion(subscription: Subscription): void;
46
+ /**
47
+ * Maps tenant admission to a distinct structured status.
48
+ *
49
+ * @param type Existing tenant failure type.
50
+ * @param message Safe tenant explanation.
51
+ * @returns A structured InvalidArgument status.
52
+ */
53
+ tenant(type: string, message: string): ConnectError;
54
+ /**
55
+ * Creates an InvalidArgument status with an enum-qualified Spine Error.
56
+ *
57
+ * @param kind The invalid read-side request.
58
+ * @param unsupported Whether its target is not registered.
59
+ * @param message Safe public explanation.
60
+ * @param details Declared constraint violations, when available.
61
+ * @returns A transport error carrying native and Connect structured details.
62
+ */
63
+ invalid(kind: ReadRequestKind, unsupported: boolean, message: string, details?: Any): ConnectError;
64
+ };
65
+ //# sourceMappingURL=read-request-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-request-status.d.ts","sourceRoot":"","sources":["../../src/services/read-request-status.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAQ,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;;;;OAKG;qBACc,OAAO,WAAW,MAAM,GAAG,YAAY;IAaxD;;;;;OAKG;yBACkB,kBAAkB,GAAG,YAAY;IAkBtD;;;;OAIG;2BACoB,YAAY;IAanC;;;;;OAKG;gBACS,eAAe,YAAY,MAAM,OAAO,GAAG,IAAI;IAgB3D;;;;OAIG;0CACmC,YAAY,GAAG,IAAI;IAmBzD;;;;;;OAMG;iBACU,MAAM,WAAW,MAAM,GAAG,YAAY;IAUnD;;;;;;;;OAQG;kBAEK,eAAe,eACR,OAAO,WACX,MAAM,YACL,GAAG,GACZ,YAAY;CAmBhB,CAAC"}
@@ -0,0 +1,151 @@
1
+ /*
2
+ * Copyright 2026, CodeMatters. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
+ * in compliance with the License. You may obtain a copy of the License at
6
+ *
7
+ * https://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
10
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
+ * or implied. See the License for the specific language governing permissions and limitations under
12
+ * the License.
13
+ */
14
+ import { create, toBinary } from "@bufbuild/protobuf";
15
+ import { Code, ConnectError } from "@connectrpc/connect";
16
+ import { AnyPacker, ValidationException } from "@spine-event-engine/core";
17
+ import { ErrorSchema, ValidationErrorSchema } from "@spine-event-engine/proto";
18
+ import { QueryValidationError, SubscriptionValidationError, TopicValidationError, } from "@spine-event-engine/proto/client";
19
+ /**
20
+ * Maps read-side validation to native Spine Error trailers and Connect details.
21
+ */
22
+ export const ReadRequestStatus = {
23
+ /**
24
+ * Maps policy failures to sanitized transport codes without exposing private messages.
25
+ * @param error Policy, handler, or storage failure.
26
+ * @param message Public boundary failure message.
27
+ * @returns Sanitized recognized status or an internal error.
28
+ */
29
+ technical(error, message) {
30
+ const recognized = [
31
+ Code.Canceled,
32
+ Code.Unauthenticated,
33
+ Code.PermissionDenied,
34
+ Code.Unavailable,
35
+ ];
36
+ return new ConnectError(message, error instanceof ConnectError && recognized.includes(error.code) ? error.code : Code.Internal);
37
+ },
38
+ /**
39
+ * Creates a structured NotFound for a receiving context's missing membership.
40
+ *
41
+ * @param error Confirmed missing tenant from the target context.
42
+ * @returns Native and Connect status carrying the stable tenant type.
43
+ */
44
+ unknownTenant(error) {
45
+ const value = create(ErrorSchema, {
46
+ type: error.type,
47
+ code: Code.NotFound,
48
+ message: error.message,
49
+ });
50
+ const metadata = new Headers({
51
+ "spine-error-bin": Buffer.from(toBinary(ErrorSchema, value)).toString("base64"),
52
+ });
53
+ return new ConnectError(error.message, Code.NotFound, metadata, [{ desc: ErrorSchema, value }], error);
54
+ },
55
+ /**
56
+ * Creates the status for a well-formed activation without a registry record.
57
+ *
58
+ * @returns A structured NotFound status for direct and managed clients.
59
+ */
60
+ unknownSubscription() {
61
+ const message = "Subscription is unknown to this server.";
62
+ const value = create(ErrorSchema, {
63
+ type: "spine.client.SubscriptionValidationError",
64
+ code: SubscriptionValidationError.UNKNOWN_SUBSCRIPTION,
65
+ message,
66
+ });
67
+ const metadata = new Headers({
68
+ "spine-error-bin": Buffer.from(toBinary(ErrorSchema, value)).toString("base64"),
69
+ });
70
+ return new ConnectError(message, Code.NotFound, metadata, [{ desc: ErrorSchema, value }]);
71
+ },
72
+ /**
73
+ * Validates a complete request and sanitizes unexpected validator failures.
74
+ *
75
+ * @param kind The public request kind.
76
+ * @param validate Performs declared Protobuf validation.
77
+ */
78
+ check(kind, validate) {
79
+ try {
80
+ validate();
81
+ }
82
+ catch (error) {
83
+ if (error instanceof ValidationException) {
84
+ throw ReadRequestStatus.invalid(kind, false, `${kind} validation failed.`, AnyPacker.pack(ValidationErrorSchema, error.asMessage()));
85
+ }
86
+ throw new ConnectError("Read request validation failed.", Code.Internal);
87
+ }
88
+ },
89
+ /**
90
+ * Rejects unusable Topic criteria in lifecycle requests before record access.
91
+ *
92
+ * @param subscription Validated activation or cancellation request.
93
+ */
94
+ checkLifecycleCriterion(subscription) {
95
+ const criterion = subscription.topic?.target?.criterion;
96
+ if (criterion?.case === "includeAll" && criterion.value)
97
+ return;
98
+ if (criterion?.case === "filters") {
99
+ const filters = criterion.value;
100
+ if ((filters.idFilter?.id.length ?? 0) > 0 || filters.filter.length > 0)
101
+ return;
102
+ throw ReadRequestStatus.invalid("subscription", false, "Subscription requires an ID filter or field filter.");
103
+ }
104
+ throw ReadRequestStatus.invalid("subscription", false, "Subscription requires filters or include_all = true.");
105
+ },
106
+ /**
107
+ * Maps tenant admission to a distinct structured status.
108
+ *
109
+ * @param type Existing tenant failure type.
110
+ * @param message Safe tenant explanation.
111
+ * @returns A structured InvalidArgument status.
112
+ */
113
+ tenant(type, message) {
114
+ const value = create(ErrorSchema, { type, code: Code.InvalidArgument, message });
115
+ const metadata = new Headers({
116
+ "spine-error-bin": Buffer.from(toBinary(ErrorSchema, value)).toString("base64"),
117
+ });
118
+ return new ConnectError(message, Code.InvalidArgument, metadata, [
119
+ { desc: ErrorSchema, value },
120
+ ]);
121
+ },
122
+ /**
123
+ * Creates an InvalidArgument status with an enum-qualified Spine Error.
124
+ *
125
+ * @param kind The invalid read-side request.
126
+ * @param unsupported Whether its target is not registered.
127
+ * @param message Safe public explanation.
128
+ * @param details Declared constraint violations, when available.
129
+ * @returns A transport error carrying native and Connect structured details.
130
+ */
131
+ invalid(kind, unsupported, message, details) {
132
+ const type = `spine.client.${kind.charAt(0).toUpperCase()}${kind.slice(1)}ValidationError`;
133
+ const code = unsupported
134
+ ? kind === "query"
135
+ ? QueryValidationError.UNSUPPORTED_QUERY_TARGET
136
+ : TopicValidationError.UNSUPPORTED_TOPIC_TARGET
137
+ : kind === "query"
138
+ ? QueryValidationError.INVALID_QUERY
139
+ : kind === "topic"
140
+ ? TopicValidationError.INVALID_TOPIC
141
+ : SubscriptionValidationError.INVALID_SUBSCRIPTION;
142
+ const value = create(ErrorSchema, { type, code, message, details });
143
+ const metadata = new Headers({
144
+ "spine-error-bin": Buffer.from(toBinary(ErrorSchema, value)).toString("base64"),
145
+ });
146
+ return new ConnectError(message, Code.InvalidArgument, metadata, [
147
+ { desc: ErrorSchema, value },
148
+ ]);
149
+ },
150
+ };
151
+ //# sourceMappingURL=read-request-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-request-status.js","sourceRoot":"","sources":["../../src/services/read-request-status.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,28 @@
1
1
  import type { ILogLayer } from "loglayer";
2
- import { type ConnectRouter } from "@connectrpc/connect";
3
- import { type BoundedContext } from "../context/bounded-context.js";
2
+ import { type ConnectRouter, type HandlerContext } from "@connectrpc/connect";
3
+ import type { ReaderProofVerifier } from "@spine-event-engine/core/spi/reader-forwarding";
4
+ import { BoundedContext } from "../context/bounded-context.js";
5
+ import { AppQueryExecution } from "./app-query-execution.js";
6
+ import { type DirectReaderAuthenticator } from "./trusted-reader-ingress.js";
7
+ import { ReadSideFilterEngine } from "../stand/read-side-filter-engine.js";
8
+ /**
9
+ * Framework-only hooks for installing service read policies and App Query routing.
10
+ */
4
11
  interface SpineServicesAccess {
12
+ /**
13
+ * Attaches one Server's gRPC read policy before accepting requests.
14
+ *
15
+ * @param services Prepared service adapter.
16
+ * @param filters Registered policy engine.
17
+ */
18
+ installReadFilters(services: SpineServices, filters: ReadSideFilterEngine): void;
19
+ /**
20
+ * Attaches the Server-selected App Query capability before listener binding.
21
+ *
22
+ * @param services Adapter created for this Server.
23
+ * @param queries Exact-class handler table prepared by the Server.
24
+ */
25
+ installAppQueries(services: SpineServices, queries: AppQueryExecution): void;
5
26
  /**
6
27
  * Sets the server logger for service diagnostics.
7
28
  *
@@ -32,7 +53,8 @@ interface SpineServicesAccess {
32
53
  * Queries allow at most 100 IDs, 16 simple filters, 8 composites, and 8 orderings.
33
54
  * Use proto column names such as `open_task_count`, not generated TS local names
34
55
  * such as `openTaskCount`. Invalid columns, values, operators, and query shapes
35
- * return stable `INVALID_QUERY` responses before Stand storage is read.
56
+ * reject with structured `INVALID_ARGUMENT` and `INVALID_QUERY` details before
57
+ * Stand storage is read.
36
58
  *
37
59
  * `SubscriptionService.Subscribe` accepts known state targets with
38
60
  * `include_all` or validated ID/field filters and known event targets exposed
@@ -48,7 +70,9 @@ interface SpineServicesAccess {
48
70
  * rejected-command payload forms and stack trace from their client-facing
49
71
  * context.
50
72
  * Application code remains on generated domain event messages through handler
51
- * dispatch. Unknown or duplicate activation IDs complete without updates.
73
+ * dispatch. Unknown or expired activation IDs fail with `NOT_FOUND` and
74
+ * `UNKNOWN_SUBSCRIPTION` details. A duplicate active activation completes
75
+ * without another update stream.
52
76
  * Cancellation of unknown or already-cleaned IDs returns OK after admission to
53
77
  * the bounded unknown-removal pool.
54
78
  */
@@ -83,11 +107,16 @@ export interface SpineServicesOptions {
83
107
  */
84
108
  readonly contexts: readonly BoundedContext[];
85
109
  /**
86
- * Maximum queued updates per active subscription before delivery is closed.
87
- *
88
- * Defaults to 100. Non-positive or non-finite values are coerced to 1.
110
+ * Existing native request-size bound used for internal reader assertions.
111
+ */
112
+ readonly readMaxBytes?: number;
113
+ /**
114
+ * Configured direct and trusted-peer authentication ports.
89
115
  */
90
- readonly queueLimit?: number;
116
+ readonly readerAdmission?: Readonly<{
117
+ forwarded?: ReaderProofVerifier<HandlerContext>;
118
+ direct?: DirectReaderAuthenticator<HandlerContext>;
119
+ }>;
91
120
  /**
92
121
  * Maximum concurrent unknown-ID cancellation operations for this
93
122
  * `SpineServices` instance.
@@ -1 +1 @@
1
- {"version":3,"file":"spine-services.d.ts","sourceRoot":"","sources":["../../src/services/spine-services.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAoF7E,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAkB1F,UAAU,mBAAmB;IAC3B;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAEhE;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,aAAa;;IAuBxB;;;;OAIG;gBACS,OAAO,EAAE,oBAAoB;IA4DzC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;CA6hB/C;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,mBAyBhC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAGnC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAE7C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC"}
1
+ {"version":3,"file":"spine-services.d.ts","sourceRoot":"","sources":["../../src/services/spine-services.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAUlG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAgF1F,OAAO,EAAE,cAAc,EAAwB,MAAM,+BAA+B,CAAC;AAOrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAwB,KAAK,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AASnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAY3E;;GAEG;AACH,UAAU,mBAAmB;IAC3B;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAEjF;;;;;OAKG;IACH,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAE7E;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAEhE;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,aAAa;;IAyBxB;;;;OAIG;gBACS,OAAO,EAAE,oBAAoB;IA4DzC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;CAg9B/C;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,mBA+ChC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAGnC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC;QAClC,SAAS,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,yBAAyB,CAAC,cAAc,CAAC,CAAC;KACpD,CAAC,CAAC;IAEH;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC"}