@sixb/core 0.1.9 → 0.1.10

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 (279) hide show
  1. package/dist/actions/index.js +8 -8
  2. package/dist/agents/index.js +16 -15
  3. package/dist/agents/index.js.map +1 -1
  4. package/dist/bootstrap/index.js +20 -19
  5. package/dist/bootstrap/index.js.map +1 -1
  6. package/dist/broker/in-memory.d.ts +8 -2
  7. package/dist/broker/in-memory.d.ts.map +1 -1
  8. package/dist/broker/index.d.ts +4 -2
  9. package/dist/broker/index.d.ts.map +1 -1
  10. package/dist/broker/index.js +7 -3
  11. package/dist/broker/index.js.map +1 -1
  12. package/dist/broker/retention.d.ts +4 -0
  13. package/dist/broker/retention.d.ts.map +1 -0
  14. package/dist/broker/subscriber.d.ts +10 -0
  15. package/dist/broker/subscriber.d.ts.map +1 -0
  16. package/dist/broker/types.d.ts +14 -1
  17. package/dist/broker/types.d.ts.map +1 -1
  18. package/dist/{chunk-k3cqkkn2.js → chunk-1824gssz.js} +30 -65
  19. package/dist/chunk-1824gssz.js.map +12 -0
  20. package/dist/{chunk-h1gfhhbh.js → chunk-28ja2cjs.js} +1 -1
  21. package/dist/chunk-2c4j899j.js.map +1 -1
  22. package/dist/{chunk-ppytyr6w.js → chunk-358caqf5.js} +4 -4
  23. package/dist/chunk-358caqf5.js.map +12 -0
  24. package/dist/{chunk-kxwa347f.js → chunk-3qms4nax.js} +2 -2
  25. package/dist/{chunk-kxwa347f.js.map → chunk-3qms4nax.js.map} +3 -3
  26. package/dist/{chunk-emyyk7dx.js → chunk-5c7ga8zz.js} +22 -145
  27. package/dist/chunk-5c7ga8zz.js.map +12 -0
  28. package/dist/{chunk-hpr1r6av.js → chunk-5p1v802y.js} +46 -39
  29. package/dist/{chunk-hpr1r6av.js.map → chunk-5p1v802y.js.map} +4 -4
  30. package/dist/{chunk-zcnq6105.js → chunk-85cd7e8c.js} +2 -1
  31. package/dist/chunk-85cd7e8c.js.map +10 -0
  32. package/dist/{chunk-1enhpacz.js → chunk-976rxdpx.js} +5 -5
  33. package/dist/{chunk-3f7veca0.js → chunk-9x8dybsb.js} +3 -3
  34. package/dist/chunk-9x8dybsb.js.map +10 -0
  35. package/dist/{chunk-r29fxdhn.js → chunk-aa6z4a19.js} +160 -44
  36. package/dist/chunk-aa6z4a19.js.map +12 -0
  37. package/dist/{chunk-r4tfx1sf.js → chunk-agbbygvh.js} +4 -4
  38. package/dist/{chunk-jjy0fhrn.js → chunk-b0ec55a1.js} +20 -3
  39. package/dist/chunk-b0ec55a1.js.map +12 -0
  40. package/dist/{chunk-xfbydgzy.js → chunk-bn138h9w.js} +7 -8
  41. package/dist/{chunk-xfbydgzy.js.map → chunk-bn138h9w.js.map} +3 -3
  42. package/dist/{chunk-an5tt9y0.js → chunk-ftv470j8.js} +42 -4
  43. package/dist/{chunk-an5tt9y0.js.map → chunk-ftv470j8.js.map} +7 -7
  44. package/dist/{chunk-0w35wavj.js → chunk-g7knyczr.js} +1 -1
  45. package/dist/{chunk-x57ycxq0.js → chunk-gqh45d2n.js} +42 -3
  46. package/dist/{chunk-x57ycxq0.js.map → chunk-gqh45d2n.js.map} +3 -3
  47. package/dist/{chunk-0rdrecsb.js → chunk-kfee1h52.js} +116 -32
  48. package/dist/chunk-kfee1h52.js.map +13 -0
  49. package/dist/{chunk-ypbtykv6.js → chunk-nmbxcaqx.js} +1 -1
  50. package/dist/{chunk-3tgwrcyh.js → chunk-nt99sxd6.js} +2 -2
  51. package/dist/{chunk-3tgwrcyh.js.map → chunk-nt99sxd6.js.map} +3 -3
  52. package/dist/{chunk-vf691g1r.js → chunk-p5vcsw9c.js} +2 -2
  53. package/dist/{chunk-mjbk2djy.js → chunk-p6a4npdx.js} +211 -106
  54. package/dist/{chunk-mjbk2djy.js.map → chunk-p6a4npdx.js.map} +9 -8
  55. package/dist/{chunk-3frsnm7x.js → chunk-qma80ych.js} +4 -6
  56. package/dist/chunk-qma80ych.js.map +11 -0
  57. package/dist/{chunk-qhcpj9wc.js → chunk-qyeptdyv.js} +96 -2
  58. package/dist/chunk-qyeptdyv.js.map +15 -0
  59. package/dist/{chunk-52hbv0ak.js → chunk-r7fj830t.js} +101 -48
  60. package/dist/chunk-r7fj830t.js.map +36 -0
  61. package/dist/{chunk-xyr8kppc.js → chunk-rtk71jzp.js} +1 -1
  62. package/dist/{chunk-m3z3x9v0.js → chunk-t1f4f1ve.js} +1 -1
  63. package/dist/chunk-v2vcg0w6.js +151 -0
  64. package/dist/chunk-v2vcg0w6.js.map +11 -0
  65. package/dist/connectors/connections/authorizations.d.ts.map +1 -1
  66. package/dist/connectors/connections/contracts.d.ts +3 -0
  67. package/dist/connectors/connections/contracts.d.ts.map +1 -1
  68. package/dist/connectors/connections/internal.js +1 -1
  69. package/dist/connectors/connections/request.d.ts +3 -1
  70. package/dist/connectors/connections/request.d.ts.map +1 -1
  71. package/dist/connectors/connections/runs.d.ts.map +1 -1
  72. package/dist/connectors/connections/tokens.d.ts.map +1 -1
  73. package/dist/connectors/connections/validation.d.ts +5 -1
  74. package/dist/connectors/connections/validation.d.ts.map +1 -1
  75. package/dist/connectors/types.d.ts +19 -4
  76. package/dist/connectors/types.d.ts.map +1 -1
  77. package/dist/events/execution.d.ts +1 -1
  78. package/dist/events/execution.d.ts.map +1 -1
  79. package/dist/events/index.js +1 -1
  80. package/dist/events/service.d.ts +2 -2
  81. package/dist/events/service.d.ts.map +1 -1
  82. package/dist/execution/agent.js +16 -15
  83. package/dist/execution/agent.js.map +1 -1
  84. package/dist/execution/primitive.js +16 -15
  85. package/dist/execution/primitive.js.map +2 -2
  86. package/dist/execution/request.js +16 -15
  87. package/dist/execution/request.js.map +2 -2
  88. package/dist/index.d.ts +3 -3
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +30 -28
  91. package/dist/index.js.map +1 -1
  92. package/dist/lake-storage/changes.d.ts +5 -0
  93. package/dist/lake-storage/changes.d.ts.map +1 -0
  94. package/dist/lake-storage/in-memory.d.ts +2 -1
  95. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  96. package/dist/lake-storage/index.d.ts +2 -1
  97. package/dist/lake-storage/index.d.ts.map +1 -1
  98. package/dist/lake-storage/index.js +4 -2
  99. package/dist/lake-storage/index.js.map +1 -1
  100. package/dist/lake-storage/types.d.ts +36 -0
  101. package/dist/lake-storage/types.d.ts.map +1 -1
  102. package/dist/logging/internal.js +1 -1
  103. package/dist/materialization/index.d.ts +1 -1
  104. package/dist/materialization/index.d.ts.map +1 -1
  105. package/dist/materialization/model.d.ts +12 -1
  106. package/dist/materialization/model.d.ts.map +1 -1
  107. package/dist/materializer/index.d.ts +1 -1
  108. package/dist/materializer/index.d.ts.map +1 -1
  109. package/dist/materializer/index.js +5 -5
  110. package/dist/materializer/materializer.d.ts +5 -1
  111. package/dist/materializer/materializer.d.ts.map +1 -1
  112. package/dist/materializer/projections/entry-validator.d.ts +2 -1
  113. package/dist/materializer/projections/entry-validator.d.ts.map +1 -1
  114. package/dist/materializer/projections/replace.d.ts.map +1 -1
  115. package/dist/materializer/projections/source-materialization.d.ts +4 -3
  116. package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
  117. package/dist/materializer/shared/normalize.d.ts +2 -1
  118. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  119. package/dist/models/execution/index.js +5 -5
  120. package/dist/objects/index.js +9 -9
  121. package/dist/objects/query/index.js +5 -5
  122. package/dist/pipelines/index.js +6 -6
  123. package/dist/pipelines/run-dispatch.d.ts.map +1 -1
  124. package/dist/projections/internal.js +6 -8
  125. package/dist/projections/internal.js.map +1 -1
  126. package/dist/projections/run-dispatch.d.ts.map +1 -1
  127. package/dist/queues/in-memory.d.ts +7 -3
  128. package/dist/queues/in-memory.d.ts.map +1 -1
  129. package/dist/queues/index.js +1 -1
  130. package/dist/queues/indexed-heap.d.ts +15 -0
  131. package/dist/queues/indexed-heap.d.ts.map +1 -0
  132. package/dist/runtime/host.d.ts.map +1 -1
  133. package/dist/runtime/internal.js +1 -1
  134. package/dist/runtime/ontology-mutations.d.ts +3 -1
  135. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  136. package/dist/shares/internal.js +4 -4
  137. package/dist/storage/connector-connections/in-memory.d.ts.map +1 -1
  138. package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -1
  139. package/dist/storage/connector-connections/provider.js +2 -2
  140. package/dist/storage/connector-connections/provider.js.map +3 -3
  141. package/dist/storage/connector-connections/types.d.ts +3 -2
  142. package/dist/storage/connector-connections/types.d.ts.map +1 -1
  143. package/dist/storage/index.d.ts +1 -1
  144. package/dist/storage/index.d.ts.map +1 -1
  145. package/dist/storage/index.js +4 -4
  146. package/dist/storage/internal.js +1 -1
  147. package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
  148. package/dist/storage/ontology/in-memory/materializations.d.ts +1 -1
  149. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  150. package/dist/storage/ontology/in-memory/shared-state.d.ts +15 -2
  151. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  152. package/dist/storage/ontology/in-memory/source-roots.d.ts +6 -0
  153. package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -0
  154. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  155. package/dist/storage/ontology/index.d.ts +1 -1
  156. package/dist/storage/ontology/index.d.ts.map +1 -1
  157. package/dist/storage/ontology/provider.d.ts +16 -0
  158. package/dist/storage/ontology/provider.d.ts.map +1 -1
  159. package/dist/storage/ontology/provider.js +4 -2
  160. package/dist/storage/ontology/provider.js.map +1 -1
  161. package/dist/storage/ontology/sources.d.ts +13 -4
  162. package/dist/storage/ontology/sources.d.ts.map +1 -1
  163. package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
  164. package/dist/storage/projection-runs/provider.js +2 -2
  165. package/dist/storage/projection-runs/types.d.ts +2 -0
  166. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  167. package/dist/syncs/index.js +8 -7
  168. package/dist/syncs/index.js.map +1 -1
  169. package/dist/syncs/run-dispatch.d.ts.map +1 -1
  170. package/dist/testing/broker-contract.d.ts.map +1 -1
  171. package/dist/testing/connector-connection-storage-contract.d.ts.map +1 -1
  172. package/dist/testing/index.d.ts +1 -0
  173. package/dist/testing/index.d.ts.map +1 -1
  174. package/dist/testing/index.js +1459 -951
  175. package/dist/testing/index.js.map +9 -8
  176. package/dist/testing/lake-changes-contract.d.ts +6 -0
  177. package/dist/testing/lake-changes-contract.d.ts.map +1 -0
  178. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  179. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  180. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  181. package/dist/webhooks/connections.d.ts +6 -0
  182. package/dist/webhooks/connections.d.ts.map +1 -0
  183. package/dist/webhooks/index.d.ts +1 -1
  184. package/dist/webhooks/index.d.ts.map +1 -1
  185. package/dist/webhooks/internal.d.ts +2 -0
  186. package/dist/webhooks/internal.d.ts.map +1 -1
  187. package/dist/webhooks/internal.js +54 -9
  188. package/dist/webhooks/internal.js.map +4 -3
  189. package/dist/webhooks/registry.d.ts +1 -1
  190. package/dist/webhooks/registry.d.ts.map +1 -1
  191. package/dist/webhooks/types.d.ts +15 -4
  192. package/dist/webhooks/types.d.ts.map +1 -1
  193. package/dist/workflows/index.js +17 -16
  194. package/dist/workflows/index.js.map +1 -1
  195. package/dist/workflows/run-dispatch.d.ts +3 -1
  196. package/dist/workflows/run-dispatch.d.ts.map +1 -1
  197. package/package.json +1 -1
  198. package/src/broker/in-memory.ts +104 -39
  199. package/src/broker/index.ts +4 -1
  200. package/src/broker/retention.ts +28 -0
  201. package/src/broker/subscriber.ts +21 -0
  202. package/src/broker/types.ts +15 -1
  203. package/src/connectors/builders.ts +0 -6
  204. package/src/connectors/connections/authorizations.ts +11 -5
  205. package/src/connectors/connections/contracts.ts +3 -0
  206. package/src/connectors/connections/request.ts +56 -22
  207. package/src/connectors/connections/runs.ts +1 -0
  208. package/src/connectors/connections/tokens.ts +4 -0
  209. package/src/connectors/connections/validation.ts +91 -5
  210. package/src/connectors/types.ts +19 -4
  211. package/src/events/execution.ts +2 -2
  212. package/src/events/service.ts +3 -3
  213. package/src/index.ts +10 -2
  214. package/src/lake-storage/changes.ts +43 -0
  215. package/src/lake-storage/in-memory.ts +73 -0
  216. package/src/lake-storage/index.ts +4 -0
  217. package/src/lake-storage/types.ts +40 -0
  218. package/src/logging/service.ts +1 -1
  219. package/src/materialization/index.ts +2 -0
  220. package/src/materialization/model.ts +14 -1
  221. package/src/materializer/index.ts +2 -0
  222. package/src/materializer/materializer.ts +10 -0
  223. package/src/materializer/projections/entry-validator.ts +19 -1
  224. package/src/materializer/projections/replace.ts +36 -1
  225. package/src/materializer/projections/source-materialization.ts +26 -6
  226. package/src/materializer/shared/normalize.ts +1 -1
  227. package/src/pipelines/run-dispatch.ts +21 -1
  228. package/src/projections/run-dispatch.ts +30 -68
  229. package/src/queues/in-memory.ts +105 -62
  230. package/src/queues/indexed-heap.ts +74 -0
  231. package/src/runtime/host.ts +0 -14
  232. package/src/runtime/ontology-mutations.ts +4 -0
  233. package/src/storage/connector-connections/in-memory.ts +3 -1
  234. package/src/storage/connector-connections/provider/runs.ts +3 -1
  235. package/src/storage/connector-connections/types.ts +3 -2
  236. package/src/storage/index.ts +1 -0
  237. package/src/storage/ontology/in-memory/materializations-state.ts +5 -18
  238. package/src/storage/ontology/in-memory/materializations.ts +73 -92
  239. package/src/storage/ontology/in-memory/shared-state.ts +26 -1
  240. package/src/storage/ontology/in-memory/source-roots.ts +123 -0
  241. package/src/storage/ontology/in-memory/sources.ts +78 -23
  242. package/src/storage/ontology/index.ts +1 -0
  243. package/src/storage/ontology/provider.ts +70 -0
  244. package/src/storage/ontology/sources.ts +14 -3
  245. package/src/storage/projection-runs/lifecycle.ts +5 -2
  246. package/src/storage/projection-runs/types.ts +4 -3
  247. package/src/syncs/run-dispatch.ts +19 -1
  248. package/src/testing/broker-contract.ts +95 -0
  249. package/src/testing/connector-connection-storage-contract.ts +18 -1
  250. package/src/testing/index.ts +1 -0
  251. package/src/testing/lake-changes-contract.ts +240 -0
  252. package/src/testing/materializer-storage-contract.ts +172 -1
  253. package/src/testing/ontology-storage-contract.ts +7 -0
  254. package/src/testing/projection-run-storage-contract.ts +34 -0
  255. package/src/webhooks/connections.ts +56 -0
  256. package/src/webhooks/index.ts +2 -0
  257. package/src/webhooks/internal.ts +2 -0
  258. package/src/webhooks/registry.ts +3 -4
  259. package/src/webhooks/types.ts +17 -4
  260. package/src/workflows/run-dispatch.ts +42 -29
  261. package/dist/chunk-0rdrecsb.js.map +0 -11
  262. package/dist/chunk-3f7veca0.js.map +0 -10
  263. package/dist/chunk-3frsnm7x.js.map +0 -11
  264. package/dist/chunk-52hbv0ak.js.map +0 -36
  265. package/dist/chunk-emyyk7dx.js.map +0 -14
  266. package/dist/chunk-jjy0fhrn.js.map +0 -12
  267. package/dist/chunk-k3cqkkn2.js.map +0 -12
  268. package/dist/chunk-ppytyr6w.js.map +0 -12
  269. package/dist/chunk-qhcpj9wc.js.map +0 -14
  270. package/dist/chunk-r29fxdhn.js.map +0 -11
  271. package/dist/chunk-zcnq6105.js.map +0 -10
  272. /package/dist/{chunk-h1gfhhbh.js.map → chunk-28ja2cjs.js.map} +0 -0
  273. /package/dist/{chunk-1enhpacz.js.map → chunk-976rxdpx.js.map} +0 -0
  274. /package/dist/{chunk-r4tfx1sf.js.map → chunk-agbbygvh.js.map} +0 -0
  275. /package/dist/{chunk-0w35wavj.js.map → chunk-g7knyczr.js.map} +0 -0
  276. /package/dist/{chunk-ypbtykv6.js.map → chunk-nmbxcaqx.js.map} +0 -0
  277. /package/dist/{chunk-vf691g1r.js.map → chunk-p5vcsw9c.js.map} +0 -0
  278. /package/dist/{chunk-xyr8kppc.js.map → chunk-rtk71jzp.js.map} +0 -0
  279. /package/dist/{chunk-m3z3x9v0.js.map → chunk-t1f4f1ve.js.map} +0 -0
