@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
@@ -77,3 +77,4 @@ export {
77
77
  telemetryPointSortKey,
78
78
  telemetrySeriesKey,
79
79
  } from "./refs"
80
+ export type { ObjectVectorWrite, PreparedObjectVector } from "./vectors"
@@ -3,6 +3,7 @@ import type { EventOrigin } from "../events/envelope"
3
3
  import type { PropertyChange, PropertyChangeMap } from "../events/property-changes"
4
4
  import type { JsonValue } from "../json"
5
5
  import type { ProjectionProtocolIdentity, ProjectionRunFailureCode } from "../projections/types"
6
+ import type { ObjectVectorWrite } from "./vectors"
6
7
 
7
8
  export type { ProjectionProtocolIdentity } from "../projections/types"
8
9
 
@@ -125,6 +126,7 @@ export type OntologyEditCommit =
125
126
  readonly source:
126
127
  | { readonly kind: "action"; readonly actionId: string; readonly runId: string }
127
128
  | { readonly kind: "runtime"; readonly requestId: string }
129
+ readonly vectorWrites?: readonly ObjectVectorWrite[]
128
130
  readonly expectedObjects: readonly ExpectedObjectRevision[]
129
131
  readonly expectedLinks: readonly ExpectedLinkRevision[]
130
132
  readonly expectedLinkScopes: readonly ExpectedLinkScopeRevision[]
@@ -0,0 +1,18 @@
1
+ import type { ExpectedObjectRevision, OntologyObjectRef } from "./model"
2
+
3
+ /** Internal observation captured before embedding and fenced by the atomic vector write. */
4
+ export interface PreparedObjectVector {
5
+ readonly projectId: string
6
+ readonly ref: OntologyObjectRef
7
+ readonly profile: string
8
+ readonly configuration: string
9
+ readonly text: string
10
+ readonly sourceFingerprint: string
11
+ readonly expectedObject: Extract<ExpectedObjectRevision, { exists: true }>
12
+ readonly expectedVectorCommitId: string | null
13
+ }
14
+
15
+ export interface ObjectVectorWrite {
16
+ readonly input: PreparedObjectVector
17
+ readonly values: readonly number[]
18
+ }
@@ -124,3 +124,17 @@ finish still commit atomically.
124
124
  Keep use-case entrypoints explicit. Share mechanics only after they have identical semantics; do
125
125
  not hide projection candidate lifecycle, edit continuation, or telemetry batching behind a generic
126
126
  workflow engine.
127
+
128
+ ## Vector profiles
129
+
130
+ The SDK's explicit `index()` captures an internal `PreparedObjectVector`: object/profile identity,
131
+ configuration and source fingerprints, canonical input text, object revision and current vector
132
+ commit id. Source values stay local to preparation rather than being copied into the write payload.
133
+ Text is ordered JSON pairs of source names and values; missing/null values become `null`, while
134
+ empty strings remain distinct. The configuration includes an encoding version.
135
+
136
+ The configured model runs outside the transaction. Atomic edits then verify the object revision,
137
+ source/configuration fingerprints and vector commit id before storing validated float32 values.
138
+ An unrelated edit may conservatively reject in-flight indexing even when an existing vector remains
139
+ valid. A provider failure leaves the current representation untouched and is never retried here.
140
+ Effective-state changes invalidate affected profiles in the same transaction as the object write.
@@ -49,6 +49,16 @@ export function createMaterializerContext(input: {
49
49
  "Materializer Ontology does not match the Ontology pinned by its projection registry."
50
50
  )
51
51
  }
52
+ if (
53
+ (!input.storage.ontology.vectors || !input.storage.ontology.vectorIndexing) &&
54
+ input.ontology
55
+ .listObjectTypes()
56
+ .some((type) => Object.keys(type.search?.vectors ?? {}).length > 0)
57
+ ) {
58
+ throw new MaterializationValidationError(
59
+ "Storage does not support transactional vector profiles and automatic indexing."
60
+ )
61
+ }
52
62
  const dependencies = input.dependencies ?? {}
53
63
  const maxSerializationRetries = dependencies.maxSerializationRetries ?? 2
