@sixb/core 0.1.11 → 0.1.12

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 (641) hide show
  1. package/dist/actions/builders/params.d.ts +1 -22
  2. package/dist/actions/builders/params.d.ts.map +1 -1
  3. package/dist/actions/index.js +29 -28
  4. package/dist/actions/index.js.map +1 -1
  5. package/dist/actions/types/params.d.ts +10 -44
  6. package/dist/actions/types/params.d.ts.map +1 -1
  7. package/dist/actions/validation.d.ts.map +1 -1
  8. package/dist/actions/worker.js +3 -2
  9. package/dist/actions/worker.js.map +2 -2
  10. package/dist/agents/errors.d.ts +1 -1
  11. package/dist/agents/errors.d.ts.map +1 -1
  12. package/dist/agents/execution.d.ts +15 -9
  13. package/dist/agents/execution.d.ts.map +1 -1
  14. package/dist/agents/ids.d.ts +2 -0
  15. package/dist/agents/ids.d.ts.map +1 -1
  16. package/dist/agents/index.d.ts +1 -1
  17. package/dist/agents/index.d.ts.map +1 -1
  18. package/dist/agents/index.js +48 -42
  19. package/dist/agents/index.js.map +1 -1
  20. package/dist/agents/request.d.ts.map +1 -1
  21. package/dist/agents/sandbox.d.ts +5 -0
  22. package/dist/agents/sandbox.d.ts.map +1 -0
  23. package/dist/agents/streams/index.js +4 -3
  24. package/dist/agents/streams/index.js.map +1 -1
  25. package/dist/agents/streams/internal.js +4 -3
  26. package/dist/agents/streams/internal.js.map +1 -1
  27. package/dist/agents/validation.d.ts.map +1 -1
  28. package/dist/auth/index.js +8 -6
  29. package/dist/auth/index.js.map +1 -1
  30. package/dist/authorization/index.js +5 -4
  31. package/dist/authorization/index.js.map +1 -1
  32. package/dist/bootstrap/index.js +50 -46
  33. package/dist/bootstrap/index.js.map +1 -1
  34. package/dist/{chunk-17kfctj6.js → chunk-0mza4xb2.js} +2 -2
  35. package/dist/{chunk-g00bfdq6.js → chunk-2cxv584m.js} +12 -56
  36. package/dist/{chunk-g00bfdq6.js.map → chunk-2cxv584m.js.map} +3 -3
  37. package/dist/{chunk-jsy70480.js → chunk-2h63nrde.js} +365 -95
  38. package/dist/chunk-2h63nrde.js.map +20 -0
  39. package/dist/{chunk-1yefycb1.js → chunk-3bnt2wna.js} +2 -2
  40. package/dist/{chunk-awbhdqyc.js → chunk-3ghw2t5q.js} +1 -1
  41. package/dist/{chunk-b19g04jk.js → chunk-3h7ctayx.js} +1 -1
  42. package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
  43. package/dist/{chunk-5hz0fnca.js → chunk-4k53sm9e.js} +6 -2
  44. package/dist/chunk-4k53sm9e.js.map +12 -0
  45. package/dist/chunk-4ph94nhd.js +81 -0
  46. package/dist/chunk-4ph94nhd.js.map +10 -0
  47. package/dist/chunk-58geavnf.js +29 -0
  48. package/dist/chunk-58geavnf.js.map +10 -0
  49. package/dist/{chunk-0y39rgsb.js → chunk-5tetw4hn.js} +1 -1
  50. package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
  51. package/dist/chunk-69266efg.js.map +12 -0
  52. package/dist/{chunk-a0e6x5hd.js → chunk-6ma8dvzc.js} +121 -53
  53. package/dist/chunk-6ma8dvzc.js.map +15 -0
  54. package/dist/{chunk-skz0hst3.js → chunk-7c2g3sz9.js} +6 -86
  55. package/dist/{chunk-skz0hst3.js.map → chunk-7c2g3sz9.js.map} +3 -3
  56. package/dist/{chunk-z0s4axeh.js → chunk-7qnvhtcd.js} +93 -17
  57. package/dist/{chunk-z0s4axeh.js.map → chunk-7qnvhtcd.js.map} +7 -6
  58. package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
  59. package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
  60. package/dist/chunk-91kcnbf0.js.map +10 -0
  61. package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
  62. package/dist/chunk-96yw3pwd.js.map +10 -0
  63. package/dist/chunk-98cw09sw.js.map +2 -2
  64. package/dist/{chunk-93csa55g.js → chunk-axndsymr.js} +10 -4
  65. package/dist/chunk-axndsymr.js.map +11 -0
  66. package/dist/{chunk-4zhmdsx6.js → chunk-b768c93y.js} +61 -23
  67. package/dist/{chunk-4zhmdsx6.js.map → chunk-b768c93y.js.map} +5 -5
  68. package/dist/{chunk-dz5h08xv.js → chunk-bbaa1fet.js} +24 -9
  69. package/dist/{chunk-dz5h08xv.js.map → chunk-bbaa1fet.js.map} +4 -4
  70. package/dist/{chunk-7apz6hg4.js → chunk-bet1rb9h.js} +8 -4
  71. package/dist/chunk-bet1rb9h.js.map +10 -0
  72. package/dist/{chunk-358caqf5.js → chunk-bfjv1adk.js} +2 -2
  73. package/dist/{chunk-g91qxjj0.js → chunk-bg2bs62d.js} +5 -5
  74. package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
  75. package/dist/chunk-cd234ba4.js.map +14 -0
  76. package/dist/chunk-dmn70ztd.js.map +2 -2
  77. package/dist/{chunk-d63nnr5b.js → chunk-e1f1sqba.js} +39 -53
  78. package/dist/{chunk-d63nnr5b.js.map → chunk-e1f1sqba.js.map} +5 -6
  79. package/dist/{chunk-ap0g1g74.js → chunk-eyjzgav0.js} +39 -4
  80. package/dist/chunk-eyjzgav0.js.map +12 -0
  81. package/dist/{chunk-rb1xx120.js → chunk-f06sf7rr.js} +9 -5
  82. package/dist/chunk-f06sf7rr.js.map +11 -0
  83. package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
  84. package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
  85. package/dist/{chunk-38zv5rkr.js → chunk-g2gezsg5.js} +1 -1
  86. package/dist/{chunk-38zv5rkr.js.map → chunk-g2gezsg5.js.map} +2 -2
  87. package/dist/{chunk-01kj2pbh.js → chunk-g50nxqs5.js} +53 -66
  88. package/dist/chunk-g50nxqs5.js.map +18 -0
  89. package/dist/{chunk-1824gssz.js → chunk-gswwr35f.js} +4 -4
  90. package/dist/{chunk-92vk7gta.js → chunk-gzt6v1ja.js} +1 -1
  91. package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
  92. package/dist/chunk-hgqpcmyr.js.map +12 -0
  93. package/dist/{chunk-gqh45d2n.js → chunk-hkw8rykk.js} +2 -2
  94. package/dist/{chunk-f4w3yp4f.js → chunk-hzw7yv5g.js} +104 -21
  95. package/dist/chunk-hzw7yv5g.js.map +13 -0
  96. package/dist/{chunk-cfvakeax.js → chunk-jjwhy3rs.js} +5 -5
  97. package/dist/chunk-kept9cdd.js +29 -0
  98. package/dist/chunk-kept9cdd.js.map +10 -0
  99. package/dist/{chunk-ftv470j8.js → chunk-m7cx05vp.js} +247 -16
  100. package/dist/{chunk-ftv470j8.js.map → chunk-m7cx05vp.js.map} +14 -10
  101. package/dist/{chunk-z0271qkp.js → chunk-mdnw7nj8.js} +8 -6
  102. package/dist/chunk-mdnw7nj8.js.map +15 -0
  103. package/dist/{chunk-gq8vhakp.js → chunk-nzsy3xrp.js} +249 -86
  104. package/dist/{chunk-gq8vhakp.js.map → chunk-nzsy3xrp.js.map} +13 -11
  105. package/dist/chunk-p1683c0v.js +104 -0
  106. package/dist/chunk-p1683c0v.js.map +11 -0
  107. package/dist/chunk-p6r1ex7t.js +93 -0
  108. package/dist/chunk-p6r1ex7t.js.map +10 -0
  109. package/dist/{chunk-sepyxgpc.js → chunk-qm535afa.js} +10 -10
  110. package/dist/{chunk-sepyxgpc.js.map → chunk-qm535afa.js.map} +4 -4
  111. package/dist/chunk-r5zythxp.js +552 -0
  112. package/dist/chunk-r5zythxp.js.map +17 -0
  113. package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
  114. package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
  115. package/dist/{chunk-3ckk0xfj.js → chunk-sfypc7mk.js} +18 -13
  116. package/dist/{chunk-3ckk0xfj.js.map → chunk-sfypc7mk.js.map} +3 -3
  117. package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
  118. package/dist/chunk-t6f3tdnr.js.map +10 -0
  119. package/dist/{chunk-x9m9x2eq.js → chunk-t7dzd1tm.js} +3 -3
  120. package/dist/{chunk-pr2h4bv4.js → chunk-tg4g4zh0.js} +3 -3
  121. package/dist/chunk-vpxss818.js +56 -0
  122. package/dist/chunk-vpxss818.js.map +10 -0
  123. package/dist/{chunk-ms2tmn1k.js → chunk-vsg0g7h9.js} +53 -57
  124. package/dist/chunk-vsg0g7h9.js.map +17 -0
  125. package/dist/{chunk-8vj0rjgs.js → chunk-wjffn5m4.js} +1 -1
  126. package/dist/{chunk-wf88w4kp.js → chunk-x9tmx3fc.js} +2 -2
  127. package/dist/{chunk-fh8kgex1.js → chunk-xn686q2e.js} +8 -8
  128. package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
  129. package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
  130. package/dist/{chunk-v2vcg0w6.js → chunk-xtfryrfb.js} +2 -2
  131. package/dist/chunk-y0v18c2j.js +363 -0
  132. package/dist/chunk-y0v18c2j.js.map +14 -0
  133. package/dist/{chunk-72w2pxk7.js → chunk-y1ahv8b7.js} +11 -3
  134. package/dist/{chunk-72w2pxk7.js.map → chunk-y1ahv8b7.js.map} +3 -3
  135. package/dist/chunk-y3ev53cq.js +84 -0
  136. package/dist/chunk-y3ev53cq.js.map +10 -0
  137. package/dist/{chunk-gqm76kse.js → chunk-ybhz3j9g.js} +342 -41
  138. package/dist/{chunk-gqm76kse.js.map → chunk-ybhz3j9g.js.map} +17 -12
  139. package/dist/{chunk-z30bv4ga.js → chunk-yxb4c62x.js} +3 -2
  140. package/dist/{chunk-z30bv4ga.js.map → chunk-yxb4c62x.js.map} +3 -3
  141. package/dist/chunk-z3y5kg1x.js +14 -0
  142. package/dist/chunk-z3y5kg1x.js.map +10 -0
  143. package/dist/datasets/validation.d.ts +4 -0
  144. package/dist/datasets/validation.d.ts.map +1 -1
  145. package/dist/datasets/write.d.ts.map +1 -1
  146. package/dist/datasets/write.js +5 -4
  147. package/dist/datasets/write.js.map +1 -1
  148. package/dist/error-reporting/capability.d.ts +3 -2
  149. package/dist/error-reporting/capability.d.ts.map +1 -1
  150. package/dist/error-reporting/internal.js +5 -4
  151. package/dist/error-reporting/internal.js.map +1 -1
  152. package/dist/error-reporting/reports.d.ts +10 -0
  153. package/dist/error-reporting/reports.d.ts.map +1 -1
  154. package/dist/error-reporting/types.d.ts +10 -2
  155. package/dist/error-reporting/types.d.ts.map +1 -1
  156. package/dist/errors/catalog.d.ts +12 -0
  157. package/dist/errors/catalog.d.ts.map +1 -1
  158. package/dist/errors/failure-message.d.ts +8 -0
  159. package/dist/errors/failure-message.d.ts.map +1 -0
  160. package/dist/errors/internal.d.ts.map +1 -1
  161. package/dist/errors/internal.js +3 -2
  162. package/dist/errors/internal.js.map +1 -1
  163. package/dist/events/index.js +5 -4
  164. package/dist/events/index.js.map +1 -1
  165. package/dist/execution/agent.js +44 -41
  166. package/dist/execution/agent.js.map +1 -1
  167. package/dist/execution/authorization.d.ts.map +1 -1
  168. package/dist/execution/authorized-object-reader.d.ts +3 -0
  169. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  170. package/dist/execution/kernel-operation.d.ts +4 -0
  171. package/dist/execution/kernel-operation.d.ts.map +1 -0
  172. package/dist/execution/primitive.js +44 -41
  173. package/dist/execution/primitive.js.map +2 -2
  174. package/dist/execution/request.js +45 -42
  175. package/dist/execution/request.js.map +2 -2
  176. package/dist/execution/types.d.ts +6 -0
  177. package/dist/execution/types.d.ts.map +1 -1
  178. package/dist/index.d.ts +15 -5
  179. package/dist/index.d.ts.map +1 -1
  180. package/dist/index.js +68 -59
  181. package/dist/index.js.map +1 -1
  182. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  183. package/dist/lake-storage/index.js +5 -4
  184. package/dist/lake-storage/index.js.map +1 -1
  185. package/dist/materialization/errors.d.ts +1 -1
  186. package/dist/materialization/errors.d.ts.map +1 -1
  187. package/dist/materialization/index.d.ts +1 -0
  188. package/dist/materialization/index.d.ts.map +1 -1
  189. package/dist/materialization/index.js +3 -3
  190. package/dist/materialization/model.d.ts +2 -0
  191. package/dist/materialization/model.d.ts.map +1 -1
  192. package/dist/materialization/vectors.d.ts +19 -0
  193. package/dist/materialization/vectors.d.ts.map +1 -0
  194. package/dist/materializer/context.d.ts.map +1 -1
  195. package/dist/materializer/edits/commit.d.ts.map +1 -1
  196. package/dist/materializer/edits/vector-authority.d.ts +6 -0
  197. package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
  198. package/dist/materializer/edits/vectors.d.ts +6 -0
  199. package/dist/materializer/edits/vectors.d.ts.map +1 -0
  200. package/dist/materializer/effective/validate.d.ts.map +1 -1
  201. package/dist/materializer/effective/vector-indexing.d.ts +7 -0
  202. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
  203. package/dist/materializer/effective/vectors.d.ts +6 -0
  204. package/dist/materializer/effective/vectors.d.ts.map +1 -0
  205. package/dist/materializer/execution/work-executor.d.ts +2 -1
  206. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  207. package/dist/materializer/index.js +26 -25
  208. package/dist/materializer/index.js.map +1 -1
  209. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  210. package/dist/models/catalog-index.d.ts +15 -0
  211. package/dist/models/catalog-index.d.ts.map +1 -0
  212. package/dist/models/catalog.d.ts +27 -6
  213. package/dist/models/catalog.d.ts.map +1 -1
  214. package/dist/models/decision/catalog.d.ts +12 -0
  215. package/dist/models/decision/catalog.d.ts.map +1 -0
  216. package/dist/models/decision/errors.d.ts +7 -0
  217. package/dist/models/decision/errors.d.ts.map +1 -0
  218. package/dist/models/decision/output.d.ts +50 -0
  219. package/dist/models/decision/output.d.ts.map +1 -0
  220. package/dist/models/decision/questions.d.ts +14 -0
  221. package/dist/models/decision/questions.d.ts.map +1 -0
  222. package/dist/models/decision/runtime.d.ts +7 -0
  223. package/dist/models/decision/runtime.d.ts.map +1 -0
  224. package/dist/models/decision/types.d.ts +92 -0
  225. package/dist/models/decision/types.d.ts.map +1 -0
  226. package/dist/models/decision/validation.d.ts +7 -0
  227. package/dist/models/decision/validation.d.ts.map +1 -0
  228. package/dist/models/definitions.d.ts +1 -1
  229. package/dist/models/definitions.d.ts.map +1 -1
  230. package/dist/models/embedding-model.d.ts +60 -0
  231. package/dist/models/embedding-model.d.ts.map +1 -0
  232. package/dist/models/execution/binding.d.ts +2 -0
  233. package/dist/models/execution/binding.d.ts.map +1 -1
  234. package/dist/models/execution/embedding.d.ts +5 -0
  235. package/dist/models/execution/embedding.d.ts.map +1 -0
  236. package/dist/models/execution/index.js +29 -26
  237. package/dist/models/execution/index.js.map +1 -1
  238. package/dist/models/execution/model-call-recorder.d.ts +5 -1
  239. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  240. package/dist/models/execution/session.d.ts +21 -0
  241. package/dist/models/execution/session.d.ts.map +1 -0
  242. package/dist/models/execution.d.ts.map +1 -1
  243. package/dist/models/generation-types.d.ts +2 -0
  244. package/dist/models/generation-types.d.ts.map +1 -1
  245. package/dist/models/index.d.ts +9 -1
  246. package/dist/models/index.d.ts.map +1 -1
  247. package/dist/models/index.js +17 -7
  248. package/dist/models/index.js.map +1 -1
  249. package/dist/models/pricing.d.ts +3 -2
  250. package/dist/models/pricing.d.ts.map +1 -1
  251. package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
  252. package/dist/objects/execution.d.ts +1 -0
  253. package/dist/objects/execution.d.ts.map +1 -1
  254. package/dist/objects/index.js +29 -28
  255. package/dist/objects/index.js.map +1 -1
  256. package/dist/objects/query/executor.d.ts +3 -0
  257. package/dist/objects/query/executor.d.ts.map +1 -1
  258. package/dist/objects/query/index.d.ts +2 -0
  259. package/dist/objects/query/index.d.ts.map +1 -1
  260. package/dist/objects/query/index.js +34 -24
  261. package/dist/objects/query/index.js.map +1 -1
  262. package/dist/objects/query/ir.d.ts +6 -2
  263. package/dist/objects/query/ir.d.ts.map +1 -1
  264. package/dist/objects/query/normalize.d.ts.map +1 -1
  265. package/dist/objects/query/validate.d.ts.map +1 -1
  266. package/dist/objects/sdk/object-handle.d.ts +5 -0
  267. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  268. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  269. package/dist/objects/sdk/query-executor.d.ts +2 -0
  270. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  271. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  272. package/dist/objects/vectors/handle.d.ts +4 -0
  273. package/dist/objects/vectors/handle.d.ts.map +1 -0
  274. package/dist/objects/vectors/indexing-batch.d.ts +6 -0
  275. package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
  276. package/dist/objects/vectors/indexing-generate.d.ts +11 -0
  277. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
  278. package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
  279. package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
  280. package/dist/objects/vectors/indexing-shared.d.ts +17 -0
  281. package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
  282. package/dist/objects/vectors/indexing-single.d.ts +4 -0
  283. package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
  284. package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
  285. package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
  286. package/dist/objects/vectors/indexing.d.ts +7 -0
  287. package/dist/objects/vectors/indexing.d.ts.map +1 -0
  288. package/dist/objects/vectors/profile.d.ts +13 -0
  289. package/dist/objects/vectors/profile.d.ts.map +1 -0
  290. package/dist/objects/vectors/query.d.ts +5 -0
  291. package/dist/objects/vectors/query.d.ts.map +1 -0
  292. package/dist/objects/vectors/resolve-query.d.ts +6 -0
  293. package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
  294. package/dist/objects/vectors/types.d.ts +11 -0
  295. package/dist/objects/vectors/types.d.ts.map +1 -0
  296. package/dist/ontology/index.d.ts +2 -1
  297. package/dist/ontology/index.d.ts.map +1 -1
  298. package/dist/ontology/index.js +5 -5
  299. package/dist/ontology/index.js.map +1 -1
  300. package/dist/ontology/internal.js +5 -4
  301. package/dist/ontology/internal.js.map +1 -1
  302. package/dist/ontology/registry.d.ts.map +1 -1
  303. package/dist/ontology/types.d.ts +8 -9
  304. package/dist/ontology/types.d.ts.map +1 -1
  305. package/dist/ontology/validation/definition.d.ts +3 -0
  306. package/dist/ontology/validation/definition.d.ts.map +1 -0
  307. package/dist/ontology/validation/properties.d.ts.map +1 -1
  308. package/dist/ontology/validation/query.d.ts.map +1 -1
  309. package/dist/ontology/validation/schema.d.ts +1 -1
  310. package/dist/ontology/validation/schema.d.ts.map +1 -1
  311. package/dist/ontology/vector-profiles.d.ts +4 -0
  312. package/dist/ontology/vector-profiles.d.ts.map +1 -0
  313. package/dist/pipelines/index.js +28 -27
  314. package/dist/pipelines/index.js.map +1 -1
  315. package/dist/projections/internal.js +24 -23
  316. package/dist/projections/internal.js.map +1 -1
  317. package/dist/query.js +2 -2
  318. package/dist/queues/in-memory.d.ts +2 -1
  319. package/dist/queues/in-memory.d.ts.map +1 -1
  320. package/dist/queues/index.d.ts +1 -1
  321. package/dist/queues/index.d.ts.map +1 -1
  322. package/dist/queues/index.js +1 -1
  323. package/dist/queues/types.d.ts +5 -0
  324. package/dist/queues/types.d.ts.map +1 -1
  325. package/dist/runtime/create.d.ts +4 -3
  326. package/dist/runtime/create.d.ts.map +1 -1
  327. package/dist/runtime/host.d.ts +9 -6
  328. package/dist/runtime/host.d.ts.map +1 -1
  329. package/dist/runtime/internal.d.ts +3 -0
  330. package/dist/runtime/internal.d.ts.map +1 -1
  331. package/dist/runtime/internal.js +47 -1
  332. package/dist/runtime/internal.js.map +1 -1
  333. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  334. package/dist/runtime/sixb.d.ts +9 -4
  335. package/dist/runtime/sixb.d.ts.map +1 -1
  336. package/dist/runtime/types.d.ts +15 -3
  337. package/dist/runtime/types.d.ts.map +1 -1
  338. package/dist/sandboxes/auth.d.ts +16 -0
  339. package/dist/sandboxes/auth.d.ts.map +1 -0
  340. package/dist/sandboxes/config.d.ts +5 -0
  341. package/dist/sandboxes/config.d.ts.map +1 -0
  342. package/dist/sandboxes/configuration.d.ts +41 -0
  343. package/dist/sandboxes/configuration.d.ts.map +1 -0
  344. package/dist/sandboxes/environment.d.ts +13 -0
  345. package/dist/sandboxes/environment.d.ts.map +1 -0
  346. package/dist/sandboxes/errors.d.ts +1 -1
  347. package/dist/sandboxes/errors.d.ts.map +1 -1
  348. package/dist/sandboxes/index.d.ts +6 -1
  349. package/dist/sandboxes/index.d.ts.map +1 -1
  350. package/dist/sandboxes/index.js +16 -3
  351. package/dist/sandboxes/index.js.map +1 -1
  352. package/dist/sandboxes/sandbox.d.ts +35 -3
  353. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  354. package/dist/shared/params/builders.d.ts +25 -0
  355. package/dist/shared/params/builders.d.ts.map +1 -0
  356. package/dist/shared/params/types.d.ts +47 -0
  357. package/dist/shared/params/types.d.ts.map +1 -0
  358. package/dist/shared/params/validation.d.ts +15 -0
  359. package/dist/shared/params/validation.d.ts.map +1 -0
  360. package/dist/shares/internal.js +23 -22
  361. package/dist/shares/internal.js.map +2 -2
  362. package/dist/storage/action-runs/failure.js +4 -3
  363. package/dist/storage/action-runs/failure.js.map +1 -1
  364. package/dist/storage/action-runs/provider.js +1 -1
  365. package/dist/storage/agents/in-memory.d.ts +2 -1
  366. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  367. package/dist/storage/agents/index.d.ts +1 -1
  368. package/dist/storage/agents/index.d.ts.map +1 -1
  369. package/dist/storage/agents/provider.d.ts +5 -1
  370. package/dist/storage/agents/provider.d.ts.map +1 -1
  371. package/dist/storage/agents/provider.js +8 -4
  372. package/dist/storage/agents/provider.js.map +1 -1
  373. package/dist/storage/agents/types.d.ts +49 -0
  374. package/dist/storage/agents/types.d.ts.map +1 -1
  375. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  376. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  377. package/dist/storage/ai-cost/index.d.ts +1 -1
  378. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  379. package/dist/storage/ai-cost/provider.js +2 -2
  380. package/dist/storage/ai-cost/types.d.ts +14 -2
  381. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  382. package/dist/storage/ai-limits/enforcement.js +4 -3
  383. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  384. package/dist/storage/connector-connections/provider.js +3 -2
  385. package/dist/storage/connector-connections/provider.js.map +2 -2
  386. package/dist/storage/executions/provider.d.ts +3 -3
  387. package/dist/storage/executions/provider.d.ts.map +1 -1
  388. package/dist/storage/executions/provider.js +13 -11
  389. package/dist/storage/executions/provider.js.map +3 -3
  390. package/dist/storage/executions/types.d.ts +3 -0
  391. package/dist/storage/executions/types.d.ts.map +1 -1
  392. package/dist/storage/executions/validation.d.ts.map +1 -1
  393. package/dist/storage/index.d.ts +5 -3
  394. package/dist/storage/index.d.ts.map +1 -1
  395. package/dist/storage/index.js +25 -22
  396. package/dist/storage/index.js.map +1 -1
  397. package/dist/storage/internal.js +2 -2
  398. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  399. package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
  400. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  401. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  402. package/dist/storage/objects/in-memory/storage.d.ts +7 -0
  403. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  404. package/dist/storage/objects/types.d.ts +2 -0
  405. package/dist/storage/objects/types.d.ts.map +1 -1
  406. package/dist/storage/ontology/commits.d.ts +1 -0
  407. package/dist/storage/ontology/commits.d.ts.map +1 -1
  408. package/dist/storage/ontology/in-memory/index.d.ts +4 -0
  409. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  410. package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
  411. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  412. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
  413. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  414. package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
  415. package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
  416. package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
  417. package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
  418. package/dist/storage/ontology/index.d.ts +6 -0
  419. package/dist/storage/ontology/index.d.ts.map +1 -1
  420. package/dist/storage/ontology/provider.js +2 -2
  421. package/dist/storage/ontology/vector-indexing.d.ts +94 -0
  422. package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
  423. package/dist/storage/ontology/vectors.d.ts +56 -0
  424. package/dist/storage/ontology/vectors.d.ts.map +1 -0
  425. package/dist/storage/operation-scope.d.ts.map +1 -1
  426. package/dist/storage/operation-scope.js +1 -1
  427. package/dist/storage/projection-runs/provider.js +4 -3
  428. package/dist/storage/projection-runs/provider.js.map +1 -1
  429. package/dist/storage/types.d.ts +1 -1
  430. package/dist/storage/types.d.ts.map +1 -1
  431. package/dist/storage/workflow-runs/provider.js +9 -7
  432. package/dist/storage/workflow-runs/provider.js.map +1 -1
  433. package/dist/syncs/index.js +29 -28
  434. package/dist/syncs/index.js.map +1 -1
  435. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  436. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  437. package/dist/testing/index.js +448 -69
  438. package/dist/testing/index.js.map +7 -7
  439. package/dist/testing/object-query-contract.d.ts.map +1 -1
  440. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  441. package/dist/testing/queues-contract.d.ts.map +1 -1
  442. package/dist/webhooks/internal.js +24 -23
  443. package/dist/webhooks/internal.js.map +2 -2
  444. package/dist/workers/index.js +3 -2
  445. package/dist/workers/index.js.map +2 -2
  446. package/dist/workflows/failure.d.ts.map +1 -1
  447. package/dist/workflows/index.js +47 -43
  448. package/dist/workflows/index.js.map +1 -1
  449. package/package.json +1 -1
  450. package/src/actions/builders/params.ts +1 -48
  451. package/src/actions/types/params.ts +14 -74
  452. package/src/actions/validation.ts +7 -84
  453. package/src/agents/errors.ts +3 -0
  454. package/src/agents/execution.ts +67 -15
  455. package/src/agents/ids.ts +8 -0
  456. package/src/agents/index.ts +1 -0
  457. package/src/agents/request.ts +11 -0
  458. package/src/agents/sandbox.ts +44 -0
  459. package/src/agents/validation.ts +2 -108
  460. package/src/datasets/validation.ts +40 -11
  461. package/src/datasets/write.ts +8 -11
  462. package/src/error-reporting/capability.ts +11 -0
  463. package/src/error-reporting/reports.ts +23 -0
  464. package/src/error-reporting/types.ts +12 -1
  465. package/src/errors/catalog.ts +12 -0
  466. package/src/errors/failure-message.ts +15 -0
  467. package/src/errors/internal.ts +57 -25
  468. package/src/execution/authorization.ts +12 -5
  469. package/src/execution/authorized-object-reader.ts +37 -2
  470. package/src/execution/kernel-operation.ts +27 -0
  471. package/src/execution/scopes.ts +2 -0
  472. package/src/execution/types.ts +4 -4
  473. package/src/index.ts +60 -1
  474. package/src/lake-storage/in-memory.ts +5 -3
  475. package/src/materialization/errors.ts +2 -2
  476. package/src/materialization/index.ts +1 -0
  477. package/src/materialization/model.ts +2 -0
  478. package/src/materialization/vectors.ts +18 -0
  479. package/src/materializer/README.md +14 -0
  480. package/src/materializer/context.ts +10 -0
  481. package/src/materializer/edits/commit.ts +8 -1
  482. package/src/materializer/edits/vector-authority.ts +108 -0
  483. package/src/materializer/edits/vectors.ts +100 -0
  484. package/src/materializer/effective/validate.ts +10 -3
  485. package/src/materializer/effective/vector-indexing.ts +84 -0
  486. package/src/materializer/effective/vectors.ts +47 -0
  487. package/src/materializer/execution/work-executor.ts +11 -3
  488. package/src/materializer/projections/replace.ts +1 -1
  489. package/src/materializer/shared/normalize.ts +11 -0
  490. package/src/materializer/telemetry/append.ts +1 -1
  491. package/src/models/catalog-index.ts +38 -0
  492. package/src/models/catalog.ts +66 -38
  493. package/src/models/decision/catalog.ts +32 -0
  494. package/src/models/decision/errors.ts +18 -0
  495. package/src/models/decision/output.ts +101 -0
  496. package/src/models/decision/questions.ts +29 -0
  497. package/src/models/decision/runtime.ts +188 -0
  498. package/src/models/decision/types.ts +109 -0
  499. package/src/models/decision/validation.ts +335 -0
  500. package/src/models/definitions.ts +1 -1
  501. package/src/models/embedding-model.ts +129 -0
  502. package/src/models/execution/README.md +63 -0
  503. package/src/models/execution/binding.ts +2 -0
  504. package/src/models/execution/embedding.ts +133 -0
  505. package/src/models/execution/model-call-recorder.ts +42 -30
  506. package/src/models/execution/session.ts +81 -0
  507. package/src/models/execution.ts +10 -52
  508. package/src/models/generation-types.ts +2 -0
  509. package/src/models/index.ts +37 -0
  510. package/src/models/pricing.ts +1 -2
  511. package/src/objects/authorized-ontology-view.ts +12 -8
  512. package/src/objects/execution.ts +2 -0
  513. package/src/objects/query/executor.ts +13 -4
  514. package/src/objects/query/explain.ts +7 -2
  515. package/src/objects/query/index.ts +2 -0
  516. package/src/objects/query/ir.ts +6 -2
  517. package/src/objects/query/normalize.ts +5 -1
  518. package/src/objects/query/validate.ts +74 -73
  519. package/src/objects/sdk/object-handle.ts +3 -0
  520. package/src/objects/sdk/object-set.ts +1 -0
  521. package/src/objects/sdk/query-builder.ts +9 -3
  522. package/src/objects/sdk/query-executor.ts +2 -1
  523. package/src/objects/sdk/runtime-query-executor.ts +6 -2
  524. package/src/objects/vectors/README.md +59 -0
  525. package/src/objects/vectors/handle.ts +91 -0
  526. package/src/objects/vectors/indexing-batch.ts +163 -0
  527. package/src/objects/vectors/indexing-generate.ts +184 -0
  528. package/src/objects/vectors/indexing-runtime.ts +17 -0
  529. package/src/objects/vectors/indexing-shared.ts +188 -0
  530. package/src/objects/vectors/indexing-single.ts +51 -0
  531. package/src/objects/vectors/indexing-store-batch.ts +62 -0
  532. package/src/objects/vectors/indexing.ts +23 -0
  533. package/src/objects/vectors/profile.ts +64 -0
  534. package/src/objects/vectors/query.ts +16 -0
  535. package/src/objects/vectors/resolve-query.ts +89 -0
  536. package/src/objects/vectors/types.ts +10 -0
  537. package/src/ontology/index.ts +2 -0
  538. package/src/ontology/registry.ts +8 -0
  539. package/src/ontology/types.ts +9 -9
  540. package/src/ontology/validation/definition.ts +104 -0
  541. package/src/ontology/validation/properties.ts +14 -4
  542. package/src/ontology/validation/query.ts +34 -51
  543. package/src/ontology/validation/schema.ts +85 -23
  544. package/src/ontology/vector-profiles.ts +35 -0
  545. package/src/queues/in-memory.ts +5 -0
  546. package/src/queues/index.ts +1 -0
  547. package/src/queues/types.ts +10 -0
  548. package/src/runtime/create.ts +7 -6
  549. package/src/runtime/host.ts +42 -6
  550. package/src/runtime/internal.ts +3 -0
  551. package/src/runtime/resolve-definitions.ts +19 -1
  552. package/src/runtime/sixb.ts +27 -9
  553. package/src/runtime/types.ts +16 -4
  554. package/src/sandboxes/README.md +41 -0
  555. package/src/sandboxes/auth.ts +17 -0
  556. package/src/sandboxes/config.ts +37 -0
  557. package/src/sandboxes/configuration.ts +268 -0
  558. package/src/sandboxes/environment.ts +107 -0
  559. package/src/sandboxes/errors.ts +1 -1
  560. package/src/sandboxes/index.ts +15 -0
  561. package/src/sandboxes/sandbox.ts +38 -3
  562. package/src/shared/params/builders.ts +50 -0
  563. package/src/shared/params/types.ts +84 -0
  564. package/src/shared/params/validation.ts +114 -0
  565. package/src/storage/agents/in-memory.ts +25 -1
  566. package/src/storage/agents/index.ts +3 -0
  567. package/src/storage/agents/provider.ts +105 -0
  568. package/src/storage/agents/types.ts +54 -0
  569. package/src/storage/ai-cost/analytics.ts +59 -21
  570. package/src/storage/ai-cost/index.ts +1 -0
  571. package/src/storage/ai-cost/types.ts +19 -2
  572. package/src/storage/executions/provider.ts +24 -12
  573. package/src/storage/executions/types.ts +1 -0
  574. package/src/storage/executions/validation.ts +7 -3
  575. package/src/storage/index.ts +15 -1
  576. package/src/storage/objects/in-memory/query.ts +25 -11
  577. package/src/storage/objects/in-memory/read-scope.ts +9 -2
  578. package/src/storage/objects/in-memory/read-source.ts +5 -0
  579. package/src/storage/objects/in-memory/selected-reader.ts +5 -1
  580. package/src/storage/objects/in-memory/storage.ts +19 -1
  581. package/src/storage/objects/types.ts +2 -0
  582. package/src/storage/ontology/commits.ts +1 -0
  583. package/src/storage/ontology/in-memory/index.ts +20 -0
  584. package/src/storage/ontology/in-memory/materializations.ts +13 -0
  585. package/src/storage/ontology/in-memory/shared-state.ts +9 -0
  586. package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
  587. package/src/storage/ontology/in-memory/vectors.ts +73 -0
  588. package/src/storage/ontology/index.ts +14 -0
  589. package/src/storage/ontology/vector-indexing.ts +98 -0
  590. package/src/storage/ontology/vectors.ts +48 -0
  591. package/src/storage/operation-scope.ts +1 -0
  592. package/src/storage/types.ts +3 -0
  593. package/src/testing/agent-storage-contract.ts +246 -0
  594. package/src/testing/ai-cost-storage-contract.ts +134 -0
  595. package/src/testing/object-query-contract.ts +41 -25
  596. package/src/testing/object-read-scope-contract.ts +1 -5
  597. package/src/testing/queues-contract.ts +31 -0
  598. package/src/workflows/failure.ts +10 -4
  599. package/src/workflows/validation.ts +2 -2
  600. package/dist/chunk-01kj2pbh.js.map +0 -19
  601. package/dist/chunk-5hz0fnca.js.map +0 -12
  602. package/dist/chunk-7apz6hg4.js.map +0 -10
  603. package/dist/chunk-7bs40fe1.js.map +0 -12
  604. package/dist/chunk-860dwwy0.js.map +0 -14
  605. package/dist/chunk-93csa55g.js.map +0 -11
  606. package/dist/chunk-a0e6x5hd.js.map +0 -14
  607. package/dist/chunk-aa6z4a19.js.map +0 -12
  608. package/dist/chunk-ap0g1g74.js.map +0 -11
  609. package/dist/chunk-f0rwz2vh.js.map +0 -11
  610. package/dist/chunk-f4w3yp4f.js.map +0 -12
  611. package/dist/chunk-jsy70480.js.map +0 -15
  612. package/dist/chunk-mrp7k0pw.js.map +0 -10
  613. package/dist/chunk-ms2tmn1k.js.map +0 -17
  614. package/dist/chunk-rb1xx120.js.map +0 -11
  615. package/dist/chunk-yv79ncbv.js.map +0 -10
  616. package/dist/chunk-z0271qkp.js.map +0 -15
  617. package/dist/chunk-z3y411fq.js +0 -99
  618. package/dist/chunk-z3y411fq.js.map +0 -11
  619. /package/dist/{chunk-17kfctj6.js.map → chunk-0mza4xb2.js.map} +0 -0
  620. /package/dist/{chunk-1yefycb1.js.map → chunk-3bnt2wna.js.map} +0 -0
  621. /package/dist/{chunk-awbhdqyc.js.map → chunk-3ghw2t5q.js.map} +0 -0
  622. /package/dist/{chunk-b19g04jk.js.map → chunk-3h7ctayx.js.map} +0 -0
  623. /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
  624. /package/dist/{chunk-0y39rgsb.js.map → chunk-5tetw4hn.js.map} +0 -0
  625. /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
  626. /package/dist/{chunk-358caqf5.js.map → chunk-bfjv1adk.js.map} +0 -0
  627. /package/dist/{chunk-g91qxjj0.js.map → chunk-bg2bs62d.js.map} +0 -0
  628. /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
  629. /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
  630. /package/dist/{chunk-1824gssz.js.map → chunk-gswwr35f.js.map} +0 -0
  631. /package/dist/{chunk-92vk7gta.js.map → chunk-gzt6v1ja.js.map} +0 -0
  632. /package/dist/{chunk-gqh45d2n.js.map → chunk-hkw8rykk.js.map} +0 -0
  633. /package/dist/{chunk-cfvakeax.js.map → chunk-jjwhy3rs.js.map} +0 -0
  634. /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
  635. /package/dist/{chunk-653vwrzr.js.map → chunk-rdghfsss.js.map} +0 -0
  636. /package/dist/{chunk-x9m9x2eq.js.map → chunk-t7dzd1tm.js.map} +0 -0
  637. /package/dist/{chunk-pr2h4bv4.js.map → chunk-tg4g4zh0.js.map} +0 -0
  638. /package/dist/{chunk-8vj0rjgs.js.map → chunk-wjffn5m4.js.map} +0 -0
  639. /package/dist/{chunk-wf88w4kp.js.map → chunk-x9tmx3fc.js.map} +0 -0
  640. /package/dist/{chunk-fh8kgex1.js.map → chunk-xn686q2e.js.map} +0 -0
  641. /package/dist/{chunk-v2vcg0w6.js.map → chunk-xtfryrfb.js.map} +0 -0
