@sixb/core 0.1.15 → 0.1.17

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 (585) hide show
  1. package/dist/actions/index.js +25 -25
  2. package/dist/actions/types/context.d.ts +2 -2
  3. package/dist/actions/types/context.d.ts.map +1 -1
  4. package/dist/actions/worker.js +1 -1
  5. package/dist/agents/index.js +41 -40
  6. package/dist/agents/index.js.map +1 -1
  7. package/dist/auth/index.js +5 -5
  8. package/dist/authorization/index.js +2 -2
  9. package/dist/blob-storage/download-urls.d.ts +41 -0
  10. package/dist/blob-storage/download-urls.d.ts.map +1 -0
  11. package/dist/blob-storage/execution.d.ts +9 -1
  12. package/dist/blob-storage/execution.d.ts.map +1 -1
  13. package/dist/blob-storage/index.js +5 -3
  14. package/dist/blob-storage/index.js.map +1 -1
  15. package/dist/blob-storage/internal.d.ts +2 -0
  16. package/dist/blob-storage/internal.d.ts.map +1 -0
  17. package/dist/blob-storage/internal.js +11 -0
  18. package/dist/blob-storage/internal.js.map +9 -0
  19. package/dist/bootstrap/index.js +45 -44
  20. package/dist/bootstrap/index.js.map +1 -1
  21. package/dist/{chunk-wem5vqjw.js → chunk-10styjgk.js} +18 -13
  22. package/dist/{chunk-wem5vqjw.js.map → chunk-10styjgk.js.map} +3 -3
  23. package/dist/{chunk-hgqpcmyr.js → chunk-1hqwggsn.js} +47 -19
  24. package/dist/chunk-1hqwggsn.js.map +12 -0
  25. package/dist/{chunk-q3grgzp1.js → chunk-23xs4qp9.js} +2 -2
  26. package/dist/{chunk-vef6qa14.js → chunk-2am3db31.js} +2 -2
  27. package/dist/{chunk-fj1dvp37.js → chunk-2vhg6ysa.js} +1 -1
  28. package/dist/{chunk-p0nbkys4.js → chunk-33saed7g.js} +1 -1
  29. package/dist/{chunk-mdnw7nj8.js → chunk-3rrezgyc.js} +33 -8
  30. package/dist/chunk-3rrezgyc.js.map +15 -0
  31. package/dist/{chunk-jgwb25gc.js → chunk-4as3wt1c.js} +13 -5
  32. package/dist/chunk-4as3wt1c.js.map +12 -0
  33. package/dist/chunk-4ra628t7.js +88 -0
  34. package/dist/chunk-4ra628t7.js.map +10 -0
  35. package/dist/{chunk-mmac1mp6.js → chunk-52c5zb0z.js} +2 -2
  36. package/dist/{chunk-8fjmqjyx.js → chunk-5be2ath4.js} +1 -1
  37. package/dist/{chunk-2fv8sajb.js → chunk-5thzcb8g.js} +2 -2
  38. package/dist/{chunk-fjw417jf.js → chunk-5yd8cchh.js} +1143 -784
  39. package/dist/chunk-5yd8cchh.js.map +66 -0
  40. package/dist/{chunk-2tz5vnvz.js → chunk-6wbm6ymz.js} +235 -41
  41. package/dist/{chunk-2tz5vnvz.js.map → chunk-6wbm6ymz.js.map} +8 -6
  42. package/dist/{chunk-py2dw8cw.js → chunk-7ecp4v7a.js} +26 -19
  43. package/dist/chunk-7ecp4v7a.js.map +17 -0
  44. package/dist/{chunk-f85hpqnm.js → chunk-99nd4rc1.js} +3 -3
  45. package/dist/{chunk-f85hpqnm.js.map → chunk-99nd4rc1.js.map} +3 -3
  46. package/dist/{chunk-1jvq82rp.js → chunk-9g6jz9kk.js} +5 -5
  47. package/dist/{chunk-39tqv9hz.js → chunk-9se093qz.js} +5 -6
  48. package/dist/{chunk-39tqv9hz.js.map → chunk-9se093qz.js.map} +3 -4
  49. package/dist/{chunk-8w27xf9e.js → chunk-a7er86jd.js} +1 -1
  50. package/dist/{chunk-zdkcdshk.js → chunk-aq39q04r.js} +41 -3
  51. package/dist/{chunk-zdkcdshk.js.map → chunk-aq39q04r.js.map} +4 -3
  52. package/dist/chunk-b9affek3.js +261 -0
  53. package/dist/chunk-b9affek3.js.map +12 -0
  54. package/dist/{chunk-bxx3ms5t.js → chunk-c2rga5cx.js} +2 -2
  55. package/dist/{chunk-dsfw1bdr.js → chunk-cnb5kv05.js} +2 -2
  56. package/dist/chunk-d62kjtbg.js.map +2 -2
  57. package/dist/{chunk-dqkd3kdj.js → chunk-dam456ve.js} +234 -35
  58. package/dist/{chunk-dqkd3kdj.js.map → chunk-dam456ve.js.map} +7 -5
  59. package/dist/{chunk-n5t4mq6z.js → chunk-e67ynxcr.js} +3 -3
  60. package/dist/{chunk-xnx96gfy.js → chunk-ere85b8y.js} +17 -8
  61. package/dist/chunk-ere85b8y.js.map +15 -0
  62. package/dist/{chunk-k4kkp58d.js → chunk-ewqa58h9.js} +12 -2
  63. package/dist/chunk-ewqa58h9.js.map +11 -0
  64. package/dist/{chunk-6q7c68yx.js → chunk-f1xh7a32.js} +3 -3
  65. package/dist/{chunk-z708gemf.js → chunk-fggq3d9k.js} +450 -799
  66. package/dist/chunk-fggq3d9k.js.map +49 -0
  67. package/dist/{chunk-7jc21943.js → chunk-gf7yht60.js} +4 -4
  68. package/dist/chunk-h8teetr0.js +9 -0
  69. package/dist/chunk-h8teetr0.js.map +10 -0
  70. package/dist/chunk-hn2r7z41.js.map +1 -1
  71. package/dist/{chunk-ffwvdgk1.js → chunk-jjrn5v0p.js} +1 -1
  72. package/dist/{chunk-r5sc1d2b.js → chunk-jnfxmr3f.js} +1 -1
  73. package/dist/{chunk-y0zmae99.js → chunk-k4g51s47.js} +3 -3
  74. package/dist/{chunk-a0073121.js → chunk-kpx7jrmn.js} +3 -1
  75. package/dist/chunk-kpx7jrmn.js.map +12 -0
  76. package/dist/{chunk-p1683c0v.js → chunk-kyjcwqz6.js} +5 -2
  77. package/dist/{chunk-p1683c0v.js.map → chunk-kyjcwqz6.js.map} +3 -3
  78. package/dist/{chunk-3c90jvfj.js → chunk-pja9jfz6.js} +742 -583
  79. package/dist/chunk-pja9jfz6.js.map +19 -0
  80. package/dist/chunk-pqajwytd.js.map +1 -1
  81. package/dist/{chunk-mr60an99.js → chunk-qczk96d9.js} +22 -2
  82. package/dist/{chunk-mr60an99.js.map → chunk-qczk96d9.js.map} +3 -3
  83. package/dist/{chunk-s3csryxe.js → chunk-rj69qcrd.js} +8 -2
  84. package/dist/chunk-rj69qcrd.js.map +11 -0
  85. package/dist/{chunk-d8yes9yx.js → chunk-rpxz486p.js} +32 -5
  86. package/dist/{chunk-d8yes9yx.js.map → chunk-rpxz486p.js.map} +4 -4
  87. package/dist/{chunk-drz59ve0.js → chunk-rx7h5fdx.js} +1 -1
  88. package/dist/{chunk-ky7zpbtt.js → chunk-s7ftxrdr.js} +106 -8
  89. package/dist/chunk-s7ftxrdr.js.map +22 -0
  90. package/dist/{chunk-yfppyaty.js → chunk-sk0hcjsz.js} +1 -1
  91. package/dist/{chunk-qne45xqq.js → chunk-svabwqdq.js} +2 -2
  92. package/dist/{chunk-xr7y35yj.js → chunk-t9shqx3w.js} +2 -2
  93. package/dist/{chunk-4jph1t3v.js → chunk-tjjgy3z4.js} +27 -24
  94. package/dist/{chunk-4jph1t3v.js.map → chunk-tjjgy3z4.js.map} +4 -4
  95. package/dist/{chunk-ex8s8wsk.js → chunk-vp3z1ckh.js} +42 -10
  96. package/dist/{chunk-ex8s8wsk.js.map → chunk-vp3z1ckh.js.map} +7 -6
  97. package/dist/{chunk-adbve9zt.js → chunk-vre348sb.js} +2 -2
  98. package/dist/{chunk-a4g5yjm0.js → chunk-w9yycd3t.js} +1 -1
  99. package/dist/{chunk-g4rbm4a6.js → chunk-wt4szfec.js} +379 -331
  100. package/dist/chunk-wt4szfec.js.map +14 -0
  101. package/dist/{chunk-wd34wnsy.js → chunk-xcy5ddha.js} +6 -6
  102. package/dist/{chunk-3nx8vj5a.js → chunk-xyvy73tj.js} +5 -3
  103. package/dist/chunk-xyvy73tj.js.map +12 -0
  104. package/dist/datasets/write.js +1 -1
  105. package/dist/execution/agent.js +38 -37
  106. package/dist/execution/agent.js.map +1 -1
  107. package/dist/execution/authorized-object-reader.d.ts +3 -1
  108. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  109. package/dist/execution/primitive.js +36 -35
  110. package/dist/execution/primitive.js.map +2 -2
  111. package/dist/execution/request.js +37 -36
  112. package/dist/execution/request.js.map +2 -2
  113. package/dist/index.d.ts +8 -4
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +62 -59
  116. package/dist/index.js.map +1 -1
  117. package/dist/lake-storage/in-memory.d.ts +5 -1
  118. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  119. package/dist/lake-storage/index.d.ts +1 -1
  120. package/dist/lake-storage/index.d.ts.map +1 -1
  121. package/dist/lake-storage/index.js +2 -2
  122. package/dist/lake-storage/types.d.ts +26 -0
  123. package/dist/lake-storage/types.d.ts.map +1 -1
  124. package/dist/maintenance/ontology-maintenance.d.ts +5 -1
  125. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  126. package/dist/maintenance/types.d.ts +1 -4
  127. package/dist/maintenance/types.d.ts.map +1 -1
  128. package/dist/materialization/event-envelopes.d.ts +20 -0
  129. package/dist/materialization/event-envelopes.d.ts.map +1 -0
  130. package/dist/materialization/events.d.ts +29 -3
  131. package/dist/materialization/events.d.ts.map +1 -1
  132. package/dist/materialization/index.d.ts +4 -1
  133. package/dist/materialization/index.d.ts.map +1 -1
  134. package/dist/materialization/index.js +9 -3
  135. package/dist/materialization/index.js.map +1 -1
  136. package/dist/materializer/edits/plan.d.ts +2 -10
  137. package/dist/materializer/edits/plan.d.ts.map +1 -1
  138. package/dist/materializer/effective/build-events.d.ts +5 -21
  139. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  140. package/dist/materializer/effective/vector-indexing.d.ts +2 -3
  141. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -1
  142. package/dist/materializer/effective/vectors.d.ts +2 -3
  143. package/dist/materializer/effective/vectors.d.ts.map +1 -1
  144. package/dist/materializer/execution/scope.d.ts +1 -11
  145. package/dist/materializer/execution/scope.d.ts.map +1 -1
  146. package/dist/materializer/execution/work-executor.d.ts +5 -7
  147. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  148. package/dist/materializer/execution/work-records.d.ts +1 -3
  149. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  150. package/dist/materializer/index.js +31 -32
  151. package/dist/materializer/index.js.map +1 -1
  152. package/dist/materializer/projections/replace.d.ts.map +1 -1
  153. package/dist/materializer/projections/replacement-plan.d.ts +8 -11
  154. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  155. package/dist/materializer/shared/batching.d.ts +5 -0
  156. package/dist/materializer/shared/batching.d.ts.map +1 -1
  157. package/dist/materializer/telemetry/plan.d.ts +2 -8
  158. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  159. package/dist/models/audio/catalog.d.ts +20 -0
  160. package/dist/models/audio/catalog.d.ts.map +1 -0
  161. package/dist/models/audio/errors.d.ts +8 -0
  162. package/dist/models/audio/errors.d.ts.map +1 -0
  163. package/dist/models/audio/file.d.ts +9 -0
  164. package/dist/models/audio/file.d.ts.map +1 -0
  165. package/dist/models/audio/runtime.d.ts +8 -0
  166. package/dist/models/audio/runtime.d.ts.map +1 -0
  167. package/dist/models/audio/types.d.ts +60 -0
  168. package/dist/models/audio/types.d.ts.map +1 -0
  169. package/dist/models/catalog.d.ts +23 -1
  170. package/dist/models/catalog.d.ts.map +1 -1
  171. package/dist/models/definitions.d.ts +1 -1
  172. package/dist/models/definitions.d.ts.map +1 -1
  173. package/dist/models/embedding-model.d.ts +4 -0
  174. package/dist/models/embedding-model.d.ts.map +1 -1
  175. package/dist/models/events.d.ts +3 -0
  176. package/dist/models/events.d.ts.map +1 -1
  177. package/dist/models/execution/index.js +22 -22
  178. package/dist/models/execution/model-call-admission.d.ts +6 -1
  179. package/dist/models/execution/model-call-admission.d.ts.map +1 -1
  180. package/dist/models/execution/model-call-limits.d.ts.map +1 -1
  181. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  182. package/dist/models/execution/reranking.d.ts +4 -0
  183. package/dist/models/execution/reranking.d.ts.map +1 -0
  184. package/dist/models/execution/usage.d.ts.map +1 -1
  185. package/dist/models/execution.d.ts +2 -1
  186. package/dist/models/execution.d.ts.map +1 -1
  187. package/dist/models/generation-types.d.ts +2 -0
  188. package/dist/models/generation-types.d.ts.map +1 -1
  189. package/dist/models/index.d.ts +7 -1
  190. package/dist/models/index.d.ts.map +1 -1
  191. package/dist/models/index.js +7 -3
  192. package/dist/models/index.js.map +1 -1
  193. package/dist/models/pricing.d.ts +2 -2
  194. package/dist/models/pricing.d.ts.map +1 -1
  195. package/dist/models/reranking-model.d.ts +49 -0
  196. package/dist/models/reranking-model.d.ts.map +1 -0
  197. package/dist/objects/index.js +25 -25
  198. package/dist/objects/query/executor.d.ts +2 -1
  199. package/dist/objects/query/executor.d.ts.map +1 -1
  200. package/dist/objects/query/index.d.ts +1 -1
  201. package/dist/objects/query/index.d.ts.map +1 -1
  202. package/dist/objects/query/index.js +24 -24
  203. package/dist/objects/query/index.js.map +1 -1
  204. package/dist/objects/query/ir.d.ts +8 -1
  205. package/dist/objects/query/ir.d.ts.map +1 -1
  206. package/dist/objects/query/normalize.d.ts.map +1 -1
  207. package/dist/objects/query/planner.d.ts +1 -1
  208. package/dist/objects/query/planner.d.ts.map +1 -1
  209. package/dist/objects/query/primary-id.d.ts +7 -0
  210. package/dist/objects/query/primary-id.d.ts.map +1 -0
  211. package/dist/objects/query/reranking-executor.d.ts +13 -0
  212. package/dist/objects/query/reranking-executor.d.ts.map +1 -0
  213. package/dist/objects/query/reranking-limits.d.ts +3 -0
  214. package/dist/objects/query/reranking-limits.d.ts.map +1 -0
  215. package/dist/objects/query/reranking-query.d.ts +4 -0
  216. package/dist/objects/query/reranking-query.d.ts.map +1 -0
  217. package/dist/objects/query/validate.d.ts.map +1 -1
  218. package/dist/objects/sdk/query-builder.d.ts +8 -0
  219. package/dist/objects/sdk/query-builder.d.ts.map +1 -1
  220. package/dist/objects/sdk/query-executor.d.ts +2 -2
  221. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  222. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  223. package/dist/objects/vectors/indexing-dispatch.d.ts +21 -0
  224. package/dist/objects/vectors/indexing-dispatch.d.ts.map +1 -0
  225. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -1
  226. package/dist/objects/vectors/profile.d.ts.map +1 -1
  227. package/dist/objects/vectors/query.d.ts +1 -1
  228. package/dist/objects/vectors/query.d.ts.map +1 -1
  229. package/dist/objects/vectors/resolve-query.d.ts.map +1 -1
  230. package/dist/objects/vectors/types.d.ts +1 -1
  231. package/dist/objects/vectors/types.d.ts.map +1 -1
  232. package/dist/ontology/builders.d.ts +13 -4
  233. package/dist/ontology/builders.d.ts.map +1 -1
  234. package/dist/ontology/index.d.ts +1 -1
  235. package/dist/ontology/index.d.ts.map +1 -1
  236. package/dist/ontology/index.js +3 -3
  237. package/dist/ontology/internal.js +2 -2
  238. package/dist/ontology/query-capabilities.d.ts +1 -0
  239. package/dist/ontology/query-capabilities.d.ts.map +1 -1
  240. package/dist/ontology/types.d.ts +20 -0
  241. package/dist/ontology/types.d.ts.map +1 -1
  242. package/dist/ontology/validation/query.d.ts.map +1 -1
  243. package/dist/ontology/vector-profiles.d.ts.map +1 -1
  244. package/dist/pipelines/index.js +23 -23
  245. package/dist/projections/internal.js +22 -22
  246. package/dist/query.d.ts +4 -2
  247. package/dist/query.d.ts.map +1 -1
  248. package/dist/query.js +2 -2
  249. package/dist/queues/in-memory.d.ts +3 -0
  250. package/dist/queues/in-memory.d.ts.map +1 -1
  251. package/dist/queues/index.js +1 -1
  252. package/dist/queues/types.d.ts +4 -0
  253. package/dist/queues/types.d.ts.map +1 -1
  254. package/dist/runtime/host.d.ts +1 -0
  255. package/dist/runtime/host.d.ts.map +1 -1
  256. package/dist/runtime/index.d.ts +1 -1
  257. package/dist/runtime/index.d.ts.map +1 -1
  258. package/dist/runtime/internal.d.ts +1 -0
  259. package/dist/runtime/internal.d.ts.map +1 -1
  260. package/dist/runtime/internal.js +28 -26
  261. package/dist/runtime/internal.js.map +1 -1
  262. package/dist/runtime/public-origin.d.ts +10 -0
  263. package/dist/runtime/public-origin.d.ts.map +1 -0
  264. package/dist/runtime/sixb.d.ts +1 -0
  265. package/dist/runtime/sixb.d.ts.map +1 -1
  266. package/dist/runtime/types.d.ts +12 -2
  267. package/dist/runtime/types.d.ts.map +1 -1
  268. package/dist/sandboxes/index.js +5 -5
  269. package/dist/shares/internal.js +19 -19
  270. package/dist/storage/agents/provider.js +2 -2
  271. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  272. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  273. package/dist/storage/ai-cost/provider.js +3 -3
  274. package/dist/storage/ai-cost/types.d.ts +1 -1
  275. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  276. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  277. package/dist/storage/ai-limits/enforcement.js +2 -2
  278. package/dist/storage/ai-limits/in-memory.d.ts.map +1 -1
  279. package/dist/storage/ai-limits/provider.d.ts +7 -2
  280. package/dist/storage/ai-limits/provider.d.ts.map +1 -1
  281. package/dist/storage/ai-limits/provider.js +4 -2
  282. package/dist/storage/ai-limits/provider.js.map +1 -1
  283. package/dist/storage/ai-limits/types.d.ts +3 -0
  284. package/dist/storage/ai-limits/types.d.ts.map +1 -1
  285. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  286. package/dist/storage/ai-usage/types.d.ts +8 -4
  287. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  288. package/dist/storage/ai-usage/usage.d.ts.map +1 -1
  289. package/dist/storage/file-download-grants/in-memory.d.ts +11 -0
  290. package/dist/storage/file-download-grants/in-memory.d.ts.map +1 -0
  291. package/dist/storage/file-download-grants/index.d.ts +3 -0
  292. package/dist/storage/file-download-grants/index.d.ts.map +1 -0
  293. package/dist/storage/file-download-grants/record.d.ts +11 -0
  294. package/dist/storage/file-download-grants/record.d.ts.map +1 -0
  295. package/dist/storage/file-download-grants/types.d.ts +44 -0
  296. package/dist/storage/file-download-grants/types.d.ts.map +1 -0
  297. package/dist/storage/file-upload-sessions/provider.js +6 -6
  298. package/dist/storage/in-memory/index.d.ts +4 -0
  299. package/dist/storage/in-memory/index.d.ts.map +1 -1
  300. package/dist/storage/index.d.ts +5 -3
  301. package/dist/storage/index.d.ts.map +1 -1
  302. package/dist/storage/index.js +30 -30
  303. package/dist/storage/index.js.map +1 -1
  304. package/dist/storage/internal.d.ts +1 -0
  305. package/dist/storage/internal.d.ts.map +1 -1
  306. package/dist/storage/internal.js +8 -4
  307. package/dist/storage/internal.js.map +1 -1
  308. package/dist/storage/migrations/index.d.ts +1 -1
  309. package/dist/storage/migrations/index.d.ts.map +1 -1
  310. package/dist/storage/migrations/migrate-storage.d.ts +3 -3
  311. package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
  312. package/dist/storage/migrations/types.d.ts +7 -0
  313. package/dist/storage/migrations/types.d.ts.map +1 -1
  314. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  315. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  316. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  317. package/dist/storage/objects/query-preparation.d.ts +39 -0
  318. package/dist/storage/objects/query-preparation.d.ts.map +1 -0
  319. package/dist/storage/objects/types.d.ts +2 -0
  320. package/dist/storage/objects/types.d.ts.map +1 -1
  321. package/dist/storage/ontology/commits.d.ts +1 -6
  322. package/dist/storage/ontology/commits.d.ts.map +1 -1
  323. package/dist/storage/ontology/in-memory/index.d.ts +4 -2
  324. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  325. package/dist/storage/ontology/in-memory/materializations-state.d.ts +0 -2
  326. package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
  327. package/dist/storage/ontology/in-memory/materializations-work.d.ts +1 -3
  328. package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
  329. package/dist/storage/ontology/in-memory/materializations.d.ts +23 -57
  330. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  331. package/dist/storage/ontology/in-memory/outbox.d.ts +3 -2
  332. package/dist/storage/ontology/in-memory/outbox.d.ts.map +1 -1
  333. package/dist/storage/ontology/in-memory/replacement-plans.d.ts +104 -0
  334. package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -0
  335. package/dist/storage/ontology/in-memory/shared-state.d.ts +17 -2
  336. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  337. package/dist/storage/ontology/in-memory/source-roots.d.ts +3 -1
  338. package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -1
  339. package/dist/storage/ontology/in-memory/sources.d.ts +1 -2
  340. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  341. package/dist/storage/ontology/in-memory/state-reader.d.ts +25 -0
  342. package/dist/storage/ontology/in-memory/state-reader.d.ts.map +1 -0
  343. package/dist/storage/ontology/index.d.ts +6 -3
  344. package/dist/storage/ontology/index.d.ts.map +1 -1
  345. package/dist/storage/ontology/materializations.d.ts +40 -59
  346. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  347. package/dist/storage/ontology/outbox.d.ts +4 -6
  348. package/dist/storage/ontology/outbox.d.ts.map +1 -1
  349. package/dist/storage/ontology/provider-work.d.ts +114 -3
  350. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  351. package/dist/storage/ontology/provider.d.ts +14 -39
  352. package/dist/storage/ontology/provider.d.ts.map +1 -1
  353. package/dist/storage/ontology/provider.js +26 -12
  354. package/dist/storage/ontology/provider.js.map +1 -1
  355. package/dist/storage/ontology/replacement-plans.d.ts +103 -0
  356. package/dist/storage/ontology/replacement-plans.d.ts.map +1 -0
  357. package/dist/storage/ontology/sources.d.ts +0 -8
  358. package/dist/storage/ontology/sources.d.ts.map +1 -1
  359. package/dist/storage/operation-scope.d.ts.map +1 -1
  360. package/dist/storage/operation-scope.js +1 -1
  361. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  362. package/dist/storage/projection-runs/types.d.ts +2 -0
  363. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  364. package/dist/storage/types.d.ts +2 -0
  365. package/dist/storage/types.d.ts.map +1 -1
  366. package/dist/storage/workflow-runs/provider.js +6 -6
  367. package/dist/syncs/index.js +24 -24
  368. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  369. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
  370. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  371. package/dist/testing/file-download-grant-storage-contract.d.ts +9 -0
  372. package/dist/testing/file-download-grant-storage-contract.d.ts.map +1 -0
  373. package/dist/testing/index.d.ts +1 -0
  374. package/dist/testing/index.d.ts.map +1 -1
  375. package/dist/testing/index.js +2548 -1489
  376. package/dist/testing/index.js.map +14 -13
  377. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  378. package/dist/testing/materializer-storage-contract.d.ts +14 -0
  379. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  380. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  381. package/dist/testing/ontology-contract-fixture.d.ts +5 -1
  382. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  383. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  384. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  385. package/dist/testing/queues-contract.d.ts.map +1 -1
  386. package/dist/webhooks/internal.js +20 -20
  387. package/dist/workers/index.js +15 -17
  388. package/dist/workers/index.js.map +3 -3
  389. package/dist/workers/queue-worker.d.ts +3 -2
  390. package/dist/workers/queue-worker.d.ts.map +1 -1
  391. package/dist/workflows/index.js +42 -41
  392. package/dist/workflows/index.js.map +1 -1
  393. package/package.json +7 -1
  394. package/src/actions/types/context.ts +5 -2
  395. package/src/blob-storage/download-urls.ts +138 -0
  396. package/src/blob-storage/execution.ts +32 -1
  397. package/src/blob-storage/internal.ts +1 -0
  398. package/src/execution/authorized-object-reader.ts +8 -1
  399. package/src/index.ts +25 -0
  400. package/src/lake-storage/in-memory.ts +38 -9
  401. package/src/lake-storage/index.ts +2 -0
  402. package/src/lake-storage/types.ts +30 -0
  403. package/src/maintenance/ontology-maintenance.ts +50 -23
  404. package/src/maintenance/types.ts +1 -4
  405. package/src/materialization/event-envelopes.ts +168 -0
  406. package/src/materialization/events.ts +40 -4
  407. package/src/materialization/index.ts +9 -1
  408. package/src/materializer/README.md +55 -10
  409. package/src/materializer/edits/commit.ts +3 -19
  410. package/src/materializer/edits/plan.ts +20 -71
  411. package/src/materializer/effective/build-events.ts +42 -136
  412. package/src/materializer/effective/vector-indexing.ts +2 -3
  413. package/src/materializer/effective/vectors.ts +2 -3
  414. package/src/materializer/execution/scope.ts +1 -38
  415. package/src/materializer/execution/work-executor.ts +21 -115
  416. package/src/materializer/execution/work-records.ts +0 -15
  417. package/src/materializer/projections/replace.ts +106 -63
  418. package/src/materializer/projections/replacement-plan.ts +73 -218
  419. package/src/materializer/shared/batching.ts +7 -0
  420. package/src/materializer/telemetry/append.ts +2 -14
  421. package/src/materializer/telemetry/plan.ts +6 -43
  422. package/src/models/audio/catalog.ts +90 -0
  423. package/src/models/audio/errors.ts +19 -0
  424. package/src/models/audio/file.ts +78 -0
  425. package/src/models/audio/runtime.ts +182 -0
  426. package/src/models/audio/types.ts +69 -0
  427. package/src/models/catalog.ts +52 -5
  428. package/src/models/definitions.ts +8 -1
  429. package/src/models/embedding-model.ts +12 -0
  430. package/src/models/events.ts +3 -0
  431. package/src/models/execution/README.md +20 -1
  432. package/src/models/execution/embedding.ts +5 -1
  433. package/src/models/execution/model-call-admission.ts +6 -1
  434. package/src/models/execution/model-call-limits.ts +21 -11
  435. package/src/models/execution/model-call-recorder.ts +1 -0
  436. package/src/models/execution/model-call-recovery.ts +1 -0
  437. package/src/models/execution/reranking.ts +137 -0
  438. package/src/models/execution/usage.ts +1 -0
  439. package/src/models/execution.ts +5 -1
  440. package/src/models/generation-types.ts +2 -0
  441. package/src/models/index.ts +32 -0
  442. package/src/models/pricing.ts +2 -1
  443. package/src/models/reranking-model.ts +114 -0
  444. package/src/objects/query/executor.ts +42 -2
  445. package/src/objects/query/explain.ts +8 -0
  446. package/src/objects/query/index.ts +1 -0
  447. package/src/objects/query/ir.ts +10 -0
  448. package/src/objects/query/normalize.ts +2 -0
  449. package/src/objects/query/planner.ts +12 -1
  450. package/src/objects/query/primary-id.ts +56 -0
  451. package/src/objects/query/reranking-executor.ts +91 -0
  452. package/src/objects/query/reranking-limits.ts +3 -0
  453. package/src/objects/query/reranking-query.ts +8 -0
  454. package/src/objects/query/validate.ts +33 -10
  455. package/src/objects/sdk/query-builder.ts +15 -2
  456. package/src/objects/sdk/query-executor.ts +2 -2
  457. package/src/objects/sdk/runtime-query-executor.ts +7 -4
  458. package/src/objects/vectors/README.md +14 -2
  459. package/src/objects/vectors/handle.ts +1 -1
  460. package/src/objects/vectors/indexing-dispatch.ts +83 -0
  461. package/src/objects/vectors/indexing-generate.ts +5 -1
  462. package/src/objects/vectors/profile.ts +2 -0
  463. package/src/objects/vectors/query.ts +21 -4
  464. package/src/objects/vectors/resolve-query.ts +9 -5
  465. package/src/objects/vectors/types.ts +3 -1
  466. package/src/ontology/builders.ts +22 -7
  467. package/src/ontology/index.ts +2 -0
  468. package/src/ontology/query-capabilities.ts +1 -1
  469. package/src/ontology/types.ts +21 -0
  470. package/src/ontology/validation/query.ts +57 -0
  471. package/src/ontology/vector-profiles.ts +1 -0
  472. package/src/query.ts +4 -0
  473. package/src/queues/in-memory.ts +54 -19
  474. package/src/queues/types.ts +4 -0
  475. package/src/runtime/host.ts +28 -1
  476. package/src/runtime/index.ts +1 -0
  477. package/src/runtime/internal.ts +1 -0
  478. package/src/runtime/public-origin.ts +33 -0
  479. package/src/runtime/sixb.ts +13 -2
  480. package/src/runtime/types.ts +12 -2
  481. package/src/storage/ai-cost/analytics.ts +2 -0
  482. package/src/storage/ai-cost/codec.ts +2 -1
  483. package/src/storage/ai-cost/types.ts +1 -0
  484. package/src/storage/ai-cost/validation.ts +21 -8
  485. package/src/storage/ai-limits/in-memory.ts +10 -2
  486. package/src/storage/ai-limits/provider.ts +29 -2
  487. package/src/storage/ai-limits/types.ts +3 -0
  488. package/src/storage/ai-usage/record.ts +9 -0
  489. package/src/storage/ai-usage/types.ts +8 -4
  490. package/src/storage/ai-usage/usage.ts +2 -0
  491. package/src/storage/file-download-grants/in-memory.ts +73 -0
  492. package/src/storage/file-download-grants/index.ts +8 -0
  493. package/src/storage/file-download-grants/record.ts +47 -0
  494. package/src/storage/file-download-grants/types.ts +48 -0
  495. package/src/storage/in-memory/index.ts +13 -2
  496. package/src/storage/index.ts +31 -13
  497. package/src/storage/internal.ts +1 -0
  498. package/src/storage/migrations/index.ts +1 -0
  499. package/src/storage/migrations/migrate-storage.ts +36 -12
  500. package/src/storage/migrations/types.ts +8 -0
  501. package/src/storage/objects/in-memory/query.ts +2 -0
  502. package/src/storage/objects/in-memory/selected-reader.ts +1 -0
  503. package/src/storage/objects/in-memory/storage.ts +1 -0
  504. package/src/storage/objects/query-preparation.ts +77 -0
  505. package/src/storage/objects/types.ts +2 -0
  506. package/src/storage/ontology/commits.ts +1 -6
  507. package/src/storage/ontology/in-memory/index.ts +28 -9
  508. package/src/storage/ontology/in-memory/materializations-finalization.ts +35 -68
  509. package/src/storage/ontology/in-memory/materializations-state.ts +0 -22
  510. package/src/storage/ontology/in-memory/materializations-work.ts +0 -45
  511. package/src/storage/ontology/in-memory/materializations.ts +172 -653
  512. package/src/storage/ontology/in-memory/outbox.ts +37 -29
  513. package/src/storage/ontology/in-memory/replacement-plans.ts +697 -0
  514. package/src/storage/ontology/in-memory/shared-state.ts +24 -2
  515. package/src/storage/ontology/in-memory/source-roots.ts +7 -2
  516. package/src/storage/ontology/in-memory/sources.ts +7 -33
  517. package/src/storage/ontology/in-memory/state-reader.ts +245 -0
  518. package/src/storage/ontology/index.ts +19 -13
  519. package/src/storage/ontology/materializations.ts +45 -74
  520. package/src/storage/ontology/outbox.ts +4 -7
  521. package/src/storage/ontology/provider-header-validation.ts +0 -57
  522. package/src/storage/ontology/provider-work.ts +381 -90
  523. package/src/storage/ontology/provider.ts +74 -171
  524. package/src/storage/ontology/replacement-plans.ts +117 -0
  525. package/src/storage/ontology/sources.ts +0 -12
  526. package/src/storage/operation-scope.ts +33 -1
  527. package/src/storage/projection-runs/in-memory.ts +7 -1
  528. package/src/storage/projection-runs/types.ts +2 -0
  529. package/src/storage/types.ts +2 -0
  530. package/src/testing/ai-cost-storage-contract.ts +1 -0
  531. package/src/testing/ai-limit-storage-contract.ts +62 -0
  532. package/src/testing/ai-usage-storage-contract.ts +31 -0
  533. package/src/testing/file-download-grant-storage-contract.ts +139 -0
  534. package/src/testing/index.ts +4 -0
  535. package/src/testing/lake-storage-contract.ts +87 -1
  536. package/src/testing/materializer-storage-contract.ts +1008 -1
  537. package/src/testing/object-read-scope-contract.ts +1 -0
  538. package/src/testing/ontology-contract-fixture.ts +11 -87
  539. package/src/testing/ontology-storage-contract.ts +70 -39
  540. package/src/testing/projection-run-storage-contract.ts +14 -0
  541. package/src/testing/queues-contract.ts +59 -0
  542. package/src/workers/queue-worker.ts +19 -16
  543. package/dist/chunk-3c90jvfj.js.map +0 -15
  544. package/dist/chunk-3nx8vj5a.js.map +0 -12
  545. package/dist/chunk-7ytf06d3.js +0 -113
  546. package/dist/chunk-7ytf06d3.js.map +0 -10
  547. package/dist/chunk-a0073121.js.map +0 -12
  548. package/dist/chunk-fjw417jf.js.map +0 -62
  549. package/dist/chunk-g4rbm4a6.js.map +0 -15
  550. package/dist/chunk-hgqpcmyr.js.map +0 -12
  551. package/dist/chunk-jgwb25gc.js.map +0 -12
  552. package/dist/chunk-k4kkp58d.js.map +0 -11
  553. package/dist/chunk-ky7zpbtt.js.map +0 -19
  554. package/dist/chunk-mdnw7nj8.js.map +0 -15
  555. package/dist/chunk-py2dw8cw.js.map +0 -17
  556. package/dist/chunk-s3csryxe.js.map +0 -11
  557. package/dist/chunk-xnx96gfy.js.map +0 -15
  558. package/dist/chunk-z708gemf.js.map +0 -50
  559. package/dist/materializer/execution/plan-stream.d.ts +0 -8
  560. package/dist/materializer/execution/plan-stream.d.ts.map +0 -1
  561. package/src/materializer/execution/plan-stream.ts +0 -121
  562. /package/dist/{chunk-q3grgzp1.js.map → chunk-23xs4qp9.js.map} +0 -0
  563. /package/dist/{chunk-vef6qa14.js.map → chunk-2am3db31.js.map} +0 -0
  564. /package/dist/{chunk-fj1dvp37.js.map → chunk-2vhg6ysa.js.map} +0 -0
  565. /package/dist/{chunk-p0nbkys4.js.map → chunk-33saed7g.js.map} +0 -0
  566. /package/dist/{chunk-mmac1mp6.js.map → chunk-52c5zb0z.js.map} +0 -0
  567. /package/dist/{chunk-8fjmqjyx.js.map → chunk-5be2ath4.js.map} +0 -0
  568. /package/dist/{chunk-2fv8sajb.js.map → chunk-5thzcb8g.js.map} +0 -0
  569. /package/dist/{chunk-1jvq82rp.js.map → chunk-9g6jz9kk.js.map} +0 -0
  570. /package/dist/{chunk-8w27xf9e.js.map → chunk-a7er86jd.js.map} +0 -0
  571. /package/dist/{chunk-bxx3ms5t.js.map → chunk-c2rga5cx.js.map} +0 -0
  572. /package/dist/{chunk-dsfw1bdr.js.map → chunk-cnb5kv05.js.map} +0 -0
  573. /package/dist/{chunk-n5t4mq6z.js.map → chunk-e67ynxcr.js.map} +0 -0
  574. /package/dist/{chunk-6q7c68yx.js.map → chunk-f1xh7a32.js.map} +0 -0
  575. /package/dist/{chunk-7jc21943.js.map → chunk-gf7yht60.js.map} +0 -0
  576. /package/dist/{chunk-ffwvdgk1.js.map → chunk-jjrn5v0p.js.map} +0 -0
  577. /package/dist/{chunk-r5sc1d2b.js.map → chunk-jnfxmr3f.js.map} +0 -0
  578. /package/dist/{chunk-y0zmae99.js.map → chunk-k4g51s47.js.map} +0 -0
  579. /package/dist/{chunk-drz59ve0.js.map → chunk-rx7h5fdx.js.map} +0 -0
  580. /package/dist/{chunk-yfppyaty.js.map → chunk-sk0hcjsz.js.map} +0 -0
  581. /package/dist/{chunk-qne45xqq.js.map → chunk-svabwqdq.js.map} +0 -0
  582. /package/dist/{chunk-xr7y35yj.js.map → chunk-t9shqx3w.js.map} +0 -0
  583. /package/dist/{chunk-adbve9zt.js.map → chunk-vre348sb.js.map} +0 -0
  584. /package/dist/{chunk-a4g5yjm0.js.map → chunk-w9yycd3t.js.map} +0 -0
  585. /package/dist/{chunk-wd34wnsy.js.map → chunk-xcy5ddha.js.map} +0 -0