@@ -9,24 +9,24 @@ import {
9
9
  createActionReadFacade2,
10
10
  ActionRegistry2,
11
11
  runActionValidators2
12
- } from "../chunk-vf691g1r.js";
12
+ } from "../chunk-p5vcsw9c.js";
13
13
  import {
14
14
  requestAction3,
15
15
  requestActionAndWait2,
16
16
  waitForActionRun2
17
- } from "../chunk-ypbtykv6.js";
18
- import"../chunk-0w35wavj.js";
19
- import"../chunk-an5tt9y0.js";
17
+ } from "../chunk-nmbxcaqx.js";
18
+ import"../chunk-g7knyczr.js";
19
+ import"../chunk-ftv470j8.js";
20
20
  import"../chunk-17kfctj6.js";
21
- import"../chunk-mjbk2djy.js";
21
+ import"../chunk-p6a4npdx.js";
22
22
  import"../chunk-qf954wje.js";
23
23
  import"../chunk-pr2h4bv4.js";
24
24
  import"../chunk-8vj0rjgs.js";
25
- import"../chunk-x57ycxq0.js";
25
+ import"../chunk-gqh45d2n.js";
26
26
  import"../chunk-z30bv4ga.js";
27
27
  import"../chunk-mmagke4x.js";
28
- import"../chunk-ppytyr6w.js";
29
- import"../chunk-3frsnm7x.js";
28
+ import"../chunk-358caqf5.js";
29
+ import"../chunk-qma80ych.js";
30
30
  import"../chunk-br3k6qbf.js";
