@sixb/core 0.1.15 → 0.1.17

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 (585) hide show
  1. package/dist/actions/index.js +25 -25
  2. package/dist/actions/types/context.d.ts +2 -2
  3. package/dist/actions/types/context.d.ts.map +1 -1
  4. package/dist/actions/worker.js +1 -1
  5. package/dist/agents/index.js +41 -40
  6. package/dist/agents/index.js.map +1 -1
  7. package/dist/auth/index.js +5 -5
  8. package/dist/authorization/index.js +2 -2
  9. package/dist/blob-storage/download-urls.d.ts +41 -0
  10. package/dist/blob-storage/download-urls.d.ts.map +1 -0
  11. package/dist/blob-storage/execution.d.ts +9 -1
  12. package/dist/blob-storage/execution.d.ts.map +1 -1
  13. package/dist/blob-storage/index.js +5 -3
  14. package/dist/blob-storage/index.js.map +1 -1
  15. package/dist/blob-storage/internal.d.ts +2 -0
  16. package/dist/blob-storage/internal.d.ts.map +1 -0
  17. package/dist/blob-storage/internal.js +11 -0
  18. package/dist/blob-storage/internal.js.map +9 -0
  19. package/dist/bootstrap/index.js +45 -44
  20. package/dist/bootstrap/index.js.map +1 -1
  21. package/dist/{chunk-wem5vqjw.js → chunk-10styjgk.js} +18 -13
  22. package/dist/{chunk-wem5vqjw.js.map → chunk-10styjgk.js.map} +3 -3
  23. package/dist/{chunk-hgqpcmyr.js → chunk-1hqwggsn.js} +47 -19
  24. package/dist/chunk-1hqwggsn.js.map +12 -0
  25. package/dist/{chunk-q3grgzp1.js → chunk-23xs4qp9.js} +2 -2
  26. package/dist/{chunk-vef6qa14.js → chunk-2am3db31.js} +2 -2
  27. package/dist/{chunk-fj1dvp37.js → chunk-2vhg6ysa.js} +1 -1
  28. package/dist/{chunk-p0nbkys4.js → chunk-33saed7g.js} +1 -1
  29. package/dist/{chunk-mdnw7nj8.js → chunk-3rrezgyc.js} +33 -8
  30. package/dist/chunk-3rrezgyc.js.map +15 -0
  31. package/dist/{chunk-jgwb25gc.js → chunk-4as3wt1c.js} +13 -5
  32. package/dist/chunk-4as3wt1c.js.map +12 -0
  33. package/dist/chunk-4ra628t7.js +88 -0
  34. package/dist/chunk-4ra628t7.js.map +10 -0
  35. package/dist/{chunk-mmac1mp6.js → chunk-52c5zb0z.js} +2 -2
  36. package/dist/{chunk-8fjmqjyx.js → chunk-5be2ath4.js} +1 -1
  37. package/dist/{chunk-2fv8sajb.js → chunk-5thzcb8g.js} +2 -2
  38. package/dist/{chunk-fjw417jf.js → chunk-5yd8cchh.js} +1143 -784
  39. package/dist/chunk-5yd8cchh.js.map +66 -0
  40. package/dist/{chunk-2tz5vnvz.js → chunk-6wbm6ymz.js} +235 -41
  41. package/dist/{chunk-2tz5vnvz.js.map → chunk-6wbm6ymz.js.map} +8 -6
  42. package/dist/{chunk-py2dw8cw.js → chunk-7ecp4v7a.js} +26 -19
  43. package/dist/chunk-7ecp4v7a.js.map +17 -0
  44. package/dist/{chunk-f85hpqnm.js → chunk-99nd4rc1.js} +3 -3
  45. package/dist/{chunk-f85hpqnm.js.map → chunk-99nd4rc1.js.map} +3 -3
  46. package/dist/{chunk-1jvq82rp.js → chunk-9g6jz9kk.js} +5 -5
  47. package/dist/{chunk-39tqv9hz.js → chunk-9se093qz.js} +5 -6
  48. package/dist/{chunk-39tqv9hz.js.map → chunk-9se093qz.js.map} +3 -4
  49. package/dist/{chunk-8w27xf9e.js → chunk-a7er86jd.js} +1 -1
  50. package/dist/{chunk-zdkcdshk.js → chunk-aq39q04r.js} +41 -3
  51. package/dist/{chunk-zdkcdshk.js.map → chunk-aq39q04r.js.map} +4 -3
  52. package/dist/chunk-b9affek3.js +261 -0
  53. package/dist/chunk-b9affek3.js.map +12 -0
  54. package/dist/{chunk-bxx3ms5t.js → chunk-c2rga5cx.js} +2 -2
  55. package/dist/{chunk-dsfw1bdr.js → chunk-cnb5kv05.js} +2 -2
  56. package/dist/chunk-d62kjtbg.js.map +2 -2
  57. package/dist/{chunk-dqkd3kdj.js → chunk-dam456ve.js} +234 -35
  58. package/dist/{chunk-dqkd3kdj.js.map → chunk-dam456ve.js.map} +7 -5
  59. package/dist/{chunk-n5t4mq6z.js → chunk-e67ynxcr.js} +3 -3
  60. package/dist/{chunk-xnx96gfy.js → chunk-ere85b8y.js} +17 -8
  61. package/dist/chunk-ere85b8y.js.map +15 -0
  62. package/dist/{chunk-k4kkp58d.js → chunk-ewqa58h9.js} +12 -2
  63. package/dist/chunk-ewqa58h9.js.map +11 -0
  64. package/dist/{chunk-6q7c68yx.js → chunk-f1xh7a32.js} +3 -3
  65. package/dist/{chunk-z708gemf.js → chunk-fggq3d9k.js} +450 -799
  66. package/dist/chunk-fggq3d9k.js.map +49 -0
  67. package/dist/{chunk-7jc21943.js → chunk-gf7yht60.js} +4 -4
  68. package/dist/chunk-h8teetr0.js +9 -0
  69. package/dist/chunk-h8teetr0.js.map +10 -0
  70. package/dist/chunk-hn2r7z41.js.map +1 -1
  71. package/dist/{chunk-ffwvdgk1.js → chunk-jjrn5v0p.js} +1 -1
  72. package/dist/{chunk-r5sc1d2b.js → chunk-jnfxmr3f.js} +1 -1
  73. package/dist/{chunk-y0zmae99.js → chunk-k4g51s47.js} +3 -3
  74. package/dist/{chunk-a0073121.js → chunk-kpx7jrmn.js} +3 -1
  75. package/dist/chunk-kpx7jrmn.js.map +12 -0
  76. package/dist/{chunk-p1683c0v.js → chunk-kyjcwqz6.js} +5 -2
  77. package/dist/{chunk-p1683c0v.js.map → chunk-kyjcwqz6.js.map} +3 -3
  78. package/dist/{chunk-3c90jvfj.js → chunk-pja9jfz6.js} +742 -583
  79. package/dist/chunk-pja9jfz6.js.map +19 -0
  80. package/dist/chunk-pqajwytd.js.map +1 -1
  81. package/dist/{chunk-mr60an99.js → chunk-qczk96d9.js} +22 -2
  82. package/dist/{chunk-mr60an99.js.map → chunk-qczk96d9.js.map} +3 -3
  83. package/dist/{chunk-s3csryxe.js → chunk-rj69qcrd.js} +8 -2
  84. package/dist/chunk-rj69qcrd.js.map +11 -0
  85. package/dist/{chunk-d8yes9yx.js → chunk-rpxz486p.js} +32 -5
  86. package/dist/{chunk-d8yes9yx.js.map → chunk-rpxz486p.js.map} +4 -4
  87. package/dist/{chunk-drz59ve0.js → chunk-rx7h5fdx.js} +1 -1
  88. package/dist/{chunk-ky7zpbtt.js → chunk-s7ftxrdr.js} +106 -8
  89. package/dist/chunk-s7ftxrdr.js.map +22 -0
  90. package/dist/{chunk-yfppyaty.js → chunk-sk0hcjsz.js} +1 -1
  91. package/dist/{chunk-qne45xqq.js → chunk-svabwqdq.js} +2 -2
  92. package/dist/{chunk-xr7y35yj.js → chunk-t9shqx3w.js} +2 -2
  93. package/dist/{chunk-4jph1t3v.js → chunk-tjjgy3z4.js} +27 -24
  94. package/dist/{chunk-4jph1t3v.js.map → chunk-tjjgy3z4.js.map} +4 -4
  95. package/dist/{chunk-ex8s8wsk.js → chunk-vp3z1ckh.js} +42 -10
  96. package/dist/{chunk-ex8s8wsk.js.map → chunk-vp3z1ckh.js.map} +7 -6
  97. package/dist/{chunk-adbve9zt.js → chunk-vre348sb.js} +2 -2
  98. package/dist/{chunk-a4g5yjm0.js → chunk-w9yycd3t.js} +1 -1
  99. package/dist/{chunk-g4rbm4a6.js → chunk-wt4szfec.js} +379 -331
  100. package/dist/chunk-wt4szfec.js.map +14 -0
  101. package/dist/{chunk-wd34wnsy.js → chunk-xcy5ddha.js} +6 -6
  102. package/dist/{chunk-3nx8vj5a.js → chunk-xyvy73tj.js} +5 -3
  103. package/dist/chunk-xyvy73tj.js.map +12 -0
  104. package/dist/datasets/write.js +1 -1
  105. package/dist/execution/agent.js +38 -37
  106. package/dist/execution/agent.js.map +1 -1
  107. package/dist/execution/authorized-object-reader.d.ts +3 -1
  108. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  109. package/dist/execution/primitive.js +36 -35
  110. package/dist/execution/primitive.js.map +2 -2
  111. package/dist/execution/request.js +37 -36
  112. package/dist/execution/request.js.map +2 -2
  113. package/dist/index.d.ts +8 -4
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +62 -59
  116. package/dist/index.js.map +1 -1
  117. package/dist/lake-storage/in-memory.d.ts +5 -1
  118. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  119. package/dist/lake-storage/index.d.ts +1 -1
  120. package/dist/lake-storage/index.d.ts.map +1 -1
  121. package/dist/lake-storage/index.js +2 -2
  122. package/dist/lake-storage/types.d.ts +26 -0
  123. package/dist/lake-storage/types.d.ts.map +1 -1
  124. package/dist/maintenance/ontology-maintenance.d.ts +5 -1
  125. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  126. package/dist/maintenance/types.d.ts +1 -4
  127. package/dist/maintenance/types.d.ts.map +1 -1
  128. package/dist/materialization/event-envelopes.d.ts +20 -0
  129. package/dist/materialization/event-envelopes.d.ts.map +1 -0
  130. package/dist/materialization/events.d.ts +29 -3
  131. package/dist/materialization/events.d.ts.map +1 -1
  132. package/dist/materialization/index.d.ts +4 -1
  133. package/dist/materialization/index.d.ts.map +1 -1
  134. package/dist/materialization/index.js +9 -3
  135. package/dist/materialization/index.js.map +1 -1
  136. package/dist/materializer/edits/plan.d.ts +2 -10
  137. package/dist/materializer/edits/plan.d.ts.map +1 -1
  138. package/dist/materializer/effective/build-events.d.ts +5 -21
  139. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  140. package/dist/materializer/effective/vector-indexing.d.ts +2 -3
  141. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -1
  142. package/dist/materializer/effective/vectors.d.ts +2 -3
  143. package/dist/materializer/effective/vectors.d.ts.map +1 -1
  144. package/dist/materializer/execution/scope.d.ts +1 -11
  145. package/dist/materializer/execution/scope.d.ts.map +1 -1
  146. package/dist/materializer/execution/work-executor.d.ts +5 -7
  147. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  148. package/dist/materializer/execution/work-records.d.ts +1 -3
  149. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  150. package/dist/materializer/index.js +31 -32
  151. package/dist/materializer/index.js.map +1 -1
  152. package/dist/materializer/projections/replace.d.ts.map +1 -1
  153. package/dist/materializer/projections/replacement-plan.d.ts +8 -11
  154. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  155. package/dist/materializer/shared/batching.d.ts +5 -0
  156. package/dist/materializer/shared/batching.d.ts.map +1 -1
  157. package/dist/materializer/telemetry/plan.d.ts +2 -8
  158. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  159. package/dist/models/audio/catalog.d.ts +20 -0
  160. package/dist/models/audio/catalog.d.ts.map +1 -0
  161. package/dist/models/audio/errors.d.ts +8 -0
  162. package/dist/models/audio/errors.d.ts.map +1 -0
  163. package/dist/models/audio/file.d.ts +9 -0
  164. package/dist/models/audio/file.d.ts.map +1 -0
  165. package/dist/models/audio/runtime.d.ts +8 -0
  166. package/dist/models/audio/runtime.d.ts.map +1 -0
  167. package/dist/models/audio/types.d.ts +60 -0
  168. package/dist/models/audio/types.d.ts.map +1 -0
  169. package/dist/models/catalog.d.ts +23 -1
  170. package/dist/models/catalog.d.ts.map +1 -1
  171. package/dist/models/definitions.d.ts +1 -1
  172. package/dist/models/definitions.d.ts.map +1 -1
  173. package/dist/models/embedding-model.d.ts +4 -0
  174. package/dist/models/embedding-model.d.ts.map +1 -1
  175. package/dist/models/events.d.ts +3 -0
  176. package/dist/models/events.d.ts.map +1 -1
  177. package/dist/models/execution/index.js +22 -22
  178. package/dist/models/execution/model-call-admission.d.ts +6 -1
  179. package/dist/models/execution/model-call-admission.d.ts.map +1 -1
  180. package/dist/models/execution/model-call-limits.d.ts.map +1 -1
  181. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  182. package/dist/models/execution/reranking.d.ts +4 -0
  183. package/dist/models/execution/reranking.d.ts.map +1 -0
  184. package/dist/models/execution/usage.d.ts.map +1 -1
  185. package/dist/models/execution.d.ts +2 -1
  186. package/dist/models/execution.d.ts.map +1 -1
  187. package/dist/models/generation-types.d.ts +2 -0
  188. package/dist/models/generation-types.d.ts.map +1 -1
  189. package/dist/models/index.d.ts +7 -1
  190. package/dist/models/index.d.ts.map +1 -1
  191. package/dist/models/index.js +7 -3
  192. package/dist/models/index.js.map +1 -1
  193. package/dist/models/pricing.d.ts +2 -2
  194. package/dist/models/pricing.d.ts.map +1 -1
  195. package/dist/models/reranking-model.d.ts +49 -0
  196. package/dist/models/reranking-model.d.ts.map +1 -0
  197. package/dist/objects/index.js +25 -25
  198. package/dist/objects/query/executor.d.ts +2 -1
  199. package/dist/objects/query/executor.d.ts.map +1 -1
  200. package/dist/objects/query/index.d.ts +1 -1
  201. package/dist/objects/query/index.d.ts.map +1 -1
  202. package/dist/objects/query/index.js +24 -24
  203. package/dist/objects/query/index.js.map +1 -1
  204. package/dist/objects/query/ir.d.ts +8 -1
  205. package/dist/objects/query/ir.d.ts.map +1 -1
  206. package/dist/objects/query/normalize.d.ts.map +1 -1
  207. package/dist/objects/query/planner.d.ts +1 -1
  208. package/dist/objects/query/planner.d.ts.map +1 -1
  209. package/dist/objects/query/primary-id.d.ts +7 -0
  210. package/dist/objects/query/primary-id.d.ts.map +1 -0
  211. package/dist/objects/query/reranking-executor.d.ts +13 -0
  212. package/dist/objects/query/reranking-executor.d.ts.map +1 -0
  213. package/dist/objects/query/reranking-limits.d.ts +3 -0
  214. package/dist/objects/query/reranking-limits.d.ts.map +1 -0
  215. package/dist/objects/query/reranking-query.d.ts +4 -0
  216. package/dist/objects/query/reranking-query.d.ts.map +1 -0
  217. package/dist/objects/query/validate.d.ts.map +1 -1
  218. package/dist/objects/sdk/query-builder.d.ts +8 -0
  219. package/dist/objects/sdk/query-builder.d.ts.map +1 -1
  220. package/dist/objects/sdk/query-executor.d.ts +2 -2
  221. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  222. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  223. package/dist/objects/vectors/indexing-dispatch.d.ts +21 -0
  224. package/dist/objects/vectors/indexing-dispatch.d.ts.map +1 -0
  225. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -1
  226. package/dist/objects/vectors/profile.d.ts.map +1 -1
  227. package/dist/objects/vectors/query.d.ts +1 -1
  228. package/dist/objects/vectors/query.d.ts.map +1 -1
  229. package/dist/objects/vectors/resolve-query.d.ts.map +1 -1
  230. package/dist/objects/vectors/types.d.ts +1 -1
  231. package/dist/objects/vectors/types.d.ts.map +1 -1
  232. package/dist/ontology/builders.d.ts +13 -4
  233. package/dist/ontology/builders.d.ts.map +1 -1
  234. package/dist/ontology/index.d.ts +1 -1
  235. package/dist/ontology/index.d.ts.map +1 -1
  236. package/dist/ontology/index.js +3 -3
  237. package/dist/ontology/internal.js +2 -2
  238. package/dist/ontology/query-capabilities.d.ts +1 -0
  239. package/dist/ontology/query-capabilities.d.ts.map +1 -1
  240. package/dist/ontology/types.d.ts +20 -0
  241. package/dist/ontology/types.d.ts.map +1 -1
  242. package/dist/ontology/validation/query.d.ts.map +1 -1
  243. package/dist/ontology/vector-profiles.d.ts.map +1 -1
  244. package/dist/pipelines/index.js +23 -23
  245. package/dist/projections/internal.js +22 -22
  246. package/dist/query.d.ts +4 -2
  247. package/dist/query.d.ts.map +1 -1
  248. package/dist/query.js +2 -2
  249. package/dist/queues/in-memory.d.ts +3 -0
  250. package/dist/queues/in-memory.d.ts.map +1 -1
  251. package/dist/queues/index.js +1 -1
  252. package/dist/queues/types.d.ts +4 -0
  253. package/dist/queues/types.d.ts.map +1 -1
  254. package/dist/runtime/host.d.ts +1 -0
  255. package/dist/runtime/host.d.ts.map +1 -1
  256. package/dist/runtime/index.d.ts +1 -1
  257. package/dist/runtime/index.d.ts.map +1 -1
  258. package/dist/runtime/internal.d.ts +1 -0
  259. package/dist/runtime/internal.d.ts.map +1 -1
  260. package/dist/runtime/internal.js +28 -26
  261. package/dist/runtime/internal.js.map +1 -1
  262. package/dist/runtime/public-origin.d.ts +10 -0
  263. package/dist/runtime/public-origin.d.ts.map +1 -0
  264. package/dist/runtime/sixb.d.ts +1 -0
  265. package/dist/runtime/sixb.d.ts.map +1 -1
  266. package/dist/runtime/types.d.ts +12 -2
  267. package/dist/runtime/types.d.ts.map +1 -1
  268. package/dist/sandboxes/index.js +5 -5
  269. package/dist/shares/internal.js +19 -19
  270. package/dist/storage/agents/provider.js +2 -2
  271. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  272. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  273. package/dist/storage/ai-cost/provider.js +3 -3
  274. package/dist/storage/ai-cost/types.d.ts +1 -1
  275. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  276. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  277. package/dist/storage/ai-limits/enforcement.js +2 -2
  278. package/dist/storage/ai-limits/in-memory.d.ts.map +1 -1
  279. package/dist/storage/ai-limits/provider.d.ts +7 -2
  280. package/dist/storage/ai-limits/provider.d.ts.map +1 -1
  281. package/dist/storage/ai-limits/provider.js +4 -2
  282. package/dist/storage/ai-limits/provider.js.map +1 -1
  283. package/dist/storage/ai-limits/types.d.ts +3 -0
  284. package/dist/storage/ai-limits/types.d.ts.map +1 -1
  285. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  286. package/dist/storage/ai-usage/types.d.ts +8 -4
  287. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  288. package/dist/storage/ai-usage/usage.d.ts.map +1 -1
  289. package/dist/storage/file-download-grants/in-memory.d.ts +11 -0
  290. package/dist/storage/file-download-grants/in-memory.d.ts.map +1 -0
  291. package/dist/storage/file-download-grants/index.d.ts +3 -0
  292. package/dist/storage/file-download-grants/index.d.ts.map +1 -0
  293. package/dist/storage/file-download-grants/record.d.ts +11 -0
  294. package/dist/storage/file-download-grants/record.d.ts.map +1 -0
  295. package/dist/storage/file-download-grants/types.d.ts +44 -0
  296. package/dist/storage/file-download-grants/types.d.ts.map +1 -0
  297. package/dist/storage/file-upload-sessions/provider.js +6 -6
  298. package/dist/storage/in-memory/index.d.ts +4 -0
  299. package/dist/storage/in-memory/index.d.ts.map +1 -1
  300. package/dist/storage/index.d.ts +5 -3
  301. package/dist/storage/index.d.ts.map +1 -1
  302. package/dist/storage/index.js +30 -30
  303. package/dist/storage/index.js.map +1 -1
  304. package/dist/storage/internal.d.ts +1 -0
  305. package/dist/storage/internal.d.ts.map +1 -1
  306. package/dist/storage/internal.js +8 -4
  307. package/dist/storage/internal.js.map +1 -1
  308. package/dist/storage/migrations/index.d.ts +1 -1
  309. package/dist/storage/migrations/index.d.ts.map +1 -1
  310. package/dist/storage/migrations/migrate-storage.d.ts +3 -3
  311. package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
  312. package/dist/storage/migrations/types.d.ts +7 -0
  313. package/dist/storage/migrations/types.d.ts.map +1 -1
  314. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  315. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  316. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  317. package/dist/storage/objects/query-preparation.d.ts +39 -0
  318. package/dist/storage/objects/query-preparation.d.ts.map +1 -0
  319. package/dist/storage/objects/types.d.ts +2 -0
  320. package/dist/storage/objects/types.d.ts.map +1 -1
  321. package/dist/storage/ontology/commits.d.ts +1 -6
  322. package/dist/storage/ontology/commits.d.ts.map +1 -1
  323. package/dist/storage/ontology/in-memory/index.d.ts +4 -2
  324. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  325. package/dist/storage/ontology/in-memory/materializations-state.d.ts +0 -2
  326. package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
  327. package/dist/storage/ontology/in-memory/materializations-work.d.ts +1 -3
  328. package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
  329. package/dist/storage/ontology/in-memory/materializations.d.ts +23 -57
  330. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  331. package/dist/storage/ontology/in-memory/outbox.d.ts +3 -2
  332. package/dist/storage/ontology/in-memory/outbox.d.ts.map +1 -1
  333. package/dist/storage/ontology/in-memory/replacement-plans.d.ts +104 -0
  334. package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -0
  335. package/dist/storage/ontology/in-memory/shared-state.d.ts +17 -2
  336. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  337. package/dist/storage/ontology/in-memory/source-roots.d.ts +3 -1
  338. package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -1
  339. package/dist/storage/ontology/in-memory/sources.d.ts +1 -2
  340. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  341. package/dist/storage/ontology/in-memory/state-reader.d.ts +25 -0
  342. package/dist/storage/ontology/in-memory/state-reader.d.ts.map +1 -0
  343. package/dist/storage/ontology/index.d.ts +6 -3
  344. package/dist/storage/ontology/index.d.ts.map +1 -1
  345. package/dist/storage/ontology/materializations.d.ts +40 -59
  346. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  347. package/dist/storage/ontology/outbox.d.ts +4 -6
  348. package/dist/storage/ontology/outbox.d.ts.map +1 -1
  349. package/dist/storage/ontology/provider-work.d.ts +114 -3
  350. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  351. package/dist/storage/ontology/provider.d.ts +14 -39
  352. package/dist/storage/ontology/provider.d.ts.map +1 -1
  353. package/dist/storage/ontology/provider.js +26 -12
  354. package/dist/storage/ontology/provider.js.map +1 -1
  355. package/dist/storage/ontology/replacement-plans.d.ts +103 -0
  356. package/dist/storage/ontology/replacement-plans.d.ts.map +1 -0
  357. package/dist/storage/ontology/sources.d.ts +0 -8
  358. package/dist/storage/ontology/sources.d.ts.map +1 -1
  359. package/dist/storage/operation-scope.d.ts.map +1 -1
  360. package/dist/storage/operation-scope.js +1 -1
  361. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  362. package/dist/storage/projection-runs/types.d.ts +2 -0
  363. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  364. package/dist/storage/types.d.ts +2 -0
  365. package/dist/storage/types.d.ts.map +1 -1
  366. package/dist/storage/workflow-runs/provider.js +6 -6
  367. package/dist/syncs/index.js +24 -24
  368. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  369. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
  370. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  371. package/dist/testing/file-download-grant-storage-contract.d.ts +9 -0
  372. package/dist/testing/file-download-grant-storage-contract.d.ts.map +1 -0
  373. package/dist/testing/index.d.ts +1 -0
  374. package/dist/testing/index.d.ts.map +1 -1
  375. package/dist/testing/index.js +2548 -1489
  376. package/dist/testing/index.js.map +14 -13
  377. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  378. package/dist/testing/materializer-storage-contract.d.ts +14 -0
  379. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  380. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  381. package/dist/testing/ontology-contract-fixture.d.ts +5 -1
  382. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  383. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  384. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  385. package/dist/testing/queues-contract.d.ts.map +1 -1
  386. package/dist/webhooks/internal.js +20 -20
  387. package/dist/workers/index.js +15 -17
  388. package/dist/workers/index.js.map +3 -3
  389. package/dist/workers/queue-worker.d.ts +3 -2
  390. package/dist/workers/queue-worker.d.ts.map +1 -1
  391. package/dist/workflows/index.js +42 -41
  392. package/dist/workflows/index.js.map +1 -1
  393. package/package.json +7 -1
  394. package/src/actions/types/context.ts +5 -2
  395. package/src/blob-storage/download-urls.ts +138 -0
  396. package/src/blob-storage/execution.ts +32 -1
  397. package/src/blob-storage/internal.ts +1 -0
  398. package/src/execution/authorized-object-reader.ts +8 -1
  399. package/src/index.ts +25 -0
  400. package/src/lake-storage/in-memory.ts +38 -9
  401. package/src/lake-storage/index.ts +2 -0
  402. package/src/lake-storage/types.ts +30 -0
  403. package/src/maintenance/ontology-maintenance.ts +50 -23
  404. package/src/maintenance/types.ts +1 -4
  405. package/src/materialization/event-envelopes.ts +168 -0
  406. package/src/materialization/events.ts +40 -4
  407. package/src/materialization/index.ts +9 -1
  408. package/src/materializer/README.md +55 -10
  409. package/src/materializer/edits/commit.ts +3 -19
  410. package/src/materializer/edits/plan.ts +20 -71
  411. package/src/materializer/effective/build-events.ts +42 -136
  412. package/src/materializer/effective/vector-indexing.ts +2 -3
  413. package/src/materializer/effective/vectors.ts +2 -3
  414. package/src/materializer/execution/scope.ts +1 -38
  415. package/src/materializer/execution/work-executor.ts +21 -115
  416. package/src/materializer/execution/work-records.ts +0 -15
  417. package/src/materializer/projections/replace.ts +106 -63
  418. package/src/materializer/projections/replacement-plan.ts +73 -218
  419. package/src/materializer/shared/batching.ts +7 -0
  420. package/src/materializer/telemetry/append.ts +2 -14
  421. package/src/materializer/telemetry/plan.ts +6 -43
  422. package/src/models/audio/catalog.ts +90 -0
  423. package/src/models/audio/errors.ts +19 -0
  424. package/src/models/audio/file.ts +78 -0
  425. package/src/models/audio/runtime.ts +182 -0
  426. package/src/models/audio/types.ts +69 -0
  427. package/src/models/catalog.ts +52 -5
  428. package/src/models/definitions.ts +8 -1
  429. package/src/models/embedding-model.ts +12 -0
  430. package/src/models/events.ts +3 -0
  431. package/src/models/execution/README.md +20 -1
  432. package/src/models/execution/embedding.ts +5 -1
  433. package/src/models/execution/model-call-admission.ts +6 -1
  434. package/src/models/execution/model-call-limits.ts +21 -11
  435. package/src/models/execution/model-call-recorder.ts +1 -0
  436. package/src/models/execution/model-call-recovery.ts +1 -0
  437. package/src/models/execution/reranking.ts +137 -0
  438. package/src/models/execution/usage.ts +1 -0
  439. package/src/models/execution.ts +5 -1
  440. package/src/models/generation-types.ts +2 -0
  441. package/src/models/index.ts +32 -0
  442. package/src/models/pricing.ts +2 -1
  443. package/src/models/reranking-model.ts +114 -0
  444. package/src/objects/query/executor.ts +42 -2
  445. package/src/objects/query/explain.ts +8 -0
  446. package/src/objects/query/index.ts +1 -0
  447. package/src/objects/query/ir.ts +10 -0
  448. package/src/objects/query/normalize.ts +2 -0
  449. package/src/objects/query/planner.ts +12 -1
  450. package/src/objects/query/primary-id.ts +56 -0
  451. package/src/objects/query/reranking-executor.ts +91 -0
  452. package/src/objects/query/reranking-limits.ts +3 -0
  453. package/src/objects/query/reranking-query.ts +8 -0
  454. package/src/objects/query/validate.ts +33 -10
  455. package/src/objects/sdk/query-builder.ts +15 -2
  456. package/src/objects/sdk/query-executor.ts +2 -2
  457. package/src/objects/sdk/runtime-query-executor.ts +7 -4
  458. package/src/objects/vectors/README.md +14 -2
  459. package/src/objects/vectors/handle.ts +1 -1
  460. package/src/objects/vectors/indexing-dispatch.ts +83 -0
  461. package/src/objects/vectors/indexing-generate.ts +5 -1
  462. package/src/objects/vectors/profile.ts +2 -0
  463. package/src/objects/vectors/query.ts +21 -4
  464. package/src/objects/vectors/resolve-query.ts +9 -5
  465. package/src/objects/vectors/types.ts +3 -1
  466. package/src/ontology/builders.ts +22 -7
  467. package/src/ontology/index.ts +2 -0
  468. package/src/ontology/query-capabilities.ts +1 -1
  469. package/src/ontology/types.ts +21 -0
  470. package/src/ontology/validation/query.ts +57 -0
  471. package/src/ontology/vector-profiles.ts +1 -0
  472. package/src/query.ts +4 -0
  473. package/src/queues/in-memory.ts +54 -19
  474. package/src/queues/types.ts +4 -0
  475. package/src/runtime/host.ts +28 -1
  476. package/src/runtime/index.ts +1 -0
  477. package/src/runtime/internal.ts +1 -0
  478. package/src/runtime/public-origin.ts +33 -0
  479. package/src/runtime/sixb.ts +13 -2
  480. package/src/runtime/types.ts +12 -2
  481. package/src/storage/ai-cost/analytics.ts +2 -0
  482. package/src/storage/ai-cost/codec.ts +2 -1
  483. package/src/storage/ai-cost/types.ts +1 -0
  484. package/src/storage/ai-cost/validation.ts +21 -8
  485. package/src/storage/ai-limits/in-memory.ts +10 -2
  486. package/src/storage/ai-limits/provider.ts +29 -2
  487. package/src/storage/ai-limits/types.ts +3 -0
  488. package/src/storage/ai-usage/record.ts +9 -0
  489. package/src/storage/ai-usage/types.ts +8 -4
  490. package/src/storage/ai-usage/usage.ts +2 -0
  491. package/src/storage/file-download-grants/in-memory.ts +73 -0
  492. package/src/storage/file-download-grants/index.ts +8 -0
  493. package/src/storage/file-download-grants/record.ts +47 -0
  494. package/src/storage/file-download-grants/types.ts +48 -0
  495. package/src/storage/in-memory/index.ts +13 -2
  496. package/src/storage/index.ts +31 -13
  497. package/src/storage/internal.ts +1 -0
  498. package/src/storage/migrations/index.ts +1 -0
  499. package/src/storage/migrations/migrate-storage.ts +36 -12
  500. package/src/storage/migrations/types.ts +8 -0
  501. package/src/storage/objects/in-memory/query.ts +2 -0
  502. package/src/storage/objects/in-memory/selected-reader.ts +1 -0
  503. package/src/storage/objects/in-memory/storage.ts +1 -0
  504. package/src/storage/objects/query-preparation.ts +77 -0
  505. package/src/storage/objects/types.ts +2 -0
  506. package/src/storage/ontology/commits.ts +1 -6
  507. package/src/storage/ontology/in-memory/index.ts +28 -9
  508. package/src/storage/ontology/in-memory/materializations-finalization.ts +35 -68
  509. package/src/storage/ontology/in-memory/materializations-state.ts +0 -22
  510. package/src/storage/ontology/in-memory/materializations-work.ts +0 -45
  511. package/src/storage/ontology/in-memory/materializations.ts +172 -653
  512. package/src/storage/ontology/in-memory/outbox.ts +37 -29
  513. package/src/storage/ontology/in-memory/replacement-plans.ts +697 -0
  514. package/src/storage/ontology/in-memory/shared-state.ts +24 -2
  515. package/src/storage/ontology/in-memory/source-roots.ts +7 -2
  516. package/src/storage/ontology/in-memory/sources.ts +7 -33
  517. package/src/storage/ontology/in-memory/state-reader.ts +245 -0
  518. package/src/storage/ontology/index.ts +19 -13
  519. package/src/storage/ontology/materializations.ts +45 -74
  520. package/src/storage/ontology/outbox.ts +4 -7
  521. package/src/storage/ontology/provider-header-validation.ts +0 -57
  522. package/src/storage/ontology/provider-work.ts +381 -90
  523. package/src/storage/ontology/provider.ts +74 -171
  524. package/src/storage/ontology/replacement-plans.ts +117 -0
  525. package/src/storage/ontology/sources.ts +0 -12
  526. package/src/storage/operation-scope.ts +33 -1
  527. package/src/storage/projection-runs/in-memory.ts +7 -1
  528. package/src/storage/projection-runs/types.ts +2 -0
  529. package/src/storage/types.ts +2 -0
  530. package/src/testing/ai-cost-storage-contract.ts +1 -0
  531. package/src/testing/ai-limit-storage-contract.ts +62 -0
  532. package/src/testing/ai-usage-storage-contract.ts +31 -0
  533. package/src/testing/file-download-grant-storage-contract.ts +139 -0
  534. package/src/testing/index.ts +4 -0
  535. package/src/testing/lake-storage-contract.ts +87 -1
  536. package/src/testing/materializer-storage-contract.ts +1008 -1
  537. package/src/testing/object-read-scope-contract.ts +1 -0
  538. package/src/testing/ontology-contract-fixture.ts +11 -87
  539. package/src/testing/ontology-storage-contract.ts +70 -39
  540. package/src/testing/projection-run-storage-contract.ts +14 -0
  541. package/src/testing/queues-contract.ts +59 -0
  542. package/src/workers/queue-worker.ts +19 -16
  543. package/dist/chunk-3c90jvfj.js.map +0 -15
  544. package/dist/chunk-3nx8vj5a.js.map +0 -12
  545. package/dist/chunk-7ytf06d3.js +0 -113
  546. package/dist/chunk-7ytf06d3.js.map +0 -10
  547. package/dist/chunk-a0073121.js.map +0 -12
  548. package/dist/chunk-fjw417jf.js.map +0 -62
  549. package/dist/chunk-g4rbm4a6.js.map +0 -15
  550. package/dist/chunk-hgqpcmyr.js.map +0 -12
  551. package/dist/chunk-jgwb25gc.js.map +0 -12
  552. package/dist/chunk-k4kkp58d.js.map +0 -11
  553. package/dist/chunk-ky7zpbtt.js.map +0 -19
  554. package/dist/chunk-mdnw7nj8.js.map +0 -15
  555. package/dist/chunk-py2dw8cw.js.map +0 -17
  556. package/dist/chunk-s3csryxe.js.map +0 -11
  557. package/dist/chunk-xnx96gfy.js.map +0 -15
  558. package/dist/chunk-z708gemf.js.map +0 -50
  559. package/dist/materializer/execution/plan-stream.d.ts +0 -8
  560. package/dist/materializer/execution/plan-stream.d.ts.map +0 -1
  561. package/src/materializer/execution/plan-stream.ts +0 -121
  562. /package/dist/{chunk-q3grgzp1.js.map → chunk-23xs4qp9.js.map} +0 -0
  563. /package/dist/{chunk-vef6qa14.js.map → chunk-2am3db31.js.map} +0 -0
  564. /package/dist/{chunk-fj1dvp37.js.map → chunk-2vhg6ysa.js.map} +0 -0
  565. /package/dist/{chunk-p0nbkys4.js.map → chunk-33saed7g.js.map} +0 -0
  566. /package/dist/{chunk-mmac1mp6.js.map → chunk-52c5zb0z.js.map} +0 -0
  567. /package/dist/{chunk-8fjmqjyx.js.map → chunk-5be2ath4.js.map} +0 -0
  568. /package/dist/{chunk-2fv8sajb.js.map → chunk-5thzcb8g.js.map} +0 -0
  569. /package/dist/{chunk-1jvq82rp.js.map → chunk-9g6jz9kk.js.map} +0 -0
  570. /package/dist/{chunk-8w27xf9e.js.map → chunk-a7er86jd.js.map} +0 -0
  571. /package/dist/{chunk-bxx3ms5t.js.map → chunk-c2rga5cx.js.map} +0 -0
  572. /package/dist/{chunk-dsfw1bdr.js.map → chunk-cnb5kv05.js.map} +0 -0
  573. /package/dist/{chunk-n5t4mq6z.js.map → chunk-e67ynxcr.js.map} +0 -0
  574. /package/dist/{chunk-6q7c68yx.js.map → chunk-f1xh7a32.js.map} +0 -0
  575. /package/dist/{chunk-7jc21943.js.map → chunk-gf7yht60.js.map} +0 -0
  576. /package/dist/{chunk-ffwvdgk1.js.map → chunk-jjrn5v0p.js.map} +0 -0
  577. /package/dist/{chunk-r5sc1d2b.js.map → chunk-jnfxmr3f.js.map} +0 -0
  578. /package/dist/{chunk-y0zmae99.js.map → chunk-k4g51s47.js.map} +0 -0
  579. /package/dist/{chunk-drz59ve0.js.map → chunk-rx7h5fdx.js.map} +0 -0
  580. /package/dist/{chunk-yfppyaty.js.map → chunk-sk0hcjsz.js.map} +0 -0
  581. /package/dist/{chunk-qne45xqq.js.map → chunk-svabwqdq.js.map} +0 -0
  582. /package/dist/{chunk-xr7y35yj.js.map → chunk-t9shqx3w.js.map} +0 -0
  583. /package/dist/{chunk-adbve9zt.js.map → chunk-vre348sb.js.map} +0 -0
  584. /package/dist/{chunk-a4g5yjm0.js.map → chunk-w9yycd3t.js.map} +0 -0
  585. /package/dist/{chunk-wd34wnsy.js.map → chunk-xcy5ddha.js.map} +0 -0