54
64
  if (!Number.isSafeInteger(maxSerializationRetries) || maxSerializationRetries < 0) {
@@ -34,6 +34,8 @@ import { compileEditExecutionUnits, type EditExecutionUnit } from "./execution-u
34
34
  import { loadEditWorkingState } from "./load-state"
35
35
  import { applyEditOperation, type EditUndoJournal, undoEditJournal } from "./operations"
36
36
  import { stageEditPlan } from "./plan"
37
+ import { authorizeVectorIndexingCommit } from "./vector-authority"
38
+ import { commitVectorWrites } from "./vectors"
37
39
  import type { EditWorkingState } from "./working-state"
38
40
 
39
41
  type NormalizedEditCommit = ReturnType<typeof normalizeOntologyEditCommit>
@@ -106,6 +108,7 @@ async function validateMutationExecution(
106
108
  input: NormalizedEditCommit,
107
109
  execution: MaterializerExecution
108
110
  ): Promise<void> {
111
+ if (await authorizeVectorIndexingCommit(storage, projectId, input, execution)) return
109
112
  if (input.source.kind !== "action") {
110
113
  assertRuntimeMutationExecution(execution)
111
114
  return
@@ -182,7 +185,8 @@ async function executeEditTransaction(
182
185
  workingState,
183
186
  editPlanContext(command)
184
187
  )
185
- await drainStagedWork(context, storage.ontology.materializations, session)
188
+ await drainStagedWork(context, storage, session)
189
+ await commitVectorWrites(context, storage, command.input, command.identity.commitId, session)
186
190
  const eventCount = await drainStagedEvents(
187
191
  context,
188
192
  storage.ontology.materializations,
@@ -234,6 +238,9 @@ function buildEditCommit(
234
238
  kind: "edit",
235
239
  mode: command.input.mode,
236
240
  operationCount: command.input.operations.length,
241
+ ...(command.input.mode === "atomic" && command.input.vectorWrites?.length
242
+ ? { vectorWriteCount: command.input.vectorWrites.length }
243
+ : {}),
237
244
  },
238
245
  committedAt: command.identity.committedAt,
239
246
  }
@@ -0,0 +1,108 @@
1
+ import {
2
+ MaterializationConflictError,
3
+ MaterializationValidationError,
4
+ } from "../../materialization/errors"
5
+ import type { OntologyEditCommit } from "../../materialization/model"
6
+ import { objectRefKey } from "../../materialization/refs"
7
+ import type { ObjectVectorWrite } from "../../materialization/vectors"
8
+ import type { Storage } from "../../storage"
9
+ import type { VectorIndexingWork } from "../../storage/ontology/vector-indexing"
10
+ import type { MaterializerExecution } from "../execution/scope"
11
+
12
+ /** Kernel indexing can publish only its persisted results, never change business data. */
13
+ export async function authorizeVectorIndexingCommit(
14
+ storage: Storage,
15
+ projectId: string,
16
+ input: OntologyEditCommit,
17
+ execution: MaterializerExecution
18
+ ): Promise<boolean> {
19
+ const executor = execution.scope.execution.executor
20
+ if (executor.type !== "kernel" || executor.operation.type !== "ontology.indexVectors")
21
+ return false
22
+ if (
23
+ input.mode !== "atomic" ||
24
+ input.source.kind !== "runtime" ||
25
+ input.operations.length ||
26
+ !input.vectorWrites?.length ||
27
+ input.expectedLinks.length ||
28
+ input.expectedLinkScopes.length
29
+ ) {
30
+ throw new MaterializationValidationError(
31
+ "Vector indexing authority only permits its persisted vector writes."
32
+ )
33
+ }
34
+ const writes = input.vectorWrites!
35
+ const refs = new Set(writes.map((write) => objectRefKey(write.input.ref)))
36
+ if (
37
+ input.expectedObjects.length !== refs.size ||
38
+ input.expectedObjects.some((expected) => !refs.has(objectRefKey(expected.ref)))
39
+ ) {
40
+ throw new MaterializationValidationError(
41
+ "Vector indexing must fence exactly its written objects."
42
+ )
43
+ }
44
+
45
+ const indexing = storage.ontology.vectorIndexing
46
+ const indexingId = executor.operation.indexingId
47
+ const single = await indexing?.get({ projectId, id: indexingId })
48
+ if (single && writes.length !== 1) {
49
+ throw new MaterializationValidationError(
50
+ "Individual indexing authority only permits one vector write."
51
+ )
52
+ }
53
+
54
+ // Multi-object publication reads membership/results once, not once per object.
55
+ let members: readonly VectorIndexingWork[]
56
+ if (single) {
57
+ members = [single]
58
+ } else if (writes.length === 1) {
59
+ const member = await indexing?.getBatchMember({
60
+ projectId,
61
+ batchId: indexingId,
62
+ ref: writes[0]!.input.ref,
63
+ profile: writes[0]!.input.profile,
64
+ })
65
+ members = member ? [member] : []
66
+ } else {
67
+ members = (await indexing?.getBatch({ projectId, batchId: indexingId })) ?? []
68
+ }
69
+
70
+ const byProfile = new Map(
71
+ members.map((work) => [JSON.stringify([objectRefKey(work.ref), work.profile]), work])
72
+ )
73
+ const source = execution.scope.execution.source
74
+
75
+ for (const write of writes) {
76
+ const work = byProfile.get(JSON.stringify([objectRefKey(write.input.ref), write.input.profile]))
77
+ if (!work || work.status !== "ready") {
78
+ throw new MaterializationConflictError(
79
+ "effective-state",
80
+ "Vector indexing work is no longer ready."
81
+ )
82
+ }
83
+ if (
84
+ source.type !== "ontologyCommit" ||
85
+ source.commitId !== work.sourceCommitId ||
86
+ !matchesStoredResult(write, work)
87
+ ) {
88
+ throw new MaterializationValidationError(
89
+ "Vector indexing authority only permits its current prepared representation."
90
+ )
91
+ }
92
+ }
93
+ return true
94
+ }
95
+
96
+ function matchesStoredResult(write: ObjectVectorWrite, work: VectorIndexingWork): boolean {
97
+ const prepared = write.input
98
+ return (
99
+ prepared.ref.objectTypeId === work.ref.objectTypeId &&
100
+ prepared.ref.primaryId === work.ref.primaryId &&
101
+ prepared.profile === work.profile &&
102
+ prepared.configuration === work.configuration &&
103
+ prepared.sourceFingerprint === work.sourceFingerprint &&
104
+ work.values !== undefined &&
105
+ work.values.length === write.values.length &&
106
+ work.values.every((value, index) => value === write.values[index])
107
+ )
108
+ }
@@ -0,0 +1,100 @@
1
+ import {
2
+ MaterializationConflictError,
3
+ MaterializationValidationError,
4
+ } from "../../materialization/errors"
5
+ import type { OntologyEditCommit } from "../../materialization/model"
6
+ import { objectRefKey } from "../../materialization/refs"
7
+ import { normalizeVector, vectorConfiguration, vectorSources } from "../../objects/vectors/profile"
8
+ import type { Storage } from "../../storage"
9
+ import { objectBatchKey } from "../../storage/objects/keys"
10
+ import type { MaterializationSession, OntologyVectorStorage } from "../../storage/ontology"
11
+ import type { MaterializerContext } from "../context"
12
+
13
+ export async function commitVectorWrites(
14
+ context: MaterializerContext,
15
+ storage: Storage,
16
+ input: OntologyEditCommit,
17
+ commitId: string,
18
+ session: MaterializationSession
19
+ ): Promise<void> {
20
+ if (input.mode !== "atomic" || !input.vectorWrites?.length) return
21
+ const vectors = storage.ontology.vectors
22
+ if (!vectors)
23
+ throw new MaterializationValidationError("Storage does not support vector profiles.")
24
+ const rows = await storage.objects.getByPrimaryIdBatch({
25
+ projectId: context.projectId,
26
+ items: input.vectorWrites.map((write) => write.input.ref),
27
+ })
28
+ const expectations = new Map(
29
+ input.expectedObjects.map((expected) => [objectRefKey(expected.ref), expected])
30
+ )
31
+ const entries: Parameters<OntologyVectorStorage["writeBatch"]>[0]["entries"][number][] = []
32
+ const seen = new Set<string>()
33
+ for (const write of input.vectorWrites) {
34
+ const prepared = write.input
35
+ const key = JSON.stringify([objectRefKey(prepared.ref), prepared.profile])
36
+ if (seen.has(key)) throw new MaterializationValidationError(`Duplicate vector write: ${key}`)
37
+ seen.add(key)
38
+ const profileDefinition = context.ontology.resolveObjectType(prepared.ref.objectTypeId).search
39
+ ?.vectors?.[prepared.profile]
40
+ if (
41
+ prepared.projectId !== context.projectId ||
42
+ !profileDefinition ||
43
+ vectorConfiguration(profileDefinition) !== prepared.configuration
44
+ ) {
45
+ throw new MaterializationConflictError(
46
+ "effective-state",
47
+ "Vector profile configuration changed; index it again."
48
+ )
49
+ }
50
+ const expected = expectations.get(objectRefKey(prepared.ref))
51
+ if (
52
+ !expected?.exists ||
53
+ !prepared.expectedObject?.exists ||
54
+ objectRefKey(prepared.expectedObject.ref) !== objectRefKey(prepared.ref) ||
55
+ expected.version !== prepared.expectedObject.version ||
56
+ expected.lastCommitId !== prepared.expectedObject.lastCommitId
57
+ ) {
58
+ throw new MaterializationValidationError(
59
+ "Vector writes must fence their prepared object revision."
60
+ )
61
+ }
62
+ const row = rows.get(objectBatchKey(prepared.ref.objectTypeId, prepared.ref.primaryId))
63
+ if (
64
+ !row ||
65
+ row.version !== expected.version ||
66
+ row.lastCommitId !== expected.lastCommitId ||
67
+ vectorSources(profileDefinition.source, row.properties).sourceFingerprint !==
68
+ prepared.sourceFingerprint
69
+ ) {
70
+ throw new MaterializationConflictError(
71
+ "effective-state",
72
+ "Vector sources changed; index the profile again."
73
+ )
74
+ }
75
+ entries.push({
76
+ expectedCommitId: prepared.expectedVectorCommitId,
77
+ value: {
78
+ ref: prepared.ref,
79
+ profile: prepared.profile,
80
+ configuration: prepared.configuration,
81
+ source: profileDefinition.source,
82
+ sourceFingerprint: prepared.sourceFingerprint,
83
+ values: normalizeVector(write.values, profileDefinition.model.definition.dimensions),
84
+ lastCommitId: commitId,
85
+ },
86
+ })
87
+ }
88
+
89
+ await vectors.writeBatch({ session, projectId: context.projectId, entries })
90
+ await storage.ontology.vectorIndexing?.complete({
91
+ session,
92
+ projectId: context.projectId,
93
+ entries: input.vectorWrites.map(({ input: prepared }) => ({
94
+ ref: prepared.ref,
95
+ profile: prepared.profile,
96
+ configuration: prepared.configuration,
97
+ sourceFingerprint: prepared.sourceFingerprint,
98
+ })),
99
+ })
100
+ }
@@ -1,3 +1,4 @@
1
+ import { withFailureMessage } from "../../errors/failure-message"
1
2
  import type { JsonValue } from "../../json"
2
3
  import { MaterializationValidationError } from "../../materialization/errors"
3
4
  import type {
@@ -113,8 +114,11 @@ export function validateEffectiveObject(
113
114
  property.required &&
114
115
  properties[property.id] === undefined
115
116
  ) {
116
- throw new Error(
117
- `[Sixb] Missing required property '${property.id}' for object type '${objectType.id}'`
117
+ throw withFailureMessage(
118
+ new Error(
119
+ `[Sixb] Missing required property '${property.id}' for object type '${objectType.id}'`
120
+ ),
121
+ `Missing required property '${objectType.id}.${property.id}'.`
118
122
  )
119
123
  }
120
124
  }
@@ -175,6 +179,9 @@ function materializationValidation<T>(run: () => T): T {
175
179
  return run()
176
180
  } catch (error) {
177
181
  if (error instanceof MaterializationValidationError) throw error
178
- throw new MaterializationValidationError(error instanceof Error ? error.message : String(error))
182
+ throw new MaterializationValidationError(
183
+ error instanceof Error ? error.message : String(error),
184
+ { cause: error }
185
+ )
179
186
  }
180
187
  }
@@ -0,0 +1,84 @@
1
+ import { randomUUID } from "node:crypto"
2
+ import type { OntologyObjectRef } from "../../materialization/model"
3
+ import { vectorConfiguration, vectorSources } from "../../objects/vectors/profile"
4
+ import type { Storage } from "../../storage"
5
+ import { objectBatchKey } from "../../storage/objects/keys"
6
+ import type { MaterializationSession } from "../../storage/ontology"
7
+ import type { VectorIndexingRequest } from "../../storage/ontology/vector-indexing"
8
+ import type { MaterializerContext } from "../context"
9
+ import type { MaterializationPlanItem } from "../execution/plan-stream"
10
+
11
+ /** Source assertions are not effective values: schedule only after conflict resolution. */
12
+ export async function scheduleVectorChanges(
13
+ context: Pick<MaterializerContext, "projectId" | "ontology" | "clock">,
14
+ storage: Storage,
15
+ items: readonly MaterializationPlanItem[],
16
+ session: MaterializationSession,
17
+ projection = false
18
+ ): Promise<void> {
19
+ const indexing = storage.ontology.vectorIndexing
20
+ if (!indexing) return
21
+ const upserts = items
22
+ .filter((item) => item.kind === "object-upsert")
23
+ .filter(
24
+ (item) =>
25
+ Object.keys(
26
+ context.ontology.resolveObjectType(item.value.row.ref.objectTypeId).search?.vectors ?? {}
27
+ ).length > 0
28
+ )
29
+ const previous = await storage.objects.getByPrimaryIdBatch({
30
+ projectId: context.projectId,
31
+ items: upserts.map((item) => item.value.row.ref),
32
+ })
33
+ const requests: VectorIndexingRequest[] = []
34
+ const deleted: OntologyObjectRef[] = []
35
+ // Groups exist only for this materialization page and are persisted in its transaction.
36
+ const groups = new Map<string, { id: string; count: number; bytes: number }>()
37
+ for (const item of items) {
38
+ if (item.kind === "object-delete") {
39
+ deleted.push(item.value.ref)
40
+ continue
41
+ }
42
+ if (item.kind !== "object-upsert") continue
43
+ const row = item.value.row
44
+ const profiles = context.ontology.resolveObjectType(row.ref.objectTypeId).search?.vectors ?? {}
45
+ const before = previous.get(objectBatchKey(row.ref.objectTypeId, row.ref.primaryId))
46
+ for (const [profile, definition] of Object.entries(profiles)) {
47
+ const { sourceFingerprint, text } = vectorSources(definition.source, row.properties)
48
+ if (
49
+ before &&
50
+ vectorSources(definition.source, before.properties).sourceFingerprint === sourceFingerprint
51
+ )
52
+ continue
53
+ const configuration = vectorConfiguration(definition)
54
+ const bytes = Buffer.byteLength(text)
55
+ const key = JSON.stringify([row.ref.objectTypeId, profile, configuration, row.lastCommitId])
56
+ let group = projection ? groups.get(key) : undefined
57
+ if (projection && (!group || group.count === 32 || group.bytes + bytes > 32_768)) {
58
+ group = { id: randomUUID(), count: 0, bytes: 0 }
59
+ groups.set(key, group)
60
+ }
61
+ if (group) {
62
+ group.count++
63
+ group.bytes += bytes
64
+ }
65
+ requests.push({
66
+ ...(group ? { batchId: group.id } : {}),
67
+ id: randomUUID(),
68
+ ref: row.ref,
69
+ profile,
70
+ sourceFingerprint,
71
+ configuration,
72
+ sourceCommitId: row.lastCommitId,
73
+ })
74
+ }
75
+ }
76
+ if (requests.length || deleted.length)
77
+ await indexing.schedule({
78
+ projectId: context.projectId,
79
+ session,
80
+ requests,
81
+ deleted,
82
+ availableAt: context.clock().toISOString(),
83
+ })
84
+ }
@@ -0,0 +1,47 @@
1
+ import { objectRefKey } from "../../materialization/refs"
2
+ import { vectorSources } from "../../objects/vectors/profile"
3
+ import type { MaterializationSession } from "../../storage/ontology"
4
+ import type { OntologyVectorStorage } from "../../storage/ontology/vectors"
5
+ import type { MaterializationPlanItem } from "../execution/plan-stream"
6
+
7
+ /** Invalidate a bounded materialization page, including stored profiles no longer declared. */
8
+ export async function invalidateVectorChanges(
9
+ projectId: string,
10
+ vectors: OntologyVectorStorage | undefined,
11
+ items: readonly MaterializationPlanItem[],
12
+ session: MaterializationSession
13
+ ): Promise<void> {
14
+ if (!vectors) return
15
+ const changes = new Map(
16
+ items.flatMap((item) => {
17
+ if (item.kind !== "object-upsert" && item.kind !== "object-delete") return []
18
+ const ref = item.kind === "object-upsert" ? item.value.row.ref : item.value.ref
19
+ return [[objectRefKey(ref), { ref, item }] as const]
20
+ })
21
+ )
22
+ if (!changes.size) return
23
+
24
+ const stored = await vectors.listBatch({
25
+ projectId,
26
+ refs: [...changes.values()].map(({ ref }) => ref),
27
+ })
28
+ const removals: Parameters<OntologyVectorStorage["removeBatch"]>[0]["entries"][number][] = []
29
+ for (const entry of stored) {
30
+ const change = changes.get(objectRefKey(entry.ref))
31
+ if (!change) continue
32
+ const { item } = change
33
+ if (
34
+ item.kind === "object-upsert" &&
35
+ entry.source.every((id) => {
36
+ const value = item.value.row.properties[id]
37
+ return value === undefined || value === null || typeof value === "string"
38
+ }) &&
39
+ vectorSources(entry.source, item.value.row.properties).sourceFingerprint ===
40
+ entry.sourceFingerprint
41
+ )
42
+ continue
43
+
44
+ removals.push({ ref: entry.ref, profile: entry.profile, expectedCommitId: entry.lastCommitId })
45
+ }
46
+ if (removals.length) await vectors.removeBatch({ session, projectId, entries: removals })
47
+ }
@@ -1,5 +1,6 @@
1
1
  import { MaterializationValidationError } from "../../materialization/errors"
2
2
  import { utf8JsonByteLength } from "../../materialization/refs"
3
+ import type { Storage } from "../../storage"
3
4
  import type {
4
5
  MaterializationSession,
5
6
  MaterializationWorkRecord,
@@ -7,6 +8,8 @@ import type {
7
8
  } from "../../storage/ontology"
8
9
  import type { MaterializerContext } from "../context"
9
10
  import { sequenceMaterializationEvent } from "../effective/build-events"
11
+ import { scheduleVectorChanges } from "../effective/vector-indexing"
12
+ import { invalidateVectorChanges } from "../effective/vectors"
10
13
  import { throwIfAborted } from "../shared/abort"
11
14
  import { chunkBySize } from "../shared/chunking"
12
15
  import type { TimedCommitIdentity } from "../shared/identity"
@@ -46,15 +49,20 @@ export async function stageWorkBounded(
46
49
  }
47
50
 
48
51
  export async function drainStagedWork(
49
- context: BatchingContext,
50
- storage: OntologyMaterializationStorage,
52
+ context: Pick<MaterializerContext, "batching" | "projectId" | "ontology" | "clock">,
53
+ transactionStorage: Storage,
51
54
  session: MaterializationSession,
52
- signal?: AbortSignal
55
+ signal?: AbortSignal,
56
+ projection = false
53
57
  ): Promise<void> {
58
+ const ontologyStorage = transactionStorage.ontology
59
+ const storage = ontologyStorage.materializations
54
60
  let phase: number | null = null
55
61
  let pending: MaterializationPlanItem[] = []
56
62
  const flush = async () => {
57
63
  if (pending.length === 0) return
64
+ await scheduleVectorChanges(context, transactionStorage, pending, session, projection)
65
+ await invalidateVectorChanges(context.projectId, ontologyStorage.vectors, pending, session)
58
66
  await applyItems(context, storage, session, pending, signal)
59
67
  pending = []
60
68
  }
@@ -347,7 +347,7 @@ async function executeProjectionTransaction(
347
347
  ready,
348
348
  origin
349
349
  )
350
- await drainStagedWork(context, storage.ontology.materializations, session, command.signal)
350
+ await drainStagedWork(context, storage, session, command.signal, true)
351
351
  const eventCount = await drainStagedEvents(
352
352
  context,
353
353
  storage.ontology.materializations,
@@ -269,6 +269,8 @@ export function normalizeOntologyEditCommit(input: OntologyEditCommit): Ontology
269
269
  })
270
270
 
271
271
  if (input.mode === "continue") {
272
+ if ("vectorWrites" in input)
273
+ throw new MaterializationValidationError("Vector writes require an atomic commit.")
272
274
  return Object.freeze({
273
275
  mode: "continue",
274
276
  source: Object.freeze({
@@ -293,12 +295,21 @@ export function normalizeOntologyEditCommit(input: OntologyEditCommit): Ontology
293
295
  kind: "runtime" as const,
294
296
  requestId: normalizeNonblank(input.source.requestId, "Runtime request id"),
295
297
  })
298
+ if (input.vectorWrites?.length && (operations.length || input.source.kind !== "runtime")) {
299
+ throw new MaterializationValidationError(
300
+ "Vector writes require a dedicated atomic runtime commit."
301
+ )
302
+ }
303
+ if (input.vectorWrites !== undefined) assertJsonValue(input.vectorWrites, "Vector writes")
296
304
  const expectedObjects = input.expectedObjects.map(normalizeExpectedObject)
297
305
  const expectedLinks = input.expectedLinks.map(normalizeExpectedLink)
298
306
  const expectedLinkScopes = input.expectedLinkScopes.map(normalizeExpectedLinkScope)
299
307
 
300
308
  return Object.freeze({
301
309
  mode: "atomic",
310
+ ...(input.vectorWrites === undefined
311
+ ? {}
312
+ : { vectorWrites: structuredClone(input.vectorWrites) }),
302
313
  source,
303
314
  operations: Object.freeze(operations),
304
315
  expectedObjects: deduplicateExpectations(
@@ -404,7 +404,7 @@ async function executeTelemetryTransaction(
404
404
  ...(command.execution.actor === undefined ? {} : { actor: command.execution.actor }),
405
405
  }
406
406
  )
407
- await drainStagedWork(context, storage.ontology.materializations, session)
407
+ await drainStagedWork(context, storage, session)
408
408
  const eventCount = await drainStagedEvents(
409
409
  context,
410
410
  storage.ontology.materializations,
@@ -0,0 +1,38 @@
1
+ import { RuntimeError } from "../runtime/errors"
2
+ import type { ModelRef } from "./catalog"
3
+
4
+ interface ModelBinding {
5
+ readonly providerId: string
6
+ readonly modelId: string
7
+ }
8
+
9
+ interface ModelEntry<TModel> extends ModelRef {
10
+ readonly model: TModel
11
+ }
12
+
13
+ /** Private index shared by model families; default selection belongs to each family. */
14
+ export function indexModelBindings<TModel extends ModelBinding>(
15
+ models: readonly TModel[],
16
+ kind: string,
17
+ validate: (model: TModel, index: number) => void
18
+ ) {
19
+ const byRef = new Map<string, ModelEntry<TModel>>()
20
+
21
+ for (const [index, model] of models.entries()) {
22
+ validate(model, index)
23
+ const key = JSON.stringify([model.providerId, model.modelId])
24
+ if (byRef.has(key)) {
25
+ throw new RuntimeError(
26
+ `[Sixb] Duplicate ${kind} model '${model.providerId}/${model.modelId}' in 'models.${kind}'. Each provider and model id pair may be configured once.`
27
+ )
28
+ }
29
+
30
+ byRef.set(key, Object.freeze({ provider: model.providerId, modelId: model.modelId, model }))
31
+ }
32
+
33
+ const entries = Object.freeze([...byRef.values()])
34
+ return Object.freeze({
35
+ list: () => entries,
36
+ getByRef: (ref: ModelRef) => byRef.get(JSON.stringify([ref.provider, ref.modelId])) ?? null,
37
+ })
38
+ }