31
31
  import"../chunk-jmfet9r4.js";
32
32
  import"../chunk-vsj3mdfj.js";
@@ -39,27 +39,28 @@ import {
39
39
  runModelLoop2,
40
40
  requestAgentRun2,
41
41
  retryAgentRun2
42
- } from "../chunk-hpr1r6av.js";
43
- import"../chunk-emyyk7dx.js";
42
+ } from "../chunk-5p1v802y.js";
43
+ import"../chunk-5c7ga8zz.js";
44
+ import"../chunk-v2vcg0w6.js";
44
45
  import"../chunk-awbhdqyc.js";
45
- import"../chunk-1enhpacz.js";
46
- import"../chunk-zcnq6105.js";
47
- import"../chunk-jjy0fhrn.js";
48
- import"../chunk-h1gfhhbh.js";
46
+ import"../chunk-976rxdpx.js";
47
+ import"../chunk-85cd7e8c.js";
48
+ import"../chunk-b0ec55a1.js";
49
+ import"../chunk-28ja2cjs.js";
49
50
  import"../chunk-g6cke204.js";
50
51
  import"../chunk-0y39rgsb.js";
51
52
  import"../chunk-5a4a52tq.js";
52
53
  import"../chunk-mrp7k0pw.js";
53
54
  import"../chunk-9qsh3p5y.js";
54
55
  import"../chunk-860dwwy0.js";
55
- import"../chunk-vf691g1r.js";
56
- import"../chunk-ypbtykv6.js";
57
- import"../chunk-0w35wavj.js";
58
- import"../chunk-an5tt9y0.js";
56
+ import"../chunk-p5vcsw9c.js";
57
+ import"../chunk-nmbxcaqx.js";
58
+ import"../chunk-g7knyczr.js";
59
+ import"../chunk-ftv470j8.js";
59
60
  import"../chunk-17kfctj6.js";
60
61
  import {
61
62
  AGENT_MESSAGE_CONTENT_VERSION2
62
- } from "../chunk-mjbk2djy.js";
63
+ } from "../chunk-p6a4npdx.js";
63
64
  import"../chunk-qf954wje.js";
64
65
  import {
65
66
  ensureManagedAgentExecutionIdentity2,
@@ -67,11 +68,11 @@ import {
67
68
  resolveInheritedAgentExecutionAuthorization2
68
69
  } from "../chunk-pr2h4bv4.js";
69
70
  import"../chunk-8vj0rjgs.js";
70
- import"../chunk-x57ycxq0.js";
71
+ import"../chunk-gqh45d2n.js";
71
72
  import"../chunk-z30bv4ga.js";
72
73
  import"../chunk-mmagke4x.js";
73
- import"../chunk-ppytyr6w.js";
74
- import"../chunk-3frsnm7x.js";
74
+ import"../chunk-358caqf5.js";
75
+ import"../chunk-qma80ych.js";
75
76
  import"../chunk-br3k6qbf.js";
76
77
  import"../chunk-jmfet9r4.js";
77
78
  import"../chunk-vsj3mdfj.js";
@@ -201,4 +202,4 @@ export {
201
202
  workflowAgentNodeQueueJobId2 as workflowAgentNodeQueueJobId
202
203
  };
203
204
 
204
- //# debugId=81FBFF277342652564756E2164756E21
205
+ //# debugId=3E7B8BC287B300C964756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "81FBFF277342652564756E2164756E21",
7
+ "debugId": "3E7B8BC287B300C964756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -6,44 +6,45 @@ import {
6
6
  discoverProjectDefinitions2,
7
7
  discoverOntologyTypeManifest2,
8
8
  generateOntologyTypeManifest2
9
- } from "../chunk-r4tfx1sf.js";
10
- import"../chunk-xfbydgzy.js";
11
- import"../chunk-m3z3x9v0.js";
9
+ } from "../chunk-agbbygvh.js";
10
+ import"../chunk-bn138h9w.js";
11
+ import"../chunk-t1f4f1ve.js";
12
12
  import"../chunk-x9v4cx1d.js";