@@ -1,4 +1,9 @@
1
1
  import { RuntimeError } from "../runtime/errors"
2
+ import {
3
+ type AudioModelCatalog,
4
+ type AudioModelCatalogInput,
5
+ createAudioCatalog,
6
+ } from "./audio/catalog"
2
7
  import { indexModelBindings } from "./catalog-index"
3
8
  import { createDecisionCatalog, type DecisionModelCatalog } from "./decision/catalog"
4
9
  import type { DecisionModel } from "./decision/types"
@@ -9,6 +14,7 @@ import {
9
14
  } from "./definitions"
10
15
  import { assertEmbeddingModel, type EmbeddingModel } from "./embedding-model"
11
16
  import type { LanguageModel } from "./language-model"
17
+ import { assertRerankingModel, type RerankingModel } from "./reranking-model"
12
18
 
13
19
  /** Stable identity of a configured provider binding. */
14
20
  export interface ModelRef {
@@ -27,6 +33,15 @@ export interface EmbeddingModelCatalog {
27
33
  getByRef(ref: ModelRef): EmbeddingModelEntry | null
28
34
  }
29
35
 
36
+ export interface RerankingModelEntry extends ModelRef {
37
+ readonly model: RerankingModel
38
+ }
39
+
40
+ export interface RerankingModelCatalog {
41
+ list(): readonly RerankingModelEntry[]
42
+ getByRef(ref: ModelRef): RerankingModelEntry | null
43
+ }
44
+
30
45
  /** The configured language models, with the project default. */
31
46
  export interface LanguageModelCatalog {
32
47
  readonly default: LanguageModelEntry
@@ -47,17 +62,22 @@ export interface LanguageModelEntry extends LanguageModelRef {
47
62
 
48
63
  /** Models a project allows Sixb to use, organized by technical model kind. */
49
64
  export interface ModelCatalog {
65
+ readonly audio?: AudioModelCatalog
50
66
  readonly language?: LanguageModelCatalog
51
67
  readonly decision?: DecisionModelCatalog
52
68
  readonly embedding: EmbeddingModelCatalog
69
+ readonly reranking?: RerankingModelCatalog
53
70
  }
54
71
 
55
72
  export interface ModelCatalogInput {
73
+ readonly audio?: AudioModelCatalogInput
56
74
  /** Ordered; the first entry is the project default. */
57
75
  readonly language?: readonly LanguageModel[]
58
76
  /** Ordered; the first entry is the project default decision model. */
59
77
  readonly decision?: readonly DecisionModel[]
60
78
  readonly embedding?: readonly EmbeddingModel[]
79
+ /** Available rerankers; no default model and no automatic activation. */
80
+ readonly reranking?: readonly RerankingModel[]
61
81
  }
62
82
 
63
83
  // Only statically required inputs make their corresponding catalogs required.
@@ -66,7 +86,14 @@ type ConfiguredModelKinds<TInput> = {
66
86
  }[keyof ModelCatalog]
67
87
 
68
88
  export type ModelCatalogFor<TInput extends ModelCatalogInput> = ModelCatalog &
69
- Required<Pick<ModelCatalog, ConfiguredModelKinds<TInput>>>
89
+ Required<Pick<ModelCatalog, ConfiguredModelKinds<TInput>>> &
90
+ ([TInput] extends [{ readonly audio: { readonly transcription: readonly unknown[] } }]
91
+ ? {
92
+ readonly audio: AudioModelCatalog & {
93
+ readonly transcription: NonNullable<AudioModelCatalog["transcription"]>
94
+ }
95
+ }
96
+ : unknown)
70
97
 
71
98
  /** Build an immutable catalog while preserving each family's default and empty-list rules. */
72
99
  export function createModelCatalog<TInput extends ModelCatalogInput>(
@@ -80,12 +107,32 @@ export function createModelCatalog(input: ModelCatalogInput): ModelCatalog {
80
107
  const language = createLanguageCatalog(input.language)
81
108
  const embedding = createEmbeddingCatalog(input.embedding)
82
109
  const decision = createDecisionCatalog(input.decision)
83
-
84
- if (!language && !decision && embedding.list().length === 0) {
85
- throw new RuntimeError("[Sixb] Configure at least one language, embedding or decision model.")
110
+ const audio = createAudioCatalog(input.audio)
111
+ const reranking = createRerankingCatalog(input.reranking)
112
+
113
+ if (
114
+ !language &&
115
+ !decision &&
116
+ !audio &&
117
+ embedding.list().length === 0 &&
118
+ !reranking?.list().length
119
+ ) {
120
+ throw new RuntimeError(
121
+ "[Sixb] Configure at least one language, embedding, decision, audio or reranking model."
122
+ )
86
123
  }
87
124
 
88
- return Object.freeze({ language, embedding, decision })
125
+ return Object.freeze({ language, embedding, decision, audio, reranking })
126
+ }
127
+
128
+ function createRerankingCatalog(
129
+ models: readonly RerankingModel[] | undefined
130
+ ): RerankingModelCatalog | undefined {
131
+ if (models === undefined) return undefined
132
+ if (!Array.isArray(models)) {
133
+ throw new RuntimeError("[Sixb] models.reranking must be an array of reranking models.")
134
+ }
135
+ return indexModelBindings(models, "reranking", assertRerankingModel)
89
136
  }
90
137
 
91
138
  function createLanguageCatalog(
@@ -5,7 +5,14 @@ import {
5
5
  type ModelReasoningCapabilities,
6
6
  } from "./language-model"
7
7
 
8
- export type ModelKind = "language" | "image" | "video" | "embedding" | "decision"
8
+ export type ModelKind =
9
+ | "language"
10
+ | "image"
11
+ | "video"
12
+ | "embedding"
13
+ | "decision"
14
+ | "transcription"
15
+ | "reranking"
9
16
 
10
17
  /** Common catalog identity shared by every present and future model runtime. */
11
18
  export interface ModelDefinition {
@@ -7,12 +7,16 @@ import type { ModelCostEstimator, ModelReportedCost } from "./pricing"
7
7
  export interface EmbeddingModelDefinition extends ModelDefinition {
8
8
  readonly kind: "embedding"
9
9
  readonly dimensions: number
10
+ /** Asymmetric models use distinct document/query modes. Omission means symmetric. */
11
+ readonly inputMode?: "symmetric" | "asymmetric"
10
12
  /** Actual representation behind a routing alias. Omit only when modelId identifies it directly. */
11
13
  readonly representation?: { readonly name: string; readonly version?: string }
12
14
  }
13
15
 
14
16
  export interface EmbeddingModelRequest {
15
17
  readonly texts: readonly string[]
18
+ /** Retrieval role. Sixb sets this for indexing and search; symmetric models may ignore it. */
19
+ readonly purpose?: "document" | "query"
16
20
  /** Providers must honor cancellation and propagate this signal to their transport. */
17
21
  readonly signal?: AbortSignal
18
22
  }
@@ -73,6 +77,13 @@ export function assertEmbeddingModel(model: EmbeddingModel): void {
73
77
  export function assertEmbeddingModelRef(model: EmbeddingModelRef): void {
74
78
  const definition = model?.definition
75
79
  const representation = definition?.representation
80
+ if (
81
+ definition?.inputMode !== undefined &&
82
+ definition.inputMode !== "symmetric" &&
83
+ definition.inputMode !== "asymmetric"
84
+ ) {
85
+ throw new TypeError("[Sixb] Invalid embedding input mode.")
86
+ }
76
87
  if (
77
88
  representation !== undefined &&
78
89
  (!representation ||
@@ -106,6 +117,7 @@ export function sameEmbeddingModel(left: EmbeddingModelRef, right: EmbeddingMode
106
117
  left.providerId === right.providerId &&
107
118
  left.modelId === right.modelId &&
108
119
  left.definition.dimensions === right.definition.dimensions &&
120
+ (left.definition.inputMode ?? "symmetric") === (right.definition.inputMode ?? "symmetric") &&
109
121
  (left.definition.representation?.name ?? left.modelId) ===
110
122
  (right.definition.representation?.name ?? right.modelId) &&
111
123
  left.definition.representation?.version === right.definition.representation?.version
@@ -46,6 +46,8 @@ export type ModelFinishReason =
46
46
  | "unknown"
47
47
 
48
48
  export interface ModelUsage {
49
+ /** Audio content duration in milliseconds, rounded to the nearest millisecond. Not billed duration. */
50
+ readonly audioDurationMs?: number
49
51
  readonly inputTokens?: number
50
52
  readonly outputTokens?: number
51
53
  readonly uncachedInputTokens?: number
@@ -168,6 +170,7 @@ export type ModelUiChunk =
168
170
  | { readonly type: "error"; readonly errorText: string }
169
171
 
170
172
  export interface ModelCallEndEvent {
173
+ readonly modelKind?: import("./definitions").ModelKind
171
174
  readonly providerIds?: ModelProviderIds
172
175
  /** Retained independently when the selected display cost is provider-reported. */
173
176
  readonly estimate?: ModelCostEstimate
@@ -1,6 +1,6 @@
1
1
  # Model execution accounting
2
2
 
3
- Internal execution and accounting shared by language, embedding and decision calls. Application usage is
3
+ Internal execution and accounting shared by language, embedding, decision and reranking calls. Application usage is
4
4
  documented in [Usage and limits](../../../../../docs/models/usage-and-limits.md).
5
5
 
6
6
  ## Execution boundary
@@ -47,6 +47,25 @@ Direct provider calls bypass this session. Webhook handlers have no bound model
47
47
  they must dispatch an action for accounted calls. A process crash before accounting is captured
48
48
  can still leave provider billing outside the ledger.
49
49
 
50
+ ## Reranking flow
51
+
52
+ `reranking.ts` binds the registered catalog to the same session. Object queries resolve only that
53
+ catalog, after semantic authorization and before query embedding. The query executor retrieves
54
+ authorized vector candidates first and sends only profile source text; inference holds no storage
55
+ transaction. Outer limits and property selection apply after ranking.
56
+
57
+ Admission estimates the UTF-8 bytes of each query/document pair divided by four, rounded up, with
58
+ zero output allowance. Actual provider meters are preserved. This is a heuristic, not a tokenizer or provider context guarantee. Calls have
59
+ the shared 30-second cancellation bound, with no inference retry. Accounting precedes cancellation
60
+ and ranking validation. A complete permutation with finite scores is required; ties preserve the
61
+ candidate order. `RerankingModelResponseError` carries metadata from malformed billable responses.
62
+
63
+ Provider charges remain distinct from token usage: absent tokens stay unknown. Token limits
64
+ neither admit nor count reranking or transcription calls (`aiLimitMeterApplies` in the limit
65
+ storage helpers), so their unmetered records cannot make a token meter unavailable. Reported
66
+ costs reconcile monetary reservations; missing tariffs fail admission under cost limits. Recovery
67
+ remains the existing accounting-only replay.
68
+
50
69
  ## Decision flow
51
70
 
52
71
  Decision evaluation in `../decision/runtime.ts` uses the same session and recorder. It snapshots JSON input/questions
@@ -54,6 +54,10 @@ async function executeEmbedding(
54
54
  throw new TypeError("[SixbModels] Embedding inputs must be nonempty strings.")
55
55
  }
56
56
  const texts = [...input.texts]
57
+ const purpose = input.purpose
58
+ if (purpose !== undefined && purpose !== "document" && purpose !== "query") {
59
+ throw new TypeError("[SixbModels] Embedding purpose must be 'document' or 'query'.")
60
+ }
57
61
  const signal = session.signal(input.signal)
58
62
  const requestSignal = AbortSignal.any([signal, AbortSignal.timeout(30_000)])
59
63
  requestSignal.throwIfAborted()
@@ -89,7 +93,7 @@ async function executeEmbedding(
89
93
  let result: EmbeddingModelResult
90
94
  try {
91
95
  requestSignal.throwIfAborted()
92
- result = await model.embed({ texts, signal: requestSignal })
96
+ result = await model.embed({ texts, purpose, signal: requestSignal })
93
97
  } catch (error) {
94
98
  if (error instanceof EmbeddingModelResponseError) {
95
99
  await recordEmbedding(accounting, model, callId, error.metadata)
@@ -1,5 +1,6 @@
1
1
  import type { AiModelCallReservationIdentity } from "../../storage"
2
- import type { ModelCostEstimator } from "../pricing"
2
+ import type { ModelKind } from "../definitions"
3
+ import type { ModelCostEstimator, ModelMoney } from "../pricing"
3
4
 
4
5
  /** Default output ceiling when a call and its resolved model supply no limit. */
5
6
  export const AI_MODEL_CALL_OUTPUT_TOKEN_ALLOWANCE = 4_096
@@ -24,7 +25,11 @@ export interface AiModelCallAdmissionInput {
24
25
  readonly callId: string
25
26
  readonly providerId: string
26
27
  readonly modelId: string
28
+ /** Selects the applicable limit meters; transcription and reranking skip token limits. */
29
+ readonly modelKind?: ModelKind
27
30
  readonly costEstimator?: ModelCostEstimator
31
+ /** A non-token estimate, computed by the resolved binding before inference. */
32
+ readonly reservationCost?: ModelMoney
28
33
  readonly inputTokens: AiModelCallInputTokenEstimate
29
34
  readonly outputTokenAllowance: number
30
35
  readonly estimatedTotalTokens?: number
@@ -12,6 +12,7 @@ import {
12
12
  aiUsageLimitUnavailableError,
13
13
  applicableAiLimitPolicies,
14
14
  } from "../../storage/ai-limits/enforcement"
15
+ import { aiLimitMeterApplies } from "../../storage/ai-limits/provider"
15
16
  import type {
16
17
  AiModelCallAdmissionDecision,
17
18
  AiModelCallAdmissionInput,
@@ -41,7 +42,9 @@ export function createAiModelCallLimitController(input: {
41
42
  const policies = await input.storage.aiLimits.listPolicies({
42
43
  projectId: input.projectId,
43
44
  })
44
- applicable = applicableAiLimitPolicies(policies, subjects)
45
+ applicable = applicableAiLimitPolicies(policies, subjects).filter((policy) =>
46
+ aiLimitMeterApplies(policy.limit.meter, admission.modelKind)
47
+ )
45
48
  } catch (error) {
46
49
  throw limitStorageUnavailable(error)
47
50
  }
@@ -63,6 +66,7 @@ export function createAiModelCallLimitController(input: {
63
66
  ...reservationIdentity(admission),
64
67
  subjects,
65
68
  estimates,
69
+ ...(admission.modelKind === undefined ? {} : { modelKind: admission.modelKind }),
66
70
  })
67
71
  } catch (error) {
68
72
  throw limitStorageUnavailable(error)
@@ -94,24 +98,30 @@ function reservationEstimates(
94
98
  input: AiModelCallAdmissionInput,
95
99
  needsCost: boolean
96
100
  ): readonly AiLimitQuantity[] {
97
- if (input.inputTokens.status !== "estimated" || input.estimatedTotalTokens === undefined) {
98
- return []
101
+ const estimates: AiLimitQuantity[] = []
102
+ if (input.inputTokens.status === "estimated" && input.estimatedTotalTokens !== undefined) {
103
+ estimates.push({ meter: "tokens.total", amount: input.estimatedTotalTokens })
99
104
  }
100
- const estimates: AiLimitQuantity[] = [
101
- { meter: "tokens.total", amount: input.estimatedTotalTokens },
102
- ]
105
+
103
106
  if (needsCost) {
104
107
  try {
105
- const money = input.costEstimator?.estimateReservation?.({
106
- inputTokens: input.inputTokens.tokens,
107
- outputTokens: input.outputTokenAllowance,
108
- })
109
- if (money) estimates.push({ meter: "cost.catalogEstimated", amount: money })
108
+ let money = input.reservationCost
109
+ if (money == null && input.inputTokens.status === "estimated") {
110
+ money = input.costEstimator?.estimateReservation?.({
111
+ inputTokens: input.inputTokens.tokens,
112
+ outputTokens: input.outputTokenAllowance,
113
+ })
114
+ }
115
+
116
+ if (money) {
117
+ estimates.push({ meter: "cost.catalogEstimated", amount: money })
118
+ }
110
119
  } catch {
111
120
  // An unavailable price must not prevent a token-only policy from being evaluated.
112
121
  return estimates
113
122
  }
114
123
  }
124
+
115
125
  return estimates
116
126
  }
117
127
 
@@ -157,6 +157,7 @@ export class AiModelCallRecorder {
157
157
  providerId: event.providerId,
158
158
  ...(event.providerIds === undefined ? {} : { providerIds: event.providerIds }),
159
159
  requestedModelId: event.modelId,
160
+ ...(event.modelKind === undefined ? {} : { modelKind: event.modelKind }),
160
161
  ...(event.requestedReasoning === undefined
161
162
  ? {}
162
163
  : { requestedReasoning: event.requestedReasoning }),
@@ -73,6 +73,7 @@ function toQueuePayload(record: RecordAiModelCallInput): AiModelCallRecordPayloa
73
73
  ? {}
74
74
  : { providerIds: structuredClone(record.providerIds) }),
75
75
  requestedModelId: record.requestedModelId,
76
+ ...(record.modelKind === undefined ? {} : { modelKind: record.modelKind }),
76
77
  ...(record.requestedReasoning === undefined
77
78
  ? {}
78
79
  : { requestedReasoning: structuredClone(record.requestedReasoning) }),
@@ -0,0 +1,137 @@
1
+ import { randomUUID } from "node:crypto"
2
+ import type { RerankingModelCatalog } from "../catalog"
3
+ import { indexModelBindings } from "../catalog-index"
4
+ import { estimateModelCall } from "../pricing"
5
+ import {
6
+ assertRerankingModel,
7
+ type RerankingModel,
8
+ type RerankingModelRequest,
9
+ RerankingModelResponseError,
10
+ type RerankingModelResponseMetadata,
11
+ type RerankingModelResult,
12
+ validateRerankingResults,
13
+ } from "../reranking-model"
14
+ import type { AiModelCallRecorder } from "./model-call-recorder"
15
+ import type { ModelExecutionSession } from "./session"
16
+
17
+ export function bindRerankingModels(
18
+ catalog: RerankingModelCatalog | undefined,
19
+ session: ModelExecutionSession
20
+ ): RerankingModelCatalog | undefined {
21
+ if (!catalog) return undefined
22
+ return indexModelBindings(
23
+ catalog.list().map(({ model }) =>
24
+ Object.freeze({
25
+ providerId: model.providerId,
26
+ modelId: model.modelId,
27
+ definition: model.definition,
28
+ rerank: (input: RerankingModelRequest) => executeReranking(session, model, input),
29
+ })
30
+ ),
31
+ "reranking",
32
+ assertRerankingModel
33
+ )
34
+ }
35
+
36
+ async function executeReranking(
37
+ session: ModelExecutionSession,
38
+ binding: RerankingModel,
39
+ input: RerankingModelRequest
40
+ ): Promise<RerankingModelResult> {
41
+ const query = input.query
42
+ if (
43
+ typeof query !== "string" ||
44
+ !query.trim() ||
45
+ !Array.isArray(input.documents) ||
46
+ input.documents.some((text) => typeof text !== "string" || !text.trim())
47
+ ) {
48
+ throw new TypeError("[SixbModels] Reranking requires a query and nonempty document strings.")
49
+ }
50
+ const documents = [...input.documents]
51
+ const signal = AbortSignal.any([session.signal(input.signal), AbortSignal.timeout(30_000)])
52
+ signal.throwIfAborted()
53
+ if (documents.length === 0) return { results: [] }
54
+
55
+ const accounting = await session.accounting()
56
+ accounting.assertHealthy()
57
+ const model = (await binding.resolve?.()) ?? binding
58
+ assertRerankingModel(model)
59
+ if (model.providerId !== binding.providerId || model.modelId !== binding.modelId) {
60
+ throw new TypeError(
61
+ "[SixbModels] Resolved reranking model identity does not match its binding."
62
+ )
63
+ }
64
+ signal.throwIfAborted()
65
+
66
+ // Rerankers compare each document with the query. Count the query for each pair;
67
+ // this is the shared admission heuristic, never a substitute for reported usage.
68
+ const encoder = new TextEncoder()
69
+ const queryBytes = encoder.encode(query).byteLength
70
+ const tokens = documents.reduce(
71
+ (sum, text) => sum + Math.ceil((queryBytes + encoder.encode(text).byteLength) / 4),
72
+ 0
73
+ )
74
+ const callId = `call_${randomUUID()}`
75
+ await accounting.admitCall({
76
+ callId,
77
+ providerId: model.providerId,
78
+ modelId: model.modelId,
79
+ modelKind: "reranking",
80
+ costEstimator: model.costEstimator,
81
+ inputTokens: { status: "estimated", tokens, method: "utf8BytesDividedByFour" },
82
+ outputTokenAllowance: 0,
83
+ estimatedTotalTokens: tokens,
84
+ })
85
+
86
+ let result: RerankingModelResult
87
+ try {
88
+ signal.throwIfAborted()
89
+ result = await model.rerank({ query, documents, signal })
90
+ } catch (error) {
91
+ const metadata = error instanceof RerankingModelResponseError ? error.metadata : {}
92
+ await recordReranking(accounting, model, callId, metadata)
93
+ throw error
94
+ }
95
+
96
+ // A malformed or cancelled response can still be billable.
97
+ await recordReranking(accounting, model, callId, result ?? {})
98
+ signal.throwIfAborted()
99
+ try {
100
+ return { ...result, results: validateRerankingResults(result?.results, documents.length) }
101
+ } catch (cause) {
102
+ throw new RerankingModelResponseError(
103
+ "[SixbModels] Invalid reranking response.",
104
+ model.providerId,
105
+ model.modelId,
106
+ result ?? {},
107
+ { cause }
108
+ )
109
+ }
110
+ }
111
+
112
+ async function recordReranking(
113
+ accounting: AiModelCallRecorder,
114
+ model: RerankingModel,
115
+ callId: string,
116
+ metadata: RerankingModelResponseMetadata
117
+ ): Promise<void> {
118
+ const usage = { ...metadata.usage, outputTokens: metadata.usage?.outputTokens ?? 0 }
119
+ const estimate = estimateModelCall(model, {
120
+ usage,
121
+ route: metadata.route,
122
+ responseModelId: metadata.responseModelId,
123
+ })
124
+ await accounting.onModelCallEnd({
125
+ callId,
126
+ modelKind: "reranking",
127
+ providerId: model.providerId,
128
+ modelId: model.modelId,
129
+ responseId: metadata.providerIds?.responseId ?? callId,
130
+ responseModelId: metadata.responseModelId,
131
+ providerIds: metadata.providerIds,
132
+ usage,
133
+ cost: metadata.reportedCost ? { status: "reported", ...metadata.reportedCost } : estimate,
134
+ ...(metadata.reportedCost ? { estimate } : {}),
135
+ route: metadata.route,
136
+ })
137
+ }
@@ -4,6 +4,7 @@ import type { ModelUsage } from "../events"
4
4
  /** Map one provider-neutral model call into Sixb's durable accounting vocabulary. */
5
5
  export function aiModelCallUsageFromModel(usage: ModelUsage): AiModelCallUsageInput {
6
6
  return {
7
+ ...(usage.audioDurationMs === undefined ? {} : { audioDurationMs: usage.audioDurationMs }),
7
8
  ...(usage.inputTokens === undefined ? {} : { inputTokens: usage.inputTokens }),
8
9
  ...(usage.outputTokens === undefined ? {} : { outputTokens: usage.outputTokens }),
9
10
  ...(usage.uncachedInputTokens === undefined
@@ -1,7 +1,9 @@
1
1
  import { runModelLoop } from "../agents/model-loop"
2
2
  import { assertProviderAccess } from "../authorization"
3
+ import type { BlobStorage } from "../blob-storage/types"
3
4
  import type { ExecutionContext } from "../execution"
4
5
  import type { SixbRuntimeContext } from "../runtime/types"
6
+ import { createAudioRuntime } from "./audio/runtime"
5
7
  import type { ModelCatalog } from "./catalog"
6
8
  import { createDecisionRuntime } from "./decision/runtime"
7
9
  import { ModelProviderError, ModelStreamError, UnsupportedModelFeatureError } from "./errors"
@@ -24,7 +26,8 @@ import { resolveLanguageModel } from "./resolve"
24
26
  export function createModelsRuntime(
25
27
  runtime: SixbRuntimeContext,
26
28
  execution: ExecutionContext,
27
- catalog: ModelCatalog | undefined
29
+ catalog: ModelCatalog | undefined,
30
+ blobs?: BlobStorage
28
31
  ): ModelsRuntime {
29
32
  const session = runtime.modelExecution ?? new ModelExecutionSession(runtime, execution)
30
33
 
@@ -123,6 +126,7 @@ export function createModelsRuntime(
123
126
  const models: ModelsRuntime = {
124
127
  language: { generate },
125
128
  decision: createDecisionRuntime(runtime, execution, catalog, session),
129
+ audio: createAudioRuntime(runtime, execution, catalog, session, blobs),
126
130
  }
127
131
  registerModelExecutionBinding(models, (input) => {
128
132
  session.bind(input)
@@ -1,4 +1,5 @@
1
1
  import type { InferSchemaOrRef, SchemaOrRef } from "../ontology"
2
+ import type { AudioModelsRuntime } from "./audio/types"
2
3
  import type { DecisionModelsRuntime } from "./decision/types"
3
4
  import type { ModelFinishReason, ModelUsage } from "./events"
4
5
  import type { LanguageModel, ModelReasoning } from "./language-model"
@@ -47,6 +48,7 @@ export interface LanguageModelsRuntime {
47
48
  }
48
49
 
49
50
  export interface ModelsRuntime {
51
+ readonly audio: AudioModelsRuntime
50
52
  readonly language: LanguageModelsRuntime
51
53
  readonly decision: DecisionModelsRuntime
52
54
  }
@@ -1,5 +1,25 @@
1
+ export type { FileRef } from "../blob-storage/types"
1
2
  export type { JsonObject, JsonPrimitive, JsonValue } from "../json"
2
3
  export { assertJsonObject, assertJsonValue, isJsonObject, isJsonValue } from "../json"
4
+ export type {
5
+ AudioModelCatalog,
6
+ AudioModelCatalogInput,
7
+ TranscriptionModelCatalog,
8
+ TranscriptionModelEntry,
9
+ } from "./audio/catalog"
10
+ export { TranscriptionModelResponseError } from "./audio/errors"
11
+ export type {
12
+ AudioModelsRuntime,
13
+ AudioTranscribeInput,
14
+ AudioTranscribeResult,
15
+ TranscriptionCostEstimator,
16
+ TranscriptionModel,
17
+ TranscriptionModelDefinition,
18
+ TranscriptionModelRequest,
19
+ TranscriptionModelResponseMetadata,
20
+ TranscriptionModelResult,
21
+ TranscriptionOutput,
22
+ } from "./audio/types"
3
23
  export type {
4
24
  EmbeddingModelCatalog,
5
25
  EmbeddingModelEntry,
@@ -12,6 +32,8 @@ export type {
12
32
  ModelCatalogInput,
13
33
  ModelDefinitionCatalog,
14
34
  ModelRef,
35
+ RerankingModelCatalog,
36
+ RerankingModelEntry,
15
37
  } from "./catalog"
16
38
  export { createModelCatalog } from "./catalog"
17
39
  export type { DecisionModelCatalog, DecisionModelEntry } from "./decision/catalog"
@@ -131,4 +153,14 @@ export type {
131
153
  ModelUnitPrice,
132
154
  } from "./rate-card"
133
155
  export { defineModelRateCard } from "./rate-card"
156
+ export type {
157
+ RerankingModel,
158
+ RerankingModelDefinition,
159
+ RerankingModelRef,
160
+ RerankingModelRequest,
161
+ RerankingModelResponseMetadata,
162
+ RerankingModelResult,
163
+ RerankingResult,
164
+ } from "./reranking-model"
165
+ export { RerankingModelResponseError } from "./reranking-model"
134
166
  export type { ModelOutput, ModelTool, ModelToolExecutionContext } from "./tools"
@@ -3,7 +3,7 @@ import type { LanguageModelRateCard, ModelTokenPrice } from "./rate-card"
3
3
 
4
4
  /** Optional local financial enrichment cannot discard a completed, billable call. */
5
5
  export function estimateModelCall(
6
- model: { readonly costEstimator?: ModelCostEstimator },
6
+ model: { readonly costEstimator?: Pick<ModelCostEstimator, "estimate"> },
7
7
  input: Parameters<ModelCostEstimator["estimate"]>[0]
8
8
  ): ModelCostEstimate {
9
9
  try {
@@ -46,6 +46,7 @@ export interface ModelCostEstimator {
46
46
  }
47
47
 
48
48
  export type ModelCostMeter =
49
+ | "audio.input.milliseconds"
49
50
  | "tokens.input.total"
50
51
  | "tokens.input.uncached"
51
52
  | "tokens.input.cacheRead"