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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/README.md +38 -11
  2. package/REFERENCE.md +201 -130
  3. package/dist/agent/agent-acceptance-receipts.d.ts +69 -0
  4. package/dist/agent/agent-acceptance-receipts.d.ts.map +1 -0
  5. package/dist/agent/agent-acceptance-receipts.js +198 -0
  6. package/dist/agent/agent-acceptance-receipts.js.map +1 -0
  7. package/dist/agent/agent-execution-capacity.d.ts +37 -9
  8. package/dist/agent/agent-execution-capacity.d.ts.map +1 -1
  9. package/dist/agent/agent-execution-capacity.js +73 -15
  10. package/dist/agent/agent-execution-capacity.js.map +1 -1
  11. package/dist/agent/agent-history.d.ts +15 -10
  12. package/dist/agent/agent-history.d.ts.map +1 -1
  13. package/dist/agent/agent-history.js +26 -14
  14. package/dist/agent/agent-history.js.map +1 -1
  15. package/dist/agent/agent-live-ai-audit.d.ts +95 -0
  16. package/dist/agent/agent-live-ai-audit.d.ts.map +1 -0
  17. package/dist/agent/agent-live-ai-audit.js +290 -0
  18. package/dist/agent/agent-live-ai-audit.js.map +1 -0
  19. package/dist/agent/agent-live-ai-runtime.d.ts +300 -0
  20. package/dist/agent/agent-live-ai-runtime.d.ts.map +1 -0
  21. package/dist/agent/agent-live-ai-runtime.js +611 -0
  22. package/dist/agent/agent-live-ai-runtime.js.map +1 -0
  23. package/dist/agent/agent-live-audit.d.ts +67 -0
  24. package/dist/agent/agent-live-audit.d.ts.map +1 -0
  25. package/dist/agent/agent-live-audit.js +121 -0
  26. package/dist/agent/agent-live-audit.js.map +1 -0
  27. package/dist/agent/agent-live-budget.d.ts +84 -0
  28. package/dist/agent/agent-live-budget.d.ts.map +1 -0
  29. package/dist/agent/agent-live-budget.js +161 -0
  30. package/dist/agent/agent-live-budget.js.map +1 -0
  31. package/dist/agent/agent-live-fault.d.ts +18 -0
  32. package/dist/agent/agent-live-fault.d.ts.map +1 -0
  33. package/dist/agent/{agent-execution-fault.js → agent-live-fault.js} +7 -7
  34. package/dist/agent/agent-live-fault.js.map +1 -0
  35. package/dist/agent/agent-live-inputs.d.ts +74 -0
  36. package/dist/agent/agent-live-inputs.d.ts.map +1 -0
  37. package/dist/{bus/saved-dispatcher-binding.js → agent/agent-live-inputs.js} +2 -14
  38. package/dist/agent/agent-live-inputs.js.map +1 -0
  39. package/dist/agent/agent-live-interaction-events.d.ts +46 -0
  40. package/dist/agent/agent-live-interaction-events.d.ts.map +1 -0
  41. package/dist/agent/agent-live-interaction-events.js +104 -0
  42. package/dist/agent/agent-live-interaction-events.js.map +1 -0
  43. package/dist/agent/agent-live-mcp-controls.d.ts +129 -0
  44. package/dist/agent/agent-live-mcp-controls.d.ts.map +1 -0
  45. package/dist/agent/agent-live-mcp-controls.js +228 -0
  46. package/dist/agent/agent-live-mcp-controls.js.map +1 -0
  47. package/dist/agent/agent-live-mcp-host.d.ts +88 -0
  48. package/dist/agent/agent-live-mcp-host.d.ts.map +1 -0
  49. package/dist/agent/{agent-mcp-host.js → agent-live-mcp-host.js} +1 -1
  50. package/dist/agent/agent-live-mcp-host.js.map +1 -0
  51. package/dist/agent/{agent-mcp-runtime.d.ts → agent-live-mcp-runtime.d.ts} +6 -6
  52. package/dist/agent/agent-live-mcp-runtime.d.ts.map +1 -0
  53. package/dist/agent/{agent-mcp-runtime.js → agent-live-mcp-runtime.js} +13 -42
  54. package/dist/agent/agent-live-mcp-runtime.js.map +1 -0
  55. package/dist/agent/agent-live-read-runtime.d.ts +61 -0
  56. package/dist/agent/agent-live-read-runtime.d.ts.map +1 -0
  57. package/dist/agent/agent-live-read-runtime.js +121 -0
  58. package/dist/agent/agent-live-read-runtime.js.map +1 -0
  59. package/dist/agent/agent-model-selection.d.ts +21 -34
  60. package/dist/agent/agent-model-selection.d.ts.map +1 -1
  61. package/dist/agent/agent-model-selection.js +61 -78
  62. package/dist/agent/agent-model-selection.js.map +1 -1
  63. package/dist/bus/command-bus.d.ts +14 -18
  64. package/dist/bus/command-bus.d.ts.map +1 -1
  65. package/dist/bus/command-bus.js +31 -48
  66. package/dist/bus/command-bus.js.map +1 -1
  67. package/dist/bus/event-bus.d.ts +17 -4
  68. package/dist/bus/event-bus.d.ts.map +1 -1
  69. package/dist/bus/event-bus.js +42 -12
  70. package/dist/bus/event-bus.js.map +1 -1
  71. package/dist/context/bounded-context.d.ts +140 -87
  72. package/dist/context/bounded-context.d.ts.map +1 -1
  73. package/dist/context/bounded-context.js +702 -329
  74. package/dist/context/bounded-context.js.map +1 -1
  75. package/dist/context/entity-inbox.d.ts +7 -2
  76. package/dist/context/entity-inbox.d.ts.map +1 -1
  77. package/dist/context/entity-inbox.js +22 -13
  78. package/dist/context/entity-inbox.js.map +1 -1
  79. package/dist/context/local-inbox-handoff.d.ts +34 -34
  80. package/dist/context/local-inbox-handoff.d.ts.map +1 -1
  81. package/dist/context/local-inbox-handoff.js +108 -150
  82. package/dist/context/local-inbox-handoff.js.map +1 -1
  83. package/dist/context/projection-handoff.d.ts +2 -2
  84. package/dist/context/projection-handoff.d.ts.map +1 -1
  85. package/dist/context/projection-handoff.js +10 -8
  86. package/dist/context/projection-handoff.js.map +1 -1
  87. package/dist/context/tenant-index.d.ts +36 -31
  88. package/dist/context/tenant-index.d.ts.map +1 -1
  89. package/dist/context/tenant-index.js +123 -125
  90. package/dist/context/tenant-index.js.map +1 -1
  91. package/dist/context/tenant-unknown-error.d.ts +33 -0
  92. package/dist/context/tenant-unknown-error.d.ts.map +1 -0
  93. package/dist/context/tenant-unknown-error.js +75 -0
  94. package/dist/context/tenant-unknown-error.js.map +1 -0
  95. package/dist/delivery/agent-delivery-scope.d.ts +66 -0
  96. package/dist/delivery/agent-delivery-scope.d.ts.map +1 -0
  97. package/dist/delivery/agent-delivery-scope.js +44 -0
  98. package/dist/delivery/agent-delivery-scope.js.map +1 -0
  99. package/dist/delivery/delivery-builder.d.ts +25 -1
  100. package/dist/delivery/delivery-builder.d.ts.map +1 -1
  101. package/dist/delivery/delivery-builder.js +89 -0
  102. package/dist/delivery/delivery-builder.js.map +1 -1
  103. package/dist/delivery/delivery-monitor.d.ts +1 -1
  104. package/dist/delivery/delivery-monitor.js +1 -1
  105. package/dist/delivery/delivery-run-control.d.ts +6 -0
  106. package/dist/delivery/delivery-run-control.d.ts.map +1 -1
  107. package/dist/delivery/delivery-run-control.js +10 -0
  108. package/dist/delivery/delivery-run-control.js.map +1 -1
  109. package/dist/delivery/delivery-supervisor.d.ts.map +1 -1
  110. package/dist/delivery/delivery-supervisor.js +28 -4
  111. package/dist/delivery/delivery-supervisor.js.map +1 -1
  112. package/dist/delivery/delivery-tenant.d.ts +17 -0
  113. package/dist/delivery/delivery-tenant.d.ts.map +1 -0
  114. package/dist/delivery/delivery-tenant.js +50 -0
  115. package/dist/delivery/delivery-tenant.js.map +1 -0
  116. package/dist/delivery/delivery.d.ts +96 -2
  117. package/dist/delivery/delivery.d.ts.map +1 -1
  118. package/dist/delivery/delivery.js +693 -53
  119. package/dist/delivery/delivery.js.map +1 -1
  120. package/dist/delivery/inbox-records.d.ts.map +1 -1
  121. package/dist/delivery/inbox-records.js +9 -16
  122. package/dist/delivery/inbox-records.js.map +1 -1
  123. package/dist/delivery/inbox-storage.d.ts +6 -0
  124. package/dist/delivery/inbox-storage.d.ts.map +1 -1
  125. package/dist/delivery/inbox-storage.js +43 -6
  126. package/dist/delivery/inbox-storage.js.map +1 -1
  127. package/dist/delivery/inbox.d.ts.map +1 -1
  128. package/dist/delivery/inbox.js +3 -2
  129. package/dist/delivery/inbox.js.map +1 -1
  130. package/dist/delivery/reception-observation.d.ts +12 -4
  131. package/dist/delivery/reception-observation.d.ts.map +1 -1
  132. package/dist/delivery/reception-observation.js +14 -3
  133. package/dist/delivery/reception-observation.js.map +1 -1
  134. package/dist/delivery/sharded-work-registry.d.ts +6 -0
  135. package/dist/delivery/sharded-work-registry.d.ts.map +1 -1
  136. package/dist/delivery/sharded-work-registry.js +41 -4
  137. package/dist/delivery/sharded-work-registry.js.map +1 -1
  138. package/dist/entity/entity-storage-descriptor.d.ts.map +1 -1
  139. package/dist/entity/entity-storage-descriptor.js +7 -4
  140. package/dist/entity/entity-storage-descriptor.js.map +1 -1
  141. package/dist/index.d.ts +4 -2
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +2 -1
  144. package/dist/index.js.map +1 -1
  145. package/dist/integration/external-messages.d.ts.map +1 -1
  146. package/dist/integration/external-messages.js +9 -15
  147. package/dist/integration/external-messages.js.map +1 -1
  148. package/dist/integration/integration-broker.d.ts.map +1 -1
  149. package/dist/integration/integration-broker.js +112 -6
  150. package/dist/integration/integration-broker.js.map +1 -1
  151. package/dist/integration/third-party-context.d.ts.map +1 -1
  152. package/dist/integration/third-party-context.js +7 -10
  153. package/dist/integration/third-party-context.js.map +1 -1
  154. package/dist/repository/primitive-id.js +26 -11
  155. package/dist/repository/primitive-id.js.map +1 -1
  156. package/dist/repository/repository.d.ts +32 -60
  157. package/dist/repository/repository.d.ts.map +1 -1
  158. package/dist/repository/repository.js +1446 -1787
  159. package/dist/repository/repository.js.map +1 -1
  160. package/dist/runtime/runtime.d.ts +13 -0
  161. package/dist/runtime/runtime.d.ts.map +1 -1
  162. package/dist/runtime/runtime.js +18 -0
  163. package/dist/runtime/runtime.js.map +1 -1
  164. package/dist/runtime/signal-metadata.d.ts.map +1 -1
  165. package/dist/runtime/signal-metadata.js +6 -6
  166. package/dist/runtime/signal-metadata.js.map +1 -1
  167. package/dist/runtime/signal-publisher.d.ts +0 -6
  168. package/dist/runtime/signal-publisher.d.ts.map +1 -1
  169. package/dist/runtime/signal-publisher.js +1 -9
  170. package/dist/runtime/signal-publisher.js.map +1 -1
  171. package/dist/runtime/standalone-handler-runtime.d.ts +0 -7
  172. package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -1
  173. package/dist/runtime/standalone-handler-runtime.js +13 -99
  174. package/dist/runtime/standalone-handler-runtime.js.map +1 -1
  175. package/dist/server/managed-delivery-gate.d.ts +34 -0
  176. package/dist/server/managed-delivery-gate.d.ts.map +1 -0
  177. package/dist/server/managed-delivery-gate.js +70 -0
  178. package/dist/server/managed-delivery-gate.js.map +1 -0
  179. package/dist/server/managed-server-application.d.ts.map +1 -1
  180. package/dist/server/managed-server-application.js +7 -4
  181. package/dist/server/managed-server-application.js.map +1 -1
  182. package/dist/server/server-environment.d.ts +203 -25
  183. package/dist/server/server-environment.d.ts.map +1 -1
  184. package/dist/server/server-environment.js +661 -133
  185. package/dist/server/server-environment.js.map +1 -1
  186. package/dist/server/server-log.d.ts +7 -0
  187. package/dist/server/server-log.d.ts.map +1 -1
  188. package/dist/server/server-log.js +14 -1
  189. package/dist/server/server-log.js.map +1 -1
  190. package/dist/server/server.d.ts +18 -32
  191. package/dist/server/server.d.ts.map +1 -1
  192. package/dist/server/server.js +50 -204
  193. package/dist/server/server.js.map +1 -1
  194. package/dist/services/spine-services.d.ts +1 -1
  195. package/dist/services/spine-services.d.ts.map +1 -1
  196. package/dist/services/spine-services.js +236 -335
  197. package/dist/services/spine-services.js.map +1 -1
  198. package/dist/stand/event-origin-filter.js +3 -3
  199. package/dist/stand/event-origin-filter.js.map +1 -1
  200. package/dist/stand/stand.d.ts +14 -0
  201. package/dist/stand/stand.d.ts.map +1 -1
  202. package/dist/stand/stand.js +53 -9
  203. package/dist/stand/stand.js.map +1 -1
  204. package/dist/stand/subscription-observer.d.ts.map +1 -1
  205. package/dist/stand/subscription-observer.js +54 -40
  206. package/dist/stand/subscription-observer.js.map +1 -1
  207. package/dist/stand/subscription-registry.d.ts +6 -2
  208. package/dist/stand/subscription-registry.d.ts.map +1 -1
  209. package/dist/stand/subscription-registry.js +15 -11
  210. package/dist/stand/subscription-registry.js.map +1 -1
  211. package/dist/stand/subscription-runtime.d.ts +5 -3
  212. package/dist/stand/subscription-runtime.d.ts.map +1 -1
  213. package/dist/stand/subscription-runtime.js +52 -9
  214. package/dist/stand/subscription-runtime.js.map +1 -1
  215. package/dist/testing/index.d.ts.map +1 -1
  216. package/dist/testing/index.js +4 -3
  217. package/dist/testing/index.js.map +1 -1
  218. package/dist/tsconfig.tsbuildinfo +1 -1
  219. package/package.json +14 -14
  220. package/dist/agent/agent-admission.d.ts +0 -80
  221. package/dist/agent/agent-admission.d.ts.map +0 -1
  222. package/dist/agent/agent-admission.js +0 -127
  223. package/dist/agent/agent-admission.js.map +0 -1
  224. package/dist/agent/agent-ai-runtime.d.ts +0 -76
  225. package/dist/agent/agent-ai-runtime.d.ts.map +0 -1
  226. package/dist/agent/agent-ai-runtime.js +0 -1269
  227. package/dist/agent/agent-ai-runtime.js.map +0 -1
  228. package/dist/agent/agent-execution-fault.d.ts +0 -18
  229. package/dist/agent/agent-execution-fault.d.ts.map +0 -1
  230. package/dist/agent/agent-execution-fault.js.map +0 -1
  231. package/dist/agent/agent-execution-session.d.ts +0 -103
  232. package/dist/agent/agent-execution-session.d.ts.map +0 -1
  233. package/dist/agent/agent-execution-session.js +0 -238
  234. package/dist/agent/agent-execution-session.js.map +0 -1
  235. package/dist/agent/agent-interaction-audit.d.ts +0 -58
  236. package/dist/agent/agent-interaction-audit.d.ts.map +0 -1
  237. package/dist/agent/agent-interaction-audit.js +0 -114
  238. package/dist/agent/agent-interaction-audit.js.map +0 -1
  239. package/dist/agent/agent-interaction-events.d.ts +0 -40
  240. package/dist/agent/agent-interaction-events.d.ts.map +0 -1
  241. package/dist/agent/agent-interaction-events.js +0 -129
  242. package/dist/agent/agent-interaction-events.js.map +0 -1
  243. package/dist/agent/agent-mcp-budget.d.ts +0 -125
  244. package/dist/agent/agent-mcp-budget.d.ts.map +0 -1
  245. package/dist/agent/agent-mcp-budget.js +0 -566
  246. package/dist/agent/agent-mcp-budget.js.map +0 -1
  247. package/dist/agent/agent-mcp-host.d.ts +0 -125
  248. package/dist/agent/agent-mcp-host.d.ts.map +0 -1
  249. package/dist/agent/agent-mcp-host.js.map +0 -1
  250. package/dist/agent/agent-mcp-runtime.d.ts.map +0 -1
  251. package/dist/agent/agent-mcp-runtime.js.map +0 -1
  252. package/dist/agent/agent-read-runtime.d.ts +0 -70
  253. package/dist/agent/agent-read-runtime.d.ts.map +0 -1
  254. package/dist/agent/agent-read-runtime.js +0 -320
  255. package/dist/agent/agent-read-runtime.js.map +0 -1
  256. package/dist/agent/agent-revisions.d.ts +0 -35
  257. package/dist/agent/agent-revisions.d.ts.map +0 -1
  258. package/dist/agent/agent-revisions.js +0 -133
  259. package/dist/agent/agent-revisions.js.map +0 -1
  260. package/dist/agent/agent-scheduler.d.ts +0 -99
  261. package/dist/agent/agent-scheduler.d.ts.map +0 -1
  262. package/dist/agent/agent-scheduler.js +0 -398
  263. package/dist/agent/agent-scheduler.js.map +0 -1
  264. package/dist/bus/saved-dispatcher-binding.d.ts +0 -53
  265. package/dist/bus/saved-dispatcher-binding.d.ts.map +0 -1
  266. package/dist/bus/saved-dispatcher-binding.js.map +0 -1
  267. package/dist/delivery/delivery-run-coordinator.d.ts +0 -218
  268. package/dist/delivery/delivery-run-coordinator.d.ts.map +0 -1
  269. package/dist/delivery/delivery-run-coordinator.js +0 -609
  270. package/dist/delivery/delivery-run-coordinator.js.map +0 -1
  271. package/dist/delivery/parked-delivery-obligations.d.ts +0 -182
  272. package/dist/delivery/parked-delivery-obligations.d.ts.map +0 -1
  273. package/dist/delivery/parked-delivery-obligations.js +0 -390
  274. package/dist/delivery/parked-delivery-obligations.js.map +0 -1
  275. package/dist/server/environment-attachment.d.ts +0 -356
  276. package/dist/server/environment-attachment.d.ts.map +0 -1
  277. package/dist/server/environment-attachment.js +0 -2062
  278. package/dist/server/environment-attachment.js.map +0 -1
  279. package/dist/server/environment-delivery-records.d.ts +0 -77
  280. package/dist/server/environment-delivery-records.d.ts.map +0 -1
  281. package/dist/server/environment-delivery-records.js +0 -282
  282. package/dist/server/environment-delivery-records.js.map +0 -1
  283. package/dist/server/environment-delivery-worker.d.ts +0 -161
  284. package/dist/server/environment-delivery-worker.d.ts.map +0 -1
  285. package/dist/server/environment-delivery-worker.js +0 -973
  286. package/dist/server/environment-delivery-worker.js.map +0 -1
