@sixb/core 0.1.10 → 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 (702) 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/blob-storage/types.d.ts +4 -1
  33. package/dist/blob-storage/types.d.ts.map +1 -1
  34. package/dist/bootstrap/index.js +50 -46
  35. package/dist/bootstrap/index.js.map +1 -1
  36. package/dist/{chunk-17kfctj6.js → chunk-0mza4xb2.js} +2 -2
  37. package/dist/chunk-2c4j899j.js.map +1 -1
  38. package/dist/{chunk-g00bfdq6.js → chunk-2cxv584m.js} +12 -56
  39. package/dist/{chunk-g00bfdq6.js.map → chunk-2cxv584m.js.map} +3 -3
  40. package/dist/{chunk-e0d1rzef.js → chunk-2h63nrde.js} +380 -97
  41. package/dist/chunk-2h63nrde.js.map +20 -0
  42. package/dist/{chunk-rtk71jzp.js → chunk-3bnt2wna.js} +2 -2
  43. package/dist/{chunk-awbhdqyc.js → chunk-3ghw2t5q.js} +1 -1
  44. package/dist/{chunk-b19g04jk.js → chunk-3h7ctayx.js} +1 -1
  45. package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
  46. package/dist/{chunk-5hz0fnca.js → chunk-4k53sm9e.js} +6 -2
  47. package/dist/chunk-4k53sm9e.js.map +12 -0
  48. package/dist/chunk-4ph94nhd.js +81 -0
  49. package/dist/chunk-4ph94nhd.js.map +10 -0
  50. package/dist/chunk-58geavnf.js +29 -0
  51. package/dist/chunk-58geavnf.js.map +10 -0
  52. package/dist/{chunk-0y39rgsb.js → chunk-5tetw4hn.js} +1 -1
  53. package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
  54. package/dist/chunk-69266efg.js.map +12 -0
  55. package/dist/{chunk-g7knyczr.js → chunk-6ma8dvzc.js} +121 -53
  56. package/dist/chunk-6ma8dvzc.js.map +15 -0
  57. package/dist/{chunk-skz0hst3.js → chunk-7c2g3sz9.js} +6 -86
  58. package/dist/{chunk-skz0hst3.js.map → chunk-7c2g3sz9.js.map} +3 -3
  59. package/dist/{chunk-976rxdpx.js → chunk-7qnvhtcd.js} +93 -17
  60. package/dist/{chunk-976rxdpx.js.map → chunk-7qnvhtcd.js.map} +7 -6
  61. package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
  62. package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
  63. package/dist/chunk-91kcnbf0.js.map +10 -0
  64. package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
  65. package/dist/chunk-96yw3pwd.js.map +10 -0
  66. package/dist/chunk-98cw09sw.js.map +2 -2
  67. package/dist/{chunk-93csa55g.js → chunk-axndsymr.js} +10 -4
  68. package/dist/chunk-axndsymr.js.map +11 -0
  69. package/dist/{chunk-r7fj830t.js → chunk-b768c93y.js} +100 -29
  70. package/dist/chunk-b768c93y.js.map +36 -0
  71. package/dist/{chunk-dz5h08xv.js → chunk-bbaa1fet.js} +24 -9
  72. package/dist/{chunk-dz5h08xv.js.map → chunk-bbaa1fet.js.map} +4 -4
  73. package/dist/{chunk-7apz6hg4.js → chunk-bet1rb9h.js} +8 -4
  74. package/dist/chunk-bet1rb9h.js.map +10 -0
  75. package/dist/{chunk-358caqf5.js → chunk-bfjv1adk.js} +2 -2
  76. package/dist/{chunk-b0ec55a1.js → chunk-bg2bs62d.js} +5 -5
  77. package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
  78. package/dist/chunk-cd234ba4.js.map +14 -0
  79. package/dist/chunk-d62kjtbg.js.map +1 -1
  80. package/dist/chunk-dmn70ztd.js.map +2 -2
  81. package/dist/{chunk-28ja2cjs.js → chunk-e1f1sqba.js} +39 -53
  82. package/dist/{chunk-28ja2cjs.js.map → chunk-e1f1sqba.js.map} +5 -6
  83. package/dist/{chunk-ap0g1g74.js → chunk-eyjzgav0.js} +39 -4
  84. package/dist/chunk-eyjzgav0.js.map +12 -0
  85. package/dist/{chunk-rb1xx120.js → chunk-f06sf7rr.js} +9 -5
  86. package/dist/chunk-f06sf7rr.js.map +11 -0
  87. package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
  88. package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
  89. package/dist/{chunk-38zv5rkr.js → chunk-g2gezsg5.js} +1 -1
  90. package/dist/{chunk-38zv5rkr.js.map → chunk-g2gezsg5.js.map} +2 -2
  91. package/dist/{chunk-nmbxcaqx.js → chunk-g50nxqs5.js} +53 -66
  92. package/dist/chunk-g50nxqs5.js.map +18 -0
  93. package/dist/{chunk-1824gssz.js → chunk-gswwr35f.js} +4 -4
  94. package/dist/{chunk-92vk7gta.js → chunk-gzt6v1ja.js} +1 -1
  95. package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
  96. package/dist/chunk-hgqpcmyr.js.map +12 -0
  97. package/dist/{chunk-gqh45d2n.js → chunk-hkw8rykk.js} +2 -2
  98. package/dist/{chunk-f4w3yp4f.js → chunk-hzw7yv5g.js} +104 -21
  99. package/dist/chunk-hzw7yv5g.js.map +13 -0
  100. package/dist/{chunk-5c7ga8zz.js → chunk-jjwhy3rs.js} +5 -5
  101. package/dist/chunk-kept9cdd.js +29 -0
  102. package/dist/chunk-kept9cdd.js.map +10 -0
  103. package/dist/{chunk-ftv470j8.js → chunk-m7cx05vp.js} +247 -16
  104. package/dist/{chunk-ftv470j8.js.map → chunk-m7cx05vp.js.map} +14 -10
  105. package/dist/{chunk-qyeptdyv.js → chunk-mdnw7nj8.js} +10 -6
  106. package/dist/chunk-mdnw7nj8.js.map +15 -0
  107. package/dist/{chunk-5p1v802y.js → chunk-nzsy3xrp.js} +253 -86
  108. package/dist/chunk-nzsy3xrp.js.map +46 -0
  109. package/dist/chunk-p1683c0v.js +104 -0
  110. package/dist/chunk-p1683c0v.js.map +11 -0
  111. package/dist/chunk-p6r1ex7t.js +93 -0
  112. package/dist/chunk-p6r1ex7t.js.map +10 -0
  113. package/dist/{chunk-p5vcsw9c.js → chunk-qm535afa.js} +10 -10
  114. package/dist/{chunk-p5vcsw9c.js.map → chunk-qm535afa.js.map} +4 -4
  115. package/dist/chunk-r5zythxp.js +552 -0
  116. package/dist/chunk-r5zythxp.js.map +17 -0
  117. package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
  118. package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
  119. package/dist/{chunk-t1f4f1ve.js → chunk-sfypc7mk.js} +18 -13
  120. package/dist/{chunk-t1f4f1ve.js.map → chunk-sfypc7mk.js.map} +3 -3
  121. package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
  122. package/dist/chunk-t6f3tdnr.js.map +10 -0
  123. package/dist/{chunk-bn138h9w.js → chunk-t7dzd1tm.js} +3 -3
  124. package/dist/{chunk-pr2h4bv4.js → chunk-tg4g4zh0.js} +3 -3
  125. package/dist/chunk-vpxss818.js +56 -0
  126. package/dist/chunk-vpxss818.js.map +10 -0
  127. package/dist/{chunk-ms2tmn1k.js → chunk-vsg0g7h9.js} +53 -57
  128. package/dist/chunk-vsg0g7h9.js.map +17 -0
  129. package/dist/{chunk-8vj0rjgs.js → chunk-wjffn5m4.js} +1 -1
  130. package/dist/{chunk-nt99sxd6.js → chunk-x9tmx3fc.js} +18 -24
  131. package/dist/chunk-x9tmx3fc.js.map +14 -0
  132. package/dist/{chunk-agbbygvh.js → chunk-xn686q2e.js} +8 -8
  133. package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
  134. package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
  135. package/dist/{chunk-v2vcg0w6.js → chunk-xtfryrfb.js} +2 -2
  136. package/dist/chunk-y0v18c2j.js +363 -0
  137. package/dist/chunk-y0v18c2j.js.map +14 -0
  138. package/dist/{chunk-72w2pxk7.js → chunk-y1ahv8b7.js} +11 -3
  139. package/dist/{chunk-72w2pxk7.js.map → chunk-y1ahv8b7.js.map} +3 -3
  140. package/dist/chunk-y3ev53cq.js +84 -0
  141. package/dist/chunk-y3ev53cq.js.map +10 -0
  142. package/dist/{chunk-p6a4npdx.js → chunk-ybhz3j9g.js} +362 -60
  143. package/dist/chunk-ybhz3j9g.js.map +63 -0
  144. package/dist/{chunk-z30bv4ga.js → chunk-yxb4c62x.js} +3 -2
  145. package/dist/{chunk-z30bv4ga.js.map → chunk-yxb4c62x.js.map} +3 -3
  146. package/dist/chunk-z3y5kg1x.js +14 -0
  147. package/dist/chunk-z3y5kg1x.js.map +10 -0
  148. package/dist/connectors/connections/command-context.d.ts +2 -0
  149. package/dist/connectors/connections/command-context.d.ts.map +1 -1
  150. package/dist/connectors/connections/contracts.d.ts +1 -1
  151. package/dist/connectors/connections/contracts.d.ts.map +1 -1
  152. package/dist/connectors/connections/execution.d.ts +1 -0
  153. package/dist/connectors/connections/execution.d.ts.map +1 -1
  154. package/dist/connectors/connections/runs.d.ts +1 -0
  155. package/dist/connectors/connections/runs.d.ts.map +1 -1
  156. package/dist/connectors/connections/service.d.ts +2 -0
  157. package/dist/connectors/connections/service.d.ts.map +1 -1
  158. package/dist/datasets/validation.d.ts +4 -0
  159. package/dist/datasets/validation.d.ts.map +1 -1
  160. package/dist/datasets/write.d.ts.map +1 -1
  161. package/dist/datasets/write.js +5 -4
  162. package/dist/datasets/write.js.map +1 -1
  163. package/dist/error-reporting/capability.d.ts +3 -2
  164. package/dist/error-reporting/capability.d.ts.map +1 -1
  165. package/dist/error-reporting/internal.js +5 -4
  166. package/dist/error-reporting/internal.js.map +1 -1
  167. package/dist/error-reporting/reports.d.ts +10 -0
  168. package/dist/error-reporting/reports.d.ts.map +1 -1
  169. package/dist/error-reporting/types.d.ts +10 -2
  170. package/dist/error-reporting/types.d.ts.map +1 -1
  171. package/dist/errors/catalog.d.ts +12 -0
  172. package/dist/errors/catalog.d.ts.map +1 -1
  173. package/dist/errors/failure-message.d.ts +8 -0
  174. package/dist/errors/failure-message.d.ts.map +1 -0
  175. package/dist/errors/internal.d.ts.map +1 -1
  176. package/dist/errors/internal.js +3 -2
  177. package/dist/errors/internal.js.map +1 -1
  178. package/dist/events/index.js +5 -4
  179. package/dist/events/index.js.map +1 -1
  180. package/dist/events/outbox-dispatcher.d.ts +2 -2
  181. package/dist/events/outbox-dispatcher.d.ts.map +1 -1
  182. package/dist/execution/agent.js +44 -41
  183. package/dist/execution/agent.js.map +1 -1
  184. package/dist/execution/authorization.d.ts.map +1 -1
  185. package/dist/execution/authorized-object-reader.d.ts +3 -0
  186. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  187. package/dist/execution/kernel-operation.d.ts +4 -0
  188. package/dist/execution/kernel-operation.d.ts.map +1 -0
  189. package/dist/execution/primitive.js +44 -41
  190. package/dist/execution/primitive.js.map +2 -2
  191. package/dist/execution/request.js +45 -42
  192. package/dist/execution/request.js.map +2 -2
  193. package/dist/execution/types.d.ts +6 -0
  194. package/dist/execution/types.d.ts.map +1 -1
  195. package/dist/index.d.ts +15 -5
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +68 -59
  198. package/dist/index.js.map +1 -1
  199. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  200. package/dist/lake-storage/index.js +5 -4
  201. package/dist/lake-storage/index.js.map +1 -1
  202. package/dist/lake-storage/types.d.ts +2 -0
  203. package/dist/lake-storage/types.d.ts.map +1 -1
  204. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  205. package/dist/maintenance/types.d.ts +1 -1
  206. package/dist/maintenance/types.d.ts.map +1 -1
  207. package/dist/materialization/errors.d.ts +1 -1
  208. package/dist/materialization/errors.d.ts.map +1 -1
  209. package/dist/materialization/index.d.ts +1 -0
  210. package/dist/materialization/index.d.ts.map +1 -1
  211. package/dist/materialization/index.js +3 -3
  212. package/dist/materialization/model.d.ts +2 -0
  213. package/dist/materialization/model.d.ts.map +1 -1
  214. package/dist/materialization/vectors.d.ts +19 -0
  215. package/dist/materialization/vectors.d.ts.map +1 -0
  216. package/dist/materializer/context.d.ts.map +1 -1
  217. package/dist/materializer/edits/commit.d.ts.map +1 -1
  218. package/dist/materializer/edits/vector-authority.d.ts +6 -0
  219. package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
  220. package/dist/materializer/edits/vectors.d.ts +6 -0
  221. package/dist/materializer/edits/vectors.d.ts.map +1 -0
  222. package/dist/materializer/effective/validate.d.ts.map +1 -1
  223. package/dist/materializer/effective/vector-indexing.d.ts +7 -0
  224. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
  225. package/dist/materializer/effective/vectors.d.ts +6 -0
  226. package/dist/materializer/effective/vectors.d.ts.map +1 -0
  227. package/dist/materializer/execution/work-executor.d.ts +2 -1
  228. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  229. package/dist/materializer/index.js +26 -25
  230. package/dist/materializer/index.js.map +1 -1
  231. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  232. package/dist/models/catalog-index.d.ts +15 -0
  233. package/dist/models/catalog-index.d.ts.map +1 -0
  234. package/dist/models/catalog.d.ts +27 -6
  235. package/dist/models/catalog.d.ts.map +1 -1
  236. package/dist/models/decision/catalog.d.ts +12 -0
  237. package/dist/models/decision/catalog.d.ts.map +1 -0
  238. package/dist/models/decision/errors.d.ts +7 -0
  239. package/dist/models/decision/errors.d.ts.map +1 -0
  240. package/dist/models/decision/output.d.ts +50 -0
  241. package/dist/models/decision/output.d.ts.map +1 -0
  242. package/dist/models/decision/questions.d.ts +14 -0
  243. package/dist/models/decision/questions.d.ts.map +1 -0
  244. package/dist/models/decision/runtime.d.ts +7 -0
  245. package/dist/models/decision/runtime.d.ts.map +1 -0
  246. package/dist/models/decision/types.d.ts +92 -0
  247. package/dist/models/decision/types.d.ts.map +1 -0
  248. package/dist/models/decision/validation.d.ts +7 -0
  249. package/dist/models/decision/validation.d.ts.map +1 -0
  250. package/dist/models/definitions.d.ts +8 -1
  251. package/dist/models/definitions.d.ts.map +1 -1
  252. package/dist/models/embedding-model.d.ts +60 -0
  253. package/dist/models/embedding-model.d.ts.map +1 -0
  254. package/dist/models/execution/binding.d.ts +2 -0
  255. package/dist/models/execution/binding.d.ts.map +1 -1
  256. package/dist/models/execution/embedding.d.ts +5 -0
  257. package/dist/models/execution/embedding.d.ts.map +1 -0
  258. package/dist/models/execution/index.js +29 -26
  259. package/dist/models/execution/index.js.map +1 -1
  260. package/dist/models/execution/model-call-recorder.d.ts +5 -1
  261. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  262. package/dist/models/execution/session.d.ts +21 -0
  263. package/dist/models/execution/session.d.ts.map +1 -0
  264. package/dist/models/execution.d.ts.map +1 -1
  265. package/dist/models/generation-types.d.ts +2 -0
  266. package/dist/models/generation-types.d.ts.map +1 -1
  267. package/dist/models/index.d.ts +9 -1
  268. package/dist/models/index.d.ts.map +1 -1
  269. package/dist/models/index.js +17 -7
  270. package/dist/models/index.js.map +1 -1
  271. package/dist/models/pricing.d.ts +3 -2
  272. package/dist/models/pricing.d.ts.map +1 -1
  273. package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
  274. package/dist/objects/execution.d.ts +1 -0
  275. package/dist/objects/execution.d.ts.map +1 -1
  276. package/dist/objects/index.js +29 -28
  277. package/dist/objects/index.js.map +1 -1
  278. package/dist/objects/query/executor.d.ts +3 -0
  279. package/dist/objects/query/executor.d.ts.map +1 -1
  280. package/dist/objects/query/index.d.ts +2 -0
  281. package/dist/objects/query/index.d.ts.map +1 -1
  282. package/dist/objects/query/index.js +34 -24
  283. package/dist/objects/query/index.js.map +1 -1
  284. package/dist/objects/query/ir.d.ts +6 -2
  285. package/dist/objects/query/ir.d.ts.map +1 -1
  286. package/dist/objects/query/normalize.d.ts.map +1 -1
  287. package/dist/objects/query/validate.d.ts.map +1 -1
  288. package/dist/objects/sdk/object-handle.d.ts +5 -0
  289. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  290. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  291. package/dist/objects/sdk/query-executor.d.ts +2 -0
  292. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  293. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  294. package/dist/objects/vectors/handle.d.ts +4 -0
  295. package/dist/objects/vectors/handle.d.ts.map +1 -0
  296. package/dist/objects/vectors/indexing-batch.d.ts +6 -0
  297. package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
  298. package/dist/objects/vectors/indexing-generate.d.ts +11 -0
  299. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
  300. package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
  301. package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
  302. package/dist/objects/vectors/indexing-shared.d.ts +17 -0
  303. package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
  304. package/dist/objects/vectors/indexing-single.d.ts +4 -0
  305. package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
  306. package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
  307. package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
  308. package/dist/objects/vectors/indexing.d.ts +7 -0
  309. package/dist/objects/vectors/indexing.d.ts.map +1 -0
  310. package/dist/objects/vectors/profile.d.ts +13 -0
  311. package/dist/objects/vectors/profile.d.ts.map +1 -0
  312. package/dist/objects/vectors/query.d.ts +5 -0
  313. package/dist/objects/vectors/query.d.ts.map +1 -0
  314. package/dist/objects/vectors/resolve-query.d.ts +6 -0
  315. package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
  316. package/dist/objects/vectors/types.d.ts +11 -0
  317. package/dist/objects/vectors/types.d.ts.map +1 -0
  318. package/dist/ontology/index.d.ts +2 -1
  319. package/dist/ontology/index.d.ts.map +1 -1
  320. package/dist/ontology/index.js +5 -5
  321. package/dist/ontology/index.js.map +1 -1
  322. package/dist/ontology/internal.js +5 -4
  323. package/dist/ontology/internal.js.map +1 -1
  324. package/dist/ontology/registry.d.ts.map +1 -1
  325. package/dist/ontology/types.d.ts +8 -9
  326. package/dist/ontology/types.d.ts.map +1 -1
  327. package/dist/ontology/validation/definition.d.ts +3 -0
  328. package/dist/ontology/validation/definition.d.ts.map +1 -0
  329. package/dist/ontology/validation/properties.d.ts.map +1 -1
  330. package/dist/ontology/validation/query.d.ts.map +1 -1
  331. package/dist/ontology/validation/schema.d.ts +1 -1
  332. package/dist/ontology/validation/schema.d.ts.map +1 -1
  333. package/dist/ontology/vector-profiles.d.ts +4 -0
  334. package/dist/ontology/vector-profiles.d.ts.map +1 -0
  335. package/dist/pipelines/index.js +28 -27
  336. package/dist/pipelines/index.js.map +1 -1
  337. package/dist/projections/internal.js +24 -23
  338. package/dist/projections/internal.js.map +1 -1
  339. package/dist/query.js +2 -2
  340. package/dist/queues/in-memory.d.ts +2 -1
  341. package/dist/queues/in-memory.d.ts.map +1 -1
  342. package/dist/queues/index.d.ts +1 -1
  343. package/dist/queues/index.d.ts.map +1 -1
  344. package/dist/queues/index.js +1 -1
  345. package/dist/queues/types.d.ts +5 -0
  346. package/dist/queues/types.d.ts.map +1 -1
  347. package/dist/runtime/create.d.ts +4 -3
  348. package/dist/runtime/create.d.ts.map +1 -1
  349. package/dist/runtime/host.d.ts +9 -6
  350. package/dist/runtime/host.d.ts.map +1 -1
  351. package/dist/runtime/internal.d.ts +3 -0
  352. package/dist/runtime/internal.d.ts.map +1 -1
  353. package/dist/runtime/internal.js +47 -1
  354. package/dist/runtime/internal.js.map +1 -1
  355. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  356. package/dist/runtime/sixb.d.ts +9 -4
  357. package/dist/runtime/sixb.d.ts.map +1 -1
  358. package/dist/runtime/types.d.ts +15 -3
  359. package/dist/runtime/types.d.ts.map +1 -1
  360. package/dist/sandboxes/auth.d.ts +16 -0
  361. package/dist/sandboxes/auth.d.ts.map +1 -0
  362. package/dist/sandboxes/config.d.ts +5 -0
  363. package/dist/sandboxes/config.d.ts.map +1 -0
  364. package/dist/sandboxes/configuration.d.ts +41 -0
  365. package/dist/sandboxes/configuration.d.ts.map +1 -0
  366. package/dist/sandboxes/environment.d.ts +13 -0
  367. package/dist/sandboxes/environment.d.ts.map +1 -0
  368. package/dist/sandboxes/errors.d.ts +1 -1
  369. package/dist/sandboxes/errors.d.ts.map +1 -1
  370. package/dist/sandboxes/index.d.ts +6 -1
  371. package/dist/sandboxes/index.d.ts.map +1 -1
  372. package/dist/sandboxes/index.js +16 -3
  373. package/dist/sandboxes/index.js.map +1 -1
  374. package/dist/sandboxes/sandbox.d.ts +35 -3
  375. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  376. package/dist/shared/params/builders.d.ts +25 -0
  377. package/dist/shared/params/builders.d.ts.map +1 -0
  378. package/dist/shared/params/types.d.ts +47 -0
  379. package/dist/shared/params/types.d.ts.map +1 -0
  380. package/dist/shared/params/validation.d.ts +15 -0
  381. package/dist/shared/params/validation.d.ts.map +1 -0
  382. package/dist/shares/internal.js +23 -22
  383. package/dist/shares/internal.js.map +2 -2
  384. package/dist/storage/action-runs/failure.js +4 -3
  385. package/dist/storage/action-runs/failure.js.map +1 -1
  386. package/dist/storage/action-runs/provider.js +1 -1
  387. package/dist/storage/agents/in-memory.d.ts +2 -1
  388. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  389. package/dist/storage/agents/index.d.ts +1 -1
  390. package/dist/storage/agents/index.d.ts.map +1 -1
  391. package/dist/storage/agents/provider.d.ts +5 -1
  392. package/dist/storage/agents/provider.d.ts.map +1 -1
  393. package/dist/storage/agents/provider.js +8 -4
  394. package/dist/storage/agents/provider.js.map +1 -1
  395. package/dist/storage/agents/types.d.ts +49 -0
  396. package/dist/storage/agents/types.d.ts.map +1 -1
  397. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  398. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  399. package/dist/storage/ai-cost/index.d.ts +1 -1
  400. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  401. package/dist/storage/ai-cost/provider.js +2 -2
  402. package/dist/storage/ai-cost/types.d.ts +14 -2
  403. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  404. package/dist/storage/ai-limits/enforcement.js +4 -3
  405. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  406. package/dist/storage/connector-connections/in-memory.d.ts +1 -0
  407. package/dist/storage/connector-connections/in-memory.d.ts.map +1 -1
  408. package/dist/storage/connector-connections/provider/connections.d.ts.map +1 -1
  409. package/dist/storage/connector-connections/provider/runs.d.ts +1 -0
  410. package/dist/storage/connector-connections/provider/runs.d.ts.map +1 -1
  411. package/dist/storage/connector-connections/provider/shared.d.ts +1 -0
  412. package/dist/storage/connector-connections/provider/shared.d.ts.map +1 -1
  413. package/dist/storage/connector-connections/provider.d.ts +1 -0
  414. package/dist/storage/connector-connections/provider.d.ts.map +1 -1
  415. package/dist/storage/connector-connections/provider.js +12 -17
  416. package/dist/storage/connector-connections/provider.js.map +6 -6
  417. package/dist/storage/connector-connections/types.d.ts +3 -1
  418. package/dist/storage/connector-connections/types.d.ts.map +1 -1
  419. package/dist/storage/executions/provider.d.ts +3 -3
  420. package/dist/storage/executions/provider.d.ts.map +1 -1
  421. package/dist/storage/executions/provider.js +13 -11
  422. package/dist/storage/executions/provider.js.map +3 -3
  423. package/dist/storage/executions/types.d.ts +3 -0
  424. package/dist/storage/executions/types.d.ts.map +1 -1
  425. package/dist/storage/executions/validation.d.ts.map +1 -1
  426. package/dist/storage/index.d.ts +5 -3
  427. package/dist/storage/index.d.ts.map +1 -1
  428. package/dist/storage/index.js +25 -22
  429. package/dist/storage/index.js.map +1 -1
  430. package/dist/storage/internal.js +2 -2
  431. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  432. package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
  433. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  434. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  435. package/dist/storage/objects/in-memory/storage.d.ts +7 -0
  436. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  437. package/dist/storage/objects/types.d.ts +2 -0
  438. package/dist/storage/objects/types.d.ts.map +1 -1
  439. package/dist/storage/ontology/commits.d.ts +1 -0
  440. package/dist/storage/ontology/commits.d.ts.map +1 -1
  441. package/dist/storage/ontology/in-memory/index.d.ts +4 -0
  442. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  443. package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
  444. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  445. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
  446. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  447. package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
  448. package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
  449. package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
  450. package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
  451. package/dist/storage/ontology/index.d.ts +6 -0
  452. package/dist/storage/ontology/index.d.ts.map +1 -1
  453. package/dist/storage/ontology/outbox.d.ts +1 -0
  454. package/dist/storage/ontology/outbox.d.ts.map +1 -1
  455. package/dist/storage/ontology/provider.js +2 -2
  456. package/dist/storage/ontology/vector-indexing.d.ts +94 -0
  457. package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
  458. package/dist/storage/ontology/vectors.d.ts +56 -0
  459. package/dist/storage/ontology/vectors.d.ts.map +1 -0
  460. package/dist/storage/operation-scope.d.ts.map +1 -1
  461. package/dist/storage/operation-scope.js +1 -1
  462. package/dist/storage/projection-runs/provider.js +4 -3
  463. package/dist/storage/projection-runs/provider.js.map +1 -1
  464. package/dist/storage/types.d.ts +1 -1
  465. package/dist/storage/types.d.ts.map +1 -1
  466. package/dist/storage/workflow-runs/provider.js +9 -7
  467. package/dist/storage/workflow-runs/provider.js.map +1 -1
  468. package/dist/syncs/index.js +29 -28
  469. package/dist/syncs/index.js.map +1 -1
  470. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  471. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  472. package/dist/testing/index.js +488 -81
  473. package/dist/testing/index.js.map +10 -10
  474. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  475. package/dist/testing/object-query-contract.d.ts.map +1 -1
  476. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  477. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  478. package/dist/testing/queues-contract.d.ts.map +1 -1
  479. package/dist/webhooks/internal.js +24 -23
  480. package/dist/webhooks/internal.js.map +2 -2
  481. package/dist/workers/index.js +3 -2
  482. package/dist/workers/index.js.map +2 -2
  483. package/dist/workflows/failure.d.ts.map +1 -1
  484. package/dist/workflows/index.js +47 -43
  485. package/dist/workflows/index.js.map +1 -1
  486. package/package.json +1 -1
  487. package/src/actions/builders/params.ts +1 -48
  488. package/src/actions/types/params.ts +14 -74
  489. package/src/actions/validation.ts +7 -84
  490. package/src/agents/errors.ts +3 -0
  491. package/src/agents/execution.ts +67 -15
  492. package/src/agents/ids.ts +8 -0
  493. package/src/agents/index.ts +1 -0
  494. package/src/agents/model-loop.ts +7 -0
  495. package/src/agents/request.ts +11 -0
  496. package/src/agents/sandbox.ts +44 -0
  497. package/src/agents/validation.ts +2 -108
  498. package/src/blob-storage/types.ts +4 -1
  499. package/src/connectors/connections/command-context.ts +21 -4
  500. package/src/connectors/connections/contracts.ts +4 -1
  501. package/src/connectors/connections/execution.ts +3 -0
  502. package/src/connectors/connections/runs.ts +38 -1
  503. package/src/connectors/connections/service.ts +6 -0
  504. package/src/datasets/validation.ts +40 -11
  505. package/src/datasets/write.ts +8 -11
  506. package/src/error-reporting/capability.ts +11 -0
  507. package/src/error-reporting/reports.ts +23 -0
  508. package/src/error-reporting/types.ts +12 -1
  509. package/src/errors/catalog.ts +12 -0
  510. package/src/errors/failure-message.ts +15 -0
  511. package/src/errors/internal.ts +57 -25
  512. package/src/events/outbox-dispatcher.ts +20 -26
  513. package/src/execution/authorization.ts +12 -5
  514. package/src/execution/authorized-object-reader.ts +37 -2
  515. package/src/execution/kernel-operation.ts +27 -0
  516. package/src/execution/scopes.ts +2 -0
  517. package/src/execution/types.ts +4 -4
  518. package/src/index.ts +60 -1
  519. package/src/lake-storage/in-memory.ts +7 -3
  520. package/src/lake-storage/types.ts +2 -0
  521. package/src/maintenance/ontology-maintenance.ts +6 -2
  522. package/src/maintenance/types.ts +1 -1
  523. package/src/materialization/errors.ts +2 -2
  524. package/src/materialization/index.ts +1 -0
  525. package/src/materialization/model.ts +2 -0
  526. package/src/materialization/vectors.ts +18 -0
  527. package/src/materializer/README.md +15 -1
  528. package/src/materializer/context.ts +10 -0
  529. package/src/materializer/edits/commit.ts +8 -1
  530. package/src/materializer/edits/vector-authority.ts +108 -0
  531. package/src/materializer/edits/vectors.ts +100 -0
  532. package/src/materializer/effective/validate.ts +10 -3
  533. package/src/materializer/effective/vector-indexing.ts +84 -0
  534. package/src/materializer/effective/vectors.ts +47 -0
  535. package/src/materializer/execution/work-executor.ts +11 -3
  536. package/src/materializer/projections/replace.ts +1 -1
  537. package/src/materializer/shared/normalize.ts +11 -0
  538. package/src/materializer/telemetry/append.ts +1 -1
  539. package/src/models/catalog-index.ts +38 -0
  540. package/src/models/catalog.ts +66 -38
  541. package/src/models/decision/catalog.ts +32 -0
  542. package/src/models/decision/errors.ts +18 -0
  543. package/src/models/decision/output.ts +101 -0
  544. package/src/models/decision/questions.ts +29 -0
  545. package/src/models/decision/runtime.ts +188 -0
  546. package/src/models/decision/types.ts +109 -0
  547. package/src/models/decision/validation.ts +335 -0
  548. package/src/models/definitions.ts +20 -1
  549. package/src/models/embedding-model.ts +129 -0
  550. package/src/models/execution/README.md +63 -0
  551. package/src/models/execution/binding.ts +2 -0
  552. package/src/models/execution/embedding.ts +133 -0
  553. package/src/models/execution/model-call-recorder.ts +42 -30
  554. package/src/models/execution/session.ts +81 -0
  555. package/src/models/execution.ts +10 -52
  556. package/src/models/generation-types.ts +2 -0
  557. package/src/models/index.ts +37 -0
  558. package/src/models/pricing.ts +7 -4
  559. package/src/objects/authorized-ontology-view.ts +12 -8
  560. package/src/objects/execution.ts +2 -0
  561. package/src/objects/query/executor.ts +13 -4
  562. package/src/objects/query/explain.ts +7 -2
  563. package/src/objects/query/index.ts +2 -0
  564. package/src/objects/query/ir.ts +6 -2
  565. package/src/objects/query/normalize.ts +5 -1
  566. package/src/objects/query/validate.ts +74 -73
  567. package/src/objects/sdk/object-handle.ts +3 -0
  568. package/src/objects/sdk/object-set.ts +1 -0
  569. package/src/objects/sdk/query-builder.ts +9 -3
  570. package/src/objects/sdk/query-executor.ts +2 -1
  571. package/src/objects/sdk/runtime-query-executor.ts +6 -2
  572. package/src/objects/vectors/README.md +59 -0
  573. package/src/objects/vectors/handle.ts +91 -0
  574. package/src/objects/vectors/indexing-batch.ts +163 -0
  575. package/src/objects/vectors/indexing-generate.ts +184 -0
  576. package/src/objects/vectors/indexing-runtime.ts +17 -0
  577. package/src/objects/vectors/indexing-shared.ts +188 -0
  578. package/src/objects/vectors/indexing-single.ts +51 -0
  579. package/src/objects/vectors/indexing-store-batch.ts +62 -0
  580. package/src/objects/vectors/indexing.ts +23 -0
  581. package/src/objects/vectors/profile.ts +64 -0
  582. package/src/objects/vectors/query.ts +16 -0
  583. package/src/objects/vectors/resolve-query.ts +89 -0
  584. package/src/objects/vectors/types.ts +10 -0
  585. package/src/ontology/index.ts +2 -0
  586. package/src/ontology/registry.ts +8 -0
  587. package/src/ontology/types.ts +9 -9
  588. package/src/ontology/validation/definition.ts +104 -0
  589. package/src/ontology/validation/properties.ts +14 -4
  590. package/src/ontology/validation/query.ts +34 -51
  591. package/src/ontology/validation/schema.ts +85 -23
  592. package/src/ontology/vector-profiles.ts +35 -0
  593. package/src/queues/in-memory.ts +5 -0
  594. package/src/queues/index.ts +1 -0
  595. package/src/queues/types.ts +10 -0
  596. package/src/runtime/create.ts +7 -6
  597. package/src/runtime/host.ts +42 -6
  598. package/src/runtime/internal.ts +3 -0
  599. package/src/runtime/resolve-definitions.ts +19 -1
  600. package/src/runtime/sixb.ts +27 -9
  601. package/src/runtime/types.ts +16 -4
  602. package/src/sandboxes/README.md +41 -0
  603. package/src/sandboxes/auth.ts +17 -0
  604. package/src/sandboxes/config.ts +37 -0
  605. package/src/sandboxes/configuration.ts +268 -0
  606. package/src/sandboxes/environment.ts +107 -0
  607. package/src/sandboxes/errors.ts +1 -1
  608. package/src/sandboxes/index.ts +15 -0
  609. package/src/sandboxes/sandbox.ts +38 -3
  610. package/src/shared/params/builders.ts +50 -0
  611. package/src/shared/params/types.ts +84 -0
  612. package/src/shared/params/validation.ts +114 -0
  613. package/src/storage/agents/in-memory.ts +25 -1
  614. package/src/storage/agents/index.ts +3 -0
  615. package/src/storage/agents/provider.ts +105 -0
  616. package/src/storage/agents/types.ts +54 -0
  617. package/src/storage/ai-cost/analytics.ts +59 -21
  618. package/src/storage/ai-cost/index.ts +1 -0
  619. package/src/storage/ai-cost/types.ts +19 -2
  620. package/src/storage/connector-connections/in-memory.ts +16 -18
  621. package/src/storage/connector-connections/provider/connections.ts +1 -15
  622. package/src/storage/connector-connections/provider/runs.ts +6 -0
  623. package/src/storage/connector-connections/provider/shared.ts +2 -3
  624. package/src/storage/connector-connections/provider.ts +6 -0
  625. package/src/storage/connector-connections/types.ts +5 -1
  626. package/src/storage/executions/provider.ts +24 -12
  627. package/src/storage/executions/types.ts +1 -0
  628. package/src/storage/executions/validation.ts +7 -3
  629. package/src/storage/index.ts +15 -1
  630. package/src/storage/objects/in-memory/query.ts +25 -11
  631. package/src/storage/objects/in-memory/read-scope.ts +9 -2
  632. package/src/storage/objects/in-memory/read-source.ts +5 -0
  633. package/src/storage/objects/in-memory/selected-reader.ts +5 -1
  634. package/src/storage/objects/in-memory/storage.ts +19 -1
  635. package/src/storage/objects/types.ts +2 -0
  636. package/src/storage/ontology/commits.ts +1 -0
  637. package/src/storage/ontology/in-memory/index.ts +20 -0
  638. package/src/storage/ontology/in-memory/materializations.ts +13 -0
  639. package/src/storage/ontology/in-memory/shared-state.ts +19 -3
  640. package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
  641. package/src/storage/ontology/in-memory/vectors.ts +73 -0
  642. package/src/storage/ontology/index.ts +14 -0
  643. package/src/storage/ontology/outbox.ts +1 -0
  644. package/src/storage/ontology/vector-indexing.ts +98 -0
  645. package/src/storage/ontology/vectors.ts +48 -0
  646. package/src/storage/operation-scope.ts +1 -0
  647. package/src/storage/types.ts +3 -0
  648. package/src/testing/agent-storage-contract.ts +246 -0
  649. package/src/testing/ai-cost-storage-contract.ts +134 -0
  650. package/src/testing/connector-connection-storage-contract.ts +11 -11
  651. package/src/testing/lake-storage-contract.ts +29 -0
  652. package/src/testing/object-query-contract.ts +41 -25
  653. package/src/testing/object-read-scope-contract.ts +1 -5
  654. package/src/testing/ontology-storage-contract.ts +8 -3
  655. package/src/testing/queues-contract.ts +31 -0
  656. package/src/workflows/failure.ts +10 -4
  657. package/src/workflows/validation.ts +2 -2
  658. package/dist/chunk-5hz0fnca.js.map +0 -12
  659. package/dist/chunk-5p1v802y.js.map +0 -44
  660. package/dist/chunk-7apz6hg4.js.map +0 -10
  661. package/dist/chunk-7bs40fe1.js.map +0 -12
  662. package/dist/chunk-860dwwy0.js.map +0 -14
  663. package/dist/chunk-93csa55g.js.map +0 -11
  664. package/dist/chunk-aa6z4a19.js.map +0 -12
  665. package/dist/chunk-ap0g1g74.js.map +0 -11
  666. package/dist/chunk-e0d1rzef.js.map +0 -15
  667. package/dist/chunk-f0rwz2vh.js.map +0 -11
  668. package/dist/chunk-f4w3yp4f.js.map +0 -12
  669. package/dist/chunk-g7knyczr.js.map +0 -14
  670. package/dist/chunk-mrp7k0pw.js.map +0 -10
  671. package/dist/chunk-ms2tmn1k.js.map +0 -17
  672. package/dist/chunk-nmbxcaqx.js.map +0 -19
  673. package/dist/chunk-nt99sxd6.js.map +0 -14
  674. package/dist/chunk-p6a4npdx.js.map +0 -58
  675. package/dist/chunk-qyeptdyv.js.map +0 -15
  676. package/dist/chunk-r7fj830t.js.map +0 -36
  677. package/dist/chunk-rb1xx120.js.map +0 -11
  678. package/dist/chunk-yv79ncbv.js.map +0 -10
  679. package/dist/chunk-z3y411fq.js +0 -99
  680. package/dist/chunk-z3y411fq.js.map +0 -11
  681. /package/dist/{chunk-17kfctj6.js.map → chunk-0mza4xb2.js.map} +0 -0
  682. /package/dist/{chunk-rtk71jzp.js.map → chunk-3bnt2wna.js.map} +0 -0
  683. /package/dist/{chunk-awbhdqyc.js.map → chunk-3ghw2t5q.js.map} +0 -0
  684. /package/dist/{chunk-b19g04jk.js.map → chunk-3h7ctayx.js.map} +0 -0
  685. /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
  686. /package/dist/{chunk-0y39rgsb.js.map → chunk-5tetw4hn.js.map} +0 -0
  687. /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
  688. /package/dist/{chunk-358caqf5.js.map → chunk-bfjv1adk.js.map} +0 -0
  689. /package/dist/{chunk-b0ec55a1.js.map → chunk-bg2bs62d.js.map} +0 -0
  690. /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
  691. /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
  692. /package/dist/{chunk-1824gssz.js.map → chunk-gswwr35f.js.map} +0 -0
  693. /package/dist/{chunk-92vk7gta.js.map → chunk-gzt6v1ja.js.map} +0 -0
  694. /package/dist/{chunk-gqh45d2n.js.map → chunk-hkw8rykk.js.map} +0 -0
  695. /package/dist/{chunk-5c7ga8zz.js.map → chunk-jjwhy3rs.js.map} +0 -0
  696. /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
  697. /package/dist/{chunk-653vwrzr.js.map → chunk-rdghfsss.js.map} +0 -0
  698. /package/dist/{chunk-bn138h9w.js.map → chunk-t7dzd1tm.js.map} +0 -0
  699. /package/dist/{chunk-pr2h4bv4.js.map → chunk-tg4g4zh0.js.map} +0 -0
  700. /package/dist/{chunk-8vj0rjgs.js.map → chunk-wjffn5m4.js.map} +0 -0
  701. /package/dist/{chunk-agbbygvh.js.map → chunk-xn686q2e.js.map} +0 -0
  702. /package/dist/{chunk-v2vcg0w6.js.map → chunk-xtfryrfb.js.map} +0 -0
