@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
@@ -1,133 +0,0 @@
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 { createHash } from "node:crypto";
15
- import { toBinary } from "@bufbuild/protobuf";
16
- import { FileDescriptorProtoSchema } from "@bufbuild/protobuf/wkt";
17
- import { mcpDefinition, mcpRegistrations, registryOptions, } from "@spine-event-engine/ai/spi/runtime";
18
- /**
19
- * Derives restart comparison keys without retaining application callbacks.
20
- */
21
- export const AgentRevisions = Object.freeze({
22
- /**
23
- * Computes descriptor and effective-policy digests for accepted work.
24
- *
25
- * @param state Generated Agent state descriptor.
26
- * @param handlers Selected handler bindings in execution order.
27
- * @param ai Effective Bounded Context AI registry.
28
- * @param repository Repository capability configuration.
29
- * @returns Revisions persisted for recovery comparison.
30
- */
31
- atAdmission(state, handlers, ai, repository) {
32
- const schemas = [
33
- state,
34
- ...handlers.map((entry) => entry.handler.schema),
35
- ...repository.models.flatMap((model) => [model.definition.input, model.definition.output]),
36
- ];
37
- const files = new Map(schemas.map((schema) => [schema.file.proto.name, schema.file.proto]));
38
- const schemaHash = createHash("sha256");
39
- for (const name of [...files.keys()].sort()) {
40
- schemaHash.update(name);
41
- const file = files.get(name);
42
- if (file === undefined)
43
- throw new Error("Agent descriptor disappeared during admission.");
44
- schemaHash.update(toBinary(FileDescriptorProtoSchema, file));
45
- }
46
- return Object.freeze({
47
- schema: schemaHash.digest("hex"),
48
- policy: createHash("sha256")
49
- .update(JSON.stringify(policyShape(ai, repository)))
50
- .digest("hex"),
51
- });
52
- },
53
- });
54
- /**
55
- * Selects serializable policy fields while callback revisions remain in codeRevision.
56
- *
57
- * @param ai Effective registry.
58
- * @param repository Repository capabilities and narrowing policy.
59
- * @returns Ordered policy value for a deterministic digest.
60
- */
61
- function policyShape(ai, repository) {
62
- const options = registryOptions(ai);
63
- return {
64
- defaults: options.defaultModels,
65
- limits: options.invocationLimits,
66
- hookTimeoutMs: options.hookTimeoutMs,
67
- repositoryDefaults: repository.defaultModels,
68
- allowedModels: repository.allowedModels,
69
- invocationLimits: repository.invocationLimits,
70
- mcpServers: mcpPolicies(ai, repository),
71
- models: repository.models.map(({ definition }) => ({
72
- name: definition.name,
73
- version: definition.version,
74
- kind: definition.kind,
75
- input: definition.input.typeName,
76
- output: definition.output.typeName,
77
- limits: definition.limits,
78
- validationVersion: definition.validation?.version,
79
- ...(definition.kind === "generation"
80
- ? {
81
- instructions: definition.instructions,
82
- outputMode: definition.outputMode,
83
- tools: definition.tools,
84
- }
85
- : {
86
- questions: definition.questions,
87
- mappingVersion: definition.mapping.version,
88
- requireProbabilities: definition.requireProbabilities,
89
- requireIndependentQuestions: definition.requireIndependentQuestions,
90
- }),
91
- })),
92
- };
93
- }
94
- /**
95
- * Hashes only available tools and their server policy without evaluating credential callbacks.
96
- *
97
- * @param ai Effective AI registry with registered tool servers.
98
- * @param repository Model capabilities available to this Agent repository.
99
- * @returns Deterministically ordered serializable server policies.
100
- */
101
- function mcpPolicies(ai, repository) {
102
- const selected = repository.models.flatMap(({ definition }) => definition.kind === "generation" ? (definition.tools ?? []) : []);
103
- return mcpRegistrations(ai)
104
- .filter((registration) => selected.some((ref) => ref.server === mcpDefinition(registration).id))
105
- .map((registration) => {
106
- const server = mcpDefinition(registration);
107
- const transport = server.transport.kind === "streamable-http"
108
- ? { kind: server.transport.kind, url: server.transport.url }
109
- : {
110
- kind: server.transport.kind,
111
- executable: server.transport.executable,
112
- args: server.transport.args,
113
- cwd: server.transport.cwd,
114
- };
115
- return {
116
- id: server.id,
117
- revision: server.revision,
118
- transport,
119
- tools: Object.entries(server.tools)
120
- .filter(([name]) => selected.some((ref) => ref.server === server.id && ref.tool === name))
121
- .sort(([left], [right]) => left.localeCompare(right))
122
- .map(([name, policy]) => ({
123
- name,
124
- effect: policy.effect,
125
- timeoutMs: policy.timeoutMs,
126
- maxArgumentBytes: policy.maxArgumentBytes,
127
- maxResultBytes: policy.maxResultBytes,
128
- })),
129
- };
130
- })
131
- .sort((left, right) => left.id.localeCompare(right.id));
132
- }
133
- //# sourceMappingURL=agent-revisions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-revisions.js","sourceRoot":"","sources":["../../src/agent/agent-revisions.ts"],"names":[],"mappings":"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"}
@@ -1,99 +0,0 @@
1
- import { type AgentInvocationKey } from "@spine-event-engine/proto/generated/spine/server/agent/execution_record_pb.js";
2
- import type { TenantId } from "@spine-event-engine/proto";
3
- import type { AgentPendingCursor, AgentPendingPage, TenantCatalogCursor } from "@spine-event-engine/storage/provider";
4
- import type { TenantIndexPage } from "../context/tenant-index.js";
5
- import { AgentExecutionCapacity } from "./agent-execution-capacity.js";
6
- /**
7
- * One complete repository and tenant visited by the Agent scheduler.
8
- */
9
- export interface AgentScanScope {
10
- /**
11
- * Identifies one repository and tenant scan scope.
12
- */
13
- readonly id: string;
14
- /**
15
- * Reads a finite page of unresolved Agent invocations.
16
- *
17
- * @param after Provider continuation from the prior page.
18
- * @param count Maximum records requested for this scan.
19
- * @returns Pending records and their next continuation.
20
- */
21
- pending(after: AgentPendingCursor | undefined, count: number): Promise<AgentPendingPage>;
22
- /**
23
- * Executes one invocation after attempting its provider claim.
24
- *
25
- * @param key Exact accepted invocation selected by the scan.
26
- * @param signal Bounded Context shutdown cancellation signal.
27
- * @returns Completion after the claimed work settles.
28
- */
29
- run(key: AgentInvocationKey, signal: AbortSignal): Promise<void>;
30
- }
31
- /**
32
- * Produces finite tenant pages and lazily constructs registered scopes.
33
- */
34
- export interface AgentScopeSource {
35
- /**
36
- * Number of registered Agent repository views per tenant.
37
- */
38
- readonly repositories: number;
39
- /**
40
- * Reads one bounded tenant catalog page.
41
- *
42
- * @param after Opaque provider continuation from the prior page.
43
- * @param signal Scheduler shutdown signal.
44
- * @returns Complete tenant IDs and a possible continuation.
45
- */
46
- page(after: TenantCatalogCursor | undefined, signal: AbortSignal): Promise<TenantIndexPage>;
47
- /**
48
- * Creates one registered repository scope for a selected tenant.
49
- *
50
- * @param tenant Complete tenant identifier.
51
- * @param repository Index in the fixed registered repository list.
52
- * @returns A lazily constructed scan scope.
53
- */
54
- scope(tenant: TenantId, repository: number): AgentScanScope;
55
- }
56
- /**
57
- * Bounded, round-robin scan of provider-indexed Agent heads.
58
- */
59
- export declare class AgentScheduler {
60
- #private;
61
- private readonly source;
62
- private readonly capacity;
63
- private readonly onError;
64
- /**
65
- * Creates bounded discovery for the Bounded Context's registered Agent scopes.
66
- *
67
- * @param source Pages tenants and constructs a registered scope on demand.
68
- * @param capacity Shared registry execution gate.
69
- * @param onError Reports failed discovery or execution turns.
70
- */
71
- constructor(source: AgentScopeSource, capacity: AgentExecutionCapacity, onError: (error: unknown) => void);
72
- /**
73
- * Starts periodic discovery, including pending work after process reconstruction.
74
- */
75
- start(): void;
76
- /**
77
- * Schedules a prompt bounded turn without resetting the fixed-time sweep.
78
- *
79
- * @param scope Newly accepted repository and tenant, when available.
80
- */
81
- wake(scope?: AgentScanScope): void;
82
- /**
83
- * Reads at most four indexed pages and retains continuation across turns.
84
- *
85
- * @returns Completion after this bounded scan, or the scan already in progress.
86
- */
87
- turn(): Promise<void>;
88
- /**
89
- * Stops discovery and waits for already dispatched bounded work.
90
- */
91
- stop(): void;
92
- /**
93
- * Waits for dispatched work after stopping new discovery.
94
- *
95
- * @returns Completion after active work has settled.
96
- */
97
- close(): Promise<void>;
98
- }
99
- //# sourceMappingURL=agent-scheduler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-scheduler.d.ts","sourceRoot":"","sources":["../../src/agent/agent-scheduler.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,+EAA+E,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEzF;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5F;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC;CAC7D;AAmBD;;GAEG;AACH,qBAAa,cAAc;;IA6CvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B;;;;;;OAMG;gBAEgB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAGpD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI;IAelC;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiR3B;;OAEG;IACH,IAAI,IAAI,IAAI;IAWZ;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -1,398 +0,0 @@
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 { toBinary } from "@bufbuild/protobuf";
15
- import { AgentInvocationKeySchema, } from "@spine-event-engine/proto/generated/spine/server/agent/execution_record_pb.js";
16
- import { AgentExecutionRecords } from "@spine-event-engine/storage/provider";
17
- import { Time } from "@spine-event-engine/core";
18
- import { withoutDeliveryCommitFence } from "../repository/commit-fence.js";
19
- import { AgentExecutionCapacity } from "./agent-execution-capacity.js";
20
- const catalogPageSize = 16;
21
- const pendingPageSize = 16;
22
- const maxPendingPages = 4;
23
- const maxResidentScopes = 4;
24
- const maxUrgentScopes = 64;
25
- const sweepIntervalNanoseconds = 5000000000n;
26
- /**
27
- * Bounded, round-robin scan of provider-indexed Agent heads.
28
- */
29
- export class AgentScheduler {
30
- source;
31
- capacity;
32
- onError;
33
- #controller = new AbortController();
34
- #active = new Map();
35
- #urgent = new Map();
36
- #resident = [];
37
- #catalogAfter;
38
- #catalogPage;
39
- #catalogReady;
40
- #catalogRequest;
41
- #catalogDone = false;
42
- #tenantAt = 0;
43
- #repositoryAt = 0;
44
- #restartAt = 0n;
45
- #sweepStarted = false;
46
- #sweepFirst = false;
47
- #nextResident = 0;
48
- #timer;
49
- #scanning;
50
- #closed = false;
51
- /**
52
- * Creates bounded discovery for the Bounded Context's registered Agent scopes.
53
- *
54
- * @param source Pages tenants and constructs a registered scope on demand.
55
- * @param capacity Shared registry execution gate.
56
- * @param onError Reports failed discovery or execution turns.
57
- */
58
- constructor(source, capacity, onError) {
59
- this.source = source;
60
- this.capacity = capacity;
61
- this.onError = onError;
62
- }
63
- /**
64
- * Starts periodic discovery, including pending work after process reconstruction.
65
- */
66
- start() {
67
- this.#schedule(100);
68
- }
69
- /**
70
- * Schedules a prompt bounded turn without resetting the fixed-time sweep.
71
- *
72
- * @param scope Newly accepted repository and tenant, when available.
73
- */
74
- wake(scope) {
75
- if (this.#closed)
76
- return;
77
- if (scope !== undefined && !this.#urgent.has(scope.id) && this.#urgent.size < maxUrgentScopes)
78
- this.#urgent.set(scope.id, { scope });
79
- if (this.#timer !== undefined)
80
- clearTimeout(this.#timer);
81
- this.#timer = setTimeout(() => {
82
- this.#timer = undefined;
83
- void this.turn()
84
- .catch(this.onError)
85
- .finally(() => {
86
- this.#schedule(100);
87
- });
88
- }, 0);
89
- }
90
- /**
91
- * Reads at most four indexed pages and retains continuation across turns.
92
- *
93
- * @returns Completion after this bounded scan, or the scan already in progress.
94
- */
95
- async turn() {
96
- if (this.#closed)
97
- return;
98
- if (this.#scanning !== undefined)
99
- return this.#scanning;
100
- const scan = this.#scan();
101
- this.#scanning = scan;
102
- try {
103
- await scan;
104
- }
105
- finally {
106
- this.#scanning = undefined;
107
- }
108
- }
109
- async #scan() {
110
- this.#prepareSweep();
111
- const sweepFirst = this.#sweepFirst;
112
- const visited = new Set();
113
- const firstSweep = sweepFirst ? await this.#sweepPages(1, visited) : 0;
114
- let pages = firstSweep;
115
- pages += await this.#urgentPages(3 - pages);
116
- pages += await this.#sweepPages(maxPendingPages - pages, visited);
117
- if (pages > 0)
118
- this.#sweepFirst = !sweepFirst;
119
- }
120
- /**
121
- * Visits a bounded set of accepted scopes ahead of catalog rotation.
122
- *
123
- * @param limit Maximum indexed pages to visit.
124
- * @returns Number of pages visited.
125
- */
126
- async #urgentPages(limit) {
127
- let pages = 0;
128
- for (const [id, resident] of this.#urgent) {
129
- if (pages === limit || this.#closed || this.capacity.full())
130
- break;
131
- const { page, retry } = await this.#visit(resident);
132
- if (!retry) {
133
- if (page.hasMore && page.after !== undefined)
134
- resident.cursor = page.after;
135
- else
136
- this.#urgent.delete(id);
137
- }
138
- pages += 1;
139
- }
140
- return pages;
141
- }
142
- /**
143
- * Advances the periodic catalog sweep even under sustained accepted work.
144
- *
145
- * @param limit Remaining page budget.
146
- * @param visited Residents already read in this turn.
147
- * @returns Number of pages visited.
148
- */
149
- async #sweepPages(limit, visited) {
150
- let pages = 0;
151
- for (let considered = 0; considered < maxResidentScopes && pages < limit; considered += 1) {
152
- if (this.#closed || this.capacity.full())
153
- break;
154
- if (this.#resident.length === 0)
155
- break;
156
- const index = this.#nextResident % this.#resident.length;
157
- const resident = this.#resident[index];
158
- if (resident === undefined)
159
- break;
160
- if (visited.has(resident)) {
161
- this.#nextResident = index + 1;
162
- continue;
163
- }
164
- visited.add(resident);
165
- const { page, retry } = await this.#visit(resident);
166
- if (page.hasMore || retry) {
167
- if (!retry && page.after !== undefined)
168
- resident.cursor = page.after;
169
- this.#nextResident = index + 1;
170
- }
171
- else {
172
- this.#resident.splice(index, 1);
173
- this.#nextResident = index;
174
- }
175
- pages += 1;
176
- }
177
- return pages;
178
- }
179
- /**
180
- * Restarts completed traversals only after their original cadence.
181
- */
182
- #prepareSweep() {
183
- const now = Time.currentTime();
184
- const current = now.seconds * 1000000000n + BigInt(now.nanos);
185
- if (!this.#sweepStarted || (this.#completeSweep() && current >= this.#restartAt)) {
186
- this.#sweepStarted = true;
187
- this.#restartAt = current + sweepIntervalNanoseconds;
188
- this.#catalogDone = false;
189
- this.#catalogAfter = undefined;
190
- }
191
- this.#acceptCatalogPage();
192
- this.#fillResident();
193
- if (!this.#catalogDone && this.#catalogPage === undefined && this.#catalogRequest === undefined)
194
- this.#requestCatalogPage();
195
- }
196
- /**
197
- * Reports whether the prior finite catalog traversal has ended.
198
- */
199
- #completeSweep() {
200
- return (this.#catalogDone &&
201
- this.#catalogPage === undefined &&
202
- this.#catalogReady === undefined &&
203
- this.#catalogRequest === undefined &&
204
- this.#resident.length === 0);
205
- }
206
- /**
207
- * Installs one settled provider page without retaining earlier pages.
208
- */
209
- #acceptCatalogPage() {
210
- const page = this.#catalogReady;
211
- if (page === undefined)
212
- return;
213
- this.#catalogReady = undefined;
214
- if (page.ids.length > catalogPageSize || (page.hasMore && page.after === undefined))
215
- throw new Error("Agent tenant catalog returned an invalid bounded page.");
216
- if (page.hasMore && page.after === this.#catalogAfter)
217
- throw new Error("Agent tenant catalog returned a nonadvancing continuation.");
218
- this.#catalogPage = page;
219
- this.#catalogAfter = page.after;
220
- this.#catalogDone = !page.hasMore;
221
- this.#tenantAt = 0;
222
- this.#repositoryAt = 0;
223
- }
224
- /**
225
- * Constructs at most four resident tenant/repository scopes.
226
- */
227
- #fillResident() {
228
- while (this.#resident.length < maxResidentScopes && this.#catalogPage !== undefined) {
229
- const tenant = this.#catalogPage.ids[this.#tenantAt];
230
- if (tenant === undefined) {
231
- this.#catalogPage = undefined;
232
- break;
233
- }
234
- this.#resident.push({ scope: this.source.scope(tenant, this.#repositoryAt) });
235
- this.#repositoryAt += 1;
236
- if (this.#repositoryAt === this.source.repositories) {
237
- this.#repositoryAt = 0;
238
- this.#tenantAt += 1;
239
- }
240
- }
241
- }
242
- /**
243
- * Starts one provider page without making urgent work await its I/O.
244
- */
245
- #requestCatalogPage() {
246
- const after = this.#catalogAfter;
247
- let received = false;
248
- this.#catalogRequest = Promise.resolve()
249
- .then(() => {
250
- if (this.#closed)
251
- return undefined;
252
- return this.source.page(after, this.#controller.signal);
253
- })
254
- .then((page) => {
255
- if (!this.#closed && page !== undefined) {
256
- this.#catalogReady = page;
257
- received = true;
258
- }
259
- })
260
- .catch((error) => {
261
- if (!this.#closed)
262
- this.onError(error);
263
- })
264
- .finally(() => {
265
- this.#catalogRequest = undefined;
266
- if (this.#closed)
267
- return;
268
- if (received)
269
- this.wake();
270
- else
271
- this.#schedule(100);
272
- });
273
- }
274
- /**
275
- * Reads one indexed pending page with shutdown detachment.
276
- */
277
- async #visit(resident) {
278
- const page = await this.#awaitStop(resident.scope.pending(resident.cursor, pendingPageSize));
279
- if (page.records.length > pendingPageSize)
280
- throw new Error("Agent pending provider exceeded the bounded page size.");
281
- if (page.hasMore && page.after === undefined)
282
- throw new Error("Agent pending provider omitted its required continuation.");
283
- if (page.hasMore && !this.#advances(resident.cursor, page.after))
284
- throw new Error("Agent pending provider returned a nonadvancing continuation.");
285
- let retry = false;
286
- if (!this.#closed)
287
- for (const record of page.records)
288
- if (!this.#submit(resident.scope, record))
289
- retry = true;
290
- return { page, retry };
291
- }
292
- /**
293
- * Verifies that a continuation moves beyond the previously examined head.
294
- */
295
- #advances(before, after) {
296
- if (after === undefined)
297
- return false;
298
- if (before === undefined)
299
- return true;
300
- if (after.asOf.seconds !== before.asOf.seconds || after.asOf.nanos !== before.asOf.nanos)
301
- return false;
302
- return (AgentExecutionRecords.pendingKey(after.key.eligibleAt, after.key.scope) >
303
- AgentExecutionRecords.pendingKey(before.key.eligibleAt, before.key.scope));
304
- }
305
- /**
306
- * Detaches promptly from a provider read that ignores cancellation.
307
- *
308
- * @typeParam T Provider response type.
309
- * @param promise Underlying provider read.
310
- * @returns Response or prompt shutdown rejection.
311
- */
312
- #awaitStop(promise) {
313
- return new Promise((resolve, reject) => {
314
- const signal = this.#controller.signal;
315
- const abort = () => {
316
- signal.removeEventListener("abort", abort);
317
- reject(new Error("Agent discovery stopped."));
318
- };
319
- signal.addEventListener("abort", abort, { once: true });
320
- promise.then((value) => {
321
- signal.removeEventListener("abort", abort);
322
- if (!signal.aborted)
323
- resolve(value);
324
- }, (error) => {
325
- signal.removeEventListener("abort", abort);
326
- reject(error instanceof Error ? error : new Error("Agent discovery failed.", { cause: error }));
327
- });
328
- if (signal.aborted)
329
- abort();
330
- });
331
- }
332
- #submit(scope, record) {
333
- const key = record.accepted?.key;
334
- if (key === undefined || this.#closed)
335
- return false;
336
- const id = `${scope.id}:${Buffer.from(toBinary(AgentInvocationKeySchema, key)).toString("base64")}`;
337
- if (this.#active.has(id))
338
- return true;
339
- const invocation = key;
340
- const task = this.capacity.trySubmit({
341
- key: id,
342
- signal: this.#controller.signal,
343
- run: () => withoutDeliveryCommitFence(() => {
344
- if (this.#closed)
345
- return Promise.resolve();
346
- return scope.run(invocation, this.#controller.signal);
347
- }),
348
- });
349
- if (task === undefined)
350
- return false;
351
- this.#active.set(id, task);
352
- void task.catch(this.onError).finally(() => {
353
- this.#active.delete(id);
354
- this.wake();
355
- });
356
- return true;
357
- }
358
- #schedule(delay) {
359
- if (this.#closed || this.#timer !== undefined)
360
- return;
361
- this.#timer = setTimeout(() => {
362
- this.#timer = undefined;
363
- void this.turn()
364
- .catch(this.onError)
365
- .finally(() => {
366
- this.#schedule(100);
367
- });
368
- }, delay);
369
- }
370
- /**
371
- * Stops discovery and waits for already dispatched bounded work.
372
- */
373
- stop() {
374
- this.#closed = true;
375
- this.#controller.abort();
376
- if (this.#timer !== undefined)
377
- clearTimeout(this.#timer);
378
- this.#timer = undefined;
379
- this.#urgent.clear();
380
- this.#resident.length = 0;
381
- this.#catalogPage = undefined;
382
- this.#catalogReady = undefined;
383
- }
384
- /**
385
- * Waits for dispatched work after stopping new discovery.
386
- *
387
- * @returns Completion after active work has settled.
388
- */
389
- async close() {
390
- this.stop();
391
- await this.#scanning?.catch((error) => {
392
- if (!this.#closed)
393
- throw error;
394
- });
395
- await Promise.allSettled(this.#active.values());
396
- }
397
- }
398
- //# sourceMappingURL=agent-scheduler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-scheduler.js","sourceRoot":"","sources":["../../src/agent/agent-scheduler.ts"],"names":[],"mappings":"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"}