@@ -0,0 +1,168 @@
1
+ import { compareStrings, type JsonValue } from "../json"
2
+ import type { ExecutionRecord } from "../storage/executions/types"
3
+ import type {
4
+ EventExecutor,
5
+ OntologyMaterializationEvent,
6
+ OntologyMaterializationEventAttribution,
7
+ OntologyMaterializationEventCommit,
8
+ OntologyMaterializationEventDraft,
9
+ } from "./events"
10
+ import type { OntologyMaterializationPropertyChangeMap } from "./model"
11
+
12
+ /** Where an event sits in its commit: its id and its ordinal. */
13
+ export interface OntologyMaterializationEventSequence {
14
+ readonly id: string
15
+ readonly commitOrdinal: number
16
+ }
17
+
18
+ /**
19
+ * The event consumers receive, rebuilt from the draft storage keeps, the commit it belongs to and
20
+ * the execution that commit ran under. It is the exact event core would have built in one piece,
21
+ * so storing drafts changes nothing a consumer can observe.
22
+ */
23
+ export function materializationEvent(
24
+ draft: OntologyMaterializationEventDraft,
25
+ sequence: OntologyMaterializationEventSequence,
26
+ commit: OntologyMaterializationEventCommit,
27
+ attribution: OntologyMaterializationEventAttribution
28
+ ): OntologyMaterializationEvent {
29
+ const context = {
30
+ id: sequence.id,
31
+ schemaVersion: 1 as const,
32
+ projectId: commit.projectId,
33
+ occurredAt: commit.committedAt,
34
+ correlationId: attribution.correlationId,
35
+ origin: structuredClone(commit.origin),
36
+ ...(attribution.requestedBy === undefined
37
+ ? {}
38
+ : { requestedBy: { ...attribution.requestedBy } }),
39
+ executor: structuredClone(attribution.executor),
40
+ commitId: commit.id,
41
+ commitOrdinal: sequence.commitOrdinal,
42
+ }
43
+ switch (draft.type) {
44
+ case "object.created":
45
+ return {
46
+ ...context,
47
+ type: draft.type,
48
+ topic: "objects",
49
+ partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,
50
+ payload: {
51
+ ...draft.payload,
52
+ propertyChanges: createdPropertyChanges(draft.payload.properties),
53
+ },
54
+ }
55
+ case "object.updated":
56
+ return {
57
+ ...context,
58
+ type: draft.type,
59
+ topic: "objects",
60
+ partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,
61
+ payload: draft.payload,
62
+ }
63
+ case "object.deleted":
64
+ return {
65
+ ...context,
66
+ type: draft.type,
67
+ topic: "objects",
68
+ partitionKey: `${draft.payload.objectTypeId}:${draft.payload.primaryId}`,
69
+ payload: draft.payload,
70
+ }
71
+ case "link.created":
72
+ return {
73
+ ...context,
74
+ type: draft.type,
75
+ topic: "links",
76
+ partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,
77
+ payload: {
78
+ ...draft.payload,
79
+ propertyChanges: createdPropertyChanges(draft.payload.properties ?? {}),
80
+ },
81
+ }
82
+ case "link.updated":
83
+ return {
84
+ ...context,
85
+ type: draft.type,
86
+ topic: "links",
87
+ partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,
88
+ payload: draft.payload,
89
+ }
90
+ case "link.deleted":
91
+ return {
92
+ ...context,
93
+ type: draft.type,
94
+ topic: "links",
95
+ partitionKey: `${draft.payload.sourceTypeId}:${draft.payload.sourceId}:${draft.payload.linkId}`,
96
+ payload: draft.payload,
97
+ }
98
+ case "telemetry.appended":
99
+ return {
100
+ ...context,
101
+ type: draft.type,
102
+ topic: "telemetry",
103
+ partitionKey: `${draft.payload.objectTypeId}:${draft.payload.objectId}:${draft.payload.propertyId}`,
104
+ payload: draft.payload,
105
+ }
106
+ }
107
+ }
108
+
109
+ /**
110
+ * What the events of a commit say about who asked for it and what wrote it, read from the
111
+ * execution it ran under. A primitive's id lives in the execution's authority, the only place the
112
+ * durable record keeps it.
113
+ */
114
+ export function eventAttribution(
115
+ execution: Pick<
116
+ ExecutionRecord,
117
+ "id" | "correlationId" | "requestedBy" | "executor" | "authorizationRef"
118
+ >
119
+ ): OntologyMaterializationEventAttribution {
120
+ const attribution = {
121
+ correlationId: execution.correlationId,
122
+ executor: eventExecutor(execution),
123
+ }
124
+ if (execution.requestedBy === undefined) return attribution
125
+ const { type, id } = execution.requestedBy
126
+ return { ...attribution, requestedBy: { type, id } }
127
+ }
128
+
129
+ function eventExecutor(
130
+ execution: Pick<ExecutionRecord, "id" | "executor" | "authorizationRef">
131
+ ): EventExecutor {
132
+ const { executor, authorizationRef } = execution
133
+ switch (executor.type) {
134
+ case "request":
135
+ return { type: "request", requestId: executor.requestId }
136
+ case "agent":
137
+ return { type: "agent", runId: executor.runId }
138
+ case "kernel":
139
+ return { type: "kernel", operation: structuredClone(executor.operation) }
140
+ case "primitive":
141
+ if (
142
+ authorizationRef.type !== "trustedPrimitive" ||
143
+ authorizationRef.primitive.kind !== executor.kind ||
144
+ authorizationRef.primitive.runId !== executor.runId
145
+ ) {
146
+ throw new Error(
147
+ `[Sixb] Execution '${execution.id}' runs a primitive without that primitive's authority.`
148
+ )
149
+ }
150
+ return {
151
+ type: "primitive",
152
+ kind: executor.kind,
153
+ id: authorizationRef.primitive.id,
154
+ runId: executor.runId,
155
+ }
156
+ }
157
+ }
158
+
159
+ /** A creation changes every property it sets, from nothing to its value, in key order. */
160
+ function createdPropertyChanges(
161
+ properties: Readonly<Record<string, JsonValue>>
162
+ ): OntologyMaterializationPropertyChangeMap {
163
+ const changes: Record<string, { readonly operation: "created"; readonly after: JsonValue }> = {}
164
+ for (const id of Object.keys(properties).sort(compareStrings)) {
165
+ changes[id] = { operation: "created", after: properties[id] as JsonValue }
166
+ }
167
+ return changes
168
+ }
@@ -110,9 +110,45 @@ export type OntologyMaterializationEvent =
110
110
  | OntologyLinkMaterializationEvent