13
- import"../chunk-xyr8kppc.js";
13
+ import"../chunk-rtk71jzp.js";
14
14
  import"../chunk-e1c18xjx.js";
15
15
  import"../chunk-fb3feg1e.js";
16
16
  import"../chunk-dfm066qg.js";
17
17
  import"../chunk-r2y23egw.js";
18
18
  import"../chunk-skz0hst3.js";
19
19
  import"../chunk-9vx5e9g1.js";
20
- import"../chunk-hpr1r6av.js";
21
- import"../chunk-emyyk7dx.js";
20
+ import"../chunk-5p1v802y.js";
21
+ import"../chunk-5c7ga8zz.js";
22
+ import"../chunk-v2vcg0w6.js";
22
23
  import"../chunk-awbhdqyc.js";
23
- import"../chunk-1enhpacz.js";
24
- import"../chunk-zcnq6105.js";
25
- import"../chunk-jjy0fhrn.js";
26
- import"../chunk-h1gfhhbh.js";
24
+ import"../chunk-976rxdpx.js";
25
+ import"../chunk-85cd7e8c.js";
26
+ import"../chunk-b0ec55a1.js";
27
+ import"../chunk-28ja2cjs.js";
27
28
  import"../chunk-g6cke204.js";
28
29
  import"../chunk-0y39rgsb.js";
29
30
  import"../chunk-5a4a52tq.js";
30
31
  import"../chunk-mrp7k0pw.js";
31
32
  import"../chunk-9qsh3p5y.js";
32
33
  import"../chunk-860dwwy0.js";
33
- import"../chunk-vf691g1r.js";
34
- import"../chunk-ypbtykv6.js";
35
- import"../chunk-0w35wavj.js";
36
- import"../chunk-an5tt9y0.js";
34
+ import"../chunk-p5vcsw9c.js";
35
+ import"../chunk-nmbxcaqx.js";
36
+ import"../chunk-g7knyczr.js";
37
+ import"../chunk-ftv470j8.js";
37
38
  import"../chunk-17kfctj6.js";
38
- import"../chunk-mjbk2djy.js";
39
+ import"../chunk-p6a4npdx.js";
39
40
  import"../chunk-qf954wje.js";
40
41
  import"../chunk-pr2h4bv4.js";
41
42
  import"../chunk-8vj0rjgs.js";
42
- import"../chunk-x57ycxq0.js";
43
+ import"../chunk-gqh45d2n.js";
43
44
  import"../chunk-z30bv4ga.js";
44
45
  import"../chunk-mmagke4x.js";
45
- import"../chunk-ppytyr6w.js";
46
- import"../chunk-3frsnm7x.js";
46
+ import"../chunk-358caqf5.js";
47
+ import"../chunk-qma80ych.js";
47
48
  import"../chunk-br3k6qbf.js";
48
49
  import"../chunk-jmfet9r4.js";
49
50
  import"../chunk-vsj3mdfj.js";
@@ -81,4 +82,4 @@ export {
81
82
  withProjectModules2 as withProjectModules
82
83
  };
83
84
 
84
- //# debugId=4C42D00360366B0D64756E2164756E21
85
+ //# debugId=890EEA3B23D91B3664756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "4C42D00360366B0D64756E2164756E21",
7
+ "debugId": "890EEA3B23D91B3664756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,8 +1,13 @@
1
- import type { Broker, BrokerPage, BrokerRecord, BrokerRecordInput, BrokerStreamDefinition } from "./types";
1
+ import type { Broker, BrokerPage, BrokerRecord, BrokerRecordInput, BrokerStreamDefinition, BrokerStreamRetention } from "./types";
2
+ export interface InMemoryBrokerOptions {
3
+ readonly streamRetention?: BrokerStreamRetention;
4
+ }
2
5
  export declare class InMemoryBroker implements Broker {
3
6
  readonly scope: "process";
4
7
  private readonly streams;
5
8
  private readonly subscriptions;
9
+ private readonly resolveStream;
10
+ constructor(options?: InMemoryBrokerOptions);
6
11
  ensureStream(params: {
7
12
  projectId: string;
8
13
  stream: BrokerStreamDefinition;
@@ -39,7 +44,7 @@ export declare class InMemoryBroker implements Broker {
39
44
  afterCursor?: string;
40
45
  names?: readonly string[];
41
46
  keys?: readonly string[];
42
- }, handler: (records: readonly BrokerRecord[]) => void): Promise<() => void>;
47
+ }, handler: (records: readonly BrokerRecord[]) => unknown): Promise<() => void>;
43
48
  private getOrCreateStream;
44
49
  private getEnsuredStream;
45
50
  private applyRetention;