@@ -0,0 +1,89 @@
1
+ import type { EmbeddingModelCatalog } from "../../models/catalog"
2
+ import { type EmbeddingModel, sameEmbeddingModel } from "../../models/embedding-model"
3
+ import type { OntologyRegistry } from "../../ontology"
4
+ import { ObjectQueryExecutionError } from "../query/errors"
5
+ import type { ObjectQuery, ObjectQueryVector } from "../query/ir"
6
+ import { normalizeVector } from "./profile"
7
+
8
+ const QUERY_EMBEDDING_TIMEOUT_MS = 30_000
9
+
10
+ /** Called only after query validation, authorization and provider planning have succeeded. */
11
+ export async function resolveVectorSearchText(
12
+ query: ObjectQuery,
13
+ ontology: OntologyRegistry,
14
+ models: EmbeddingModelCatalog | undefined,
15
+ signal?: AbortSignal
16
+ ): Promise<ObjectQuery> {
17
+ if (query.kind === "limit" || query.kind === "project") {
18
+ const input = await resolveVectorSearchText(query.input, ontology, models, signal)
19
+ return { ...query, input }
20
+ }
21
+ if (query.kind !== "vector" || typeof query.vector !== "string") return query
22
+
23
+ const model = resolveProfileEmbeddingModel(query, ontology, models)
24
+ const vector = await embedSearchText(query.vector, model, signal)
25
+ return { ...query, vector }
26
+ }
27
+
28
+ function resolveProfileEmbeddingModel(
29
+ query: ObjectQueryVector,
30
+ ontology: OntologyRegistry,
31
+ models: EmbeddingModelCatalog | undefined
32
+ ): EmbeddingModel {
33
+ let input = query.input
34
+ while (input.kind === "filter") input = input.input
35
+ if (input.kind !== "start" || !query.profile) {
36
+ throw new ObjectQueryExecutionError(
37
+ "embedding_model_unavailable",
38
+ "Vector search requires the embedding model registered for its profile."
39
+ )
40
+ }
41
+
42
+ const profile = ontology.resolveObjectType(input.objectTypeId).search?.vectors?.[query.profile]
43
+ if (!profile) {
44
+ throw new ObjectQueryExecutionError(
45
+ "embedding_model_unavailable",
46
+ "Vector search requires the embedding model registered for its profile."
47
+ )
48
+ }
49
+
50
+ const model = models?.getByRef({
51
+ provider: profile.model.providerId,
52
+ modelId: profile.model.modelId,
53
+ })?.model
54
+ if (!model || !sameEmbeddingModel(model, profile.model)) {
55
+ throw new ObjectQueryExecutionError(
56
+ "embedding_model_unavailable",
57
+ "Vector search requires the embedding model registered for its profile."
58
+ )
59
+ }
60
+ return model
61
+ }
62
+
63
+ async function embedSearchText(
64
+ text: string,
65
+ model: EmbeddingModel,
66
+ signal?: AbortSignal
67
+ ): Promise<readonly number[]> {
68
+ const dimensions = model.definition.dimensions
69
+ const timeout = AbortSignal.timeout(QUERY_EMBEDDING_TIMEOUT_MS)
70
+ const requestSignal = signal ? AbortSignal.any([signal, timeout]) : timeout
71
+ requestSignal.throwIfAborted()
72
+ const result = await model.embed({ texts: [text], signal: requestSignal })
73
+ requestSignal.throwIfAborted()
74
+
75
+ if (!Array.isArray(result?.vectors) || result.vectors.length !== 1) {
76
+ throw new ObjectQueryExecutionError(
77
+ "invalid_embedding_response",
78
+ "Embedding model must return exactly one vector for the search text."
79
+ )
80
+ }
81
+ try {
82
+ return normalizeVector(result.vectors[0]!, dimensions)
83
+ } catch {
84
+ throw new ObjectQueryExecutionError(
85
+ "invalid_embedding_response",
86
+ "Embedding model returned an invalid vector for the search profile."
87
+ )
88
+ }
89
+ }
@@ -0,0 +1,10 @@
1
+ import type { ObjectType } from "../../ontology"
2
+
3
+ export type VectorProfileName<T extends ObjectType> = T extends { search: { vectors: infer P } }
4
+ ? Extract<keyof P, string>
5
+ : never
6
+
7
+ export interface ObjectVectorHandle {
8
+ /** Generate and atomically store this profile using its configured model. Conflicts are not retried. */
9
+ index(): Promise<void>
10
+ }
@@ -10,6 +10,7 @@
10
10
 