@@ -1,5 +1,6 @@
1
1
  import { isDeepStrictEqual } from "node:util"
2
2
  import { normalizeRequesterGroupIds, snapshotRequesterGroupIds } from "../../auth/attribution"
3
+ import { kernelOperationId } from "../../execution/kernel-operation"
3
4
  import type {
4
5
  AuthorizablePrincipal,
5
6
  AuthorizationRef,
@@ -134,6 +135,9 @@ function assertExecutor(executor: DurableExecutionExecutor): void {
134
135
 
135
136
  function assertSource(source: DurableExecutionSource): void {
136
137
  switch (source.type) {
138
+ case "ontologyCommit":
139
+ assertNonBlank(source.commitId, "Execution source commit id")
140
+ return
137
141
  case "http":
138
142
  assertNonBlank(source.requestId, "Execution source request id")
139
143
  return
@@ -427,10 +431,10 @@ function assertPrincipal(principal: AuthorizablePrincipal, label: string): void
427
431
  }
428
432
 
429
433
  function assertKernelOperation(operation: KernelOperation, label: string): void {
430
- if (operation.type !== "ontology.recover") {
434
+ if (operation.type !== "ontology.recover" && operation.type !== "ontology.indexVectors") {
431
435
  invalid(`${label} has unsupported type '${String((operation as { type?: unknown }).type)}'.`)
432
436
  }
433
- assertNonBlank(operation.recoveryId, `${label} recovery id`)
437
+ assertNonBlank(kernelOperationId(operation), `${label} operation id`)
434
438
  }
435
439
 
436
440
  function assertTrustedPrimitiveKind(value: string, label: string): void {
@@ -459,7 +463,7 @@ function principalsEqual(
459
463
  }
460
464
 
461
465
  function kernelOperationsEqual(left: KernelOperation, right: KernelOperation): boolean {
462
- return left.type === right.type && left.recoveryId === right.recoveryId
466
+ return left.type === right.type && kernelOperationId(left) === kernelOperationId(right)
463
467
  }
464
468
 
465
469
  function invalid(message: string): never {
@@ -75,6 +75,8 @@ export type {
75
75
  AgentStorage,
76
76
  AgentStorageErrorCode,
77
77
  AgentThreadRecord,
78
+ AgentThreadSandboxParams,
79
+ AgentThreadSandboxState,
78
80
  AgentThreadStatus,
79
81
  AgentThreadStore,
80
82
  AppendAgentMessageInput,
@@ -99,6 +101,7 @@ export type {
99
101
  SubagentRunRecord,
100
102
  SubagentRunResult,
101
103
  SubagentRunSpec,
104
+ TransitionAgentThreadSandboxInput,
102
105
  } from "./agents"
103
106
  export {
104
107
  AGENT_RUN_DIAGNOSTIC_CODES,
@@ -117,6 +120,7 @@ export type {
117
120
  AiAccountingOverview,
118
121
  AiAccountingRange,
119
122
  AiAccountingTimeBucket,
123
+ AiAccountingUsage,
120
124
  AiAccountingWorkflowBreakdown,
121
125
  AiBillableMeter,
122
126
  AiBillingIdentity,
@@ -503,6 +507,7 @@ export type {
503
507
  MaterializationWorkEntityKind,
504
508
  MaterializationWorkPage,
505
509
  MaterializationWorkRecord,
510
+ ObjectVectorState,
506
511
  OntologyCommitOriginSelector,
507
512
  OntologyCommitRecord,
508
513
  OntologyCommitRunSelector,
@@ -521,6 +526,7 @@ export type {
521
526
  OntologySourceRecord,
522
527
  OntologySourceStorage,
523
528
  OntologyStorage,
529
+ OntologyVectorStorage,
524
530
  ProjectionOntologyCommitIntent,
525
531
  PurgePublishedOntologyOutboxInput,
526
532
  ReadMaterializationObjectExistenceInput,
@@ -538,6 +544,7 @@ export type {
538
544
  StoredLinkOverride,
539
545
  StoredLinkSlotOverride,
540
546
  StoredObjectOverride,
547
+ StoredObjectVector,
541
548
  StoredSourceAssertion,
542
549
  StoredSourceLinkAssertion,
543
550
  StoredSourceObjectAssertion,
@@ -551,6 +558,14 @@ export type {
551
558
  TerminalSourceMaterializationSummary,
552
559
  } from "./ontology"
553
560
  export { ONTOLOGY_OUTBOX_FAILURE_CODES } from "./ontology"
561
+ export type {
562
+ OntologyVectorIndexingStorage,
563
+ VectorIndexingFailureCode,
564
+ VectorIndexingRequest,
565
+ VectorIndexingUpdate,
566
+ VectorIndexingWork,
567
+ } from "./ontology/vector-indexing"
568
+ export { VECTOR_INDEXING_FAILURE_CODES } from "./ontology/vector-indexing"
554
569
  export type {
555
570
  FinishPipelineRunInput,
556
571
  FinishPipelineStepRunInput,
@@ -667,7 +682,6 @@ export type {
667
682
  TimeseriesPoint,
668
683
  TimeseriesStorage,
669
684
  } from "./timeseries"
670
-
671
685
  export type { Storage, StorageTransactionOptions } from "./types"
672
686
  export type {
673
687
  FinishWebhookRunInput,
@@ -7,6 +7,7 @@ import {
7
7
  compareQueryScalarValues,
8
8
  queryScalarValuesEqual,
9
9
  } from "../../../objects/query/scalar-values"
10
+ import { vectorSources } from "../../../objects/vectors/profile"
10
11
  import type { LinkBatchKey } from "../keys"
11
12
  import {
12
13
  compareObjectLinkCursors,
@@ -132,17 +133,36 @@ export function evaluateObjectQuery(
132
133
  return completeEvaluation(scoredEntries)
133
134
  }
134
135
  case "vector": {
136
+ if (typeof query.vector === "string")
137
+ throw new Error("[Sixb] Vector search text must be embedded before storage execution.")
138
+ const vector = query.vector
135
139
  const input = evaluateObjectQuery(query.input, source)
136
140
  const scoredEntries = input.entries.flatMap((entry) => {
137
- const score = vectorSimilarity(entry.row.properties[query.propertyId], query.vector)
138
- return score === null ? [] : [{ ...entry, score: entry.score + score }]
141
+ const stored = source.getVector?.(entry.row, query.profile)
142
+ if (
143
+ !stored ||
144
+ !query.configuration ||
145
+ stored.configuration !== query.configuration ||
146
+ vectorSources(stored.source, entry.row.properties).sourceFingerprint !==
147
+ stored.sourceFingerprint
148
+ )
149
+ return []
150
+ const score = vectorSimilarity(stored.values, vector)
151
+ return score === null
152
+ ? []
153
+ : [{ ...entry, score: entry.score + Math.max(-1, Math.min(1, score)) }]
139
154
  })
140
- scoredEntries.sort(compareEntriesByRelevance)
155
+ scoredEntries.sort(
156
+ (a, b) =>
157
+ b.score - a.score ||
158
+ Buffer.compare(Buffer.from(a.row.objectTypeId), Buffer.from(b.row.objectTypeId)) ||
159
+ Buffer.compare(Buffer.from(a.row.primaryId), Buffer.from(b.row.primaryId))
160
+ )
141
161
  const limit = Math.max(0, query.k)
142
162
  return {
143
163
  entries: scoredEntries.slice(0, limit),
144
- total: scoredEntries.length,
145
- hasMore: limit < scoredEntries.length,
164
+ total: Math.min(limit, scoredEntries.length),
165
+ hasMore: false,
146
166
  }
147
167
  }
148
168
  case "traverse": {
@@ -539,12 +559,6 @@ function compareSortField(
539
559
  return field.direction === "desc" ? -comparison : comparison
540
560
  }
541
561
 
542
- function compareEntriesByRelevance(left: QueryEntry, right: QueryEntry): number {
543
- return (
544
- right.score - left.score || rowIdentityKey(left.row).localeCompare(rowIdentityKey(right.row))
545
- )
546
- }
547
-
548
562
  function projectRow(row: ObjectRow, properties: readonly string[]): ObjectRow {
549
563
  const projected: Record<string, unknown> = {}
550
564
  for (const propertyId of properties) {
@@ -137,15 +137,16 @@ export function resolveSelectedReadUniverse(
137
137
  links.set(key, redactLinkRow(selected.row, selected.propertyIds))
138
138
  }
139
139
 
140
- return createReadUniverse(source.projectId, objects, links, objectProperties)
140
+ return createReadUniverse(source, objects, links, objectProperties)
141
141
  }
142
142
 
143
143
  function createReadUniverse(
144
- projectId: string,
144
+ source: InMemoryReadSource,
145
145
  objects: ReadonlyMap<string, ObjectRow>,
146
146
  links: ReadonlyMap<string, ObjectLinkRow>,
147
147
  objectProperties: ReadonlyMap<string, ReadonlySet<string>>
148
148
  ): InMemoryReadUniverse {
149
+ const projectId = source.projectId
149
150
  const linksBySource = new Map<string, ObjectLinkRow[]>()
150
151
  for (const link of links.values()) {
151
152
  const key = sourceLinkBucketKey(link.projectId, link.sourceTypeId, link.sourceId)
@@ -159,6 +160,12 @@ function createReadUniverse(
159
160
  links,
160
161
  linksBySource,
161
162
  objectProperties,
163
+ getVector: (ref, profile) => {
164
+ const key = rowIdentityKeyParts(ref.objectTypeId, ref.primaryId)
165
+ if (!objects.has(key)) return undefined
166
+ const value = source.getVector?.(ref, profile)
167
+ return value?.source.every((id) => objectProperties.get(key)?.has(id)) ? value : undefined
168
+ },
162
169
  objectsOfType: (objectTypeId) =>
163
170
  [...objects.values()].filter((row) => row.objectTypeId === objectTypeId),
164
171
  getObject: (objectTypeId, primaryId) =>
@@ -1,8 +1,13 @@
1
+ import type { StoredObjectVector } from "../../ontology/vectors"
1
2
  import type { ObjectLinkRow, ObjectRow } from "../types"
2
3
 
3
4
  /** Project-bound read input shared by ordinary and selected in-memory queries. */
4
5
  export interface InMemoryReadSource {
5
6
  readonly projectId: string
7
+ getVector?(
8
+ ref: { objectTypeId: string; primaryId: string },
9
+ profile: string
10
+ ): StoredObjectVector | undefined
6
11
  objectsOfType(objectTypeId: string): readonly ObjectRow[]
7
12
  getObject(objectTypeId: string, primaryId: string): ObjectRow | undefined
8
13
  outgoingLinks(objectTypeId: string, primaryId: string): Iterable<ObjectLinkRow>
@@ -1,3 +1,4 @@
1
+ import { hasVectorProfile } from "../../../objects/vectors/query"
1
2
  import {
2
3
  assertObjectReadFacetCount,
3
4
  assertObjectReadOutputWithinLimit,
@@ -74,7 +75,10 @@ export function createInMemorySelectedReader(
74
75
  const universe = resolveSelectedReadUniverse(source, plan, limits)
75
76
  const result = evaluateObjectQuery(input.query, universe)
76
77
  return visible({
77
- objects: result.entries.map((entry) => structuredClone(entry.row)),
78
+ objects: result.entries.map((entry) => ({
79
+ ...structuredClone(entry.row),
80
+ ...(hasVectorProfile(input.query) ? { score: entry.score } : {}),
81
+ })),
78
82
  hasMore: result.hasMore,
79
83
  nextPageToken: result.nextPageToken,
80
84
  ...(input.includeTotal === false ? {} : { total: result.total }),
@@ -1,4 +1,6 @@
1
1
  import type { EffectiveLinkSnapshot, EffectiveObjectSnapshot } from "../../../materialization/model"
2
+ import { hasVectorProfile } from "../../../objects/vectors/query"
3
+ import type { StoredObjectVector } from "../../ontology/vectors"
2
4
  import type { ObjectReadExecutionLimits } from "../execution-limits"
3
5
  import { type LinkBatchKey, type ObjectBatchKey, objectBatchKey } from "../keys"
4
6
  import type {
@@ -44,7 +46,14 @@ export interface InMemoryObjectStorageSnapshot {
44
46
  readonly links: Map<string, Map<string, ObjectLinkRow>>
45
47
  }
46
48
 
49
+ type VectorReader = (
50
+ projectId: string,
51
+ ref: { objectTypeId: string; primaryId: string },
52
+ profile: string
53
+ ) => StoredObjectVector | undefined
54
+
47
55
  interface InMemoryObjectMaterializerAdapter {
56
+ setVectorReader(reader: VectorReader): void
48
57
  getExactObjectRow(projectId: string, objectTypeId: string, primaryId: string): ObjectRow | null
49
58
  getExactLinkRow(
50
59
  projectId: string,
@@ -92,8 +101,13 @@ export class InMemoryObjectStorage implements ObjectStorage {
92
101
  private readonly rows = new Map<string, Map<string, ObjectRow>>()
93
102
  private readonly links = new Map<string, Map<string, ObjectLinkRow>>()
94
103
 
104
+ private vectorReader?: VectorReader
105
+
95
106
  constructor() {
96
107
  materializerAdapters.set(this, {
108
+ setVectorReader: (reader) => {
109
+ this.vectorReader = reader
110
+ },
97
111
  getExactObjectRow: (projectId, objectTypeId, primaryId) =>
98
112
  this.getExactObjectRow(projectId, objectTypeId, primaryId),
99
113
  getExactLinkRow: (projectId, ref) => this.getExactLinkRow(projectId, ref),
@@ -243,6 +257,7 @@ export class InMemoryObjectStorage implements ObjectStorage {
243
257
  // Keep indexed access live across writes and snapshot restores; do not capture individual buckets.
244
258
  return {
245
259
  projectId,
260
+ getVector: (ref, profile) => this.vectorReader?.(projectId, ref, profile),
246
261
  objectsOfType: (objectTypeId) => [
247
262
  ...(this.rows.get(objectRowKey(projectId, objectTypeId))?.values() ?? []),
248
263
  ],
@@ -257,7 +272,10 @@ export class InMemoryObjectStorage implements ObjectStorage {
257
272
  async queryObjects(params: QueryObjectsInput): Promise<QueryObjectsResult> {
258
273
  const result = evaluateObjectQuery(params.query, this.readSource(params.projectId))
259
274
  return {
260
- objects: result.entries.map((entry) => entry.row),
275
+ objects: result.entries.map((entry) => ({
276
+ ...entry.row,
277
+ ...(hasVectorProfile(params.query) ? { score: entry.score } : {}),
278
+ })),
261
279
  hasMore: result.hasMore,
262
280
  nextPageToken: result.nextPageToken,
263
281
  ...(params.includeTotal === false ? {} : { total: result.total }),
@@ -14,6 +14,8 @@ import type { LinkBatchKey, ObjectBatchKey } from "./keys"
14
14
  */
15
15
 
16
16
  export interface ObjectRow {
17
+ /** Cosine similarity, present only on named vector query results. */
18
+ score?: number
17
19
  projectId: string
18
20
  objectTypeId: string
19
21
  primaryId: string
@@ -68,6 +68,7 @@ export interface EditOntologyCommitIntent {
68
68
  readonly kind: "edit"
69
69
  readonly mode: "atomic" | "continue"
70
70
  readonly operationCount: number
71
+ readonly vectorWriteCount?: number
71
72
  }
72
73
 
73
74
  export interface ProjectionOntologyCommitIntent {
@@ -1,4 +1,5 @@
1
1
  import type { InMemoryObjectStorage } from "../../objects/in-memory"
2
+ import { getInMemoryObjectMaterializerAdapter } from "../../objects/in-memory"
2
3
  import type { InMemoryTimeseriesStorage } from "../../timeseries/store"
3
4
  import type { OntologyStorage } from ".."
4
5
  import type { ProviderMaterializationTransactionLifecycle } from "../provider"
@@ -29,8 +30,13 @@ interface InMemoryOntologyStorageOptions {
29
30
  readonly executionExists: (projectId: string, executionId: string) => Promise<boolean>
30
31
  }
31
32
 
33
+ import { InMemoryVectorIndexingStorage } from "./vector-indexing"
34
+ import { InMemoryOntologyVectorStorage, vectorObjectKey } from "./vectors"
35
+
32
36
  export class InMemoryOntologyStorage implements OntologyStorage {
33
37
  private readonly state = createInMemoryOntologyState()
38
+ readonly vectorIndexing: InMemoryVectorIndexingStorage
39
+ readonly vectors: InMemoryOntologyVectorStorage
34
40
  readonly commits: InMemoryOntologyCommitStorage
35
41
  readonly sources: InMemoryOntologySourceStorage
36
42
  readonly materializations: InMemoryOntologyMaterializationStorage
@@ -46,6 +52,20 @@ export class InMemoryOntologyStorage implements OntologyStorage {
46
52
  timeseries: InMemoryTimeseriesStorage,
47
53
  options: InMemoryOntologyStorageOptions
48
54
  ) {
55
+ this.vectorIndexing = new InMemoryVectorIndexingStorage(
56
+ this.state.vectorIndexing,
57
+ (session, projectId) => this.materializations.assertVectorSession(session, projectId),
58
+ options.runRootOperation
59
+ )
60
+ this.vectors = new InMemoryOntologyVectorStorage(
61
+ this.state.vectors,
62
+ (session, projectId, commitId) =>
63
+ this.materializations.assertVectorSession(session, projectId, commitId),
64
+ options.runRootOperation
65
+ )
66
+ getInMemoryObjectMaterializerAdapter(objects).setVectorReader((projectId, ref, profile) =>
67
+ this.state.vectors.get(vectorObjectKey(projectId, ref))?.get(profile)
68
+ )
49
69
  this.commits = new InMemoryOntologyCommitStorage(this.state, options.runRootOperation)
50
70
  this.sources = new InMemoryOntologySourceStorage(
51
71
  this.state,
@@ -814,6 +814,19 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
814
814
  return { commit: structuredClone(record) }
815
815
  }
816
816
 
817
+ /** @internal Share the existing transaction/session fence with derived vector writes. */
818
+ assertVectorSession(session: MaterializationSession, projectId: string, commitId?: string): void {
819
+ const active = this.requireSession(session)
820
+ if (
821
+ active.header.commit.projectId !== projectId ||
822
+ (commitId !== undefined && active.header.commit.id !== commitId)
823
+ ) {
824
+ throw new MaterializationValidationError(
825
+ "Vector mutation does not belong to this materialization session."
826
+ )
827
+ }
828
+ }
829
+
817
830
  private requireSession(session: MaterializationSession): SessionState {
818
831
  const value = this.sessions.get(session.providerToken)
819
832
  if (
@@ -18,6 +18,8 @@ import type {
18
18
  StoredSourceAssertion,
19
19
  StoredSourceLinkAssertion,
20
20
  } from "../sources"
21
+ import type { VectorIndexingWork } from "../vector-indexing"
22
+ import type { StoredObjectVector } from "../vectors"
21
23
 
22
24
  export interface InMemorySourceRoot {
23
25
  readonly root: ProjectionEntityRef
@@ -49,6 +51,11 @@ export interface InMemoryStoredLinkSlotOverride extends Omit<StoredLinkSlotOverr
49
51
  }
50
52
 
51
53
  export interface InMemoryOntologyState {
54
+ readonly vectorIndexing: Map<
55
+ string,
56
+ VectorIndexingWork & { projectId: string; dispatchAt: string }
57
+ >
58
+ readonly vectors: Map<string, Map<string, StoredObjectVector>>
52
59
  readonly commitsById: Map<string, OntologyCommitRecord>
53
60
  readonly commitIdByIdempotency: Map<string, string>
54
61
  readonly commitIdByOrigin: Map<string, string>
@@ -73,6 +80,8 @@ export interface InMemoryOntologyStorageTestHooks {
73
80
 
74
81
  export function createInMemoryOntologyState(): InMemoryOntologyState {
75
82
  return {
83
+ vectors: new Map(),
84
+ vectorIndexing: new Map(),
76
85
  commitsById: new Map(),
77
86
  commitIdByIdempotency: new Map(),
78
87
  commitIdByOrigin: new Map(),
@@ -0,0 +1,179 @@
1
+ import type { MaterializationSession } from "../materializations"
2
+ import type { OntologyVectorIndexingStorage, VectorIndexingWork } from "../vector-indexing"
3
+
4
+ export class InMemoryVectorIndexingStorage implements OntologyVectorIndexingStorage {
5
+ constructor(
6
+ private readonly state: Map<
7
+ string,
8
+ VectorIndexingWork & { projectId: string; dispatchAt: string }
9
+ >,
10
+ private readonly assertSession: (session: MaterializationSession, projectId: string) => void,
11
+ private readonly run: <T>(fn: () => T) => Promise<T>
12
+ ) {}
13
+
14
+ async schedule(input: Parameters<OntologyVectorIndexingStorage["schedule"]>[0]) {
15
+ this.assertSession(input.session, input.projectId)
16
+ if (input.deleted.length) {
17
+ const deleted = new Set(
18
+ input.deleted.map((ref) => JSON.stringify([ref.objectTypeId, ref.primaryId]))
19
+ )
20
+ for (const [key, work] of this.state) {
21
+ if (
22
+ work.projectId === input.projectId &&
23
+ deleted.has(JSON.stringify([work.ref.objectTypeId, work.ref.primaryId]))
24
+ )
25
+ this.state.delete(key)
26
+ }
27
+ }
28
+ for (const request of input.requests) {
29
+ const key = JSON.stringify([
30
+ input.projectId,
31
+ request.ref.objectTypeId,
32
+ request.ref.primaryId,
33
+ request.profile,
34
+ ])
35
+ this.state.set(
36
+ key,
37
+ structuredClone({
38
+ ...request,
39
+ projectId: input.projectId,
40
+ status: "pending",
41
+ availableAt: input.availableAt,
42
+ dispatchAt: input.availableAt,
43
+ })
44
+ )
45
+ }
46
+ }
47
+
48
+ async complete(input: Parameters<OntologyVectorIndexingStorage["complete"]>[0]) {
49
+ this.assertSession(input.session, input.projectId)
50
+ for (const entry of input.entries) {
51
+ const key = JSON.stringify([
52
+ input.projectId,
53
+ entry.ref.objectTypeId,
54
+ entry.ref.primaryId,
55
+ entry.profile,
56
+ ])
57
+ const work = this.state.get(key)
58
+ if (
59
+ work?.configuration === entry.configuration &&
60
+ work.sourceFingerprint === entry.sourceFingerprint
61
+ ) {
62
+ this.state.delete(key)
63
+ }
64
+ }
65
+ }
66
+
67
+ async dispatched(input: Parameters<OntologyVectorIndexingStorage["dispatched"]>[0]) {
68
+ await this.run(() => {
69
+ for (const [key, work] of this.state)
70
+ if (work.projectId === input.projectId && input.ids.includes(work.id))
71
+ this.state.set(key, { ...work, dispatchAt: input.nextDispatchAt })
72
+ })
73
+ }
74
+ async get(input: Parameters<OntologyVectorIndexingStorage["get"]>[0]) {
75
+ return this.run(() =>
76
+ structuredClone(
77
+ [...this.state.values()].find(
78
+ (work) => work.projectId === input.projectId && work.id === input.id
79
+ ) ?? null
80
+ )
81
+ )
82
+ }
83
+
84
+ async getBatch(input: Parameters<OntologyVectorIndexingStorage["getBatch"]>[0]) {
85
+ return this.run(() =>
86
+ structuredClone(
87
+ [...this.state.values()]
88
+ .filter((work) => work.projectId === input.projectId && work.batchId === input.batchId)
89
+ .sort((a, b) => a.id.localeCompare(b.id))
90
+ )
91
+ )
92
+ }
93
+
94
+ async getBatchMember(input: Parameters<OntologyVectorIndexingStorage["getBatchMember"]>[0]) {
95
+ return this.run(() => {
96
+ const work = this.state.get(
97
+ JSON.stringify([
98
+ input.projectId,
99
+ input.ref.objectTypeId,
100
+ input.ref.primaryId,
101
+ input.profile,
102
+ ])
103
+ )
104
+ return work?.batchId === input.batchId ? structuredClone(work) : null
105
+ })
106
+ }
107
+
108
+ async updateBatch(input: Parameters<OntologyVectorIndexingStorage["updateBatch"]>[0]) {
109
+ return this.run(() => {
110
+ const updates = new Map(input.updates.map((update) => [update.id, update]))
111
+ const matches = [...this.state.entries()].filter(
112
+ ([, work]) =>
113
+ work.projectId === input.projectId && updates.get(work.id)?.expectedStatus === work.status
114
+ )
115
+ if (input.requireAll && matches.length !== input.updates.length) return false
116
+ for (const [key, work] of matches) {
117
+ const update = updates.get(work.id)!
118
+ this.state.set(
119
+ key,
120
+ structuredClone({
121
+ ...work,
122
+ status: update.status,
123
+ availableAt: update.availableAt,
124
+ values: update.values ?? work.values,
125
+ error: update.error,
126
+ })
127
+ )
128
+ }
129
+ return true
130
+ })
131
+ }
132
+
133
+ async listDue(input: Parameters<OntologyVectorIndexingStorage["listDue"]>[0]) {
134
+ return this.run(() =>
135
+ [...this.state.values()]
136
+ .filter(
137
+ (work) =>
138
+ work.projectId === input.projectId &&
139
+ work.status !== "failed" &&
140
+ work.dispatchAt <= input.now
141
+ )
142
+ .sort((a, b) => a.dispatchAt.localeCompare(b.dispatchAt) || a.id.localeCompare(b.id))
143
+ .slice(0, input.limit)
144
+ .map(({ values: _values, ...work }) => structuredClone(work))
145
+ )
146
+ }
147
+
148
+ async update(input: Parameters<OntologyVectorIndexingStorage["update"]>[0]) {
149
+ return this.run(() => {
150
+ for (const [key, work] of this.state) {
151
+ if (
152
+ work.projectId !== input.projectId ||
153
+ work.id !== input.id ||
154
+ work.status !== input.expectedStatus
155
+ )
156
+ continue
157
+ this.state.set(
158
+ key,
159
+ structuredClone({
160
+ ...work,
161
+ status: input.status,
162
+ availableAt: input.availableAt,
163
+ values: input.values ?? work.values,
164
+ error: input.error,
165
+ })
166
+ )
167
+ return true
168
+ }
169
+ return false
170
+ })
171
+ }
172
+
173
+ async remove(input: Parameters<OntologyVectorIndexingStorage["remove"]>[0]) {
174
+ await this.run(() => {
175
+ for (const [key, work] of this.state)
176
+ if (work.projectId === input.projectId && work.id === input.id) this.state.delete(key)
177
+ })
178
+ }
179
+ }
@@ -0,0 +1,73 @@
1
+ import { MaterializationConflictError } from "../../../materialization/errors"
2
+ import type { MaterializationSession } from "../materializations"
3
+ import type { OntologyVectorStorage, StoredObjectVector } from "../vectors"
4
+
5
+ export function vectorObjectKey(projectId: string, ref: StoredObjectVector["ref"]): string {
6
+ return JSON.stringify([projectId, ref.objectTypeId, ref.primaryId])
7
+ }
8
+
9
+ export class InMemoryOntologyVectorStorage implements OntologyVectorStorage {
10
+ constructor(
11
+ private readonly state: Map<string, Map<string, StoredObjectVector>>,
12
+ private readonly assertSession: (
13
+ session: MaterializationSession,
14
+ projectId: string,
15
+ commitId?: string
16
+ ) => void,
17
+ private readonly runRootOperation: <T>(run: () => T) => Promise<T>
18
+ ) {}
19
+
20
+ async list(input: Parameters<OntologyVectorStorage["list"]>[0]) {
21
+ return this.listBatch({ projectId: input.projectId, refs: [input.ref] })
22
+ }
23
+
24
+ async listBatch(input: Parameters<OntologyVectorStorage["listBatch"]>[0]) {
25
+ return this.runRootOperation(() =>
26
+ [...new Set(input.refs.map((ref) => vectorObjectKey(input.projectId, ref)))].flatMap((key) =>
27
+ [...(this.state.get(key)?.values() ?? [])].map(({ values: _values, ...metadata }) =>
28
+ structuredClone(metadata)
29
+ )
30
+ )
31
+ )
32
+ }
33
+
34
+ async removeBatch(input: Parameters<OntologyVectorStorage["removeBatch"]>[0]) {
35
+ this.assertSession(input.session, input.projectId)
36
+ for (const entry of input.entries) {
37
+ await this.remove({ session: input.session, projectId: input.projectId, ...entry })
38
+ }
39
+ }
40
+
41
+ async write(input: Parameters<OntologyVectorStorage["write"]>[0]) {
42
+ this.assertSession(input.session, input.projectId, input.value.lastCommitId)
43
+ const key = vectorObjectKey(input.projectId, input.value.ref)
44
+ const profiles = this.state.get(key) ?? new Map<string, StoredObjectVector>()
45
+ this.assertRevision(profiles.get(input.value.profile), input.expectedCommitId)
46
+ profiles.set(input.value.profile, structuredClone(input.value))
47
+ this.state.set(key, profiles)
48
+ }
49
+
50
+ async writeBatch(input: Parameters<OntologyVectorStorage["writeBatch"]>[0]): Promise<void> {
51
+ for (const entry of input.entries) {
52
+ await this.write({ session: input.session, projectId: input.projectId, ...entry })
53
+ }
54
+ }
55
+
56
+ async remove(input: Parameters<OntologyVectorStorage["remove"]>[0]) {
57
+ this.assertSession(input.session, input.projectId)
58
+ const key = vectorObjectKey(input.projectId, input.ref)
59
+ const profiles = this.state.get(key)
60
+ this.assertRevision(profiles?.get(input.profile), input.expectedCommitId)
61
+ profiles?.delete(input.profile)
62
+ if (profiles?.size === 0) this.state.delete(key)
63
+ }
64
+
65
+ private assertRevision(current: StoredObjectVector | undefined, expected: string | null) {
66
+ if ((current?.lastCommitId ?? null) !== expected) {
67
+ throw new MaterializationConflictError(
68
+ "effective-state",
69
+ "Vector changed since it was prepared."
70
+ )
71
+ }
72
+ }
73
+ }