111
111
  | OntologyTelemetryMaterializationEvent
112
112
 
113
- type WithoutEventSequence<T> = T extends OntologyMaterializationEvent
114
- ? Omit<T, "id" | "commitOrdinal">
113
+ type OntologyMaterializationEventKind = OntologyMaterializationEvent["type"]
114
+
115
+ type EventPayload<K extends OntologyMaterializationEventKind> =
116
+ OntologyMaterializationEvent extends infer E
117
+ ? E extends { readonly type: infer T; readonly payload: infer P }
118
+ ? K extends T
119
+ ? P
120
+ : never
121
+ : never
122
+ : never
123
+
124
+ type EventDraftOf<K> = K extends OntologyMaterializationEventKind
125
+ ? {
126
+ readonly type: K
127
+ readonly payload: K extends "object.created" | "link.created"
128
+ ? Readonly<Omit<EventPayload<K>, "propertyChanges">>
129
+ : EventPayload<K>
130
+ }
115
131
  : never
116
132
 
117
- /** Complete core-authored event fact before contiguous commit sequencing is assigned. */
118
- export type OntologyMaterializationEventDraft = WithoutEventSequence<OntologyMaterializationEvent>
133
+ /**
134
+ * An event as core stages it and storage keeps it: what changed, and nothing it can be rebuilt
135
+ * from. `materializationEvent` adds back the context its commit and execution share with every
136
+ * other event of that commit, the partition key and topic its type and payload fix, and the
137
+ * property changes of a creation, which only restate its properties.
138
+ */
139
+ export type OntologyMaterializationEventDraft = EventDraftOf<OntologyMaterializationEventKind>
140
+
141
+ /** The commit fields every event of that commit carries. */
142
+ export interface OntologyMaterializationEventCommit {
143
+ readonly projectId: string
144
+ readonly id: string
145
+ readonly committedAt: string
146
+ readonly origin: OntologyMaterializationOrigin
147
+ }
148
+
149
+ /** Who asked for a commit and what wrote it, as its events carry them: read from its execution. */
150
+ export interface OntologyMaterializationEventAttribution {
151
+ readonly correlationId: string
152
+ readonly requestedBy?: AuthorizablePrincipal
153
+ readonly executor: EventExecutor
154
+ }
@@ -17,7 +17,15 @@ export {
17
17
  MaterializationObjectNotFoundError,
18
18
  MaterializationValidationError,
19
19
  } from "./errors"