11
11
  // ── Types ───────────────────────────────────────────────────
12
12
 
13
+ export type { EmbeddingModelDefinition, EmbeddingModelRef } from "../models/embedding-model"
13
14
  export type { DecimalValue } from "./decimal"
14
15
  export {
15
16
  compareDecimalValues,
@@ -48,6 +49,7 @@ export type {
48
49
  ObjectSchema,
49
50
  ObjectType,
50
51
  ObjectTypeSearchMetadata,
52
+ ObjectVectorSearchProfile,
51
53
  Ontology,
52
54
  PrimitiveSchema,
53
55
  Property,
@@ -19,6 +19,7 @@ import {
19
19
  validatePropertyDefinitions,
20
20
  validateQueryMetadata,
21
21
  } from "./validation"
22
+ import { snapshotVectorProfiles } from "./vector-profiles"
22
23
 
23
24
  // ── Input types ──────────────────────────────────────────────
24
25
 
@@ -197,6 +198,13 @@ export class OntologyRegistry implements OntologyDefinitionCatalog {
197
198
  this.resolveInheritedProperties()
198
199
  validatePropertyDefinitions(this.objectTypesById, this.valueTypesById)
199
200
  validateQueryMetadata(this.objectTypesById, this.valueTypesById)
201
+ for (const [id, type] of this.objectTypesById) {
202
+ if (type.search?.vectors)
203
+ this.objectTypesById.set(id, {
204
+ ...type,
205
+ search: { ...type.search, vectors: snapshotVectorProfiles(type.search.vectors) },
206
+ })
207
+ }
200
208
  this.primaryByTypeId = validatePrimaryProperties(this.objectTypesById)
201
209
  }
202
210
 
@@ -9,6 +9,7 @@
9
9
  * This file defines the value-shape side of that model.
10
10
  */
11
11
 
12
+ import type { EmbeddingModelRef } from "../models/embedding-model"
12
13
  import type { QuantitativeTypeId } from "./units"
13
14
 
14
15
  /**
@@ -190,8 +191,6 @@ export interface PropertyQueryMetadata {
190
191
  exact?: boolean
191
192
  /** Enables faceting/grouping in search results. */
192
193
  facet?: boolean
193
- /** Enables vector search when the property stores numeric embedding arrays. */
194
- vector?: boolean
195
194
  /** Relative text-search weight. Only meaningful with `text: true`. */
196
195
  weight?: number
197
196
  }
@@ -202,20 +201,21 @@ export interface PropertyQueryMetadata {
202
201
  * Search profiles decide which fields a global or type-scoped search uses.
203
202
  * Primary ids remain exact-matchable even if omitted here.
204
203
  */
204
+ export interface ObjectVectorSearchProfile {
205
+ /** Ordered text sources. Sixb prepares their input deterministically. */
206
+ readonly source: readonly string[]
207
+ readonly model: EmbeddingModelRef
208
+ }
209
+
205
210
  export interface ObjectTypeSearchMetadata {
211
+ /** Independent named representations; each query targets exactly one profile. */
212
+ readonly vectors?: Readonly<Record<string, ObjectVectorSearchProfile>>
206
213
  /** Display/title property used in search results. */
207
214
  title?: string
208
215
  /** Default keyword-search fields for this object type. */
209
216
  defaultText?: readonly string[]
210
217
  /** Exact-match fields such as external ids, slugs, or emails. */
211
218
  exact?: readonly string[]
212
- /** Vector-search configuration for semantic retrieval. */
213
- vector?: {
214
- /** Property that stores the embedding vector. */
215
- property: string
216
- /** Source text properties used to produce the embedding. */
217
- source: readonly string[]
218
- }
219
219
  }
220
220
 
221
221
  /**
@@ -0,0 +1,104 @@
1
+ import { isPlainRecord } from "../../json"
2
+
3
+ const PRIMITIVE_SCHEMAS = new Set([
4
+ "string",
5
+ "integer",
6
+ "double",
7
+ "decimal",
8
+ "boolean",
9
+ "date",
10
+ "timestamp",
11
+ "uuid",
12
+ "fileRef",
13
+ ])
14
+
15
+ /** Validate a declarative schema's shape independently of the primitive that consumes it. */
16
+ export function assertValidSchema(
17
+ schema: unknown,
18
+ path: string,
19
+ invalid: (path: string) => Error,
20
+ visiting: Set<object> = new Set()
21
+ ): void {
22
+ if (typeof schema === "string") {
23
+ if (PRIMITIVE_SCHEMAS.has(schema)) {
24
+ return
25
+ }
26
+ throw invalid(path)
27
+ }
28
+ if (!isPlainRecord(schema) || typeof schema.type !== "string" || visiting.has(schema)) {
29
+ throw invalid(path)
30
+ }
31
+
32
+ visiting.add(schema)
33
+ switch (schema.type) {
34
+ case "enum": {
35
+ const values = schema.values
36
+ const validValues = isValidEnumValues(values, schema.valueType)
37
+ if (!validValues || new Set(values).size !== values.length) {
38
+ throw invalid(path)
39
+ }
40
+ break
41
+ }
42
+ case "array":
43
+ assertValidSchema(schema.items, `${path}.items`, invalid, visiting)
44
+ break
45
+ case "map":
46
+ if (schema.keySchema !== "string") {
47
+ throw invalid(path)
48
+ }
49
+ assertValidSchema(schema.valueSchema, `${path}.valueSchema`, invalid, visiting)
50
+ break
51
+ case "object": {
52
+ if (!isPlainRecord(schema.properties)) {
53
+ throw invalid(path)
54
+ }
55
+ for (const [fieldId, field] of Object.entries(schema.properties)) {
56
+ if (!fieldId.trim() || !isPlainRecord(field) || !("schema" in field)) {
57
+ throw invalid(`${path}.properties.${fieldId}`)
58
+ }
59
+ if (
60
+ (field.required !== undefined && typeof field.required !== "boolean") ||
61
+ (field.nullable !== undefined && typeof field.nullable !== "boolean") ||
62
+ (field.description !== undefined &&
63
+ (typeof field.description !== "string" || !field.description.trim()))
64
+ ) {
65
+ throw invalid(`${path}.properties.${fieldId}`)
66
+ }
67
+ assertValidSchema(field.schema, `${path}.properties.${fieldId}.schema`, invalid, visiting)
68
+ }
69
+ break
70
+ }
71
+ case "valueTypeRef":
72
+ if (typeof schema.valueTypeId !== "string" || !schema.valueTypeId.trim()) {
73
+ throw invalid(path)
74
+ }
75
+ if (schema._resolved !== undefined) {
76
+ assertValidSchema(schema._resolved, `${path}._resolved`, invalid, visiting)
77
+ }
78
+ break
79
+ default:
80
+ throw invalid(path)
81
+ }
82
+ visiting.delete(schema)
83
+ }
84
+
85
+ function isValidEnumValues(values: unknown, valueType: unknown): values is unknown[] {
86
+ if (!Array.isArray(values) || values.length === 0) {
87
+ return false
88
+ }
89
+
90
+ for (let index = 0; index < values.length; index += 1) {
91
+ if (!Object.hasOwn(values, index)) {
92
+ return false
93
+ }
94
+ const value = values[index]
95
+ if (
96
+ valueType === "string"
97
+ ? typeof value !== "string"
98
+ : valueType !== "integer" || typeof value !== "number" || !Number.isInteger(value)
99
+ ) {
100
+ return false
101
+ }
102
+ }
103
+ return true
104
+ }
@@ -1,3 +1,4 @@
1
+ import { withFailureMessage } from "../../errors/failure-message"
1
2
  import type { ObjectLink, ObjectType, Property, Schema, ValueType } from ".."
2
3
  import { OntologyValidationError } from "../errors"
3
4
  import type { LinkToken, ObjectTypeWithPropertyTokens, PropertyToken } from "../tokens"
@@ -92,8 +93,11 @@ export function assertRequiredProperties(
92
93
  ): void {
93
94
  for (const property of objectType.properties) {
94
95
  if (property.required && properties[property.id] === undefined) {
95
- throw new OntologyValidationError(
96
- `[Sixb] Missing required property '${property.id}' for object type '${objectType.id}'`
96
+ throw withFailureMessage(
97
+ new OntologyValidationError(
98
+ `[Sixb] Missing required property '${property.id}' for object type '${objectType.id}'`
99
+ ),
100
+ `Missing required property '${objectType.id}.${property.id}'.`
97
101
  )
98
102
  }
99
103
  }
@@ -181,14 +185,20 @@ export function validatePropertyValue(
181
185
  valueTypesById: ReadonlyMap<string, ValueType>
182
186
  ): void {
183
187
  if (value === undefined) {
184
- throw new OntologyValidationError(`[Sixb] Property ${path} cannot be undefined`)
188
+ throw withFailureMessage(
189
+ new OntologyValidationError(`[Sixb] Property ${path} cannot be undefined`),
190
+ `Property ${path} cannot be undefined.`
191
+ )
185
192
  }
186
193
 
187
194
  if (value === null) {
188
195
  if (property.nullable) {
189
196
  return
190
197
  }
191
- throw new OntologyValidationError(`[Sixb] Property ${path} cannot be null`)
198
+ throw withFailureMessage(
199
+ new OntologyValidationError(`[Sixb] Property ${path} cannot be null`),
200
+ `Property ${path} cannot be null.`
201
+ )
192
202
  }
193
203
 
194
204
  validateSchemaValue(property.schema, value, path, valueTypesById)
@@ -1,16 +1,10 @@
1
+ import { assertEmbeddingModelRef } from "../../models/embedding-model"
1
2
  import type { ObjectType, Property, Schema, ValueType } from ".."
2
3
  import { OntologyValidationError } from "../errors"
3
4
 
4
- type QueryFeature = "filterable" | "sortable" | "text" | "exact" | "facet" | "vector"
5
+ type QueryFeature = "filterable" | "sortable" | "text" | "exact" | "facet"
5
6
 
6
- const queryFeatures: readonly QueryFeature[] = [
7
- "filterable",
8
- "sortable",
9
- "text",
10
- "exact",
11
- "facet",
12
- "vector",
13
- ]
7
+ const queryFeatures: readonly QueryFeature[] = ["filterable", "sortable", "text", "exact", "facet"]
14
8
 
15
9
  export function validateQueryMetadata(
16
10
  objectTypesById: ReadonlyMap<string, ObjectType>,
@@ -46,6 +40,11 @@ function validatePropertyQueryMetadata(
46
40
  ): void {
47
41
  const query = property.query
48
42
  if (!query) return
43
+ if ("vector" in query) {
44
+ throw new OntologyValidationError(
45
+ `[Sixb] Property '${property.id}' on '${ownerPath}' uses removed query.vector metadata. Declare search.vectors on the object type instead.`
46
+ )
47
+ }
49
48
 
50
49
  const enabledFeatures = queryFeatures.filter((feature) => query[feature] === true)
51
50
  if ((enabledFeatures.length > 0 || query.weight !== undefined) && query.searchable !== true) {
@@ -100,12 +99,6 @@ function validatePropertyQueryMetadata(
100
99
  `[Sixb] Query metadata for property '${property.id}' on '${ownerPath}' enables faceting, but its schema cannot be faceted`
101
100
  )
102
101
  }
103
-
104
- if (query.vector && !isVectorSchema(schema, valueTypesById)) {
105
- throw new OntologyValidationError(
106
- `[Sixb] Query metadata for property '${property.id}' on '${ownerPath}' enables vector search, but its schema is not a numeric array`
107
- )
108
- }
109
102
  }
110
103
 
111
104
  function validateObjectSearchMetadata(
@@ -115,7 +108,33 @@ function validateObjectSearchMetadata(
115
108
  ): void {
116
109
  const search = objectType.search
117
110
  if (!search) return
111
+ if ("vector" in search) {
112
+ throw new OntologyValidationError(
113
+ `[Sixb] Object type '${typeId}' uses removed search.vector metadata. Declare named profiles in search.vectors instead.`
114
+ )
115
+ }
118
116
 
117
+ for (const [name, profile] of Object.entries(search.vectors ?? {})) {
118
+ if (!/^[a-zA-Z][a-zA-Z0-9_]*$/.test(name))
119
+ throw new OntologyValidationError(`[Sixb] Invalid vector profile name ${name}`)
120
+ assertEmbeddingModelRef(profile.model)
121
+ if (
122
+ !Array.isArray(profile.source) ||
123
+ profile.source.length === 0 ||
124
+ new Set(profile.source).size !== profile.source.length
125
+ ) {
126
+ throw new OntologyValidationError(
127
+ `[Sixb] Vector profile ${name} requires unique, nonempty source fields.`
128
+ )
129
+ }
130
+ for (const id of profile.source) {
131
+ const property = requireObjectProperty(typeId, objectType, id, `search.vectors.${name}`)
132
+ assertStaticSearchProfileProperty(typeId, property, `search.vectors.${name}`)
133
+ if (!isTextSearchableSchema(resolveQueryableSchema(property, typeId, valueTypesById))) {
134
+ throw new OntologyValidationError(`[Sixb] Vector source must be text: ${typeId}.${id}`)
135
+ }
136
+ }
137
+ }
119
138
  const primaryPropertyId = objectType.properties.find((property) => property.primary)?.id
120
139
 
121
140
  if (search.title) {
@@ -142,34 +161,6 @@ function validateObjectSearchMetadata(
142
161
  assertPropertyQueryFlag(typeId, property, "exact", "search.exact")
143
162
  }
144
163
  }
145
-
146
- if (search.vector) {
147
- const vectorProperty = requireObjectProperty(
148
- typeId,
149
- objectType,
150
- search.vector.property,
151
- "search.vector.property"
152
- )
153
- assertStaticSearchProfileProperty(typeId, vectorProperty, "search.vector.property")
154
- assertPropertyQueryFlag(typeId, vectorProperty, "vector", "search.vector.property")
155
-
156
- if (search.vector.source.length === 0) {
157
- throw new OntologyValidationError(
158
- `[Sixb] Object type '${typeId}' search.vector.source must include at least one source property`
159
- )
160
- }
161
-
162
- for (const sourceId of search.vector.source) {
163
- const sourceProperty = requireObjectProperty(
164
- typeId,
165
- objectType,
166
- sourceId,
167
- "search.vector.source"
168
- )
169
- assertStaticSearchProfileProperty(typeId, sourceProperty, "search.vector.source")
170
- assertPropertyQueryFlag(typeId, sourceProperty, "text", "search.vector.source")
171
- }
172
- }
173
164
  }
174
165
 
175
166
  function requireObjectProperty(
@@ -290,11 +281,3 @@ function isSortableSchema(schema: Schema): boolean {
290
281
  function isFacetSchema(schema: Schema): boolean {
291
282
  return isExactSearchableSchema(schema)
292
283
  }
293
-
294
- function isVectorSchema(schema: Schema, valueTypesById: ReadonlyMap<string, ValueType>): boolean {
295
- if (typeof schema === "string") return false
296
- if (schema.type !== "array") return false
297
-
298
- const itemSchema = resolveSchema(schema.items, valueTypesById, "vector item")
299
- return itemSchema === "integer" || itemSchema === "double" || itemSchema === "decimal"
300
- }
@@ -1,4 +1,5 @@
1
1
  import { isFileRef } from "../../blob-storage/validation"
2
+ import { withFailureMessage } from "../../errors/failure-message"
2
3
  import type { ObjectFieldSchema, Schema, ValueType, ValueTypeRefSchema } from ".."
3
4
  import { isDecimalString } from "../decimal"
4
5
  import { OntologyValidationError } from "../errors"
@@ -8,39 +9,53 @@ export function validateSchemaValue(
8
9
  schema: Schema,
9
10
  value: unknown,
10
11
  path: string,
11
- valueTypesById: ReadonlyMap<string, ValueType>
12
+ valueTypesById: ReadonlyMap<string, ValueType>,
13
+ diagnosticPath = path
12
14
  ): void {
13
15
  if (typeof schema === "string") {
14
16
  switch (schema) {
15
17
  case "string":
16
18
  case "uuid": {
17
19
  if (typeof value !== "string") {
18
- throw new OntologyValidationError(`[Sixb] Property ${path} must be a string`)
20
+ throw withFailureMessage(
21
+ new OntologyValidationError(`[Sixb] Property ${path} must be a string`),
22
+ `Property ${diagnosticPath} must be a string.`
23
+ )
19
24
  }
20
25
  return
21
26
  }
22
27
  case "boolean": {
23
28
  if (typeof value !== "boolean") {
24
- throw new OntologyValidationError(`[Sixb] Property ${path} must be a boolean`)
29
+ throw withFailureMessage(
30
+ new OntologyValidationError(`[Sixb] Property ${path} must be a boolean`),
31
+ `Property ${diagnosticPath} must be a boolean.`
32
+ )
25
33
  }
26
34
  return
27
35
  }
28
36
  case "integer": {
29
37
  if (typeof value !== "number" || !Number.isInteger(value)) {
30
- throw new OntologyValidationError(`[Sixb] Property ${path} must be an integer`)
38
+ throw withFailureMessage(
39
+ new OntologyValidationError(`[Sixb] Property ${path} must be an integer`),
40
+ `Property ${diagnosticPath} must be an integer.`
41
+ )
31
42
  }
32
43
  return
33
44
  }
34
45
  case "double": {
35
46
  if (typeof value !== "number" || !Number.isFinite(value)) {
36
- throw new OntologyValidationError(`[Sixb] Property ${path} must be numeric`)
47
+ throw withFailureMessage(
48
+ new OntologyValidationError(`[Sixb] Property ${path} must be numeric`),
49
+ `Property ${diagnosticPath} must be numeric.`
50
+ )
37
51
  }
38
52
  return
39
53
  }
40
54
  case "decimal": {
41
55
  if (!isDecimalString(value)) {
42
- throw new OntologyValidationError(
43
- `[Sixb] Property ${path} must be an exact decimal string`
56
+ throw withFailureMessage(
57
+ new OntologyValidationError(`[Sixb] Property ${path} must be an exact decimal string`),
58
+ `Property ${diagnosticPath} must be an exact decimal string.`
44
59
  )
45
60
  }
46
61
  return
@@ -48,13 +63,19 @@ export function validateSchemaValue(
48
63
  case "date":
49
64
  case "timestamp": {
50
65
  if (!(value instanceof Date) && typeof value !== "string") {
51
- throw new OntologyValidationError(`[Sixb] Property ${path} must be a Date or ISO string`)
66
+ throw withFailureMessage(
67
+ new OntologyValidationError(`[Sixb] Property ${path} must be a Date or ISO string`),
68
+ `Property ${diagnosticPath} must be a Date or ISO string.`
69
+ )
52
70
  }
53
71
  return
54
72
  }
55
73
  case "fileRef": {
56
74
  if (!isFileRef(value)) {
57
- throw new OntologyValidationError(`[Sixb] Property ${path} must be a fileRef`)
75
+ throw withFailureMessage(
76
+ new OntologyValidationError(`[Sixb] Property ${path} must be a fileRef`),
77
+ `Property ${diagnosticPath} must be a fileRef.`
78
+ )
58
79
  }
59
80
  return
60
81
  }
@@ -63,8 +84,11 @@ export function validateSchemaValue(
63
84
 
64
85
  if (schema.type === "enum") {
65
86
  if (!schema.values.includes(value as never)) {
66
- throw new OntologyValidationError(
67
- `[Sixb] Property ${path} must be one of: ${schema.values.join(", ")}`
87
+ throw withFailureMessage(
88
+ new OntologyValidationError(
89
+ `[Sixb] Property ${path} must be one of: ${schema.values.join(", ")}`
90
+ ),
91
+ `Property ${diagnosticPath} must match a declared enum value.`
68
92
  )
69
93
  }
70
94
  return
@@ -72,34 +96,58 @@ export function validateSchemaValue(
72
96
 
73
97
  if (schema.type === "array") {
74
98
  if (!Array.isArray(value)) {
75
- throw new OntologyValidationError(`[Sixb] Property ${path} must be an array`)
99
+ throw withFailureMessage(
100
+ new OntologyValidationError(`[Sixb] Property ${path} must be an array`),
101
+ `Property ${diagnosticPath} must be an array.`
102
+ )
76
103
  }
77
104
  for (let index = 0; index < value.length; index += 1) {
78
- validateSchemaValue(schema.items, value[index], `${path}[${index}]`, valueTypesById)
105
+ validateSchemaValue(
106
+ schema.items,
107
+ value[index],
108
+ `${path}[${index}]`,
109
+ valueTypesById,
110
+ `${diagnosticPath}[${index}]`
111
+ )
79
112
  }
80
113
  return
81
114
  }
82
115
 
83
116
  if (schema.type === "map") {
84
117
  if (!isRecord(value)) {
85
- throw new OntologyValidationError(`[Sixb] Property ${path} must be an object map`)
118
+ throw withFailureMessage(
119
+ new OntologyValidationError(`[Sixb] Property ${path} must be an object map`),
120
+ `Property ${diagnosticPath} must be an object map.`
121
+ )
86
122
  }
87
123
  for (const [key, entry] of Object.entries(value)) {
88
- validateSchemaValue(schema.valueSchema, entry, `${path}.${key}`, valueTypesById)
124
+ validateSchemaValue(
125
+ schema.valueSchema,
126
+ entry,
127
+ `${path}.${key}`,
128
+ valueTypesById,
129
+ `${diagnosticPath}.*`
130
+ )
89
131
  }
90
132
  return
91
133
  }
92
134
 
93
135
  if (schema.type === "object") {
94
136
  if (!isRecord(value)) {
95
- throw new OntologyValidationError(`[Sixb] Property ${path} must be an object`)
137
+ throw withFailureMessage(
138
+ new OntologyValidationError(`[Sixb] Property ${path} must be an object`),
139
+ `Property ${diagnosticPath} must be an object.`
140
+ )
96
141
  }
97
142
 
98
143
  const fields = schema.properties
99
144
  const fieldIds = new Set(Object.keys(fields))
100
145
  for (const fieldId of Object.keys(value)) {
101
146
  if (!fieldIds.has(fieldId)) {
102
- throw new OntologyValidationError(`[Sixb] Unknown field '${path}.${fieldId}'`)
147
+ throw withFailureMessage(
148
+ new OntologyValidationError(`[Sixb] Unknown field '${path}.${fieldId}'`),
149
+ `Object ${diagnosticPath} contains an undeclared field.`
150
+ )
103
151
  }
104
152
  }
105
153
 
@@ -107,12 +155,21 @@ export function validateSchemaValue(
107
155
  const fieldValue = value[fieldId]
108
156
  if (fieldValue === undefined) {
109
157
  if (field.required) {
110
- throw new OntologyValidationError(`[Sixb] Missing required field '${path}.${fieldId}'`)
158
+ throw withFailureMessage(
159
+ new OntologyValidationError(`[Sixb] Missing required field '${path}.${fieldId}'`),
160
+ `Missing required field '${diagnosticPath}.${fieldId}'.`
161
+ )
111
162
  }
112
163
  continue
113
164
  }
114
165
 
115
- validateFieldValue(field, fieldValue, `${path}.${fieldId}`, valueTypesById)
166
+ validateFieldValue(
167
+ field,
168
+ fieldValue,
169
+ `${path}.${fieldId}`,
170
+ valueTypesById,
171
+ `${diagnosticPath}.${fieldId}`
172
+ )
116
173
  }
117
174
  return
118
175
  }
@@ -122,7 +179,8 @@ export function validateSchemaValue(
122
179
  resolveValueTypeSchema(schema, valueTypesById, path),
123
180
  value,
124
181
  path,
125
- valueTypesById
182
+ valueTypesById,
183
+ diagnosticPath
126
184
  )
127
185
  }
128
186
  }
@@ -131,16 +189,20 @@ function validateFieldValue(
131
189
  field: ObjectFieldSchema,
132
190
  value: unknown,
133
191
  path: string,
134
- valueTypesById: ReadonlyMap<string, ValueType>
192
+ valueTypesById: ReadonlyMap<string, ValueType>,
193
+ diagnosticPath = path
135
194
  ): void {
136
195
  if (value === null) {
137
196
  if (field.nullable) {
138
197
  return
139
198
  }
140
- throw new OntologyValidationError(`[Sixb] Field ${path} cannot be null`)
199
+ throw withFailureMessage(
200
+ new OntologyValidationError(`[Sixb] Field ${path} cannot be null`),
201
+ `Field ${diagnosticPath} cannot be null.`
202
+ )
141
203
  }
142
204
 
143
- validateSchemaValue(field.schema, value, path, valueTypesById)
205
+ validateSchemaValue(field.schema, value, path, valueTypesById, diagnosticPath)
144
206
  }
145
207
 
146
208
  export function resolveValueTypeRef(schema: Schema): string | undefined {