@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
@@ -9,6 +9,8 @@ import type {
9
9
  import { normalizeDecimalValue } from "../../ontology"
10
10
  import { formatUnknownObjectTypeMessage } from "../../ontology/errors"
11
11
  import { validatePropertyValue, validateSchemaValue } from "../../ontology/validation"
12
+ import { MAX_VECTOR_K, normalizeVector, vectorConfiguration } from "../vectors/profile"
13
+ import { hasVectorProfile, isVectorProfileQuery } from "../vectors/query"
12
14
  import { ObjectQueryValidationError } from "./errors"
13
15
  import type {
14
16
  ObjectExpansion,
@@ -18,6 +20,7 @@ import type {
18
20
  ObjectQueryResultShape,
19
21
  ObjectQuerySetOperation,
20
22
  ObjectQuerySortField,
23
+ ObjectQueryVector,
21
24
  QueryScalarKind,
22
25
  } from "./ir"
23
26
  import { normalizeObjectQuery } from "./normalize"
@@ -172,6 +175,7 @@ export function validateObjectQueryWithAdmission(
172
175
  ): AdmittedObjectQuery {
173
176
  const normalized = options.normalize === false ? query : normalizeObjectQuery(query)
174
177
  const ctx = createValidationContext(options, admission)
178
+ validateVectorComposition(query, ctx)
175
179
  const validation = validateQueryNode(normalized, "$", ctx)
176
180
 
177
181
  if (ctx.issues.length > 0) {
@@ -194,6 +198,7 @@ export function collectObjectQueryValidationIssues(
194
198
  ): readonly ObjectQueryValidationIssue[] {
195
199
  const normalized = options.normalize === false ? query : normalizeObjectQuery(query)
196
200
  const ctx = createValidationContext(options, NOOP_QUERY_ADMISSION)
201
+ validateVectorComposition(query, ctx)
197
202
  validateQueryNode(normalized, "$", ctx)
198
203
  return ctx.issues
199
204
  }
@@ -205,6 +210,16 @@ export function resolveObjectQueryResultShape(
205
210
  return validateObjectQuery(query, options).result
206
211
  }
207
212
 
213
+ function validateVectorComposition(query: ObjectQuery, ctx: QueryValidationContext): void {
214
+ if (hasVectorProfile(query) && !isVectorProfileQuery(query))
215
+ ctx.issues.push({
216
+ path: "$",
217
+ code: "vector.composition",
218
+ message:
219
+ "Vector profiles support one top-k over one concrete type, with filters before ranking and optional limit/project after it.",
220
+ })
221
+ }
222
+
208
223
  function createValidationContext(
209
224
  options: ObjectQueryValidationOptions,
210
225
  admission: ObjectQuerySemanticAdmission
@@ -312,18 +327,15 @@ function dispatchQueryNode(
312
327
  }
313
328
  case "vector": {
314
329
  const input = validateQueryNode(query.input, `${path}.input`, ctx)
315
- validateVectorQuery(
316
- query.vector,
317
- query.propertyId,
318
- query.k,
319
- input.result,
320
- input.admissionState,
321
- path,
322
- ctx
323
- )
324
330
  return {
325
331
  result: input.result,
326
- query: { ...query, input: input.query },
332
+ query: validateVectorProfileQuery(
333
+ { ...query, input: input.query },
334
+ input.result,
335
+ input.admissionState,
336
+ path,
337
+ ctx
338
+ ),
327
339
  admissionState: input.admissionState,
328
340
  }
329
341
  }
@@ -845,67 +857,63 @@ function validateTextQuery(
845
857
  return fieldsByObjectType ? { fieldsByObjectType } : {}
846
858
  }
847
859
 
848
- function validateVectorQuery(
849
- vector: readonly number[],
850
- propertyId: string,
851
- k: number,
860
+ function validateVectorProfileQuery(
861
+ query: ObjectQueryVector,
852
862
  shape: ObjectQueryResultShape,
853
- admissionState: ObjectQueryAdmissionState,
863
+ state: ObjectQueryAdmissionState,
854
864
  path: string,
855
865
  ctx: QueryValidationContext
856
- ): void {
857
- if (!Number.isInteger(k) || k <= 0) {
858
- addIssue(ctx, path, "invalid_vector_k", "Vector query k must be a positive integer")
859
- }
860
-
861
- if (vector.length === 0) {
862
- addIssue(ctx, path, "empty_vector", "Vector query vector must not be empty")
863
- }
864
-
865
- if (vector.some((value) => typeof value !== "number" || !Number.isFinite(value))) {
866
- addIssue(ctx, path, "invalid_vector_value", "Vector query vector values must be finite numbers")
866
+ ): ObjectQueryVector {
867
+ const types = getObjectTypesForResult(shape, ctx)
868
+ if (
869
+ types.length !== 1 ||
870
+ !Number.isSafeInteger(query.k) ||
871
+ query.k < 1 ||
872
+ query.k > MAX_VECTOR_K
873
+ ) {
874
+ addIssue(
875
+ ctx,
876
+ path,
877
+ "invalid_vector_profile_query",
878
+ `Vector search requires one type, one profile and k between 1 and ${MAX_VECTOR_K}`
879
+ )
880
+ return query
867
881
  }
868
-
869
- for (const objectType of getObjectTypesForResult(shape, ctx)) {
870
- admitProperty(ctx, {
871
- state: admissionState,
872
- propertyId,
873
- objectTypeId: objectType.id,
874
- use: "vector",
882
+ let input = query.input
883
+ while (input.kind === "filter") input = input.input
884
+ if (input.kind !== "start" || input.includeSubtypes)
885
+ addIssue(
886
+ ctx,
875
887
  path,
876
- })
877
- const property = getProperty(objectType, propertyId)
878
- if (!property) {
879
- addIssue(
880
- ctx,
881
- path,
882
- "unknown_vector_property",
883
- `Vector query references unknown property '${propertyId}' on '${objectType.id}'`
884
- )
885
- continue
886
- }
887
-
888
- assertStaticSearchProperty(objectType.id, property, "vector query", path, ctx)
889
- assertQueryFlag(objectType.id, property, "vector", "vector query", path, ctx)
890
-
891
- if (objectType.search?.vector?.property !== propertyId) {
892
- addIssue(
893
- ctx,
894
- path,
895
- "vector_profile_missing",
896
- `Object type '${objectType.id}' must declare search.vector.property '${propertyId}' before vector search can use it`
897
- )
898
- }
899
-
900
- const schema = resolveSchemaForProperty(property, objectType.id, ctx, path)
901
- if (schema && !isVectorSchema(schema, ctx)) {
902
- addIssue(
903
- ctx,
904
- path,
905
- "vector_property_not_numeric_array",
906
- `Vector query property '${propertyId}' on '${objectType.id}' must be a numeric array`
907
- )
888
+ "unsupported_vector_composition",
889
+ "Vector profile input must be a type with optional filters."
890
+ )
891
+ const objectType = types[0]!
892
+ const profile =
893
+ query.profile === undefined ? undefined : objectType.search?.vectors?.[query.profile]
894
+ if (!profile) {
895
+ addIssue(ctx, path, "unknown_vector_profile", `Unknown vector profile: ${query.profile}`)
896
+ return query
897
+ }
898
+ for (const propertyId of profile.source)
899
+ admitProperty(ctx, { state, propertyId, objectTypeId: objectType.id, use: "vector", path })
900
+ let values = query.vector
901
+ try {
902
+ if (typeof values === "string") {
903
+ if (!values.trim() || values.length > 8000) {
904
+ throw new Error("Vector search text must be nonempty and at most 8000 characters.")
905
+ }
906
+ } else {
907
+ values = normalizeVector(values, profile.model.definition.dimensions)
908
908
  }
909
+ } catch (error) {
910
+ addIssue(ctx, path, "invalid_vector", error instanceof Error ? error.message : "Invalid vector")
911
+ }
912
+ return {
913
+ ...query,
914
+ vector: values,
915
+ source: [...profile.source],
916
+ configuration: vectorConfiguration(profile),
909
917
  }
910
918
  }
911
919
 
@@ -1515,7 +1523,7 @@ function assertStaticSearchProperty(
1515
1523
  function assertQueryFlag(
1516
1524
  objectTypeId: string,
1517
1525
  property: Property,
1518
- flag: "text" | "vector",
1526
+ flag: "text",
1519
1527
  context: string,
1520
1528
  path: string,
1521
1529
  ctx: QueryValidationContext
@@ -1607,13 +1615,6 @@ function isContainsSchema(schema: Schema): boolean {
1607
1615
  )
1608
1616
  }
1609
1617
 
1610
- function isVectorSchema(schema: Schema, ctx: QueryValidationContext): boolean {
1611
- if (typeof schema === "string") return false
1612
- if (schema.type !== "array") return false
1613
- const itemSchema = resolveSchema(schema.items, ctx.valueTypesById)
1614
- return itemSchema === "integer" || itemSchema === "double" || itemSchema === "decimal"
1615
- }
1616
-
1617
1618
  function keyForTypeIds(typeIds: readonly string[]): string {
1618
1619
  return uniqueStrings(typeIds).sort().join("\0")
1619
1620
  }
@@ -3,6 +3,7 @@
3
3
  * Created via `sixb.objects(MyType).byId("id-1")`, it provides link/unlink and
4
4
  * per-property telemetry appenders with compile-time unit and value type safety.
5
5
  */
6
+
6
7
  import type { ActionDefinition } from "../../actions"
7
8
  import type { ObjectLink, ObjectRef, ValueType } from "../../ontology"
8
9
  import { OntologyValidationError } from "../../ontology/errors"
@@ -16,6 +17,7 @@ import {
16
17
  import type { ExecutionObjectContext, ResolvedLinkContext } from "../context"
17
18
  import { removeLink as removeLinkLeaf, upsertLink as upsertLinkLeaf } from "../link"
18
19
  import { deleteObject, restoreObject } from "../object"
20
+ import { createObjectVectorHandle } from "../vectors/handle"
19
21
  import { createTelemetryChannel } from "./telemetry-channel"
20
22
 
21
23
  type ObjectRefInput = ObjectRef
@@ -26,6 +28,7 @@ export function createObjectByIdHandle<
26
28
  TValueTypes extends readonly ValueType[],
27
29
  >(ctx: ExecutionObjectContext, primaryId: string): ObjectByIdHandle<TObjectType, TValueTypes> {
28
30
  const objectHandle = {
31
+ vector: (profileName: string) => createObjectVectorHandle(ctx, primaryId, profileName),
29
32
  get: async () => {
30
33
  const row = await ctx.objectReader.getByPrimaryId({
31
34
  objectTypeId: ctx.objectType.id,
@@ -73,6 +73,7 @@ export function createObjectSet<
73
73
  })
74
74
 
75
75
  const resolvedCtx: ExecutionObjectContext = {
76
+ embeddingModels: params.embeddingModels,
76
77
  projectId,
77
78
  broker,
78
79
  ontology,
@@ -93,14 +93,17 @@ class ObjectQueryBuilderImpl<
93
93
  }
94
94
 
95
95
  vector(
96
- property: PropertyToken<TObjectType["id"], string>,
97
- vector: readonly number[],
96
+ profile: string,
97
+ vector: string,
98
98
  options: { k: number }
99
99
  ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
100
+ if (typeof profile !== "string" || typeof vector !== "string") {
101
+ throw new Error("[Sixb] Vector search requires a named profile and search text")
102
+ }
100
103
  return this.withQuery({
101
104
  kind: "vector",
102
105
  input: this.ir,
103
- propertyId: property.id,
106
+ profile,
104
107
  vector,
105
108
  k: options.k,
106
109
  })
@@ -227,9 +230,11 @@ class ObjectQueryBuilderImpl<
227
230
  async list(): Promise<ListResult<TwinObject<TObjectType, TValueTypes>>>
228
231
  async list(options: {
229
232
  includeTotal: false
233
+ signal?: AbortSignal
230
234
  }): Promise<ListResultWithoutTotal<TwinObject<TObjectType, TValueTypes>>>
231
235
  async list(options: {
232
236
  includeTotal?: true
237
+ signal?: AbortSignal
233
238
  }): Promise<ListResult<TwinObject<TObjectType, TValueTypes>>>
234
239
  async list(
235
240
  options?: ObjectQueryListOptions
@@ -239,6 +244,7 @@ class ObjectQueryBuilderImpl<
239
244
  > {
240
245
  const result = await this.params.executor.list(this.ir, {
241
246
  includeTotal: options?.includeTotal,
247
+ signal: options?.signal,
242
248
  })
243
249
  const objects = result.objects.map(
244
250
  (row) => row as unknown as TwinObject<TObjectType, TValueTypes>
@@ -11,6 +11,7 @@ import type { ObjectQuery } from "../query/ir"
11
11
  import type { ValidatedObjectQuery } from "../query/validate"
12
12
 
13
13
  export type ObjectQueryExecutorRow = {
14
+ score?: number
14
15
  primaryId: string
15
16
  objectTypeId: string
16
17
  properties: Record<string, unknown>
@@ -47,7 +48,7 @@ export type ObjectQueryExecutorFacetRequest = {
47
48
  export interface ObjectQueryExecutor {
48
49
  list(
49
50
  query: ObjectQuery,
50
- options?: { includeTotal?: boolean }
51
+ options?: { includeTotal?: boolean; signal?: AbortSignal }
51
52
  ): Promise<ObjectQueryExecutorListResult>
52
53
  count(query: ObjectQuery): Promise<number>
53
54
  exists(query: ObjectQuery): Promise<boolean>
@@ -19,9 +19,13 @@ export function createRuntimeQueryExecutor(params: {
19
19
  const { ontology, objectReader } = params
20
20
 
21
21
  return {
22
- async list(query: ObjectQuery, options?: { includeTotal?: boolean }) {
22
+ async list(query: ObjectQuery, options?: { includeTotal?: boolean; signal?: AbortSignal }) {
23
23
  try {
24
- return await objectReader.executeQuery({ query, includeTotal: options?.includeTotal })
24
+ return await objectReader.executeQuery({
25
+ query,
26
+ includeTotal: options?.includeTotal,
27
+ signal: options?.signal,
28
+ })
25
29
  } catch (error) {
26
30
  if (error instanceof ObjectQueryPlanningError) {
27
31
  throw addSdkPlanningHints(error)
@@ -0,0 +1,59 @@
1
+ # Vector indexing
2
+
3
+ A named profile identifies a derived representation, separate from object properties.
4
+
5
+ ```text
6
+ Effective object change → invalidate stale vector + persist latest intent (one transaction)
7
+ ProjectionWorker → durable queue → project AI admission → provider → save result → fenced commit
8
+ ```
9
+
10
+ `materializer/effective/vector-indexing.ts` compares effective source fingerprints after projection
11
+ conflict resolution, including managed overrides. New objects schedule every profile. Unrelated
12
+ changes schedule nothing. Deletion removes intent; each new generation replaces the old id.
13
+ There is no historical scan or configuration-only backfill.
14
+
15
+ The queue owns delivery leases. Ontology storage owns intent keyed by project/object/profile, plus
16
+ its generation id and `pending → running → ready` state. Dispatch has a separate due time so long
17
+ queues cannot starve later entries. Reconciliation can enqueue the same generation safely.
18
+
19
+ `indexing.ts` exposes only a core-owned processing capability. Kernel authority cannot bind the
20
+ public domain SDK. `ontology.indexVectors` authorizes only the persisted results of its work item or durable group.
21
+ The Materializer checks membership, identity, values and each object/vector revision in the transaction. Execution provenance
22
+ references the source ontology commit; requester and groups are empty, so only project budgets apply.
23
+
24
+ The durable `running` fence precedes admission, so superseded work cannot reserve budget. The
25
+ provider starts only after both succeed. An admission rejection returns work to pending for retry.
26
+ Redelivered `running` work has an uncertain provider outcome: fail visibly through `onError`, never
27
+ silently repeat inference. The provider may have billed a lost response. Failures remain inspectable until superseded or explicitly indexed.
28
+
29
+ Persist `ready` values before committing. On unrelated edits, reprepare the object revision and reuse
30
+ those values. Source changes, deletion/recreation, or configuration mismatch discard obsolete work.
31
+ A vector-only commit never schedules itself. Manual indexing remains available through authorized
32
+ SDK executions; its valid result also makes queued work unnecessary.
33
+
34
+ Projection replacement assigns `batchId` within each materialization page: same object type,
35
+ profile, configuration and source commit, at most 32 members / 32 KiB of serialized source text.
36
+ Membership is stored alongside intent in the activation transaction; there is no fill timer, process
37
+ buffer or cross-run aggregation. An oversized text is isolated, never truncated.
38
+
39
+ Dispatch uses the group id. Processing reads current members, drops obsolete work, and splits them
40
+ to the adapter's optional `EmbeddingModel.batching` count / UTF-8 byte bounds. Unknown bounds or
41
+ oversized inputs use individual calls. Search, explicit indexing and managed edits stay individual.
42
+ Each actual provider request produces one usage/cost record, under the project's group execution.
43
+ Admission claims all prepared members atomically before reserving budget; a superseded member
44
+ aborts that claim. Results become ready atomically for surviving members, then publish together in
45
+ one materialization transaction. PostgreSQL groups vector writes and intent cleanup in SQL; SQLite
46
+ reuses prepared statements within that transaction. Every object and vector retains its own revision
47
+ fence. A conflict rolls back publication and reprepares the current subset without inference. After
48
+ three conflicts, individual publication lets stable peers finish while contended members are deferred.
49
+ Restarted ready members only retry storage; running members fail with an unknown outcome.
50
+ A partly processed group publishes ready members together and resumes other members individually.
51
+
52
+ Network calls never hold storage transactions. Applications without projections do not start this
53
+ indexing consumer. Byte bounds are conservative transport eligibility, not the accounting layer's
54
+ token estimate; they do not reject or truncate a text that can still be sent individually.
55
+
56
+ Terminal failures persist a canonical `SixbFailure` before `onError`: `vector.model_unavailable`,
57
+ `vector.response_invalid`, or `vector.outcome_unknown` for interrupted calls. Unclassified failures
58
+ use `internal.unexpected`. These codes never authorize automatic inference retries. Accounting uses
59
+ `ModelExecutionSession`; its existing recovery consumer can replay accounting without inference.
@@ -0,0 +1,91 @@
1
+ import { randomUUID } from "node:crypto"
2
+ import { assertCanEdit } from "../../authorization"
3
+ import { AuthorizationError } from "../../authorization/errors"
4
+ import { MaterializationValidationError } from "../../materialization/errors"
5
+ import type { PreparedObjectVector } from "../../materialization/vectors"
6
+ import { sameEmbeddingModel } from "../../models/embedding-model"
7
+ import { getOntologyMutationRuntime } from "../../runtime/ontology-mutations"
8
+ import type { ExecutionObjectContext } from "../context"
9
+ import { normalizeVector, vectorConfiguration, vectorSources } from "./profile"
10
+ import type { ObjectVectorHandle } from "./types"
11
+
12
+ export function createObjectVectorHandle(
13
+ ctx: ExecutionObjectContext,
14
+ primaryId: string,
15
+ profileName: string
16
+ ): ObjectVectorHandle {
17
+ const ref = Object.freeze({ objectTypeId: ctx.objectType.id, primaryId })
18
+ const profileDefinition = ctx.ontology.resolveObjectType(ref.objectTypeId).search?.vectors?.[
19
+ profileName
20
+ ]
21
+ if (!profileDefinition)
22
+ throw new MaterializationValidationError(`Unknown vector profile: ${profileName}`)
23
+ const vectors = ctx.storage.ontology.vectors
24
+ if (!vectors)
25
+ throw new MaterializationValidationError("Storage does not support vector profiles.")
26
+
27
+ const assertReadable = async () => {
28
+ const allowed = await ctx.objectReader.canReadObjectPropertiesBatch({
29
+ items: profileDefinition.source.map((propertyId) => ({ ...ref, propertyId })),
30
+ })
31
+ if (allowed.some((value) => !value))
32
+ throw new AuthorizationError(
33
+ `view:object:${ref.objectTypeId}`,
34
+ "[Sixb] Vector profile requires access to all its source properties."
35
+ )
36
+ }
37
+
38
+ return Object.freeze({
39
+ async index(): Promise<void> {
40
+ assertCanEdit(ctx, ref.objectTypeId)
41
+ await assertReadable()
42
+ const mutations = getOntologyMutationRuntime(ctx)
43
+ const model = ctx.embeddingModels?.getByRef({
44
+ provider: profileDefinition.model.providerId,
45
+ modelId: profileDefinition.model.modelId,
46
+ })?.model
47
+ if (!model || !sameEmbeddingModel(model, profileDefinition.model)) {
48
+ throw new MaterializationValidationError(
49
+ `Vector profile '${profileName}' requires its configured embedding model.`
50
+ )
51
+ }
52
+ const row = await ctx.objectReader.getByPrimaryId(ref)
53
+ if (!row) throw new MaterializationValidationError("Cannot index a missing object.")
54
+ const current = (await vectors.list({ projectId: ctx.projectId, ref })).find(
55
+ (entry) => entry.profile === profileName
56
+ )
57
+ const input: PreparedObjectVector = {
58
+ projectId: ctx.projectId,
59
+ ref,
60
+ profile: profileName,
61
+ configuration: vectorConfiguration(profileDefinition),
62
+ ...vectorSources(profileDefinition.source, row.properties),
63
+ expectedObject: { ref, exists: true, version: row.version, lastCommitId: row.lastCommitId },
64
+ expectedVectorCommitId: current?.lastCommitId ?? null,
65
+ }
66
+
67
+ // Network work never holds a storage transaction or retries an obsolete computation.
68
+ const result = await model.embed({ texts: [input.text] })
69
+ if (!Array.isArray(result?.vectors) || result.vectors.length !== 1) {
70
+ throw new MaterializationValidationError(
71
+ "Embedding model must return exactly one vector for one input text."
72
+ )
73
+ }
74
+ const values = normalizeVector(
75
+ result.vectors[0]!,
76
+ profileDefinition.model.definition.dimensions
77
+ )
78
+ assertCanEdit(ctx, ref.objectTypeId)
79
+ await assertReadable()
80
+ await mutations.commitEdits({
81
+ mode: "atomic",
82
+ source: { kind: "runtime", requestId: randomUUID() },
83
+ operations: [],
84
+ vectorWrites: [{ input, values }],
85
+ expectedObjects: [input.expectedObject],
86
+ expectedLinks: [],
87
+ expectedLinkScopes: [],
88
+ })
89
+ },
90
+ })
91
+ }
@@ -0,0 +1,163 @@
1
+ import type { OntologyMaterializerContract } from "../../materializer/materializer"
2
+ import type { EmbeddingBatchLimits } from "../../models/embedding-model"
3
+ import type { SixbHostContext } from "../../runtime/types"
4
+ import type { VectorIndexingWork } from "../../storage/ontology/vector-indexing"
5
+ import { generateVectors, type PreparedIndexingWork } from "./indexing-generate"
6
+ import { indexingScope, prepare, VectorIndexingDeferred } from "./indexing-shared"
7
+ import { processVector } from "./indexing-single"
8
+ import { storeVectorBatch } from "./indexing-store-batch"
9
+
10
+ /** Membership was persisted by one projection commit; there is no fill timer or memory queue. */
11
+ export async function processVectorBatch(
12
+ runtime: SixbHostContext,
13
+ materializer: OntologyMaterializerContract,
14
+ batchId: string,
15
+ batch: readonly VectorIndexingWork[],
16
+ attempt: number,
17
+ signal: AbortSignal
18
+ ): Promise<void> {
19
+ if (batch.some((work) => work.status !== "pending")) {
20
+ await resumeBatch(runtime, materializer, batchId, batch, attempt, signal)
21
+ return
22
+ }
23
+
24
+ const entries = await prepareBatch(runtime, batch, signal)
25
+ const first = entries[0]
26
+ if (!first) return
27
+
28
+ const limits = getBatchLimits(runtime, first.work)
29
+ if (!limits) {
30
+ // Unknown provider batch limits: embed each object/profile individually.
31
+ for (const { work } of entries) {
32
+ await processVector(runtime, materializer, work.id, attempt, signal)
33
+ }
34
+ return
35
+ }
36
+
37
+ assertCompatibleEntries(entries, first.work)
38
+ const scope = await indexingScope(runtime, first.work, batchId)
39
+
40
+ for (const group of partition(entries, limits)) {
41
+ if (group.length === 1) {
42
+ await processVector(runtime, materializer, group[0]!.work.id, attempt, signal)
43
+ } else {
44
+ await generateVectors(runtime, group, scope, attempt, signal)
45
+ }
46
+ }
47
+
48
+ await storeVectorBatch(runtime, materializer, batchId, scope, signal)
49
+ }
50
+
51
+ /** Resume storage or terminalize interrupted calls; never repeat paid inference. */
52
+ async function resumeBatch(
53
+ runtime: SixbHostContext,
54
+ materializer: OntologyMaterializerContract,
55
+ batchId: string,
56
+ batch: readonly VectorIndexingWork[],
57
+ attempt: number,
58
+ signal: AbortSignal
59
+ ): Promise<void> {
60
+ const ready = batch.find((work) => work.status === "ready")
61
+ if (ready) {
62
+ const scope = await indexingScope(runtime, ready, batchId)
63
+ await storeVectorBatch(runtime, materializer, batchId, scope, signal)
64
+ }
65
+
66
+ for (const work of batch) {
67
+ if (work.status !== "ready") {
68
+ await processVector(runtime, materializer, work.id, attempt, signal)
69
+ }
70
+ }
71
+ }
72
+
73
+ async function prepareBatch(
74
+ runtime: SixbHostContext,
75
+ batch: readonly VectorIndexingWork[],
76
+ signal: AbortSignal
77
+ ): Promise<PreparedIndexingWork[]> {
78
+ const availableAt = batch.reduce(
79
+ (latest, work) => (work.availableAt > latest ? work.availableAt : latest),
80
+ ""
81
+ )
82
+ if (Date.parse(availableAt) > Date.now()) {
83
+ throw new VectorIndexingDeferred(availableAt)
84
+ }
85
+
86
+ const entries: PreparedIndexingWork[] = []
87
+ const indexing = runtime.storage.ontology.vectorIndexing!
88
+
89
+ for (const work of batch) {
90
+ signal.throwIfAborted()
91
+ const input = await prepare(runtime, work)
92
+
93
+ if (input) {
94
+ entries.push({ work, input })
95
+ } else {
96
+ await indexing.remove({ projectId: runtime.projectId, id: work.id })
97
+ }
98
+ }
99
+
100
+ return entries
101
+ }
102
+
103
+ function getBatchLimits(
104
+ runtime: SixbHostContext,
105
+ work: VectorIndexingWork
106
+ ): EmbeddingBatchLimits | undefined {
107
+ const profile = runtime.ontology.resolveObjectType(work.ref.objectTypeId).search!.vectors![
108
+ work.profile
109
+ ]!
110
+
111
+ return runtime.embeddingModels?.getByRef({
112
+ provider: profile.model.providerId,
113
+ modelId: profile.model.modelId,
114
+ })?.model.batching
115
+ }
116
+
117
+ /** Do not mix commits or configurations, even with malformed storage membership. */
118
+ function assertCompatibleEntries(
119
+ entries: readonly PreparedIndexingWork[],
120
+ reference: VectorIndexingWork
121
+ ): void {
122
+ const incompatible = entries.some(
123
+ ({ work }) =>
124
+ work.sourceCommitId !== reference.sourceCommitId ||
125
+ work.ref.objectTypeId !== reference.ref.objectTypeId ||
126
+ work.profile !== reference.profile ||
127
+ work.configuration !== reference.configuration
128
+ )
129
+
130
+ if (incompatible) {
131
+ throw new Error("[Sixb] Incompatible vector batch membership.")
132
+ }
133
+ }
134
+
135
+ /** Split an already durable, bounded page; never wait for more work or truncate input. */
136
+ function* partition(entries: readonly PreparedIndexingWork[], limits: EmbeddingBatchLimits) {
137
+ let group: PreparedIndexingWork[] = []
138
+ let bytes = 0
139
+
140
+ for (const entry of entries) {
141
+ const size = Buffer.byteLength(entry.input.text)
142
+ const exceedsGroupLimit =
143
+ group.length >= limits.maxInputs ||
144
+ bytes + size > limits.maxTotalInputBytes ||
145
+ size > limits.maxInputBytes
146
+
147
+ if (group.length > 0 && exceedsGroupLimit) {
148
+ yield group
149
+ group = []
150
+ bytes = 0
151
+ }
152
+
153
+ if (size > limits.maxInputBytes || size > limits.maxTotalInputBytes) {
154
+ yield [entry]
155
+ continue
156
+ }
157
+
158
+ group.push(entry)
159
+ bytes += size
160
+ }
161
+
162
+ if (group.length > 0) yield group
163
+ }