@@ -47,6 +52,7 @@ export declare class InMemoryBroker implements Broker {
47
52
  private assertTailCursorInRetainedRange;
48
53
  private notify;
49
54
  private deliver;
55
+ private pump;
50
56
  private readForward;
51
57
  private readBackward;
52
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/broker/in-memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,SAAS,CAAA;AA+BhB,qBAAa,cAAe,YAAW,MAAM;IAC3C,QAAQ,CAAC,KAAK,EAAG,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IAElD,YAAY,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1F,MAAM,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAA;KACtC,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IA0C9B,IAAI,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwBjB,IAAI,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBjB,YAAY,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa1F,SAAS,CACb,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,EACD,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,IAAI,CAAC;IAsCtB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IA2DtB,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,MAAM;IAed,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,YAAY;CAwCrB"}
1
+ {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/broker/in-memory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAkChB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAA;CACjD;AAED,qBAAa,cAAe,YAAW,MAAM;IAC3C,QAAQ,CAAC,KAAK,EAAG,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkD;gBAEpE,OAAO,GAAE,qBAA0B;IAIzC,YAAY,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1F,MAAM,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAA;KACtC,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IA0C9B,IAAI,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwBjB,IAAI,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBjB,YAAY,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa1F,SAAS,CACb,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,EACD,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,OAAO,GACrD,OAAO,CAAC,MAAM,IAAI,CAAC;IA0CtB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IA2DtB,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,OAAO;YAWD,IAAI;IA2BlB,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,YAAY;CAuCrB"}
@@ -1,5 +1,7 @@
1
1
  export type { ProviderScope } from "../provider-scope";
2
2
  export { BrokerCursorExpiredError, BrokerError } from "./errors";
3
- export { InMemoryBroker } from "./in-memory";
4
- export type { Broker, BrokerCursor, BrokerPage, BrokerRecord, BrokerRecordInput, BrokerRetention, BrokerStreamDefinition, } from "./types";
3
+ export { InMemoryBroker, type InMemoryBrokerOptions } from "./in-memory";
4
+ export { createStreamRetentionResolver } from "./retention";
5
+ export { waitForSubscriber } from "./subscriber";
6
+ export type { Broker, BrokerCursor, BrokerPage, BrokerRecord, BrokerRecordInput, BrokerRetention, BrokerStreamDefinition, BrokerStreamRetention, } from "./types";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/broker/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,YAAY,EACV,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,sBAAsB,GACvB,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/broker/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,YAAY,EACV,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAA"}
@@ -2,12 +2,16 @@
2
2
  import {
3
3
  BrokerError2,
4
4
  BrokerCursorExpiredError2,
5
+ createStreamRetentionResolver2,
6
+ waitForSubscriber2,
5
7
  InMemoryBroker2
6
- } from "../chunk-0rdrecsb.js";
8
+ } from "../chunk-kfee1h52.js";
7
9
  export {
8
10
  BrokerCursorExpiredError2 as BrokerCursorExpiredError,
9
11
  BrokerError2 as BrokerError,
10
- InMemoryBroker2 as InMemoryBroker
12
+ InMemoryBroker2 as InMemoryBroker,
13
+ createStreamRetentionResolver2 as createStreamRetentionResolver,
14
+ waitForSubscriber2 as waitForSubscriber
11
15
  };
12
16
 
13
- //# debugId=5A8E300A862E269664756E2164756E21
17
+ //# debugId=BF91BB5AF8D564D764756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "5A8E300A862E269664756E2164756E21",
7
+ "debugId": "BF91BB5AF8D564D764756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -0,0 +1,4 @@
1
+ import type { BrokerStreamDefinition, BrokerStreamRetention } from "./types";
2
+ /** Provider utility: snapshot and validate configuration before opening any connections. */
3
+ export declare function createStreamRetentionResolver(configuration?: BrokerStreamRetention): (stream: BrokerStreamDefinition) => BrokerStreamDefinition;
4
+ //# sourceMappingURL=retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/broker/retention.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE7F,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAC3C,aAAa,GAAE,qBAA0B,GACxC,CAAC,MAAM,EAAE,sBAAsB,KAAK,sBAAsB,CAqB5D"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Await one observer delivery, or detach it on unsubscribe. The observer's owner
3
+ * remains responsible for cancellation/draining. Rejections are observed even
4
+ * after detaching; each completed delivery removes its abort listener.
5
+ *
6
+ * Do not race every batch against one permanent stop promise: that retains a
7
+ * promise reaction per batch for the subscription's entire lifetime.
8
+ */
9
+ export declare function waitForSubscriber(result: unknown, signal: AbortSignal): Promise<void>;
10
+ //# sourceMappingURL=subscriber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../src/broker/subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F"}
@@ -17,6 +17,8 @@ export interface BrokerStreamDefinition {
17
17
  readonly id: string;
18
18
  readonly retention?: BrokerRetention;
19
19
  }
20
+ /** Per-stream overrides at creation; omitted limits keep the stream's own defaults. */
21
+ export type BrokerStreamRetention = Readonly<Record<string, BrokerRetention>>;
20
22
  export interface BrokerRecordInput {
21
23
  readonly name?: string;
22
24
  readonly key?: string;
@@ -96,6 +98,17 @@ export interface Broker {
96
98
  * range rather than silently advancing to the first retained record, so a
97
99
  * resuming subscriber learns the gap exists instead of mistaking a truncated
98
100
  * stream for a complete one.
101
+ *
102
+ * A returned handler promise is awaited before the next delivery. Providers
103
+ * bound read-ahead instead of accumulating pending handler calls. Return the
104
+ * processing promise to apply backpressure; detached work cannot be bounded.
105
+ * Handler errors remain isolated from publishers and other subscribers; they
106
+ * are not a negative acknowledgement. Reliable consumers must retry within
107
+ * their handler before returning. No progress survives a process restart.
108
+ *
109
+ * Unsubscribe stops further delivery, not an already running callback. Its
110
+ * owner must cancel/drain that work; provider close must not wait indefinitely
111
+ * for an uncooperative handler. Return values other than promises are ignored.
99
112
  */
100
113
  subscribe(params: {
101
114
  projectId: string;
@@ -104,7 +117,7 @@ export interface Broker {
104
117
  afterCursor?: BrokerCursor;
105
118
  names?: readonly string[];
106
119
  keys?: readonly string[];
107
- }, handler: (records: readonly BrokerRecord[]) => void): Promise<() => void>;
120
+ }, handler: (records: readonly BrokerRecord[]) => unknown): Promise<() => void>;
108
121
  /**
109
122
  * Whether this broker can be shared across processes.
110
123
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAA;CACrC;AAED,uFAAuF;AACvF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;AAE7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAA;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,8DAA8D;IAC9D,YAAY,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1F,4CAA4C;IAC5C,MAAM,CAAC,MAAM,EAAE;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAA;KACtC,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IAEpC;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE;QACX,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,YAAY,CAAA;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEvB;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE;QACX,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,YAAY,CAAA;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEvB;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAA;IAEhG;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CACP,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;QAC5B,WAAW,CAAC,EAAE,YAAY,CAAA;QAC1B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,EACD,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,OAAO,GACrD,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IAEtB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAE7B;;;;;OAKG;IACH,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/B"}
@@ -1,25 +1,15 @@
1
1
  // @bun
2
- import {
3
- createSixbError2,
4
- toSixbFailure2
5
- } from "./chunk-f4w3yp4f.js";
6
- import {
7
- reportRunFailure2
8
- } from "./chunk-7apz6hg4.js";
9
2
  import {
10
3
  ProjectionValidationError2
11
4
  } from "./chunk-dz5h08xv.js";
12
5
  import {
13
6
  sha256Canonical2
14
- } from "./chunk-x57ycxq0.js";
15
- import {
16
- PROJECTION_RUN_FAILURE_CODES2
17
- } from "./chunk-3frsnm7x.js";
7
+ } from "./chunk-gqh45d2n.js";
18
8
  import {
19
9
  ProjectionRunError2,
20
10
  assertProjectionRunIdentityMatches2,
21
11
  assertProjectionRunDurableExecution2
22
- } from "./chunk-ppytyr6w.js";
12
+ } from "./chunk-358caqf5.js";
23
13
  import {
24
14
  createPrimitiveExecutionRecord
25
15
  } from "./chunk-17kfctj6.js";
@@ -105,13 +95,16 @@ class ProjectionRunDispatcher2 {
105
95
  const runId = createProjectionRunId2(this.dependencies.id, identity);
106
96
  const projectionRuns = requireProjectionRunStorage(this.dependencies.storage);
107
97
  const existing = await projectionRuns.getById({ projectId: this.dependencies.id, id: runId });
108
- const persisted = existing ? await reuseProjectionRun(this.dependencies, existing, identity) : await persistProjectionRun({
98
+ let persisted = existing ? await reuseProjectionRun(this.dependencies, existing, identity) : await persistProjectionRun({
109
99
  dependencies: this.dependencies,
110
100
  runId,
111
101
  identity,
112
102
  projection,
113
103
  producerExecution: await resolveProducerExecution(this.dependencies.storage, this.dependencies.id, version.producer)
114
104
  });
105
+ if (!persisted.publish && persisted.run.status === "queued") {
106
+ persisted = await reuseProjectionRun(this.dependencies, persisted.run, identity);
107
+ }
115
108
  if (!persisted.publish)
116
109
  return existingResult(persisted.run);
117
110
  return publishProjectionRun(this.dependencies, input.metadata, persisted);
@@ -172,6 +165,9 @@ async function persistProjectionRun(input) {
172
165
  }
173
166
  async function reuseProjectionRun(dependencies, existing, identity) {
174
167
  await assertExistingRun(dependencies.storage, existing, identity);
168
+ if (existing.status === "queued") {
169
+ return { publish: true, run: existing, queuedAt: existing.queuedAt, created: false };
170
+ }
175
171
  if (existing.status !== "failed" || existing.error?.code !== "queue.enqueue_failed" || !existing.error.retryable) {
176
172
  return { publish: false, run: existing };
177
173
  }
@@ -192,46 +188,27 @@ async function reuseProjectionRun(dependencies, existing, identity) {
192
188
  }
193
189
  }
194
190
  async function publishProjectionRun(dependencies, metadata, persisted) {
195
- try {
196
- const [job] = await dependencies.queues.projections.enqueue({
197
- projectId: dependencies.id,
198
- jobs: [
199
- {
200
- id: persisted.run.id,
201
- type: "projection.run.requested",
202
- payload: { runId: persisted.run.id },
203
- ...metadata === undefined ? {} : { metadata }
204
- }
205
- ]
206
- });
207
- return {
208
- projectionId: persisted.run.identity.projectionId,
209
- runId: persisted.run.id,
210
- queuedAt: persisted.queuedAt.toISOString(),
211
- ...job?.id ? { jobId: job.id } : {},
212
- created: persisted.created
213
- };
214
- } catch (error) {
215
- const failedAt = new Date;
216
- const failure = toEnqueueFailure(error, persisted.run, failedAt);
217
- const failed = await requireProjectionRunStorage(dependencies.storage).failEnqueue({
218
- projectId: dependencies.id,
219
- id: persisted.run.id,
220
- finishedAt: failedAt,
221
- error: failure
222
- });
223
- reportRunFailure2(dependencies, error, {
224
- projectId: dependencies.id,
225
- runKind: "projection",
226
- run: {
227
- runId: failed.id,
228
- projectionId: failed.identity.projectionId,
229
- projectionKind: failed.identity.projectionKind
230
- },
231
- failure
232
- });
233
- throw error;
191
+ const [job] = await dependencies.queues.projections.enqueue({
192
+ projectId: dependencies.id,
193
+ jobs: [
194
+ {
195
+ id: persisted.run.id,
196
+ type: "projection.run.requested",
197
+ payload: { runId: persisted.run.id },
198
+ ...metadata === undefined ? {} : { metadata }
199
+ }
200
+ ]
201
+ });
202
+ if (!job || job.id !== persisted.run.id) {
203
+ throw new ProjectionRunError2(`[Sixb] Queue did not acknowledge Projection run '${persisted.run.id}'.`);
234
204
  }
205
+ return {
206
+ projectionId: persisted.run.identity.projectionId,
207
+ runId: persisted.run.id,
208
+ queuedAt: persisted.queuedAt.toISOString(),
209
+ ...job?.id ? { jobId: job.id } : {},
210
+ created: persisted.created
211
+ };
235
212
  }
236
213
  async function assertExistingRun(storage, run, identity) {
237
214
  assertProjectionRunIdentityMatches2(run, identity);
@@ -399,18 +376,6 @@ function assertDispatchInput(input) {
399
376
  throw new ProjectionValidationError2("[Sixb] Projection dataset version timestamp is invalid.");
400
377
  }
401
378
  }
402
- function toEnqueueFailure(error, run, at) {
403
- const enqueueError = createSixbError2("queue.enqueue_failed", `[Sixb] Could not enqueue Projection run '${run.id}'.`, {
404
- cause: error,
405
- details: {
406
- projectionId: run.identity.projectionId,
407
- projectionKind: run.identity.projectionKind,
408
- runId: run.id,
409
- phase: "enqueue"
410
- }
411
- });
412
- return toSixbFailure2(enqueueError, { allowedCodes: PROJECTION_RUN_FAILURE_CODES2, at });
413
- }
414
379
  export { registerProjectionRegistry2, getProjectionRegistry2, getProjectionDispatchDescriptors2, shareProjectionRegistry2, createProjectionRunId2, PROJECTION_TELEMETRY_BATCH_SIZE2, ProjectionRunDispatcher2 };
415
380
 
416
- //# debugId=43DF77A719EA335B64756E2164756E21
381
+ //# debugId=62D632045115139564756E2164756E21
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/projections/capability.ts", "../src/projections/run-dispatch.ts", "../src/projections/run-id.ts"],
4
+ "sourcesContent": [
5
+ "import type { ProjectionRegistry } from \"./registry\"\nimport type { ProjectionDispatchDescriptor } from \"./types\"\n\nconst projectionRegistryKey: unique symbol = Symbol(\"sixb.projectionRegistry\")\n\ninterface ProjectionRegistryOwner {\n readonly [projectionRegistryKey]?: ProjectionRegistry\n}\n\nexport function registerProjectionRegistry(owner: object, registry: ProjectionRegistry): void {\n const registered = (owner as ProjectionRegistryOwner)[projectionRegistryKey]\n if (registered && registered !== registry) {\n throw new Error(\"[Sixb] Projection registry is already registered for this owner.\")\n }\n Object.defineProperty(owner, projectionRegistryKey, {\n configurable: false,\n enumerable: false,\n value: registry,\n writable: false,\n })\n}\n\nexport function getProjectionRegistry(owner: object): ProjectionRegistry {\n const registry = (owner as ProjectionRegistryOwner)[projectionRegistryKey]\n if (registry) return registry\n throw new Error(\"[Sixb] Projection registry is not registered for this runtime.\")\n}\n\nexport function getProjectionDispatchDescriptors(\n owner: object\n): readonly ProjectionDispatchDescriptor[] {\n return getProjectionRegistry(owner).getDispatchDescriptors()\n}\n\nexport function shareProjectionRegistry(source: object, target: object): void {\n registerProjectionRegistry(target, getProjectionRegistry(source))\n}\n",
6
+ "import { randomUUID } from \"node:crypto\"\nimport type { RunDispatcher } from \"../execution/dispatch\"\nimport { createPrimitiveExecutionRecord } from \"../execution/durable\"\nimport type { DatasetProducer, LakeStorage } from \"../lake-storage\"\nimport type { Queues } from \"../queues\"\nimport type { SixbDefinitions } from \"../runtime/definitions\"\nimport type { ExecutionRecord, ProjectionRunRecord, Storage } from \"../storage\"\nimport { ProjectionRunError } from \"../storage\"\nimport { findPrimitiveRunExecution } from \"../storage/executions/run-link\"\nimport {\n assertProjectionRunDurableExecution,\n assertProjectionRunIdentityMatches,\n} from \"../storage/projection-runs/provider\"\nimport { getProjectionRegistry } from \"./capability\"\nimport { ProjectionValidationError } from \"./errors\"\nimport { createProjectionRunId } from \"./run-id\"\nimport type { ProjectionDefinition } from \"./types\"\n\n/** Target maximum mapped points per telemetry commit; a single-property projection reads 500 rows. */\nexport const PROJECTION_TELEMETRY_BATCH_SIZE = 500\n\nexport interface ProjectionRunDispatchInput {\n readonly projectionId: string\n readonly datasetVersion: {\n readonly datasetId: string\n readonly versionId: string\n readonly createdAt: string\n }\n readonly metadata?: Readonly<Record<string, string>>\n}\n\nexport interface ProjectionRunDispatchResult {\n readonly projectionId: string\n readonly runId: string\n readonly queuedAt: string\n readonly jobId?: string\n readonly created: boolean\n}\n\nexport type ProjectionRunDispatchPort = RunDispatcher<\n ProjectionRunDispatchInput,\n ProjectionRunDispatchResult\n>\n\nexport interface ProjectionRunDispatcherDependencies {\n readonly id: string\n readonly definitions: Pick<SixbDefinitions, \"projections\">\n readonly lakeStorage: Pick<LakeStorage, \"getVersion\">\n readonly storage: Storage\n readonly queues: Pick<Queues, \"projections\">\n}\n\ntype PersistedProjectionRun =\n | { readonly publish: false; readonly run: ProjectionRunRecord }\n | {\n readonly publish: true\n readonly run: ProjectionRunRecord\n readonly queuedAt: Date\n readonly created: boolean\n }\n\n/** Core-owned durable dispatch boundary for immutable dataset-version materialization. */\nexport class ProjectionRunDispatcher implements ProjectionRunDispatchPort {\n constructor(private readonly dependencies: ProjectionRunDispatcherDependencies) {}\n\n async dispatch(input: ProjectionRunDispatchInput): Promise<ProjectionRunDispatchResult> {\n assertDispatchInput(input)\n const registry = getProjectionRegistry(this.dependencies)\n const descriptor = registry.resolveDispatch(input.projectionId)\n if (descriptor.datasetId !== input.datasetVersion.datasetId) {\n throw new ProjectionValidationError(\n `[Sixb] Projection '${input.projectionId}' consumes dataset '${descriptor.datasetId}', not '${input.datasetVersion.datasetId}'.`\n )\n }\n const projection = this.dependencies.definitions.projections.getById(input.projectionId)\n if (!projection) {\n throw new ProjectionValidationError(`[Sixb] Unknown projection '${input.projectionId}'.`)\n }\n const version = await this.dependencies.lakeStorage.getVersion(\n input.datasetVersion.datasetId,\n input.datasetVersion.versionId\n )\n if (!version || version.createdAt.toISOString() !== input.datasetVersion.createdAt) {\n throw new ProjectionValidationError(\n `[Sixb] Dataset '${input.datasetVersion.datasetId}' version '${input.datasetVersion.versionId}' does not match its immutable metadata.`\n )\n }\n if (version.mode === \"schema\") {\n throw new ProjectionValidationError(\n `[Sixb] Projection '${input.projectionId}' cannot materialize a schema-only dataset version.`\n )\n }\n\n const { datasetId: _datasetId, ...semanticIdentity } = descriptor\n const identity = {\n ...semanticIdentity,\n datasetVersion: structuredClone(input.datasetVersion),\n }\n const runId = createProjectionRunId(this.dependencies.id, identity)\n const projectionRuns = requireProjectionRunStorage(this.dependencies.storage)\n const existing = await projectionRuns.getById({ projectId: this.dependencies.id, id: runId })\n let persisted = existing\n ? await reuseProjectionRun(this.dependencies, existing, identity)\n : await persistProjectionRun({\n dependencies: this.dependencies,\n runId,\n identity,\n projection,\n producerExecution: await resolveProducerExecution(\n this.dependencies.storage,\n this.dependencies.id,\n version.producer\n ),\n })\n\n if (!persisted.publish && persisted.run.status === \"queued\") {\n persisted = await reuseProjectionRun(this.dependencies, persisted.run, identity)\n }\n if (!persisted.publish) return existingResult(persisted.run)\n return publishProjectionRun(this.dependencies, input.metadata, persisted)\n }\n}\n\nasync function persistProjectionRun(input: {\n readonly dependencies: ProjectionRunDispatcherDependencies\n readonly runId: string\n readonly identity: ProjectionRunRecord[\"identity\"]\n readonly projection: ProjectionDefinition\n readonly producerExecution: ExecutionRecord | null\n}): Promise<PersistedProjectionRun> {\n const execution = createPrimitiveExecutionRecord({\n id: `exec_${randomUUID()}`,\n primitive: { kind: \"projection\", id: input.identity.projectionId, runId: input.runId },\n origin: {\n type: \"automatic\",\n projectId: input.dependencies.id,\n source: {\n type: \"datasetVersion\",\n datasetId: input.identity.datasetVersion.datasetId,\n versionId: input.identity.datasetVersion.versionId,\n },\n correlationId: input.producerExecution?.correlationId ?? input.runId,\n requesterGroupIds: input.producerExecution?.requesterGroupIds,\n ...(input.producerExecution?.requestedBy === undefined\n ? {}\n : { requestedBy: input.producerExecution.requestedBy }),\n },\n })\n const queuedAt = new Date()\n\n try {\n return await input.dependencies.storage.transaction(\n async (tx): Promise<PersistedProjectionRun> => {\n const projectionRuns = requireProjectionRunStorage(tx)\n const raced = await projectionRuns.getById({\n projectId: input.dependencies.id,\n id: input.runId,\n })\n if (raced) {\n await assertExistingRun(tx, raced, input.identity)\n return { publish: false, run: raced }\n }\n await tx.executions.create(execution)\n const run = await queueProjectionRun(projectionRuns, {\n id: input.runId,\n projectId: input.dependencies.id,\n executionId: execution.id,\n identity: input.identity,\n projection: input.projection,\n queuedAt,\n })\n return { publish: true, run, queuedAt, created: true }\n },\n { isolation: \"serializable\" }\n )\n } catch (error) {\n if (!(error instanceof ProjectionRunError)) throw error\n const raced = await requireProjectionRunStorage(input.dependencies.storage).getById({\n projectId: input.dependencies.id,\n id: input.runId,\n })\n if (!raced) throw error\n await assertExistingRun(input.dependencies.storage, raced, input.identity)\n return { publish: false, run: raced }\n }\n}\n\nasync function reuseProjectionRun(\n dependencies: ProjectionRunDispatcherDependencies,\n existing: ProjectionRunRecord,\n identity: ProjectionRunRecord[\"identity\"]\n): Promise<PersistedProjectionRun> {\n await assertExistingRun(dependencies.storage, existing, identity)\n if (existing.status === \"queued\") {\n return { publish: true, run: existing, queuedAt: existing.queuedAt, created: false }\n }\n if (\n existing.status !== \"failed\" ||\n existing.error?.code !== \"queue.enqueue_failed\" ||\n !existing.error.retryable\n ) {\n return { publish: false, run: existing }\n }\n const queuedAt = new Date()\n const projectionRuns = requireProjectionRunStorage(dependencies.storage)\n try {\n const run = await requeueProjectionRun(projectionRuns, existing, queuedAt)\n return { publish: true, run, queuedAt, created: false }\n } catch (error) {\n if (!(error instanceof ProjectionRunError)) throw error\n const raced = await projectionRuns.getById({ projectId: existing.projectId, id: existing.id })\n if (\n !raced ||\n (raced.status === \"failed\" &&\n raced.error?.code === \"queue.enqueue_failed\" &&\n raced.error.retryable)\n ) {\n throw error\n }\n await assertExistingRun(dependencies.storage, raced, identity)\n return { publish: false, run: raced }\n }\n}\n\nasync function publishProjectionRun(\n dependencies: ProjectionRunDispatcherDependencies,\n metadata: Readonly<Record<string, string>> | undefined,\n persisted: Extract<PersistedProjectionRun, { readonly publish: true }>\n): Promise<ProjectionRunDispatchResult> {\n // Keep the run queued on uncertain publication; the caller retries the same identity.\n const [job] = await dependencies.queues.projections.enqueue({\n projectId: dependencies.id,\n jobs: [\n {\n id: persisted.run.id,\n type: \"projection.run.requested\",\n payload: { runId: persisted.run.id },\n ...(metadata === undefined ? {} : { metadata }),\n },\n ],\n })\n if (!job || job.id !== persisted.run.id) {\n throw new ProjectionRunError(\n `[Sixb] Queue did not acknowledge Projection run '${persisted.run.id}'.`\n )\n }\n return {\n projectionId: persisted.run.identity.projectionId,\n runId: persisted.run.id,\n queuedAt: persisted.queuedAt.toISOString(),\n ...(job?.id ? { jobId: job.id } : {}),\n created: persisted.created,\n }\n}\n\nasync function assertExistingRun(\n storage: Storage,\n run: ProjectionRunRecord,\n identity: ProjectionRunRecord[\"identity\"]\n): Promise<void> {\n assertProjectionRunIdentityMatches(run, identity)\n await assertProjectionRunDurableExecution({\n executions: storage.executions,\n projectId: run.projectId,\n executionId: run.executionId,\n runId: run.id,\n projectionId: run.identity.projectionId,\n datasetId: run.identity.datasetVersion.datasetId,\n datasetVersionId: run.identity.datasetVersion.versionId,\n })\n}\n\nasync function resolveProducerExecution(\n storage: Storage,\n projectId: string,\n producer: DatasetProducer | undefined\n): Promise<ExecutionRecord | null> {\n if (producer?.kind === \"ingest\") {\n return producer.id ? storage.executions.getById({ projectId, id: producer.id }) : null\n }\n if (!producer?.runId) return null\n if (producer.kind === \"sync\") {\n const run = await storage.syncRuns?.getById({ projectId, id: producer.runId })\n if (!run) return null\n assertProducerId(producer, run.syncId)\n return requireProducerExecution({\n executions: storage.executions,\n projectId,\n executionId: run.executionId,\n primitive: { kind: \"sync\", id: run.syncId, runId: run.id },\n })\n }\n\n const run = await storage.pipelineRuns?.getById({ projectId, id: producer.runId })\n if (!run) return null\n assertProducerId(producer, run.pipelineId)\n return requireProducerExecution({\n executions: storage.executions,\n projectId,\n executionId: run.executionId,\n primitive: { kind: \"pipeline\", id: run.pipelineId, runId: run.id },\n })\n}\n\nasync function requireProducerExecution(input: {\n readonly executions: Storage[\"executions\"]\n readonly projectId: string\n readonly executionId: string\n readonly primitive:\n | { readonly kind: \"sync\"; readonly id: string; readonly runId: string }\n | { readonly kind: \"pipeline\"; readonly id: string; readonly runId: string }\n}): Promise<ExecutionRecord> {\n const execution = await findPrimitiveRunExecution({\n executions: input.executions,\n projectId: input.projectId,\n executionId: input.executionId,\n primitive: input.primitive,\n sourceTypes: [\"execution\", \"schedule\", \"event\"],\n })\n if (execution) return execution\n throw new ProjectionValidationError(\n `[Sixb] Dataset producer run '${input.primitive.runId}' references an invalid execution.`\n )\n}\n\nfunction assertProducerId(producer: DatasetProducer, runOwnerId: string): void {\n if (producer.id === undefined || producer.id === runOwnerId) return\n throw new ProjectionValidationError(\n `[Sixb] Dataset producer '${producer.kind}:${producer.id}' does not match run '${producer.runId}'.`\n )\n}\n\nfunction requireProjectionRunStorage(storage: Storage): NonNullable<Storage[\"projectionRuns\"]> {\n if (storage.projectionRuns) return storage.projectionRuns\n throw new ProjectionValidationError(\"[Sixb] Projection run storage is not configured.\")\n}\n\nfunction queueProjectionRun(\n storage: NonNullable<Storage[\"projectionRuns\"]>,\n input: {\n readonly id: string\n readonly projectId: string\n readonly executionId: string\n readonly identity: ProjectionRunRecord[\"identity\"]\n readonly projection: ProjectionDefinition\n readonly queuedAt: Date\n }\n): Promise<ProjectionRunRecord> {\n const common = {\n id: input.id,\n projectId: input.projectId,\n executionId: input.executionId,\n queuedAt: input.queuedAt,\n }\n switch (input.projection._tag) {\n case \"ObjectProjectionDefinition\":\n if (input.identity.projectionKind !== \"object\") {\n throw invalidProjectionDefinition(input.id)\n }\n return storage.queue({\n ...common,\n identity: input.identity,\n target: { objectTypeId: input.projection.objectTypeId },\n })\n case \"LinkProjectionDefinition\":\n if (input.identity.projectionKind !== \"link\") {\n throw invalidProjectionDefinition(input.id)\n }\n return storage.queue({\n ...common,\n identity: input.identity,\n target: {\n sourceObjectTypeId: input.projection.sourceObjectTypeId,\n targetObjectTypeId: input.projection.targetObjectTypeId,\n },\n })\n case \"TelemetryProjectionDefinition\":\n if (input.identity.projectionKind !== \"telemetry\") {\n throw invalidProjectionDefinition(input.id)\n }\n return storage.queue({\n ...common,\n identity: input.identity,\n target: { objectTypeId: input.projection.objectTypeId },\n fixedBatchSize: telemetryProjectionBatchRowCount(input.projection),\n })\n }\n}\n\nfunction telemetryProjectionBatchRowCount(\n projection: Extract<ProjectionDefinition, { readonly _tag: \"TelemetryProjectionDefinition\" }>\n): number {\n const mappedPropertyCount = Object.keys(projection.properties).length\n if (mappedPropertyCount === 0) throw invalidProjectionDefinition(projection.id)\n return Math.max(1, Math.floor(PROJECTION_TELEMETRY_BATCH_SIZE / mappedPropertyCount))\n}\n\nfunction requeueProjectionRun(\n storage: NonNullable<Storage[\"projectionRuns\"]>,\n run: ProjectionRunRecord,\n queuedAt: Date\n): Promise<ProjectionRunRecord> {\n const common = {\n id: run.id,\n projectId: run.projectId,\n executionId: run.executionId,\n queuedAt,\n }\n switch (run.identity.projectionKind) {\n case \"object\": {\n if (!(\"objectTypeId\" in run.target)) throw invalidProjectionDefinition(run.id)\n return storage.queue({ ...common, identity: run.identity, target: run.target })\n }\n case \"link\": {\n if (!(\"sourceObjectTypeId\" in run.target)) throw invalidProjectionDefinition(run.id)\n return storage.queue({ ...common, identity: run.identity, target: run.target })\n }\n case \"telemetry\": {\n if (!(\"objectTypeId\" in run.target) || !run.telemetryCheckpoint) {\n throw invalidProjectionDefinition(run.id)\n }\n return storage.queue({\n ...common,\n identity: run.identity,\n target: run.target,\n fixedBatchSize: run.telemetryCheckpoint.fixedBatchSize,\n })\n }\n }\n}\n\nfunction invalidProjectionDefinition(runId: string): ProjectionValidationError {\n return new ProjectionValidationError(\n `[Sixb] Projection run '${runId}' has inconsistent definition metadata.`\n )\n}\n\nfunction existingResult(run: ProjectionRunRecord): ProjectionRunDispatchResult {\n return {\n projectionId: run.identity.projectionId,\n runId: run.id,\n queuedAt: run.queuedAt.toISOString(),\n created: false,\n }\n}\n\nfunction assertDispatchInput(input: ProjectionRunDispatchInput): void {\n for (const [field, value] of [\n [\"projectionId\", input.projectionId],\n [\"datasetId\", input.datasetVersion.datasetId],\n [\"versionId\", input.datasetVersion.versionId],\n ] as const) {\n if (!value.trim())\n throw new ProjectionValidationError(`[Sixb] Projection ${field} is required.`)\n }\n const timestamp = Date.parse(input.datasetVersion.createdAt)\n if (\n !Number.isFinite(timestamp) ||\n new Date(timestamp).toISOString() !== input.datasetVersion.createdAt\n ) {\n throw new ProjectionValidationError(\"[Sixb] Projection dataset version timestamp is invalid.\")\n }\n}\n",
7
+ "import { sha256Canonical } from \"../materialization/identity\"\nimport type { ProjectionMaterializationIdentity } from \"../materialization/model\"\n\nexport function createProjectionRunId(\n projectId: string,\n identity: ProjectionMaterializationIdentity\n): string {\n return sha256Canonical({\n projectId,\n projectionId: identity.projectionId,\n projectionKind: identity.projectionKind,\n protocol: identity.protocol,\n datasetId: identity.datasetVersion.datasetId,\n versionId: identity.datasetVersion.versionId,\n createdAt: identity.datasetVersion.createdAt,\n ontologyRevision: identity.ontologyRevision,\n projectionRevision: identity.projectionRevision,\n ownershipHash: identity.ownershipHash,\n })\n}\n"
8
+ ],
9
+ "mappings": "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",
10
+ "debugId": "62D632045115139564756E2164756E21",
11
+ "names": []
12
+ }
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-g53f0e4j.js";
24
24
  import {
25
25
  AiCostStorageError2
26
- } from "./chunk-mjbk2djy.js";
26
+ } from "./chunk-p6a4npdx.js";
27
27
  import {
28
28
  normalizeAiModelCallRecord2
29
29
  } from "./chunk-s3csryxe.js";