20
- export type { OntologyMaterializationEvent, OntologyMaterializationEventDraft } from "./events"
20
+ export type { OntologyMaterializationEventSequence } from "./event-envelopes"
21
+ export { eventAttribution, materializationEvent } from "./event-envelopes"
22
+ export type {
23
+ OntologyMaterializationEvent,
24
+ OntologyMaterializationEventAttribution,
25
+ OntologyMaterializationEventCommit,
26
+ OntologyMaterializationEventDraft,
27
+ } from "./events"
28
+ export { createEventId } from "./identity"
21
29
  export type {
22
30
  BaseCommitResult,
23
31
  EditCommitResult,
@@ -32,26 +32,30 @@ normalize + validate intent
32
32
  -> resolve effective state
33
33
  -> diff against committed state
34
34
  -> stage deterministic work
35
- -> apply work in dependency order
36
- -> write outbox events with stable commit ordinals
35
+ -> storage applies the work in dependency order and writes its outbox events
37
36
  -> finalize ontology commit atomically
38
37
  -> advance a run resume checkpoint when required
39
38
  ```
40
39
 
41
- `staged work` is a transaction-local execution plan. It is not a source materialization and is
42
- never queried as Ontology state.
40
+ Staged work is an execution plan, never queried as Ontology state. Edits and telemetry stage it on
41
+ their session; a projection replacement stages it on the candidate's durable plan (below). Either
42
+ way the Materializer plans and storage applies: it validates cardinality, writes every item in
43
+ phase order and sequences the events, so planned rows are not read back to be sent again. Vector
44
+ profiles see the changed objects first, while those still hold their previous values.
43
45
 
44
46
  ## Durable ownership
45
47
 
46
48
  ```text
47
49
  run storage -> execution ownership, lifecycle, progress, and resume checkpoints
48
- ontology storage -> sources, effective state, telemetry, commits, and outbox
50
+ ontology storage -> sources, replacement plans, effective state, telemetry, commits, and outbox
49
51
  Materializer -> semantic planning and cross-store transaction orchestration
50
52
  ```
51
53
 
52
54
  Every ontology commit references its immutable execution through `executionId`. Storage providers enforce that reference. `origin` remains the semantic idempotency and run-correlation key: it says which runtime request, Action, projection replacement, or telemetry batch the commit represents; the execution says under which durable authority it ran. Neither field duplicates the other.
53
55
 
54
- A commit and each of its events also carry a copy of two execution facts, so consumers can answer "who changed this" without reading the execution: `requestedBy`, the principal on whose behalf the execution chain runs (absent for automatic, anonymous, or auth-disabled work), and `executor`, the request, primitive run, Agent run, or kernel operation that wrote. Both are derived from the bound scope in `execution/scope.ts`, which is already proven identical to the durable record, so they are a pure function of `executionId` and never caller input. Authority is deliberately not copied: it stays on the execution's `authorizationRef`. Header validation requires an Action or projection origin to name the exact primitive run in `executor`, and provider work requires every event to carry its commit's attribution.
56
+ Every event of a commit also names who asked for it and what wrote it, so consumers can answer "who changed this" without reading the execution: `requestedBy`, the principal on whose behalf the execution chain runs (absent for automatic, anonymous, or auth-disabled work), `executor`, the request, primitive run, Agent run, or kernel operation that wrote, and `correlationId`. The commit does not copy them: they live once, on its immutable execution, and the outbox reads them there. Authority stays on the execution's `authorizationRef`; only a primitive's id is read from it. Before writing, the Materializer requires an Action or projection origin to name the exact primitive run of its execution (`assertTrustedPrimitiveMutationExecution`).
57
+
58
+ Storage keeps an event once, as its draft — its type and payload, without the property changes a creation only restates. When the outbox claims a row, it rebuilds the full event from the draft, its commit and that commit's execution (`materializationEvent`). An event therefore cannot disagree with its commit or its execution, and a large publication writes their context once instead of once per event.
55
59
 
56
60
  Run records do not duplicate ontology commit ids or semantic commit history. Replacement projections need no resume checkpoint; projection telemetry stores only its next batch/row checkpoint on the run.
57
61
 
@@ -65,14 +69,54 @@ listing is reserved for history and observability.
65
69
  dataset entries
66
70
  -> staging source candidate
67
71
  -> ready source candidate
68
- -> compare candidate + overrides + telemetry with effective state
69
- -> plan and apply changes
70
- -> atomically activate candidate and finalize commit
72
+ -> plan the candidate, outside any transaction, page by page
73
+ -> commit transaction: refresh the plan, apply it, activate the candidate, finalize the commit
71
74
  ```
72
75
 
73
76
  Source ingress is sealed before commit time is assigned. Activation and ontology commit
74
77
  finalization are atomic; the projection run stores no separate commit pointer.
75
78
 
79
+ The plan is built outside the commit transaction, which refreshes it, then applies it. The plan is
80
+ durable and belongs to the candidate:
81
+
82
+ ```text
83
+ open -> the candidate's identities: its entities and those of the roots it replaces
84
+ plan -> each page reads its state in one snapshot, records the revision of what it read,
85
+ and stages the resulting work; links are planned after objects, then extended to
86
+ the links of newly planned objects whose existence flips and to the members of
87
+ newly changed scopes
88
+ refresh -> in the commit transaction: a planned identity whose inputs a commit touched since
89
+ is planned again, with the links that commit brought into the plan; a few are
90
+ planned right there, more are given back to a round outside the transaction
91
+ apply -> only a plan that refresh found fresh; the commit reports its planned counts
92
+ ```
93
+
94
+ An identity's revision covers everything its plan read: an object's effective row, override and
95
+ latest telemetry; a link's effective row, edge and slot overrides, live source, and the existence
96
+ of both endpoints (the whole revision of an endpoint the plan decides, whose planned existence
97
+ follows it).
98
+
99
+ Every commit records the entities whose plan inputs it changed, its touches: the objects whose row,
100
+ override or telemetry it wrote, the links whose row or edge override it wrote or whose live source
101
+ assertion its activation moved, and the scopes whose slot override it wrote. When no commit of the
102
+ project landed since the plan last proved fresh, refresh checks nothing; otherwise it reads again
103
+ only the revisions of identities those commits touched (a link also through its scope and both
104
+ endpoints), so its cost follows the commits, not the plan. A plan older than the touches storage
105
+ still keeps (PostgreSQL purge can race a plan's opening) is checked whole.
106
+
107
+ A refresh that finds no more stale identities than `transactionReplanRows` (one state page) plans
108
+ them inside the commit transaction, where nothing changes them again, and commits. More are given
109
+ back to another round outside it. A commit that keeps finding many stale identities gives the
110
+ delivery back after three rounds; the next delivery resumes the same plan, as does any redelivery
111
+ of the run, unless the active source the plan replaces moved meanwhile: the plan then starts over.
112
+ Storage keeps a plan while its candidate is ready and maintenance deletes it afterwards, before the
113
+ candidate itself, along with the touches no ready plan still needs.
114
+
115
+ The commit time is fixed when the plan opens: every planned row carries it as `updatedAt`, every
116
+ planned event as `occurredAt`. A resumed plan keeps it, so a publication that commits later than
117
+ it opened, after retries, stamps its writes with that earlier time, even over an edit committed in
118
+ between. Commit order is the order of the ontology ledger and the outbox, never these timestamps.
119
+
76
120
  A candidate belongs to its run, not to the delivery that staged it:
77
121
 
78
122
  ```text
@@ -141,7 +185,8 @@ finish still commit atomically.
141
185
  - `effective/`: pure resolution, validation, diff, and event construction.
142
186
  - `execution/`: storage-neutral plan execution, replay, retry, and run correlation.
143
187
  - `shared/`: normalization, identity, batching, and chunking primitives.
144
- - `storage/ontology/`: durable ontology commit, source, materialization, and outbox contracts.
188
+ - `storage/ontology/`: durable ontology commit, source, replacement plan, materialization, and
189
+ outbox contracts.
145
190
 
146
191
  Keep use-case entrypoints explicit. Share mechanics only after they have identical semantics; do
147
192
  not hide projection candidate lifecycle, edit continuation, or telemetry batching behind a generic
@@ -21,7 +21,7 @@ import {
21
21
  type MaterializerExecution,
22
22
  prepareMaterializerExecution,
23
23
  } from "../execution/scope"
24
- import { drainStagedEvents, drainStagedWork } from "../execution/work-executor"
24
+ import { applyStagedWork } from "../execution/work-executor"
25
25
  import type { MaterializerCommand } from "../materializer"
26
26
  import {
27
27
  createActionIdempotencyKey,
@@ -187,16 +187,10 @@ async function executeEditTransaction(
187
187
  storage.ontology.materializations,
188
188
  session,
189
189
  workingState,
190
- editPlanContext(command)
191
- )
192
- await drainStagedWork(context, storage, session)
193
- await commitVectorWrites(context, storage, command.input, command.identity.commitId, session)
194
- const eventCount = await drainStagedEvents(
195
- context,
196
- storage.ontology.materializations,
197
- session,
198
190
  command.identity
199
191
  )
192
+ const eventCount = await applyStagedWork(context, storage, session)
193
+ await commitVectorWrites(context, storage, command.input, command.identity.commitId, session)
200
194
 
201
195
  const result: EditCommitResult = {
202
196
  kind: "edit",
@@ -237,7 +231,6 @@ function buildEditCommit(
237
231
  requestHash: command.identity.requestHash,
238
232
  executionId: command.execution.executionId,
239
233
  origin: command.origin,
240
- ...command.execution.attribution,
241
234
  ontologyRevision: context.projectionRegistry.ontologyRevision,
242
235
  intent: {
243
236
  kind: "edit",
@@ -362,15 +355,6 @@ function isRecoverableEditValidation(
362
355
  return error instanceof MaterializationValidationError
363
356
  }
364
357
 
365
- function editPlanContext(command: PreparedEditCommit) {
366
- return {
367
- identity: command.identity,
368
- origin: command.origin,
369
- correlationId: command.execution.correlationId,
370
- attribution: command.execution.attribution,
371
- }
372
- }
373
-
374
358
  async function finalizeEditMaterialization(
375
359
  storage: MaterializerStorage,
376
360
  session: MaterializationSession,
@@ -1,8 +1,4 @@
1
- import type {
2
- EffectiveLinkChange,
3
- EffectiveObjectChange,
4
- OntologyMaterializationOrigin,
5
- } from "../../materialization/model"
1
+ import type { EffectiveLinkChange, EffectiveObjectChange } from "../../materialization/model"
6
2
  import {
7
3
  compareLinkRefs,
8
4
  compareObjectRefs,
@@ -26,7 +22,6 @@ import {
26
22
  } from "../effective/build-events"
27
23
  import { diffEffectiveLink, diffEffectiveLinkSlot, diffEffectiveObject } from "../effective/diff"
28
24
  import { validateEffectiveObject } from "../effective/validate"
29
- import type { MaterializerAttribution } from "../execution/scope"
30
25
  import { stageWorkBounded } from "../execution/work-executor"
31
26
  import {
32
27
  appendEffectiveLinkWork,
@@ -55,43 +50,29 @@ export interface EditPlanChanges {
55
50
  readonly links: readonly EffectiveLinkChange[]
56
51
  }
57
52
 
58
- interface EditPlanContext {
59
- readonly identity: TimedCommitIdentity
60
- readonly origin: OntologyMaterializationOrigin
61
- readonly correlationId: string
62
- readonly attribution: MaterializerAttribution
63
- }
64
-
65
53
  export async function stageEditPlan(
66
54
  context: MaterializerContext,
67
55
  storage: OntologyMaterializationStorage,
68
56
  session: MaterializationSession,
69
57
  state: EditWorkingState,
70
- planContext: EditPlanContext
58
+ identity: TimedCommitIdentity
71
59
  ): Promise<EditPlanChanges> {
72
60
  validateWorkingCardinality(state.links.slots)
73
61
 
74
62
  const objectChanges: EffectiveObjectChange[] = []
75
63
  for (const working of sortedObjects(state.objects)) {
76
- const change = await stageObject(context, storage, session, working, planContext)
64
+ const change = await stageObject(context, storage, session, working, identity)
77
65
  if (change) objectChanges.push(change)
78
66
  }
79
67
 
80
68
  const linkChanges: EffectiveLinkChange[] = []
81
69
  for (const working of sortedLinkEdges(state.links.edges)) {
82
- const change = await stageLinkEdge(
83
- context,
84
- storage,
85
- session,
86
- state.objects,
87
- working,
88
- planContext
89
- )
70
+ const change = await stageLinkEdge(context, storage, session, state.objects, working, identity)
90
71
  if (change) linkChanges.push(change)
91
72
  }
92
73
  for (const working of sortedLinkSlots(state.links.slots)) {
93
74
  linkChanges.push(
94
- ...(await stageLinkSlot(context, storage, session, state.objects, working, planContext))
75
+ ...(await stageLinkSlot(context, storage, session, state.objects, working, identity))
95
76
  )
96
77
  }
97
78
 
@@ -109,16 +90,16 @@ async function stageLinkSlot(
109
90
  session: MaterializationSession,
110
91
  objects: EditWorkingState["objects"],
111
92
  working: WorkingLinkSlot,
112
- planContext: EditPlanContext
93
+ identity: TimedCommitIdentity
113
94
  ): Promise<EffectiveLinkChange[]> {
114
95
  const overrideItems: MaterializationPlanWorkItem[] = []
115
- appendLinkSlotOverrideWork(overrideItems, working, planContext.identity)
96
+ appendLinkSlotOverrideWork(overrideItems, working, identity)
116
97
  const resolved = resolveLinkSlot(context.ontology, working, objects)
117
98
  const changes = diffEffectiveLinkSlot({
118
99
  before: working.before,
119
100
  resolved,
120
- commitId: planContext.identity.commitId,
121
- committedAt: planContext.identity.committedAt,
101
+ commitId: identity.commitId,
102
+ committedAt: identity.committedAt,
122
103
  })
123
104
 
124
105
  const representative =
@@ -145,7 +126,7 @@ async function stageLinkSlot(
145
126
  appendEffectiveLinkWork(effectiveItems, change)
146
127
  const sortKey = linkRefSortKey(change.ref)
147
128
  work.push(...effectiveItems.map((item) => planWork(item, sortKey)))
148
- work.push(eventWork(buildLinkEvent(context, planContext, change)))
129
+ work.push(eventWork(buildLinkMaterializationEventDraft(change)))
149
130
  }
150
131
  await stageWorkBounded(context, storage, session, work)
151
132
  return changes
@@ -156,18 +137,18 @@ async function stageObject(
156
137
  storage: OntologyMaterializationStorage,
157
138
  session: MaterializationSession,
158
139
  working: WorkingObject,
159
- planContext: EditPlanContext
140
+ identity: TimedCommitIdentity
160
141
  ): Promise<EffectiveObjectChange | null> {
161
142
  const items: MaterializationPlanWorkItem[] = []
162
- appendObjectOverrideWork(items, working, planContext.identity)
143
+ appendObjectOverrideWork(items, working, identity)
163
144
 
164
145
  const resolved = resolveObject(context.ontology, working)
165
146
  if (resolved) validateEffectiveObject(context.ontology, resolved.ref, resolved.properties)
166
147
  const change = diffEffectiveObject({
167
148
  before: working.before,
168
149
  resolved,
169
- commitId: planContext.identity.commitId,
170
- committedAt: planContext.identity.committedAt,
150
+ commitId: identity.commitId,
151
+ committedAt: identity.committedAt,
171
152
  })
172
153
  if (change) appendEffectiveObjectWork(items, change)
173
154
 
@@ -177,7 +158,7 @@ async function stageObject(
177
158
  ...items.map((item) => planWork(item, sortKey)),
178
159
  ]
179
160
  if (change) {
180
- work.push(eventWork(buildObjectEvent(context, planContext, change)))
161
+ work.push(eventWork(buildObjectMaterializationEventDraft(change)))
181
162
  }
182
163
  await stageWorkBounded(context, storage, session, work)
183
164
  return change
@@ -189,17 +170,17 @@ async function stageLinkEdge(
189
170
  session: MaterializationSession,
190
171
  objects: EditWorkingState["objects"],
191
172
  working: WorkingLinkEdge,
192
- planContext: EditPlanContext
173
+ identity: TimedCommitIdentity
193
174
  ): Promise<EffectiveLinkChange | null> {
194
175
  const items: MaterializationPlanWorkItem[] = []
195
- appendLinkEdgeOverrideWork(items, working, planContext.identity)
176
+ appendLinkEdgeOverrideWork(items, working, identity)
196
177
 
197
178
  const resolved = resolveLinkEdge(context.ontology, working, objects)
198
179
  const change = diffEffectiveLink({
199
180
  before: working.before,
200
181
  resolved,
201
- commitId: planContext.identity.commitId,
202
- committedAt: planContext.identity.committedAt,
182
+ commitId: identity.commitId,
183
+ committedAt: identity.committedAt,
203
184
  })
204
185
  if (change) appendEffectiveLinkWork(items, change)
205
186
 
@@ -209,44 +190,12 @@ async function stageLinkEdge(
209
190
  ...items.map((item) => planWork(item, sortKey)),
210
191
  ]
211
192
  if (change) {
212
- work.push(eventWork(buildLinkEvent(context, planContext, change)))
193
+ work.push(eventWork(buildLinkMaterializationEventDraft(change)))
213
194
  }
214
195
  await stageWorkBounded(context, storage, session, work)
215
196
  return change
216
197
  }
217
198
 
218
- function buildObjectEvent(
219
- context: Pick<MaterializerContext, "projectId">,
220
- planContext: EditPlanContext,
221
- change: EffectiveObjectChange
222
- ) {
223
- const eventContext = materializationEventContext(context, planContext)
224
- return buildObjectMaterializationEventDraft({ ...eventContext, change })
225
- }
226
-
227
- function buildLinkEvent(
228
- context: Pick<MaterializerContext, "projectId">,
229
- planContext: EditPlanContext,
230
- change: EffectiveLinkChange
231
- ) {
232
- const eventContext = materializationEventContext(context, planContext)
233
- return buildLinkMaterializationEventDraft({ ...eventContext, change })
234
- }
235
-
236
- function materializationEventContext(
237
- context: Pick<MaterializerContext, "projectId">,
238
- planContext: EditPlanContext
239
- ) {
240
- return {
241
- projectId: context.projectId,
242
- commitId: planContext.identity.commitId,
243
- committedAt: planContext.identity.committedAt,
244
- origin: planContext.origin,
245
- correlationId: planContext.correlationId,
246
- attribution: planContext.attribution,
247
- }
248
- }
249
-
250
199
  function sortedObjects(objects: EditWorkingState["objects"]): WorkingObject[] {
251
200
  return [...objects.values()].sort((left, right) => compareObjectRefs(left.ref, right.ref))
252
201
  }