@sixb/core 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/dist/actions/builders/params.d.ts +1 -22
  2. package/dist/actions/builders/params.d.ts.map +1 -1
  3. package/dist/actions/index.js +29 -28
  4. package/dist/actions/index.js.map +1 -1
  5. package/dist/actions/types/params.d.ts +10 -44
  6. package/dist/actions/types/params.d.ts.map +1 -1
  7. package/dist/actions/validation.d.ts.map +1 -1
  8. package/dist/actions/worker.js +3 -2
  9. package/dist/actions/worker.js.map +2 -2
  10. package/dist/agents/errors.d.ts +1 -1
  11. package/dist/agents/errors.d.ts.map +1 -1
  12. package/dist/agents/execution.d.ts +15 -9
  13. package/dist/agents/execution.d.ts.map +1 -1
  14. package/dist/agents/ids.d.ts +2 -0
  15. package/dist/agents/ids.d.ts.map +1 -1
  16. package/dist/agents/index.d.ts +1 -1
  17. package/dist/agents/index.d.ts.map +1 -1
  18. package/dist/agents/index.js +48 -42
  19. package/dist/agents/index.js.map +1 -1
  20. package/dist/agents/request.d.ts.map +1 -1
  21. package/dist/agents/sandbox.d.ts +5 -0
  22. package/dist/agents/sandbox.d.ts.map +1 -0
  23. package/dist/agents/streams/index.js +4 -3
  24. package/dist/agents/streams/index.js.map +1 -1
  25. package/dist/agents/streams/internal.js +4 -3
  26. package/dist/agents/streams/internal.js.map +1 -1
  27. package/dist/agents/validation.d.ts.map +1 -1
  28. package/dist/auth/index.js +8 -6
  29. package/dist/auth/index.js.map +1 -1
  30. package/dist/authorization/index.js +5 -4
  31. package/dist/authorization/index.js.map +1 -1
  32. package/dist/bootstrap/index.js +50 -46
  33. package/dist/bootstrap/index.js.map +1 -1
  34. package/dist/{chunk-17kfctj6.js → chunk-0mza4xb2.js} +2 -2
  35. package/dist/{chunk-g00bfdq6.js → chunk-2cxv584m.js} +12 -56
  36. package/dist/{chunk-g00bfdq6.js.map → chunk-2cxv584m.js.map} +3 -3
  37. package/dist/{chunk-jsy70480.js → chunk-2h63nrde.js} +365 -95
  38. package/dist/chunk-2h63nrde.js.map +20 -0
  39. package/dist/{chunk-1yefycb1.js → chunk-3bnt2wna.js} +2 -2
  40. package/dist/{chunk-awbhdqyc.js → chunk-3ghw2t5q.js} +1 -1
  41. package/dist/{chunk-b19g04jk.js → chunk-3h7ctayx.js} +1 -1
  42. package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
  43. package/dist/{chunk-5hz0fnca.js → chunk-4k53sm9e.js} +6 -2
  44. package/dist/chunk-4k53sm9e.js.map +12 -0
  45. package/dist/chunk-4ph94nhd.js +81 -0
  46. package/dist/chunk-4ph94nhd.js.map +10 -0
  47. package/dist/chunk-58geavnf.js +29 -0
  48. package/dist/chunk-58geavnf.js.map +10 -0
  49. package/dist/{chunk-0y39rgsb.js → chunk-5tetw4hn.js} +1 -1
  50. package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
  51. package/dist/chunk-69266efg.js.map +12 -0
  52. package/dist/{chunk-a0e6x5hd.js → chunk-6ma8dvzc.js} +121 -53
  53. package/dist/chunk-6ma8dvzc.js.map +15 -0
  54. package/dist/{chunk-skz0hst3.js → chunk-7c2g3sz9.js} +6 -86
  55. package/dist/{chunk-skz0hst3.js.map → chunk-7c2g3sz9.js.map} +3 -3
  56. package/dist/{chunk-z0s4axeh.js → chunk-7qnvhtcd.js} +93 -17
  57. package/dist/{chunk-z0s4axeh.js.map → chunk-7qnvhtcd.js.map} +7 -6
  58. package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
  59. package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
  60. package/dist/chunk-91kcnbf0.js.map +10 -0
  61. package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
  62. package/dist/chunk-96yw3pwd.js.map +10 -0
  63. package/dist/chunk-98cw09sw.js.map +2 -2
  64. package/dist/{chunk-93csa55g.js → chunk-axndsymr.js} +10 -4
  65. package/dist/chunk-axndsymr.js.map +11 -0
  66. package/dist/{chunk-4zhmdsx6.js → chunk-b768c93y.js} +61 -23
  67. package/dist/{chunk-4zhmdsx6.js.map → chunk-b768c93y.js.map} +5 -5
  68. package/dist/{chunk-dz5h08xv.js → chunk-bbaa1fet.js} +24 -9
  69. package/dist/{chunk-dz5h08xv.js.map → chunk-bbaa1fet.js.map} +4 -4
  70. package/dist/{chunk-7apz6hg4.js → chunk-bet1rb9h.js} +8 -4
  71. package/dist/chunk-bet1rb9h.js.map +10 -0
  72. package/dist/{chunk-358caqf5.js → chunk-bfjv1adk.js} +2 -2
  73. package/dist/{chunk-g91qxjj0.js → chunk-bg2bs62d.js} +5 -5
  74. package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
  75. package/dist/chunk-cd234ba4.js.map +14 -0
  76. package/dist/chunk-dmn70ztd.js.map +2 -2
  77. package/dist/{chunk-d63nnr5b.js → chunk-e1f1sqba.js} +39 -53
  78. package/dist/{chunk-d63nnr5b.js.map → chunk-e1f1sqba.js.map} +5 -6
  79. package/dist/{chunk-ap0g1g74.js → chunk-eyjzgav0.js} +39 -4
  80. package/dist/chunk-eyjzgav0.js.map +12 -0
  81. package/dist/{chunk-rb1xx120.js → chunk-f06sf7rr.js} +9 -5
  82. package/dist/chunk-f06sf7rr.js.map +11 -0
  83. package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
  84. package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
  85. package/dist/{chunk-38zv5rkr.js → chunk-g2gezsg5.js} +1 -1
  86. package/dist/{chunk-38zv5rkr.js.map → chunk-g2gezsg5.js.map} +2 -2
  87. package/dist/{chunk-01kj2pbh.js → chunk-g50nxqs5.js} +53 -66
  88. package/dist/chunk-g50nxqs5.js.map +18 -0
  89. package/dist/{chunk-1824gssz.js → chunk-gswwr35f.js} +4 -4
  90. package/dist/{chunk-92vk7gta.js → chunk-gzt6v1ja.js} +1 -1
  91. package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
  92. package/dist/chunk-hgqpcmyr.js.map +12 -0
  93. package/dist/{chunk-gqh45d2n.js → chunk-hkw8rykk.js} +2 -2
  94. package/dist/{chunk-f4w3yp4f.js → chunk-hzw7yv5g.js} +104 -21
  95. package/dist/chunk-hzw7yv5g.js.map +13 -0
  96. package/dist/{chunk-cfvakeax.js → chunk-jjwhy3rs.js} +5 -5
  97. package/dist/chunk-kept9cdd.js +29 -0
  98. package/dist/chunk-kept9cdd.js.map +10 -0
  99. package/dist/{chunk-ftv470j8.js → chunk-m7cx05vp.js} +247 -16
  100. package/dist/{chunk-ftv470j8.js.map → chunk-m7cx05vp.js.map} +14 -10
  101. package/dist/{chunk-z0271qkp.js → chunk-mdnw7nj8.js} +8 -6
  102. package/dist/chunk-mdnw7nj8.js.map +15 -0
  103. package/dist/{chunk-gq8vhakp.js → chunk-nzsy3xrp.js} +249 -86
  104. package/dist/{chunk-gq8vhakp.js.map → chunk-nzsy3xrp.js.map} +13 -11
  105. package/dist/chunk-p1683c0v.js +104 -0
  106. package/dist/chunk-p1683c0v.js.map +11 -0
  107. package/dist/chunk-p6r1ex7t.js +93 -0
  108. package/dist/chunk-p6r1ex7t.js.map +10 -0
  109. package/dist/{chunk-sepyxgpc.js → chunk-qm535afa.js} +10 -10
  110. package/dist/{chunk-sepyxgpc.js.map → chunk-qm535afa.js.map} +4 -4
  111. package/dist/chunk-r5zythxp.js +552 -0
  112. package/dist/chunk-r5zythxp.js.map +17 -0
  113. package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
  114. package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
  115. package/dist/{chunk-3ckk0xfj.js → chunk-sfypc7mk.js} +18 -13
  116. package/dist/{chunk-3ckk0xfj.js.map → chunk-sfypc7mk.js.map} +3 -3
  117. package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
  118. package/dist/chunk-t6f3tdnr.js.map +10 -0
  119. package/dist/{chunk-x9m9x2eq.js → chunk-t7dzd1tm.js} +3 -3
  120. package/dist/{chunk-pr2h4bv4.js → chunk-tg4g4zh0.js} +3 -3
  121. package/dist/chunk-vpxss818.js +56 -0
  122. package/dist/chunk-vpxss818.js.map +10 -0
  123. package/dist/{chunk-ms2tmn1k.js → chunk-vsg0g7h9.js} +53 -57
  124. package/dist/chunk-vsg0g7h9.js.map +17 -0
  125. package/dist/{chunk-8vj0rjgs.js → chunk-wjffn5m4.js} +1 -1
  126. package/dist/{chunk-wf88w4kp.js → chunk-x9tmx3fc.js} +2 -2
  127. package/dist/{chunk-fh8kgex1.js → chunk-xn686q2e.js} +8 -8
  128. package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
  129. package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
  130. package/dist/{chunk-v2vcg0w6.js → chunk-xtfryrfb.js} +2 -2
  131. package/dist/chunk-y0v18c2j.js +363 -0
  132. package/dist/chunk-y0v18c2j.js.map +14 -0
  133. package/dist/{chunk-72w2pxk7.js → chunk-y1ahv8b7.js} +11 -3
  134. package/dist/{chunk-72w2pxk7.js.map → chunk-y1ahv8b7.js.map} +3 -3
  135. package/dist/chunk-y3ev53cq.js +84 -0
  136. package/dist/chunk-y3ev53cq.js.map +10 -0
  137. package/dist/{chunk-gqm76kse.js → chunk-ybhz3j9g.js} +342 -41
  138. package/dist/{chunk-gqm76kse.js.map → chunk-ybhz3j9g.js.map} +17 -12
  139. package/dist/{chunk-z30bv4ga.js → chunk-yxb4c62x.js} +3 -2
  140. package/dist/{chunk-z30bv4ga.js.map → chunk-yxb4c62x.js.map} +3 -3
  141. package/dist/chunk-z3y5kg1x.js +14 -0
  142. package/dist/chunk-z3y5kg1x.js.map +10 -0
  143. package/dist/datasets/validation.d.ts +4 -0
  144. package/dist/datasets/validation.d.ts.map +1 -1
  145. package/dist/datasets/write.d.ts.map +1 -1
  146. package/dist/datasets/write.js +5 -4
  147. package/dist/datasets/write.js.map +1 -1
  148. package/dist/error-reporting/capability.d.ts +3 -2
  149. package/dist/error-reporting/capability.d.ts.map +1 -1
  150. package/dist/error-reporting/internal.js +5 -4
  151. package/dist/error-reporting/internal.js.map +1 -1
  152. package/dist/error-reporting/reports.d.ts +10 -0
  153. package/dist/error-reporting/reports.d.ts.map +1 -1
  154. package/dist/error-reporting/types.d.ts +10 -2
  155. package/dist/error-reporting/types.d.ts.map +1 -1
  156. package/dist/errors/catalog.d.ts +12 -0
  157. package/dist/errors/catalog.d.ts.map +1 -1
  158. package/dist/errors/failure-message.d.ts +8 -0
  159. package/dist/errors/failure-message.d.ts.map +1 -0
  160. package/dist/errors/internal.d.ts.map +1 -1
  161. package/dist/errors/internal.js +3 -2
  162. package/dist/errors/internal.js.map +1 -1
  163. package/dist/events/index.js +5 -4
  164. package/dist/events/index.js.map +1 -1
  165. package/dist/execution/agent.js +44 -41
  166. package/dist/execution/agent.js.map +1 -1
  167. package/dist/execution/authorization.d.ts.map +1 -1
  168. package/dist/execution/authorized-object-reader.d.ts +3 -0
  169. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  170. package/dist/execution/kernel-operation.d.ts +4 -0
  171. package/dist/execution/kernel-operation.d.ts.map +1 -0
  172. package/dist/execution/primitive.js +44 -41
  173. package/dist/execution/primitive.js.map +2 -2
  174. package/dist/execution/request.js +45 -42
  175. package/dist/execution/request.js.map +2 -2
  176. package/dist/execution/types.d.ts +6 -0
  177. package/dist/execution/types.d.ts.map +1 -1
  178. package/dist/index.d.ts +15 -5
  179. package/dist/index.d.ts.map +1 -1
  180. package/dist/index.js +68 -59
  181. package/dist/index.js.map +1 -1
  182. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  183. package/dist/lake-storage/index.js +5 -4
  184. package/dist/lake-storage/index.js.map +1 -1
  185. package/dist/materialization/errors.d.ts +1 -1
  186. package/dist/materialization/errors.d.ts.map +1 -1
  187. package/dist/materialization/index.d.ts +1 -0
  188. package/dist/materialization/index.d.ts.map +1 -1
  189. package/dist/materialization/index.js +3 -3
  190. package/dist/materialization/model.d.ts +2 -0
  191. package/dist/materialization/model.d.ts.map +1 -1
  192. package/dist/materialization/vectors.d.ts +19 -0
  193. package/dist/materialization/vectors.d.ts.map +1 -0
  194. package/dist/materializer/context.d.ts.map +1 -1
  195. package/dist/materializer/edits/commit.d.ts.map +1 -1
  196. package/dist/materializer/edits/vector-authority.d.ts +6 -0
  197. package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
  198. package/dist/materializer/edits/vectors.d.ts +6 -0
  199. package/dist/materializer/edits/vectors.d.ts.map +1 -0
  200. package/dist/materializer/effective/validate.d.ts.map +1 -1
  201. package/dist/materializer/effective/vector-indexing.d.ts +7 -0
  202. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
  203. package/dist/materializer/effective/vectors.d.ts +6 -0
  204. package/dist/materializer/effective/vectors.d.ts.map +1 -0
  205. package/dist/materializer/execution/work-executor.d.ts +2 -1
  206. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  207. package/dist/materializer/index.js +26 -25
  208. package/dist/materializer/index.js.map +1 -1
  209. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  210. package/dist/models/catalog-index.d.ts +15 -0
  211. package/dist/models/catalog-index.d.ts.map +1 -0
  212. package/dist/models/catalog.d.ts +27 -6
  213. package/dist/models/catalog.d.ts.map +1 -1
  214. package/dist/models/decision/catalog.d.ts +12 -0
  215. package/dist/models/decision/catalog.d.ts.map +1 -0
  216. package/dist/models/decision/errors.d.ts +7 -0
  217. package/dist/models/decision/errors.d.ts.map +1 -0
  218. package/dist/models/decision/output.d.ts +50 -0
  219. package/dist/models/decision/output.d.ts.map +1 -0
  220. package/dist/models/decision/questions.d.ts +14 -0
  221. package/dist/models/decision/questions.d.ts.map +1 -0
  222. package/dist/models/decision/runtime.d.ts +7 -0
  223. package/dist/models/decision/runtime.d.ts.map +1 -0
  224. package/dist/models/decision/types.d.ts +92 -0
  225. package/dist/models/decision/types.d.ts.map +1 -0
  226. package/dist/models/decision/validation.d.ts +7 -0
  227. package/dist/models/decision/validation.d.ts.map +1 -0
  228. package/dist/models/definitions.d.ts +1 -1
  229. package/dist/models/definitions.d.ts.map +1 -1
  230. package/dist/models/embedding-model.d.ts +60 -0
  231. package/dist/models/embedding-model.d.ts.map +1 -0
  232. package/dist/models/execution/binding.d.ts +2 -0
  233. package/dist/models/execution/binding.d.ts.map +1 -1
  234. package/dist/models/execution/embedding.d.ts +5 -0
  235. package/dist/models/execution/embedding.d.ts.map +1 -0
  236. package/dist/models/execution/index.js +29 -26
  237. package/dist/models/execution/index.js.map +1 -1
  238. package/dist/models/execution/model-call-recorder.d.ts +5 -1
  239. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  240. package/dist/models/execution/session.d.ts +21 -0
  241. package/dist/models/execution/session.d.ts.map +1 -0
  242. package/dist/models/execution.d.ts.map +1 -1
  243. package/dist/models/generation-types.d.ts +2 -0
  244. package/dist/models/generation-types.d.ts.map +1 -1
  245. package/dist/models/index.d.ts +9 -1
  246. package/dist/models/index.d.ts.map +1 -1
  247. package/dist/models/index.js +17 -7
  248. package/dist/models/index.js.map +1 -1
  249. package/dist/models/pricing.d.ts +3 -2
  250. package/dist/models/pricing.d.ts.map +1 -1
  251. package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
  252. package/dist/objects/execution.d.ts +1 -0
  253. package/dist/objects/execution.d.ts.map +1 -1
  254. package/dist/objects/index.js +29 -28
  255. package/dist/objects/index.js.map +1 -1
  256. package/dist/objects/query/executor.d.ts +3 -0
  257. package/dist/objects/query/executor.d.ts.map +1 -1
  258. package/dist/objects/query/index.d.ts +2 -0
  259. package/dist/objects/query/index.d.ts.map +1 -1
  260. package/dist/objects/query/index.js +34 -24
  261. package/dist/objects/query/index.js.map +1 -1
  262. package/dist/objects/query/ir.d.ts +6 -2
  263. package/dist/objects/query/ir.d.ts.map +1 -1
  264. package/dist/objects/query/normalize.d.ts.map +1 -1
  265. package/dist/objects/query/validate.d.ts.map +1 -1
  266. package/dist/objects/sdk/object-handle.d.ts +5 -0
  267. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  268. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  269. package/dist/objects/sdk/query-executor.d.ts +2 -0
  270. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  271. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  272. package/dist/objects/vectors/handle.d.ts +4 -0
  273. package/dist/objects/vectors/handle.d.ts.map +1 -0
  274. package/dist/objects/vectors/indexing-batch.d.ts +6 -0
  275. package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
  276. package/dist/objects/vectors/indexing-generate.d.ts +11 -0
  277. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
  278. package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
  279. package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
  280. package/dist/objects/vectors/indexing-shared.d.ts +17 -0
  281. package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
  282. package/dist/objects/vectors/indexing-single.d.ts +4 -0
  283. package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
  284. package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
  285. package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
  286. package/dist/objects/vectors/indexing.d.ts +7 -0
  287. package/dist/objects/vectors/indexing.d.ts.map +1 -0
  288. package/dist/objects/vectors/profile.d.ts +13 -0
  289. package/dist/objects/vectors/profile.d.ts.map +1 -0
  290. package/dist/objects/vectors/query.d.ts +5 -0
  291. package/dist/objects/vectors/query.d.ts.map +1 -0
  292. package/dist/objects/vectors/resolve-query.d.ts +6 -0
  293. package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
  294. package/dist/objects/vectors/types.d.ts +11 -0
  295. package/dist/objects/vectors/types.d.ts.map +1 -0
  296. package/dist/ontology/index.d.ts +2 -1
  297. package/dist/ontology/index.d.ts.map +1 -1
  298. package/dist/ontology/index.js +5 -5
  299. package/dist/ontology/index.js.map +1 -1
  300. package/dist/ontology/internal.js +5 -4
  301. package/dist/ontology/internal.js.map +1 -1
  302. package/dist/ontology/registry.d.ts.map +1 -1
  303. package/dist/ontology/types.d.ts +8 -9
  304. package/dist/ontology/types.d.ts.map +1 -1
  305. package/dist/ontology/validation/definition.d.ts +3 -0
  306. package/dist/ontology/validation/definition.d.ts.map +1 -0
  307. package/dist/ontology/validation/properties.d.ts.map +1 -1
  308. package/dist/ontology/validation/query.d.ts.map +1 -1
  309. package/dist/ontology/validation/schema.d.ts +1 -1
  310. package/dist/ontology/validation/schema.d.ts.map +1 -1
  311. package/dist/ontology/vector-profiles.d.ts +4 -0
  312. package/dist/ontology/vector-profiles.d.ts.map +1 -0
  313. package/dist/pipelines/index.js +28 -27
  314. package/dist/pipelines/index.js.map +1 -1
  315. package/dist/projections/internal.js +24 -23
  316. package/dist/projections/internal.js.map +1 -1
  317. package/dist/query.js +2 -2
  318. package/dist/queues/in-memory.d.ts +2 -1
  319. package/dist/queues/in-memory.d.ts.map +1 -1
  320. package/dist/queues/index.d.ts +1 -1
  321. package/dist/queues/index.d.ts.map +1 -1
  322. package/dist/queues/index.js +1 -1
  323. package/dist/queues/types.d.ts +5 -0
  324. package/dist/queues/types.d.ts.map +1 -1
  325. package/dist/runtime/create.d.ts +4 -3
  326. package/dist/runtime/create.d.ts.map +1 -1
  327. package/dist/runtime/host.d.ts +9 -6
  328. package/dist/runtime/host.d.ts.map +1 -1
  329. package/dist/runtime/internal.d.ts +3 -0
  330. package/dist/runtime/internal.d.ts.map +1 -1
  331. package/dist/runtime/internal.js +47 -1
  332. package/dist/runtime/internal.js.map +1 -1
  333. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  334. package/dist/runtime/sixb.d.ts +9 -4
  335. package/dist/runtime/sixb.d.ts.map +1 -1
  336. package/dist/runtime/types.d.ts +15 -3
  337. package/dist/runtime/types.d.ts.map +1 -1
  338. package/dist/sandboxes/auth.d.ts +16 -0
  339. package/dist/sandboxes/auth.d.ts.map +1 -0
  340. package/dist/sandboxes/config.d.ts +5 -0
  341. package/dist/sandboxes/config.d.ts.map +1 -0
  342. package/dist/sandboxes/configuration.d.ts +41 -0
  343. package/dist/sandboxes/configuration.d.ts.map +1 -0
  344. package/dist/sandboxes/environment.d.ts +13 -0
  345. package/dist/sandboxes/environment.d.ts.map +1 -0
  346. package/dist/sandboxes/errors.d.ts +1 -1
  347. package/dist/sandboxes/errors.d.ts.map +1 -1
  348. package/dist/sandboxes/index.d.ts +6 -1
  349. package/dist/sandboxes/index.d.ts.map +1 -1
  350. package/dist/sandboxes/index.js +16 -3
  351. package/dist/sandboxes/index.js.map +1 -1
  352. package/dist/sandboxes/sandbox.d.ts +35 -3
  353. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  354. package/dist/shared/params/builders.d.ts +25 -0
  355. package/dist/shared/params/builders.d.ts.map +1 -0
  356. package/dist/shared/params/types.d.ts +47 -0
  357. package/dist/shared/params/types.d.ts.map +1 -0
  358. package/dist/shared/params/validation.d.ts +15 -0
  359. package/dist/shared/params/validation.d.ts.map +1 -0
  360. package/dist/shares/internal.js +23 -22
  361. package/dist/shares/internal.js.map +2 -2
  362. package/dist/storage/action-runs/failure.js +4 -3
  363. package/dist/storage/action-runs/failure.js.map +1 -1
  364. package/dist/storage/action-runs/provider.js +1 -1
  365. package/dist/storage/agents/in-memory.d.ts +2 -1
  366. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  367. package/dist/storage/agents/index.d.ts +1 -1
  368. package/dist/storage/agents/index.d.ts.map +1 -1
  369. package/dist/storage/agents/provider.d.ts +5 -1
  370. package/dist/storage/agents/provider.d.ts.map +1 -1
  371. package/dist/storage/agents/provider.js +8 -4
  372. package/dist/storage/agents/provider.js.map +1 -1
  373. package/dist/storage/agents/types.d.ts +49 -0
  374. package/dist/storage/agents/types.d.ts.map +1 -1
  375. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  376. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  377. package/dist/storage/ai-cost/index.d.ts +1 -1
  378. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  379. package/dist/storage/ai-cost/provider.js +2 -2
  380. package/dist/storage/ai-cost/types.d.ts +14 -2
  381. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  382. package/dist/storage/ai-limits/enforcement.js +4 -3
  383. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  384. package/dist/storage/connector-connections/provider.js +3 -2
  385. package/dist/storage/connector-connections/provider.js.map +2 -2
  386. package/dist/storage/executions/provider.d.ts +3 -3
  387. package/dist/storage/executions/provider.d.ts.map +1 -1
  388. package/dist/storage/executions/provider.js +13 -11
  389. package/dist/storage/executions/provider.js.map +3 -3
  390. package/dist/storage/executions/types.d.ts +3 -0
  391. package/dist/storage/executions/types.d.ts.map +1 -1
  392. package/dist/storage/executions/validation.d.ts.map +1 -1
  393. package/dist/storage/index.d.ts +5 -3
  394. package/dist/storage/index.d.ts.map +1 -1
  395. package/dist/storage/index.js +25 -22
  396. package/dist/storage/index.js.map +1 -1
  397. package/dist/storage/internal.js +2 -2
  398. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  399. package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
  400. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  401. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  402. package/dist/storage/objects/in-memory/storage.d.ts +7 -0
  403. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  404. package/dist/storage/objects/types.d.ts +2 -0
  405. package/dist/storage/objects/types.d.ts.map +1 -1
  406. package/dist/storage/ontology/commits.d.ts +1 -0
  407. package/dist/storage/ontology/commits.d.ts.map +1 -1
  408. package/dist/storage/ontology/in-memory/index.d.ts +4 -0
  409. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  410. package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
  411. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  412. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
  413. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  414. package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
  415. package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
  416. package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
  417. package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
  418. package/dist/storage/ontology/index.d.ts +6 -0
  419. package/dist/storage/ontology/index.d.ts.map +1 -1
  420. package/dist/storage/ontology/provider.js +2 -2
  421. package/dist/storage/ontology/vector-indexing.d.ts +94 -0
  422. package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
  423. package/dist/storage/ontology/vectors.d.ts +56 -0
  424. package/dist/storage/ontology/vectors.d.ts.map +1 -0
  425. package/dist/storage/operation-scope.d.ts.map +1 -1
  426. package/dist/storage/operation-scope.js +1 -1
  427. package/dist/storage/projection-runs/provider.js +4 -3
  428. package/dist/storage/projection-runs/provider.js.map +1 -1
  429. package/dist/storage/types.d.ts +1 -1
  430. package/dist/storage/types.d.ts.map +1 -1
  431. package/dist/storage/workflow-runs/provider.js +9 -7
  432. package/dist/storage/workflow-runs/provider.js.map +1 -1
  433. package/dist/syncs/index.js +29 -28
  434. package/dist/syncs/index.js.map +1 -1
  435. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  436. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  437. package/dist/testing/index.js +448 -69
  438. package/dist/testing/index.js.map +7 -7
  439. package/dist/testing/object-query-contract.d.ts.map +1 -1
  440. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  441. package/dist/testing/queues-contract.d.ts.map +1 -1
  442. package/dist/webhooks/internal.js +24 -23
  443. package/dist/webhooks/internal.js.map +2 -2
  444. package/dist/workers/index.js +3 -2
  445. package/dist/workers/index.js.map +2 -2
  446. package/dist/workflows/failure.d.ts.map +1 -1
  447. package/dist/workflows/index.js +47 -43
  448. package/dist/workflows/index.js.map +1 -1
  449. package/package.json +1 -1
  450. package/src/actions/builders/params.ts +1 -48
  451. package/src/actions/types/params.ts +14 -74
  452. package/src/actions/validation.ts +7 -84
  453. package/src/agents/errors.ts +3 -0
  454. package/src/agents/execution.ts +67 -15
  455. package/src/agents/ids.ts +8 -0
  456. package/src/agents/index.ts +1 -0
  457. package/src/agents/request.ts +11 -0
  458. package/src/agents/sandbox.ts +44 -0
  459. package/src/agents/validation.ts +2 -108
  460. package/src/datasets/validation.ts +40 -11
  461. package/src/datasets/write.ts +8 -11
  462. package/src/error-reporting/capability.ts +11 -0
  463. package/src/error-reporting/reports.ts +23 -0
  464. package/src/error-reporting/types.ts +12 -1
  465. package/src/errors/catalog.ts +12 -0
  466. package/src/errors/failure-message.ts +15 -0
  467. package/src/errors/internal.ts +57 -25
  468. package/src/execution/authorization.ts +12 -5
  469. package/src/execution/authorized-object-reader.ts +37 -2
  470. package/src/execution/kernel-operation.ts +27 -0
  471. package/src/execution/scopes.ts +2 -0
  472. package/src/execution/types.ts +4 -4
  473. package/src/index.ts +60 -1
  474. package/src/lake-storage/in-memory.ts +5 -3
  475. package/src/materialization/errors.ts +2 -2
  476. package/src/materialization/index.ts +1 -0
  477. package/src/materialization/model.ts +2 -0
  478. package/src/materialization/vectors.ts +18 -0
  479. package/src/materializer/README.md +14 -0
  480. package/src/materializer/context.ts +10 -0
  481. package/src/materializer/edits/commit.ts +8 -1
  482. package/src/materializer/edits/vector-authority.ts +108 -0
  483. package/src/materializer/edits/vectors.ts +100 -0
  484. package/src/materializer/effective/validate.ts +10 -3
  485. package/src/materializer/effective/vector-indexing.ts +84 -0
  486. package/src/materializer/effective/vectors.ts +47 -0
  487. package/src/materializer/execution/work-executor.ts +11 -3
  488. package/src/materializer/projections/replace.ts +1 -1
  489. package/src/materializer/shared/normalize.ts +11 -0
  490. package/src/materializer/telemetry/append.ts +1 -1
  491. package/src/models/catalog-index.ts +38 -0
  492. package/src/models/catalog.ts +66 -38
  493. package/src/models/decision/catalog.ts +32 -0
  494. package/src/models/decision/errors.ts +18 -0
  495. package/src/models/decision/output.ts +101 -0
  496. package/src/models/decision/questions.ts +29 -0
  497. package/src/models/decision/runtime.ts +188 -0
  498. package/src/models/decision/types.ts +109 -0
  499. package/src/models/decision/validation.ts +335 -0
  500. package/src/models/definitions.ts +1 -1
  501. package/src/models/embedding-model.ts +129 -0
  502. package/src/models/execution/README.md +63 -0
  503. package/src/models/execution/binding.ts +2 -0
  504. package/src/models/execution/embedding.ts +133 -0
  505. package/src/models/execution/model-call-recorder.ts +42 -30
  506. package/src/models/execution/session.ts +81 -0
  507. package/src/models/execution.ts +10 -52
  508. package/src/models/generation-types.ts +2 -0
  509. package/src/models/index.ts +37 -0
  510. package/src/models/pricing.ts +1 -2
  511. package/src/objects/authorized-ontology-view.ts +12 -8
  512. package/src/objects/execution.ts +2 -0
  513. package/src/objects/query/executor.ts +13 -4
  514. package/src/objects/query/explain.ts +7 -2
  515. package/src/objects/query/index.ts +2 -0
  516. package/src/objects/query/ir.ts +6 -2
  517. package/src/objects/query/normalize.ts +5 -1
  518. package/src/objects/query/validate.ts +74 -73
  519. package/src/objects/sdk/object-handle.ts +3 -0
  520. package/src/objects/sdk/object-set.ts +1 -0
  521. package/src/objects/sdk/query-builder.ts +9 -3
  522. package/src/objects/sdk/query-executor.ts +2 -1
  523. package/src/objects/sdk/runtime-query-executor.ts +6 -2
  524. package/src/objects/vectors/README.md +59 -0
  525. package/src/objects/vectors/handle.ts +91 -0
  526. package/src/objects/vectors/indexing-batch.ts +163 -0
  527. package/src/objects/vectors/indexing-generate.ts +184 -0
  528. package/src/objects/vectors/indexing-runtime.ts +17 -0
  529. package/src/objects/vectors/indexing-shared.ts +188 -0
  530. package/src/objects/vectors/indexing-single.ts +51 -0
  531. package/src/objects/vectors/indexing-store-batch.ts +62 -0
  532. package/src/objects/vectors/indexing.ts +23 -0
  533. package/src/objects/vectors/profile.ts +64 -0
  534. package/src/objects/vectors/query.ts +16 -0
  535. package/src/objects/vectors/resolve-query.ts +89 -0
  536. package/src/objects/vectors/types.ts +10 -0
  537. package/src/ontology/index.ts +2 -0
  538. package/src/ontology/registry.ts +8 -0
  539. package/src/ontology/types.ts +9 -9
  540. package/src/ontology/validation/definition.ts +104 -0
  541. package/src/ontology/validation/properties.ts +14 -4
  542. package/src/ontology/validation/query.ts +34 -51
  543. package/src/ontology/validation/schema.ts +85 -23
  544. package/src/ontology/vector-profiles.ts +35 -0
  545. package/src/queues/in-memory.ts +5 -0
  546. package/src/queues/index.ts +1 -0
  547. package/src/queues/types.ts +10 -0
  548. package/src/runtime/create.ts +7 -6
  549. package/src/runtime/host.ts +42 -6
  550. package/src/runtime/internal.ts +3 -0
  551. package/src/runtime/resolve-definitions.ts +19 -1
  552. package/src/runtime/sixb.ts +27 -9
  553. package/src/runtime/types.ts +16 -4
  554. package/src/sandboxes/README.md +41 -0
  555. package/src/sandboxes/auth.ts +17 -0
  556. package/src/sandboxes/config.ts +37 -0
  557. package/src/sandboxes/configuration.ts +268 -0
  558. package/src/sandboxes/environment.ts +107 -0
  559. package/src/sandboxes/errors.ts +1 -1
  560. package/src/sandboxes/index.ts +15 -0
  561. package/src/sandboxes/sandbox.ts +38 -3
  562. package/src/shared/params/builders.ts +50 -0
  563. package/src/shared/params/types.ts +84 -0
  564. package/src/shared/params/validation.ts +114 -0
  565. package/src/storage/agents/in-memory.ts +25 -1
  566. package/src/storage/agents/index.ts +3 -0
  567. package/src/storage/agents/provider.ts +105 -0
  568. package/src/storage/agents/types.ts +54 -0
  569. package/src/storage/ai-cost/analytics.ts +59 -21
  570. package/src/storage/ai-cost/index.ts +1 -0
  571. package/src/storage/ai-cost/types.ts +19 -2
  572. package/src/storage/executions/provider.ts +24 -12
  573. package/src/storage/executions/types.ts +1 -0
  574. package/src/storage/executions/validation.ts +7 -3
  575. package/src/storage/index.ts +15 -1
  576. package/src/storage/objects/in-memory/query.ts +25 -11
  577. package/src/storage/objects/in-memory/read-scope.ts +9 -2
  578. package/src/storage/objects/in-memory/read-source.ts +5 -0
  579. package/src/storage/objects/in-memory/selected-reader.ts +5 -1
  580. package/src/storage/objects/in-memory/storage.ts +19 -1
  581. package/src/storage/objects/types.ts +2 -0
  582. package/src/storage/ontology/commits.ts +1 -0
  583. package/src/storage/ontology/in-memory/index.ts +20 -0
  584. package/src/storage/ontology/in-memory/materializations.ts +13 -0
  585. package/src/storage/ontology/in-memory/shared-state.ts +9 -0
  586. package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
  587. package/src/storage/ontology/in-memory/vectors.ts +73 -0
  588. package/src/storage/ontology/index.ts +14 -0
  589. package/src/storage/ontology/vector-indexing.ts +98 -0
  590. package/src/storage/ontology/vectors.ts +48 -0
  591. package/src/storage/operation-scope.ts +1 -0
  592. package/src/storage/types.ts +3 -0
  593. package/src/testing/agent-storage-contract.ts +246 -0
  594. package/src/testing/ai-cost-storage-contract.ts +134 -0
  595. package/src/testing/object-query-contract.ts +41 -25
  596. package/src/testing/object-read-scope-contract.ts +1 -5
  597. package/src/testing/queues-contract.ts +31 -0
  598. package/src/workflows/failure.ts +10 -4
  599. package/src/workflows/validation.ts +2 -2
  600. package/dist/chunk-01kj2pbh.js.map +0 -19
  601. package/dist/chunk-5hz0fnca.js.map +0 -12
  602. package/dist/chunk-7apz6hg4.js.map +0 -10
  603. package/dist/chunk-7bs40fe1.js.map +0 -12
  604. package/dist/chunk-860dwwy0.js.map +0 -14
  605. package/dist/chunk-93csa55g.js.map +0 -11
  606. package/dist/chunk-a0e6x5hd.js.map +0 -14
  607. package/dist/chunk-aa6z4a19.js.map +0 -12
  608. package/dist/chunk-ap0g1g74.js.map +0 -11
  609. package/dist/chunk-f0rwz2vh.js.map +0 -11
  610. package/dist/chunk-f4w3yp4f.js.map +0 -12
  611. package/dist/chunk-jsy70480.js.map +0 -15
  612. package/dist/chunk-mrp7k0pw.js.map +0 -10
  613. package/dist/chunk-ms2tmn1k.js.map +0 -17
  614. package/dist/chunk-rb1xx120.js.map +0 -11
  615. package/dist/chunk-yv79ncbv.js.map +0 -10
  616. package/dist/chunk-z0271qkp.js.map +0 -15
  617. package/dist/chunk-z3y411fq.js +0 -99
  618. package/dist/chunk-z3y411fq.js.map +0 -11
  619. /package/dist/{chunk-17kfctj6.js.map → chunk-0mza4xb2.js.map} +0 -0
  620. /package/dist/{chunk-1yefycb1.js.map → chunk-3bnt2wna.js.map} +0 -0
  621. /package/dist/{chunk-awbhdqyc.js.map → chunk-3ghw2t5q.js.map} +0 -0
  622. /package/dist/{chunk-b19g04jk.js.map → chunk-3h7ctayx.js.map} +0 -0
  623. /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
  624. /package/dist/{chunk-0y39rgsb.js.map → chunk-5tetw4hn.js.map} +0 -0
  625. /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
  626. /package/dist/{chunk-358caqf5.js.map → chunk-bfjv1adk.js.map} +0 -0
  627. /package/dist/{chunk-g91qxjj0.js.map → chunk-bg2bs62d.js.map} +0 -0
  628. /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
  629. /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
  630. /package/dist/{chunk-1824gssz.js.map → chunk-gswwr35f.js.map} +0 -0
  631. /package/dist/{chunk-92vk7gta.js.map → chunk-gzt6v1ja.js.map} +0 -0
  632. /package/dist/{chunk-gqh45d2n.js.map → chunk-hkw8rykk.js.map} +0 -0
  633. /package/dist/{chunk-cfvakeax.js.map → chunk-jjwhy3rs.js.map} +0 -0
  634. /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
  635. /package/dist/{chunk-653vwrzr.js.map → chunk-rdghfsss.js.map} +0 -0
  636. /package/dist/{chunk-x9m9x2eq.js.map → chunk-t7dzd1tm.js.map} +0 -0
  637. /package/dist/{chunk-pr2h4bv4.js.map → chunk-tg4g4zh0.js.map} +0 -0
  638. /package/dist/{chunk-8vj0rjgs.js.map → chunk-wjffn5m4.js.map} +0 -0
  639. /package/dist/{chunk-wf88w4kp.js.map → chunk-x9tmx3fc.js.map} +0 -0
  640. /package/dist/{chunk-fh8kgex1.js.map → chunk-xn686q2e.js.map} +0 -0
  641. /package/dist/{chunk-v2vcg0w6.js.map → chunk-xtfryrfb.js.map} +0 -0