@@ -1,182 +0,0 @@
1
- /**
2
- * Tracks finite unresolved delivery obligations for one package.
3
- * @internal
4
- */
5
- export declare class ParkedDeliveryObligations {
6
- #private;
7
- /**
8
- * Creates a table from the bounded generation and registration obligations.
9
- *
10
- * @param options Supplies the configured obligation domains.
11
- */
12
- constructor(options: ParkedDeliveryObligationOptions);
13
- /**
14
- * Records one unresolved obligation with its current failure cause.
15
- *
16
- * @param owner Identifies the obligation owner.
17
- * @param obligation Names the configured obligation.
18
- * @param units Selects the unresolved units.
19
- * @param cause Captures the representative failure.
20
- * @param occurrences Adds the number of observed failures.
21
- */
22
- park(owner: ParkedOwner, obligation: string, units: readonly string[], cause: unknown, occurrences?: number): void;
23
- /**
24
- * Records a failed fulfillment after resolving the selected units.
25
- *
26
- * @param owner Identifies the obligation owner.
27
- * @param obligation Names the configured obligation.
28
- * @param units Selects the resolved units.
29
- */
30
- parkFulfilledFailed(owner: ParkedOwner, obligation: string, units: readonly string[]): void;
31
- /**
32
- * Records a shared unresolved obligation.
33
- *
34
- * @param units Selects the unresolved units.
35
- * @param cause Captures the representative failure.
36
- * @param occurrences Adds the number of observed failures.
37
- */
38
- parkShared(units: readonly string[], cause: unknown, occurrences?: number): void;
39
- /**
40
- * Updates one live registration's configured unit domain in stable order.
41
- * @internal
42
- * @param token Identifies the registration to extend.
43
- * @param obligation Names the configured obligation.
44
- * @param units Supplies the new units.
45
- */
46
- extendRegistration(token: string, obligation: string, units: readonly string[]): void;
47
- /**
48
- * Returns one unreported representative cause for each selected obligation.
49
- *
50
- * @param selections Select the obligation units to report.
51
- * @returns The representative causes that were newly reported.
52
- */
53
- report(selections: readonly ParkedDeliveryObligationSelection[]): readonly unknown[];
54
- /**
55
- * Updates selected obligation units as fulfilled.
56
- *
57
- * @param owner Identifies the obligation owner.
58
- * @param obligation Names the configured obligation.
59
- * @param units Selects the fulfilled units.
60
- */
61
- fulfilled(owner: ParkedOwner, obligation: string, units: readonly string[]): void;
62
- /**
63
- * Removes a registration and reclassifies its parked obligations.
64
- *
65
- * @param token Identifies the removed registration.
66
- */
67
- removeRegistration(token: string): void;
68
- /**
69
- * Returns immutable snapshots of all parked obligations.
70
- *
71
- * @returns The current parked obligation records.
72
- */
73
- records(): readonly ParkedDeliveryObligationRecord[];
74
- }
75
- /**
76
- * Identifies the owner of a canonical parked delivery obligation.
77
- * @internal
78
- */
79
- export type ParkedOwner = {
80
- /**
81
- * Identifies generation-owned obligations.
82
- */
83
- readonly kind: "generation";
84
- } | {
85
- /**
86
- * Identifies registration-owned obligations.
87
- */
88
- readonly kind: "registration";
89
- /**
90
- * Identifies the owning registration.
91
- */
92
- readonly token: string;
93
- } | {
94
- /**
95
- * Identifies obligations shared by all registrations.
96
- */
97
- readonly kind: "shared";
98
- };
99
- /**
100
- * Describes one configured canonical obligation.
101
- * @internal
102
- */
103
- export interface ParkedConfiguredObligation {
104
- /**
105
- * Identifies the configured obligation.
106
- */
107
- readonly key: string;
108
- /**
109
- * Lists its bounded eligible units.
110
- */
111
- readonly units: readonly string[];
112
- }
113
- /**
114
- * Defines configuration that bounds parked delivery records.
115
- * @internal
116
- */
117
- export interface ParkedDeliveryObligationOptions {
118
- /**
119
- * Supplies live registration obligation domains.
120
- */
121
- readonly registrations: readonly {
122
- readonly token: string;
123
- readonly obligations: readonly ParkedConfiguredObligation[];
124
- }[];
125
- /**
126
- * Supplies the generation obligation domain.
127
- */
128
- readonly generation: readonly ParkedConfiguredObligation[];
129
- }
130
- /**
131
- * Selects package-local record units eligible for reporting.
132
- * @internal
133
- */
134
- export interface ParkedDeliveryObligationSelection {
135
- /**
136
- * Identifies the selected owner.
137
- */
138
- readonly owner: ParkedOwner;
139
- /**
140
- * Names the selected obligation.
141
- */
142
- readonly obligation: string;
143
- /**
144
- * Selects reportable units.
145
- */
146
- readonly units: readonly string[];
147
- }
148
- /**
149
- * Describes an immutable inspection result for lifecycle consumers.
150
- * @internal
151
- */
152
- export interface ParkedDeliveryObligationRecord {
153
- /**
154
- * Identifies the record owner.
155
- */
156
- readonly owner: ParkedOwner;
157
- /**
158
- * Names the unresolved obligation.
159
- */
160
- readonly obligation: string;
161
- /**
162
- * Lists its unresolved units.
163
- */
164
- readonly units: readonly string[];
165
- /**
166
- * Holds one representative failure cause.
167
- */
168
- readonly cause: unknown;
169
- /**
170
- * States whether a representative cause is present.
171
- */
172
- readonly hasCause: boolean;
173
- /**
174
- * Counts observed failures without overflow.
175
- */
176
- readonly occurrences: number;
177
- /**
178
- * States whether a cause was reported since its latest resolution.
179
- */
180
- readonly reportedSinceResolution: boolean;
181
- }
182
- //# sourceMappingURL=parked-delivery-obligations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parked-delivery-obligations.d.ts","sourceRoot":"","sources":["../../src/delivery/parked-delivery-obligations.ts"],"names":[],"mappings":"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"}
@@ -1,390 +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
- /**
15
- * Tracks finite unresolved delivery obligations for one package.
16
- * @internal
17
- */
18
- export class ParkedDeliveryObligations {
19
- #configured = new Map();
20
- #records = new Map();
21
- #shared;
22
- /**
23
- * Creates a table from the bounded generation and registration obligations.
24
- *
25
- * @param options Supplies the configured obligation domains.
26
- */
27
- constructor(options) {
28
- for (const registration of options.registrations) {
29
- for (const obligation of registration.obligations) {
30
- this.#addConfigured({
31
- key: ParkedObligationValues.recordKey(ParkedObligationValues.registrationOwner(registration.token), obligation.key),
32
- owner: ParkedObligationValues.registrationOwner(registration.token),
33
- obligation: obligation.key,
34
- units: obligation.units,
35
- });
36
- }
37
- }
38
- for (const obligation of options.generation) {
39
- this.#addConfigured({
40
- key: ParkedObligationValues.recordKey(generationOwner, obligation.key),
41
- owner: generationOwner,
42
- obligation: obligation.key,
43
- units: obligation.units,
44
- });
45
- }
46
- const units = Array.from(new Set(options.generation.flatMap((obligation) => obligation.units)));
47
- if (units.length === 0) {
48
- throw new Error("Parked delivery obligations require a generation obligation.");
49
- }
50
- this.#shared = Object.freeze({
51
- key: ParkedObligationValues.recordKey(sharedOwner, "shared"),
52
- owner: sharedOwner,
53
- obligation: "shared",
54
- units: Object.freeze(units),
55
- });
56
- }
57
- /**
58
- * Records one unresolved obligation with its current failure cause.
59
- *
60
- * @param owner Identifies the obligation owner.
61
- * @param obligation Names the configured obligation.
62
- * @param units Selects the unresolved units.
63
- * @param cause Captures the representative failure.
64
- * @param occurrences Adds the number of observed failures.
65
- */
66
- park(owner, obligation, units, cause, occurrences = 1) {
67
- ParkedObligationValues.requireOccurrences(occurrences);
68
- const configured = this.#configuredObligation(owner, obligation, units);
69
- const record = this.#record(configured, units);
70
- record.occurrences = ParkedObligationValues.saturatingAdd(record.occurrences, occurrences);
71
- ParkedObligationValues.recordCauses(record, cause, units, configured.units);
72
- }
73
- /**
74
- * Records a failed fulfillment after resolving the selected units.
75
- *
76
- * @param owner Identifies the obligation owner.
77
- * @param obligation Names the configured obligation.
78
- * @param units Selects the resolved units.
79
- */
80
- parkFulfilledFailed(owner, obligation, units) {
81
- const configured = this.#configuredObligation(owner, obligation, units);
82
- this.#fulfill(configured, units);
83
- this.#record(configured, units);
84
- }
85
- /**
86
- * Records a shared unresolved obligation.
87
- *
88
- * @param units Selects the unresolved units.
89
- * @param cause Captures the representative failure.
90
- * @param occurrences Adds the number of observed failures.
91
- */
92
- parkShared(units, cause, occurrences = 1) {
93
- ParkedObligationValues.requireOccurrences(occurrences);
94
- const configured = this.#configuredObligation(sharedOwner, "shared", units);
95
- const record = this.#record(configured, units);
96
- record.occurrences = ParkedObligationValues.saturatingAdd(record.occurrences, occurrences);
97
- ParkedObligationValues.recordCauses(record, cause, units, configured.units);
98
- }
99
- /**
100
- * Updates one live registration's configured unit domain in stable order.
101
- * @internal
102
- * @param token Identifies the registration to extend.
103
- * @param obligation Names the configured obligation.
104
- * @param units Supplies the new units.
105
- */
106
- extendRegistration(token, obligation, units) {
107
- this.#extendConfigured(ParkedObligationValues.registrationOwner(token), obligation, units);
108
- this.#extendConfigured(generationOwner, "generation", units);
109
- this.#shared = Object.freeze({
110
- ...this.#shared,
111
- units: Object.freeze(ParkedObligationValues.appendUnits(this.#shared.units, units)),
112
- });
113
- }
114
- /**
115
- * Returns one unreported representative cause for each selected obligation.
116
- *
117
- * @param selections Select the obligation units to report.
118
- * @returns The representative causes that were newly reported.
119
- */
120
- report(selections) {
121
- const selected = this.#selectedUnits(selections);
122
- const causes = [];
123
- for (const configured of this.#configured.values()) {
124
- this.#reportRecord(configured, selected.get(configured.key), causes);
125
- }
126
- this.#reportRecord(this.#shared, selected.get(this.#shared.key), causes);
127
- return Object.freeze(causes);
128
- }
129
- /**
130
- * Updates selected obligation units as fulfilled.
131
- *
132
- * @param owner Identifies the obligation owner.
133
- * @param obligation Names the configured obligation.
134
- * @param units Selects the fulfilled units.
135
- */
136
- fulfilled(owner, obligation, units) {
137
- const configured = this.#configuredObligation(owner, obligation, units);
138
- this.#fulfill(configured, units);
139
- }
140
- /**
141
- * Removes a registration and reclassifies its parked obligations.
142
- *
143
- * @param token Identifies the removed registration.
144
- */
145
- removeRegistration(token) {
146
- const plan = this.#reclassificationPlan(token);
147
- for (const { sourceKey } of plan) {
148
- this.#records.delete(sourceKey);
149
- }
150
- for (const { destinations } of plan) {
151
- for (const { configured, source } of destinations) {
152
- this.#coalesce(configured, source);
153
- }
154
- }
155
- for (const [key, configured] of this.#configured) {
156
- if (configured.owner.kind === "registration" && configured.owner.token === token) {
157
- this.#configured.delete(key);
158
- }
159
- }
160
- }
161
- /**
162
- * Returns immutable snapshots of all parked obligations.
163
- *
164
- * @returns The current parked obligation records.
165
- */
166
- records() {
167
- return Object.freeze(Array.from(this.#records.values(), ParkedObligationValues.snapshot));
168
- }
169
- #addConfigured(configured) {
170
- const key = configured.key;
171
- if (this.#configured.has(key) || configured.units.length === 0) {
172
- throw new Error("Parked delivery obligations require unique non-empty configured obligations.");
173
- }
174
- this.#configured.set(key, Object.freeze({ ...configured, units: Object.freeze([...configured.units]) }));
175
- }
176
- #extendConfigured(owner, obligation, units) {
177
- if (units.length === 0) {
178
- return;
179
- }
180
- const key = ParkedObligationValues.recordKey(owner, obligation);
181
- const existing = this.#configured.get(key);
182
- if (existing === undefined) {
183
- this.#addConfigured({ key, owner, obligation, units });
184
- return;
185
- }
186
- this.#configured.set(key, Object.freeze({
187
- ...existing,
188
- units: Object.freeze(ParkedObligationValues.appendUnits(existing.units, units)),
189
- }));
190
- }
191
- #configuredObligation(owner, obligation, units) {
192
- if (owner.kind === "shared" &&
193
- obligation === "shared" &&
194
- ParkedObligationValues.isConfiguredSubset(units, this.#shared.units)) {
195
- return this.#shared;
196
- }
197
- const configured = this.#configured.get(ParkedObligationValues.recordKey(owner, obligation));
198
- if (configured === undefined ||
199
- !ParkedObligationValues.isConfiguredSubset(units, configured.units)) {
200
- throw new Error("Parked delivery obligation is not configured.");
201
- }
202
- return configured;
203
- }
204
- #record(configured, units) {
205
- const existing = this.#records.get(configured.key);
206
- if (existing !== undefined) {
207
- existing.units = ParkedObligationValues.orderUnits([...existing.units, ...units], configured.units);
208
- return existing;
209
- }
210
- const record = {
211
- key: configured.key,
212
- owner: configured.owner,
213
- obligation: configured.obligation,
214
- units: ParkedObligationValues.orderUnits(units, configured.units),
215
- occurrences: 0,
216
- causes: new Map(),
217
- reportedSinceResolution: false,
218
- };
219
- this.#records.set(configured.key, record);
220
- return record;
221
- }
222
- #fulfill(configured, units) {
223
- const record = this.#records.get(configured.key);
224
- if (record === undefined) {
225
- return;
226
- }
227
- const resolved = new Set(units);
228
- record.units = record.units.filter((unit) => !resolved.has(unit));
229
- for (const unit of resolved) {
230
- record.causes.delete(unit);
231
- }
232
- if (record.units.length === 0) {
233
- this.#records.delete(configured.key);
234
- }
235
- }
236
- #selectedUnits(selections) {
237
- const selected = new Map();
238
- for (const selection of selections) {
239
- const configured = this.#configuredObligation(selection.owner, selection.obligation, selection.units);
240
- const units = selected.get(configured.key) ?? new Set();
241
- for (const unit of selection.units) {
242
- units.add(unit);
243
- }
244
- selected.set(configured.key, units);
245
- }
246
- return selected;
247
- }
248
- #reportRecord(configured, selected, causes) {
249
- const record = this.#records.get(configured.key);
250
- if (record === undefined || selected === undefined) {
251
- return;
252
- }
253
- const representative = ParkedObligationValues.reportableCause(record, configured.units, selected);
254
- if (representative === undefined) {
255
- return;
256
- }
257
- causes.push(representative.evidence.cause);
258
- representative.evidence.reported = true;
259
- record.reportedSinceResolution = true;
260
- }
261
- #reclassificationPlan(token) {
262
- const plan = [];
263
- for (const [sourceKey, source] of this.#records) {
264
- if (source.owner.kind !== "registration" || source.owner.token !== token) {
265
- continue;
266
- }
267
- plan.push({ sourceKey, destinations: this.#generationDestinations(source) });
268
- }
269
- return plan;
270
- }
271
- #generationDestinations(source) {
272
- const generation = Array.from(this.#configured.values()).filter((configured) => configured.owner.kind === "generation");
273
- const grouped = new Map();
274
- for (const unit of source.units) {
275
- const destination = generation.find((configured) => configured.units.includes(unit));
276
- if (destination === undefined) {
277
- throw new Error("Removed registration obligation has no configured generation destination.");
278
- }
279
- const units = grouped.get(destination.key) ?? [];
280
- units.push(unit);
281
- grouped.set(destination.key, units);
282
- }
283
- return generation.flatMap((configured) => {
284
- const units = grouped.get(configured.key);
285
- return units === undefined
286
- ? []
287
- : [{ configured, source: ParkedObligationValues.reclassifiedSource(source, units) }];
288
- });
289
- }
290
- #coalesce(destination, source) {
291
- const target = this.#record(destination, source.units);
292
- target.occurrences = ParkedObligationValues.saturatingAdd(target.occurrences, source.occurrences);
293
- target.reportedSinceResolution ||= source.reportedSinceResolution;
294
- for (const [unit, evidence] of source.causes) {
295
- const existing = target.causes.get(unit);
296
- if (existing === undefined || (existing.reported && !evidence.reported)) {
297
- target.causes.set(unit, { ...evidence });
298
- }
299
- }
300
- }
301
- }
302
- const generationOwner = Object.freeze({ kind: "generation" });
303
- const sharedOwner = Object.freeze({ kind: "shared" });
304
- const ParkedObligationValues = Object.freeze({
305
- registrationOwner(token) {
306
- return Object.freeze({ kind: "registration", token });
307
- },
308
- recordKey(owner, obligation) {
309
- return JSON.stringify([
310
- owner.kind,
311
- owner.kind === "registration" ? owner.token : null,
312
- obligation,
313
- ]);
314
- },
315
- isConfiguredSubset(units, configured) {
316
- return units.length > 0 && units.every((unit) => configured.includes(unit));
317
- },
318
- orderUnits(units, configured) {
319
- const selected = new Set(units);
320
- return configured.filter((unit) => selected.has(unit));
321
- },
322
- appendUnits(existing, added) {
323
- return Array.from(new Set([...existing, ...added]));
324
- },
325
- recordCauses(record, cause, units, configured) {
326
- for (const unit of ParkedObligationValues.orderUnits(units, configured)) {
327
- const existing = record.causes.get(unit);
328
- if (existing === undefined || existing.reported) {
329
- record.causes.set(unit, { cause, reported: false });
330
- }
331
- }
332
- },
333
- representativeCause(record, configured) {
334
- for (const unit of configured) {
335
- if (!record.units.includes(unit)) {
336
- continue;
337
- }
338
- const evidence = record.causes.get(unit);
339
- if (evidence !== undefined) {
340
- return { unit, evidence };
341
- }
342
- }
343
- return undefined;
344
- },
345
- reportableCause(record, configured, selected) {
346
- for (const unit of configured) {
347
- const evidence = record.causes.get(unit);
348
- if (record.units.includes(unit) &&
349
- selected.has(unit) &&
350
- evidence !== undefined &&
351
- !evidence.reported) {
352
- return { unit, evidence };
353
- }
354
- }
355
- return undefined;
356
- },
357
- reclassifiedSource(source, units) {
358
- const selected = new Set(units);
359
- return {
360
- ...source,
361
- units: [...units],
362
- causes: new Map(Array.from(source.causes)
363
- .filter(([unit]) => selected.has(unit))
364
- .map(([unit, evidence]) => [unit, { ...evidence }])),
365
- };
366
- },
367
- requireOccurrences(increment) {
368
- if (!Number.isSafeInteger(increment) || increment <= 0) {
369
- throw new Error("Parked delivery occurrence increment must be a positive safe integer.");
370
- }
371
- },
372
- saturatingAdd(current, increment) {
373
- return current >= Number.MAX_SAFE_INTEGER - increment
374
- ? Number.MAX_SAFE_INTEGER
375
- : current + increment;
376
- },
377
- snapshot(record) {
378
- const representative = ParkedObligationValues.representativeCause(record, record.units);
379
- return Object.freeze({
380
- owner: record.owner,
381
- obligation: record.obligation,
382
- units: Object.freeze([...record.units]),
383
- cause: representative?.evidence.cause,
384
- hasCause: representative !== undefined,
385
- occurrences: record.occurrences,
386
- reportedSinceResolution: record.reportedSinceResolution,
387
- });
388
- },
389
- });
390
- //# sourceMappingURL=parked-delivery-obligations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parked-delivery-obligations.js","sourceRoot":"","sources":["../../src/delivery/parked-delivery-obligations.ts"],"names":[],"mappings":"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"}