@@ -1,17 +1,32 @@
1
1
  import { RuntimeError } from "../runtime/errors"
2
+ import { indexModelBindings } from "./catalog-index"
3
+ import { createDecisionCatalog, type DecisionModelCatalog } from "./decision/catalog"
4
+ import type { DecisionModel } from "./decision/types"
2
5
  import {
3
6
  defineLanguageModel,
4
7
  type LanguageModelDefinition,
5
8
  type ModelDefinition,
6
9
  } from "./definitions"
10
+ import { assertEmbeddingModel, type EmbeddingModel } from "./embedding-model"
7
11
  import type { LanguageModel } from "./language-model"
8
12
 
9
- /** Stable identity of one configured language-model binding. */
10
- export interface LanguageModelRef {
13
+ /** Stable identity of a configured provider binding. */
14
+ export interface ModelRef {
11
15
  readonly provider: string
12
16
  readonly modelId: string
13
17
  }
14
18
 
19
+ export type LanguageModelRef = ModelRef
20
+
21
+ export interface EmbeddingModelEntry extends ModelRef {
22
+ readonly model: EmbeddingModel
23
+ }
24
+
25
+ export interface EmbeddingModelCatalog {
26
+ list(): readonly EmbeddingModelEntry[]
27
+ getByRef(ref: ModelRef): EmbeddingModelEntry | null
28
+ }
29
+
15
30
  /** The configured language models, with the project default. */
16
31
  export interface LanguageModelCatalog {
17
32
  readonly default: LanguageModelEntry
@@ -32,61 +47,74 @@ export interface LanguageModelEntry extends LanguageModelRef {
32
47
 
33
48
  /** Models a project allows Sixb to use, organized by technical model kind. */
34
49
  export interface ModelCatalog {
35
- readonly language: LanguageModelCatalog
50
+ readonly language?: LanguageModelCatalog
51
+ readonly decision?: DecisionModelCatalog
52
+ readonly embedding: EmbeddingModelCatalog
36
53
  }
37
54
 
38
55
  export interface ModelCatalogInput {
39
56
  /** Ordered; the first entry is the project default. */
40
- readonly language: readonly LanguageModel[]
57
+ readonly language?: readonly LanguageModel[]
58
+ /** Ordered; the first entry is the project default decision model. */
59
+ readonly decision?: readonly DecisionModel[]
60
+ readonly embedding?: readonly EmbeddingModel[]
41
61
  }
42
62
 
43
- /** Build the immutable project model catalog. Rejects invalid, duplicate, and empty catalogs. */
63
+ // Only statically required inputs make their corresponding catalogs required.
64
+ type ConfiguredModelKinds<TInput> = {
65
+ [Kind in keyof ModelCatalog]-?: [TInput] extends [Record<Kind, readonly unknown[]>] ? Kind : never
66
+ }[keyof ModelCatalog]
67
+
68
+ export type ModelCatalogFor<TInput extends ModelCatalogInput> = ModelCatalog &
69
+ Required<Pick<ModelCatalog, ConfiguredModelKinds<TInput>>>
70
+
71
+ /** Build an immutable catalog while preserving each family's default and empty-list rules. */
72
+ export function createModelCatalog<TInput extends ModelCatalogInput>(
73
+ input: TInput
74
+ ): ModelCatalogFor<TInput>
44
75
  export function createModelCatalog(input: ModelCatalogInput): ModelCatalog {
45
- if (!Array.isArray(input?.language)) {
46
- throw new RuntimeError("[Sixb] 'models.language' must be an array of Sixb language models.")
76
+ if (!input || typeof input !== "object" || Array.isArray(input)) {
77
+ throw new RuntimeError("[Sixb] 'models' must be a model catalog configuration.")
47
78
  }
48
79
 
49
- const entries: LanguageModelEntry[] = []
50
- const byProvider = new Map<string, Map<string, LanguageModelEntry>>()
80
+ const language = createLanguageCatalog(input.language)
81
+ const embedding = createEmbeddingCatalog(input.embedding)
82
+ const decision = createDecisionCatalog(input.decision)
51
83
 
52
- for (const [index, model] of input.language.entries()) {
53
- assertLanguageModel(model, index)
84
+ if (!language && !decision && embedding.list().length === 0) {
85
+ throw new RuntimeError("[Sixb] Configure at least one language, embedding or decision model.")
86
+ }
54
87
 
55
- let byModelId = byProvider.get(model.providerId)
56
- if (byModelId === undefined) {
57
- byModelId = new Map()
58
- byProvider.set(model.providerId, byModelId)
59
- }
60
- if (byModelId.has(model.modelId)) {
61
- throw new RuntimeError(
62
- `[Sixb] Duplicate language model '${model.providerId}/${model.modelId}' in 'models'. Each provider and model id pair may be configured once.`
63
- )
64
- }
88
+ return Object.freeze({ language, embedding, decision })
89
+ }
65
90
 
66
- const entry = Object.freeze({
67
- provider: model.providerId,
68
- modelId: model.modelId,
69
- model,
70
- })
71
- byModelId.set(model.modelId, entry)
72
- entries.push(entry)
91
+ function createLanguageCatalog(
92
+ models: readonly LanguageModel[] | undefined
93
+ ): LanguageModelCatalog | undefined {
94
+ if (models === undefined) return undefined
95
+ if (!Array.isArray(models)) {
96
+ throw new RuntimeError("[Sixb] 'models.language' must be an array of Sixb language models.")
73
97
  }
74
98
 
75
- const [defaultEntry] = entries
76
- if (defaultEntry === undefined) {
99
+ const index = indexModelBindings(models, "language", assertLanguageModel)
100
+ const [defaultEntry] = index.list()
101
+ if (!defaultEntry) {
77
102
  throw new RuntimeError(
78
- "[Sixb] 'models.language' needs at least one model. Configure one or omit 'models' from createSixb()."
103
+ "[Sixb] 'models.language' needs at least one model. Configure one or omit 'models.language'."
79
104
  )
80
105
  }
81
106
 
82
- const listed = Object.freeze(entries.slice())
83
- const language: LanguageModelCatalog = Object.freeze({
84
- default: defaultEntry,
85
- list: () => listed,
86
- getByRef: (ref: LanguageModelRef) => byProvider.get(ref.provider)?.get(ref.modelId) ?? null,
87
- })
107
+ return Object.freeze({ ...index, default: defaultEntry })
108
+ }
109
+
110
+ function createEmbeddingCatalog(
111
+ models: readonly EmbeddingModel[] | undefined
112
+ ): EmbeddingModelCatalog {
113
+ if (models !== undefined && !Array.isArray(models)) {
114
+ throw new RuntimeError("[Sixb] models.embedding must be an array of embedding models.")
115
+ }
88
116
 
89
- return Object.freeze({ language })
117
+ return indexModelBindings(models ?? [], "embedding", assertEmbeddingModel)
90
118
  }
91
119
 
92
120
  function assertLanguageModel(model: unknown, index: number): asserts model is LanguageModel {
@@ -0,0 +1,32 @@
1
+ import { RuntimeError } from "../../runtime/errors"
2
+ import type { ModelRef } from "../catalog"
3
+ import { indexModelBindings } from "../catalog-index"
4
+ import type { DecisionModel } from "./types"
5
+ import { assertDecisionModel } from "./validation"
6
+
7
+ export interface DecisionModelEntry extends ModelRef {
8
+ readonly model: DecisionModel
9
+ }
10
+
11
+ export interface DecisionModelCatalog {
12
+ readonly default: DecisionModelEntry
13
+ list(): readonly DecisionModelEntry[]
14
+ getByRef(ref: ModelRef): DecisionModelEntry | null
15
+ }
16
+
17
+ export function createDecisionCatalog(
18
+ models: readonly DecisionModel[] | undefined
19
+ ): DecisionModelCatalog | undefined {
20
+ if (models === undefined) return undefined
21
+ if (!Array.isArray(models)) {
22
+ throw new RuntimeError("[Sixb] models.decision must be a nonempty array of decision models.")
23
+ }
24
+
25
+ const index = indexModelBindings(models, "decision", assertDecisionModel)
26
+ const [defaultEntry] = index.list()
27
+ if (!defaultEntry) {
28
+ throw new RuntimeError("[Sixb] models.decision must be a nonempty array of decision models.")
29
+ }
30
+
31
+ return Object.freeze({ ...index, default: defaultEntry })
32
+ }
@@ -0,0 +1,18 @@
1
+ import { ModelProviderError } from "../errors"
2
+ import type { DecisionModelResponseMetadata } from "./types"
3
+
4
+ export class DecisionModelResponseError extends ModelProviderError {
5
+ constructor(
6
+ message: string,
7
+ providerId: string,
8
+ modelId: string,
9
+ readonly metadata: DecisionModelResponseMetadata,
10
+ options?: ErrorOptions
11
+ ) {
12
+ super(message, providerId, modelId, {
13
+ ...options,
14
+ code: "invalid_decision_response",
15
+ retryable: false,
16
+ })
17
+ }
18
+ }
@@ -0,0 +1,101 @@
1
+ import type { SchemaOrRef } from "../../ontology/refs"
2
+ import type {
3
+ ChoiceQuestion,
4
+ DecisionContent,
5
+ DecisionQuestion,
6
+ DecisionQuestions,
7
+ ScoreQuestion,
8
+ } from "./types"
9
+ import { assertDecisionQuestions } from "./validation"
10
+
11
+ type RequiredField<S extends SchemaOrRef> = { required: true; schema: S }
12
+ type ChoiceAnswerSchema<C extends Readonly<Record<string, DecisionContent | null>>> = {
13
+ type: "object"
14
+ properties: {
15
+ choice: RequiredField<{
16
+ type: "enum"
17
+ valueType: "string"
18
+ values: `${Extract<keyof C, string | number>}`[]
19
+ }>
20
+ probabilities: RequiredField<{
21
+ type: "object"
22
+ properties: { [K in keyof C]: RequiredField<"double"> }
23
+ }>
24
+ confidence: { schema: "double" }
25
+ }
26
+ }
27
+ export type DecisionAnswerSchema<Q extends DecisionQuestion> =
28
+ Q extends ChoiceQuestion<infer C>
29
+ ? ChoiceAnswerSchema<C>
30
+ : Q extends ScoreQuestion
31
+ ? {
32
+ type: "object"
33
+ properties: {
34
+ score: RequiredField<"double">
35
+ probabilities: RequiredField<{ type: "array"; items: "double" }>
36
+ confidence: { schema: "double" }
37
+ }
38
+ }
39
+ : { type: "object"; properties: { probability: RequiredField<"double"> } }
40
+ export type DecisionOutputShape<Q extends DecisionQuestions> = {
41
+ -readonly [K in keyof Q]: DecisionAnswerSchema<Q[K]>
42
+ }
43
+
44
+ /** Ordinary Sixb output schemas for actions/workflow steps; evaluate() validates distributions. */
45
+ export function decisionOutput<const Q extends DecisionQuestions>(
46
+ questions: Q
47
+ ): DecisionOutputShape<Q> {
48
+ assertDecisionQuestions(questions)
49
+ const result: Record<string, SchemaOrRef> = Object.fromEntries(
50
+ Object.entries(questions).map(([key, q]) => {
51
+ if (q.type === "probability")
52
+ return [
53
+ key,
54
+ {
55
+ type: "object",
56
+ properties: { probability: { required: true, schema: "double" } },
57
+ },
58
+ ]
59
+ const confidence = { schema: "double" as const }
60
+ if (q.type === "score")
61
+ return [
62
+ key,
63
+ {
64
+ type: "object",
65
+ properties: {
66
+ score: { required: true, schema: "double" },
67
+ probabilities: { required: true, schema: { type: "array", items: "double" } },
68
+ confidence,
69
+ },
70
+ },
71
+ ]
72
+ return [
73
+ key,
74
+ {
75
+ type: "object",
76
+ properties: {
77
+ choice: {
78
+ required: true,
79
+ schema: { type: "enum", valueType: "string", values: Object.keys(q.options) },
80
+ },
81
+ probabilities: {
82
+ required: true,
83
+ schema: {
84
+ type: "object",
85
+ properties: Object.fromEntries(
86
+ Object.keys(q.options).map((option) => [
87
+ option,
88
+ { required: true, schema: "double" },
89
+ ])
90
+ ),
91
+ },
92
+ },
93
+ confidence,
94
+ },
95
+ },
96
+ ]
97
+ })
98
+ )
99
+ // Each branch builds the corresponding schema while retaining literal option keys in the type.
100
+ return result as DecisionOutputShape<Q>
101
+ }
@@ -0,0 +1,29 @@
1
+ import type { ChoiceQuestion, DecisionContent, ProbabilityQuestion, ScoreQuestion } from "./types"
2
+ import { assertDecisionQuestions } from "./validation"
3
+
4
+ /** Plain serializable descriptors; no registration or inference takes place here. */
5
+ export const question = {
6
+ choice<const TOptions extends Readonly<Record<string, DecisionContent | null>>>(input: {
7
+ readonly instructions: DecisionContent
8
+ readonly options: TOptions
9
+ }): ChoiceQuestion<TOptions> {
10
+ const result = { ...input, type: "choice" as const }
11
+ assertDecisionQuestions({ question: result })
12
+ return result
13
+ },
14
+ score<
15
+ const TLevels extends readonly [DecisionContent, DecisionContent, ...DecisionContent[]],
16
+ >(input: {
17
+ readonly instructions: DecisionContent
18
+ readonly levels: TLevels
19
+ }): ScoreQuestion<TLevels> {
20
+ const result = { ...input, type: "score" as const }
21
+ assertDecisionQuestions({ question: result })
22
+ return result
23
+ },
24
+ probability(instructions: DecisionContent): ProbabilityQuestion {
25
+ const result = { type: "probability" as const, instructions }
26
+ assertDecisionQuestions({ question: result })
27
+ return result
28
+ },
29
+ }
@@ -0,0 +1,188 @@
1
+ import { randomUUID } from "node:crypto"
2
+ import { assertProviderAccess } from "../../authorization"
3
+ import type { ExecutionContext } from "../../execution"
4
+ import { cloneJsonValue } from "../../json"
5
+ import type { SixbRuntimeContext } from "../../runtime/types"
6
+ import type { ModelCatalog } from "../catalog"
7
+ import { AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE } from "../execution/model-call-admission"
8
+ import type { AiModelCallRecorder } from "../execution/model-call-recorder"
9
+ import type { ModelExecutionSession } from "../execution/session"
10
+ import { estimateModelCall } from "../pricing"
11
+ import { DecisionModelResponseError } from "./errors"
12
+ import type {
13
+ DecisionAnswers,
14
+ DecisionModel,
15
+ DecisionModelRequest,
16
+ DecisionModelResponseMetadata,
17
+ DecisionModelResult,
18
+ DecisionModelsRuntime,
19
+ } from "./types"
20
+ import {
21
+ assertDecisionContent,
22
+ assertDecisionModel,
23
+ assertDecisionQuestions,
24
+ assertDecisionSupport,
25
+ validateDecisionAnswers,
26
+ } from "./validation"
27
+
28
+ export function createDecisionRuntime(
29
+ runtime: SixbRuntimeContext,
30
+ execution: ExecutionContext,
31
+ catalog: ModelCatalog | undefined,
32
+ session: ModelExecutionSession
33
+ ): DecisionModelsRuntime {
34
+ return {
35
+ async evaluate(input) {
36
+ assertProviderAccess(runtime, execution, "models.decision.evaluate")
37
+ assertDecisionContent(input.input, "input")
38
+ assertDecisionQuestions(input.questions)
39
+
40
+ // Snapshot before the first await; caller edits cannot change an admitted request.
41
+ const state = cloneJsonValue(input.input)
42
+ assertDecisionContent(state, "input")
43
+ const questions = structuredClone(input.questions)
44
+ const signal = session.signal(input.signal)
45
+ signal.throwIfAborted()
46
+
47
+ const binding = resolveDecisionModel(catalog, input.model)
48
+ assertDecisionModel(binding)
49
+ assertDecisionSupport(binding, questions)
50
+
51
+ const accounting = await session.accounting()
52
+ accounting.assertHealthy()
53
+ signal.throwIfAborted()
54
+ const model = binding.resolve ? await binding.resolve() : binding
55
+ assertDecisionModel(model)
56
+ if (model.providerId !== binding.providerId || model.modelId !== binding.modelId) {
57
+ throw new TypeError(
58
+ "[SixbModels] Resolved decision model identity does not match the selected model."
59
+ )
60
+ }
61
+ assertDecisionSupport(model, questions)
62
+ signal.throwIfAborted()
63
+ const request = { input: state, questions, signal }
64
+ const callId = await admitDecisionCall(accounting, model, request)
65
+
66
+ let result: DecisionModelResult
67
+ try {
68
+ signal.throwIfAborted()
69
+ result = await model.evaluate(request)
70
+ } catch (error) {
71
+ const metadata = error instanceof DecisionModelResponseError ? error.metadata : {}
72
+ await recordDecision(accounting, model, callId, metadata)
73
+ throw error
74
+ }
75
+
76
+ // Account before validation or cancellation can reject a billable response.
77
+ const event = await recordDecision(accounting, model, callId, result ?? {})
78
+ signal.throwIfAborted()
79
+
80
+ let output: DecisionAnswers<typeof input.questions>
81
+ try {
82
+ output = validateDecisionAnswers(
83
+ questions,
84
+ result?.output,
85
+ model.definition.capabilities.answerDecimalPlaces
86
+ )
87
+ } catch (cause) {
88
+ throw new DecisionModelResponseError(
89
+ "[SixbModels] Invalid decision response.",
90
+ model.providerId,
91
+ model.modelId,
92
+ result ?? {},
93
+ { cause }
94
+ )
95
+ }
96
+
97
+ return {
98
+ output,
99
+ callId,
100
+ ...(event.responseModelId === undefined ? {} : { responseModelId: event.responseModelId }),
101
+ usage: event.usage,
102
+ cost: event.cost,
103
+ }
104
+ },
105
+ }
106
+ }
107
+
108
+ function resolveDecisionModel(
109
+ catalog: ModelCatalog | undefined,
110
+ requested: DecisionModel | undefined
111
+ ): DecisionModel {
112
+ if (!requested) {
113
+ const model = catalog?.decision?.default.model
114
+ if (!model) {
115
+ throw new Error("[SixbModels] Configure models.decision or supply a model to evaluate().")
116
+ }
117
+ return model
118
+ }
119
+
120
+ if (!catalog) return requested
121
+
122
+ // The catalog owns the binding, even when a caller supplies another object with the same ID.
123
+ const entry = catalog.decision?.getByRef({
124
+ provider: requested.providerId,
125
+ modelId: requested.modelId,
126
+ })
127
+ if (!entry) {
128
+ throw new Error(
129
+ `[SixbModels] Model '${requested.providerId}/${requested.modelId}' is not configured in models.decision.`
130
+ )
131
+ }
132
+ return entry.model
133
+ }
134
+
135
+ async function admitDecisionCall(
136
+ accounting: AiModelCallRecorder,
137
+ model: DecisionModel,
138
+ request: DecisionModelRequest
139
+ ): Promise<string> {
140
+ const callId = `call_${randomUUID()}`
141
+ const serialized = JSON.stringify({ input: request.input, questions: request.questions })
142
+ const tokens = Math.ceil(new TextEncoder().encode(serialized).byteLength / 4)
143
+
144
+ // Reservation estimate only; neither an exact context check nor an enforced output cap.
145
+ const outputTokenAllowance = AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE
146
+ await accounting.admitCall({
147
+ callId,
148
+ providerId: model.providerId,
149
+ modelId: model.modelId,
150
+ costEstimator: model.costEstimator,
151
+ inputTokens: { status: "estimated", tokens, method: "utf8BytesDividedByFour" },
152
+ outputTokenAllowance,
153
+ estimatedTotalTokens: tokens + outputTokenAllowance,
154
+ })
155
+
156
+ return callId
157
+ }
158
+
159
+ async function recordDecision(
160
+ accounting: AiModelCallRecorder,
161
+ model: DecisionModel,
162
+ callId: string,
163
+ metadata: DecisionModelResponseMetadata
164
+ ) {
165
+ const usage = metadata.usage ?? {}
166
+ const estimate = estimateModelCall(model, {
167
+ usage,
168
+ route: metadata.route,
169
+ responseModelId: metadata.responseModelId,
170
+ })
171
+ const event = {
172
+ callId,
173
+ providerId: model.providerId,
174
+ modelId: model.modelId,
175
+ responseId: metadata.providerIds?.responseId ?? callId,
176
+ responseModelId: metadata.responseModelId,
177
+ providerIds: metadata.providerIds,
178
+ usage,
179
+ cost: metadata.reportedCost
180
+ ? { status: "reported" as const, ...metadata.reportedCost }
181
+ : estimate,
182
+ ...(metadata.reportedCost ? { estimate } : {}),
183
+ route: metadata.route,
184
+ }
185
+
186
+ await accounting.onModelCallEnd(event)
187
+ return event
188
+ }
@@ -0,0 +1,109 @@
1
+ import type { ReadonlyJsonArray, ReadonlyJsonObject } from "../../json"
2
+ import type { ModelDefinition } from "../definitions"
3
+ import type { ModelProviderIds, ModelRoute, ModelUsage } from "../events"
4
+ import type { ModelCallCost, ModelCostEstimator, ModelReportedCost } from "../pricing"
5
+
6
+ /** Text or structured text. Non-text media must be prepared explicitly by the application. */
7
+ export type DecisionContent = string | ReadonlyJsonObject | ReadonlyJsonArray
8
+
9
+ export interface ChoiceQuestion<
10
+ TOptions extends Readonly<Record<string, DecisionContent | null>> = Readonly<
11
+ Record<string, DecisionContent | null>
12
+ >,
13
+ > {
14
+ readonly type: "choice"
15
+ readonly instructions: DecisionContent
16
+ readonly options: TOptions
17
+ }
18
+
19
+ export interface ScoreQuestion<
20
+ TLevels extends readonly DecisionContent[] = readonly DecisionContent[],
21
+ > {
22
+ readonly type: "score"
23
+ readonly instructions: DecisionContent
24
+ readonly levels: TLevels
25
+ }
26
+
27
+ export interface ProbabilityQuestion {
28
+ readonly type: "probability"
29
+ readonly instructions: DecisionContent
30
+ }
31
+
32
+ export type DecisionQuestion = ChoiceQuestion | ScoreQuestion | ProbabilityQuestion
33
+ export type DecisionQuestions = Readonly<Record<string, DecisionQuestion>>
34
+ export type DecisionAnswer<TQuestion extends DecisionQuestion> =
35
+ TQuestion extends ChoiceQuestion<infer TOptions>
36
+ ? {
37
+ choice: `${Extract<keyof TOptions, string | number>}`
38
+ probabilities: { -readonly [K in keyof TOptions]: number }
39
+ confidence?: number
40
+ }
41
+ : TQuestion extends ScoreQuestion
42
+ ? { score: number; probabilities: number[]; confidence?: number }
43
+ : { probability: number }
44
+ export type DecisionAnswers<TQuestions extends DecisionQuestions> = {
45
+ -readonly [K in keyof TQuestions]: DecisionAnswer<TQuestions[K]>
46
+ }
47
+
48
+ export interface DecisionModelDefinition extends ModelDefinition {
49
+ readonly kind: "decision"
50
+ readonly capabilities: {
51
+ readonly questions: readonly DecisionQuestion["type"][]
52
+ readonly maxChoices?: number
53
+ readonly maxScoreLevels?: number
54
+ /** Independent decimal rounding of returned scores/probabilities; omitted means strict validation. */
55
+ readonly answerDecimalPlaces?: number
56
+ }
57
+ }
58
+
59
+ export interface DecisionModelRequest {
60
+ readonly input: DecisionContent
61
+ readonly questions: DecisionQuestions
62
+ /** Providers must pass cancellation through to their transport. */
63
+ readonly signal?: AbortSignal
64
+ }
65
+
66
+ export interface DecisionModelResponseMetadata {
67
+ readonly usage?: ModelUsage
68
+ readonly providerIds?: ModelProviderIds
69
+ readonly responseModelId?: string
70
+ readonly reportedCost?: ModelReportedCost
71
+ readonly route?: ModelRoute
72
+ }
73
+
74
+ export interface DecisionModelResult extends DecisionModelResponseMetadata {
75
+ /** Decoded answers; Sixb still validates them against the original questions at runtime. */
76
+ readonly output: DecisionAnswers<DecisionQuestions>
77
+ }
78
+
79
+ /** An explicit provider binding; declaring it never triggers inference. */
80
+ export interface DecisionModel {
81
+ readonly providerId: string
82
+ readonly modelId: string
83
+ readonly definition: DecisionModelDefinition
84
+ readonly costEstimator?: ModelCostEstimator
85
+ /** Resolve and pin optional metadata/pricing before admission, without inference. */
86
+ resolve?(): Promise<DecisionModel>
87
+ evaluate(request: DecisionModelRequest): Promise<DecisionModelResult>
88
+ }
89
+
90
+ export interface DecisionEvaluateInput<TQuestions extends DecisionQuestions> {
91
+ readonly input: DecisionContent
92
+ readonly questions: TQuestions
93
+ readonly model?: DecisionModel
94
+ readonly signal?: AbortSignal
95
+ }
96
+
97
+ export interface DecisionEvaluateResult<TQuestions extends DecisionQuestions> {
98
+ readonly output: DecisionAnswers<TQuestions>
99
+ readonly callId: string
100
+ readonly responseModelId?: string
101
+ readonly usage: ModelUsage
102
+ readonly cost: ModelCallCost
103
+ }
104
+
105
+ export interface DecisionModelsRuntime {
106
+ evaluate<const TQuestions extends DecisionQuestions>(
107
+ input: DecisionEvaluateInput<TQuestions>
108
+ ): Promise<DecisionEvaluateResult<TQuestions>>
109
+ }