@sixb/core 0.1.16 → 0.1.18

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 (844) hide show
  1. package/dist/actions/index.js +30 -27
  2. package/dist/actions/index.js.map +1 -1
  3. package/dist/actions/read-facade.d.ts +1 -1
  4. package/dist/actions/types/context.d.ts +2 -2
  5. package/dist/actions/types/context.d.ts.map +1 -1
  6. package/dist/actions/validation.d.ts.map +1 -1
  7. package/dist/actions/worker.js +6 -2
  8. package/dist/actions/worker.js.map +3 -3
  9. package/dist/agents/adapters.d.ts +7 -0
  10. package/dist/agents/adapters.d.ts.map +1 -1
  11. package/dist/agents/authority.d.ts +7 -0
  12. package/dist/agents/authority.d.ts.map +1 -1
  13. package/dist/agents/context/entries.d.ts +10 -1
  14. package/dist/agents/context/entries.d.ts.map +1 -1
  15. package/dist/agents/context/index.d.ts +1 -1
  16. package/dist/agents/context/index.d.ts.map +1 -1
  17. package/dist/agents/context/index.js +4 -2
  18. package/dist/agents/context/index.js.map +1 -1
  19. package/dist/agents/context-compaction.d.ts.map +1 -1
  20. package/dist/agents/errors.d.ts +1 -1
  21. package/dist/agents/errors.d.ts.map +1 -1
  22. package/dist/agents/index.d.ts +6 -4
  23. package/dist/agents/index.d.ts.map +1 -1
  24. package/dist/agents/index.js +54 -46
  25. package/dist/agents/index.js.map +1 -1
  26. package/dist/agents/message.d.ts +8 -1
  27. package/dist/agents/message.d.ts.map +1 -1
  28. package/dist/agents/request.d.ts +19 -5
  29. package/dist/agents/request.d.ts.map +1 -1
  30. package/dist/agents/skills.d.ts +41 -0
  31. package/dist/agents/skills.d.ts.map +1 -0
  32. package/dist/agents/streams/index.js +1 -1
  33. package/dist/agents/streams/internal.js +1 -1
  34. package/dist/agents/types.d.ts +33 -4
  35. package/dist/agents/types.d.ts.map +1 -1
  36. package/dist/auth/index.js +9 -6
  37. package/dist/auth/index.js.map +1 -1
  38. package/dist/auth/runtime.d.ts.map +1 -1
  39. package/dist/auth/types.d.ts +6 -0
  40. package/dist/auth/types.d.ts.map +1 -1
  41. package/dist/authorization/index.js +5 -3
  42. package/dist/authorization/index.js.map +1 -1
  43. package/dist/authorization/resolve.d.ts +1 -1
  44. package/dist/authorization/resolve.d.ts.map +1 -1
  45. package/dist/authorization/types.d.ts +7 -0
  46. package/dist/authorization/types.d.ts.map +1 -1
  47. package/dist/blob-storage/browser.js +1 -1
  48. package/dist/blob-storage/download-urls.d.ts +41 -0
  49. package/dist/blob-storage/download-urls.d.ts.map +1 -0
  50. package/dist/blob-storage/execution.d.ts +9 -1
  51. package/dist/blob-storage/execution.d.ts.map +1 -1
  52. package/dist/blob-storage/file-content.d.ts +18 -0
  53. package/dist/blob-storage/file-content.d.ts.map +1 -0
  54. package/dist/blob-storage/index.d.ts +1 -1
  55. package/dist/blob-storage/index.d.ts.map +1 -1
  56. package/dist/blob-storage/index.js +6 -4
  57. package/dist/blob-storage/index.js.map +1 -1
  58. package/dist/blob-storage/internal.d.ts +4 -0
  59. package/dist/blob-storage/internal.d.ts.map +1 -0
  60. package/dist/blob-storage/internal.js +23 -0
  61. package/dist/blob-storage/internal.js.map +9 -0
  62. package/dist/blob-storage/media-type.d.ts +8 -0
  63. package/dist/blob-storage/media-type.d.ts.map +1 -0
  64. package/dist/blob-storage/types.d.ts +12 -1
  65. package/dist/blob-storage/types.d.ts.map +1 -1
  66. package/dist/blob-storage/validation.d.ts +6 -0
  67. package/dist/blob-storage/validation.d.ts.map +1 -1
  68. package/dist/bootstrap/agent-context.d.ts +33 -0
  69. package/dist/bootstrap/agent-context.d.ts.map +1 -0
  70. package/dist/bootstrap/discovery.d.ts +23 -3
  71. package/dist/bootstrap/discovery.d.ts.map +1 -1
  72. package/dist/bootstrap/index.d.ts +2 -1
  73. package/dist/bootstrap/index.d.ts.map +1 -1
  74. package/dist/bootstrap/index.js +287 -75
  75. package/dist/bootstrap/index.js.map +4 -3
  76. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  77. package/dist/{chunk-kttr5ftm.js → chunk-1b1f2d5f.js} +23 -6
  78. package/dist/chunk-1b1f2d5f.js.map +12 -0
  79. package/dist/{chunk-hgqpcmyr.js → chunk-1hqwggsn.js} +47 -19
  80. package/dist/chunk-1hqwggsn.js.map +12 -0
  81. package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
  82. package/dist/chunk-1sr8ryzk.js.map +11 -0
  83. package/dist/{chunk-4gmng3vf.js → chunk-22v5bpz3.js} +1 -1
  84. package/dist/{chunk-tnvafr7g.js → chunk-29yx306f.js} +124 -9
  85. package/dist/chunk-29yx306f.js.map +22 -0
  86. package/dist/{chunk-fj1dvp37.js → chunk-2vhg6ysa.js} +1 -1
  87. package/dist/chunk-3zxk45er.js +152 -0
  88. package/dist/chunk-3zxk45er.js.map +11 -0
  89. package/dist/{chunk-gmdvns8f.js → chunk-48e3cn2d.js} +2 -2
  90. package/dist/{chunk-jgwb25gc.js → chunk-4as3wt1c.js} +13 -5
  91. package/dist/chunk-4as3wt1c.js.map +12 -0
  92. package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
  93. package/dist/chunk-6gmfggss.js.map +10 -0
  94. package/dist/{chunk-2xvgy3x5.js → chunk-6h5m9xjx.js} +43 -415
  95. package/dist/{chunk-2xvgy3x5.js.map → chunk-6h5m9xjx.js.map} +7 -11
  96. package/dist/{chunk-cq44v1a6.js → chunk-7hpdd6r9.js} +3 -3
  97. package/dist/{chunk-f85hpqnm.js → chunk-99nd4rc1.js} +3 -3
  98. package/dist/{chunk-f85hpqnm.js.map → chunk-99nd4rc1.js.map} +3 -3
  99. package/dist/chunk-b9affek3.js +261 -0
  100. package/dist/chunk-b9affek3.js.map +12 -0
  101. package/dist/{chunk-zvmr2hqk.js → chunk-bs7sqkre.js} +10 -4
  102. package/dist/chunk-bs7sqkre.js.map +12 -0
  103. package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
  104. package/dist/{chunk-667x4drs.js → chunk-d0eb5yy6.js} +143 -7
  105. package/dist/chunk-d0eb5yy6.js.map +14 -0
  106. package/dist/chunk-d62kjtbg.js.map +2 -2
  107. package/dist/{chunk-gkxsenvp.js → chunk-de4z2bj6.js} +31 -7
  108. package/dist/{chunk-gkxsenvp.js.map → chunk-de4z2bj6.js.map} +5 -4
  109. package/dist/{chunk-mdnw7nj8.js → chunk-dnmadg9k.js} +35 -10
  110. package/dist/chunk-dnmadg9k.js.map +15 -0
  111. package/dist/chunk-enpsx8k5.js +127 -0
  112. package/dist/chunk-enpsx8k5.js.map +10 -0
  113. package/dist/{chunk-xnx96gfy.js → chunk-ere85b8y.js} +17 -8
  114. package/dist/chunk-ere85b8y.js.map +15 -0
  115. package/dist/{chunk-k4kkp58d.js → chunk-ewqa58h9.js} +12 -2
  116. package/dist/chunk-ewqa58h9.js.map +11 -0
  117. package/dist/{chunk-7g2gjvah.js → chunk-ex496vct.js} +1 -1
  118. package/dist/{chunk-nvymebc1.js → chunk-f1zxad2t.js} +1 -1
  119. package/dist/{chunk-3q7z9hd4.js → chunk-fe52eczz.js} +483 -101
  120. package/dist/chunk-fe52eczz.js.map +49 -0
  121. package/dist/{chunk-8x74221e.js → chunk-fx93hd2n.js} +79 -32
  122. package/dist/chunk-fx93hd2n.js.map +20 -0
  123. package/dist/{chunk-39tqv9hz.js → chunk-gc4ntf7d.js} +6 -7
  124. package/dist/{chunk-39tqv9hz.js.map → chunk-gc4ntf7d.js.map} +3 -4
  125. package/dist/chunk-h8teetr0.js +9 -0
  126. package/dist/chunk-h8teetr0.js.map +10 -0
  127. package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
  128. package/dist/chunk-hkc3jct7.js.map +10 -0
  129. package/dist/chunk-hn2r7z41.js.map +1 -1
  130. package/dist/{chunk-h044jb97.js → chunk-htr6wjmv.js} +282 -58
  131. package/dist/chunk-htr6wjmv.js.map +19 -0
  132. package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
  133. package/dist/chunk-jhm3zsa7.js.map +12 -0
  134. package/dist/{chunk-chdg6eqq.js → chunk-k6hrnf35.js} +5 -5
  135. package/dist/chunk-k6hrnf35.js.map +10 -0
  136. package/dist/{chunk-a0073121.js → chunk-kpx7jrmn.js} +3 -1
  137. package/dist/chunk-kpx7jrmn.js.map +12 -0
  138. package/dist/{chunk-b9y8hcm2.js → chunk-mfs23znk.js} +1 -1
  139. package/dist/{chunk-kvysp909.js → chunk-ny3xyvcn.js} +32 -19
  140. package/dist/chunk-ny3xyvcn.js.map +17 -0
  141. package/dist/{chunk-h4138ww2.js → chunk-p0dqwj3n.js} +450 -799
  142. package/dist/chunk-p0dqwj3n.js.map +49 -0
  143. package/dist/{chunk-f72rbvsb.js → chunk-p844e0rn.js} +23 -8
  144. package/dist/chunk-p844e0rn.js.map +19 -0
  145. package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
  146. package/dist/chunk-pfp1txq2.js.map +11 -0
  147. package/dist/chunk-pqajwytd.js.map +3 -3
  148. package/dist/{chunk-mr60an99.js → chunk-qczk96d9.js} +22 -2
  149. package/dist/{chunk-mr60an99.js.map → chunk-qczk96d9.js.map} +3 -3
  150. package/dist/{chunk-69kt9q43.js → chunk-qkbx3tf6.js} +17 -128
  151. package/dist/{chunk-69kt9q43.js.map → chunk-qkbx3tf6.js.map} +6 -7
  152. package/dist/{chunk-h866d223.js → chunk-qkvz64nd.js} +2 -2
  153. package/dist/{chunk-vsvrv7n8.js → chunk-qmnnhde6.js} +4 -8
  154. package/dist/{chunk-vsvrv7n8.js.map → chunk-qmnnhde6.js.map} +3 -3
  155. package/dist/{chunk-6z1q7j19.js → chunk-qq90g05n.js} +1128 -782
  156. package/dist/chunk-qq90g05n.js.map +66 -0
  157. package/dist/{chunk-40qb8wpe.js → chunk-qxvp5epv.js} +84 -29
  158. package/dist/{chunk-40qb8wpe.js.map → chunk-qxvp5epv.js.map} +10 -9
  159. package/dist/chunk-rdghfsss.js.map +2 -2
  160. package/dist/{chunk-s3csryxe.js → chunk-rj69qcrd.js} +8 -2
  161. package/dist/chunk-rj69qcrd.js.map +11 -0
  162. package/dist/{chunk-tkdbge6v.js → chunk-rt9p8m9t.js} +1 -1
  163. package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
  164. package/dist/chunk-rz53yb4v.js.map +14 -0
  165. package/dist/{chunk-a7ne02hk.js → chunk-s4jhg8a3.js} +351 -296
  166. package/dist/chunk-s4jhg8a3.js.map +15 -0
  167. package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
  168. package/dist/chunk-s54c868q.js.map +12 -0
  169. package/dist/{chunk-dsv8kdgk.js → chunk-tffvfy6s.js} +8 -7
  170. package/dist/{chunk-dsv8kdgk.js.map → chunk-tffvfy6s.js.map} +3 -3
  171. package/dist/{chunk-sbcm1b92.js → chunk-v6xpd60t.js} +3 -3
  172. package/dist/{chunk-nj0020ay.js → chunk-vgk3hknm.js} +1 -1
  173. package/dist/{chunk-qnd7ehe5.js → chunk-vx2yp45y.js} +2 -2
  174. package/dist/{chunk-vjqt7q3a.js → chunk-vz3gc1tm.js} +607 -45
  175. package/dist/chunk-vz3gc1tm.js.map +41 -0
  176. package/dist/{chunk-g4rbm4a6.js → chunk-wt4szfec.js} +379 -331
  177. package/dist/chunk-wt4szfec.js.map +14 -0
  178. package/dist/chunk-xt1zt7gv.js +471 -0
  179. package/dist/chunk-xt1zt7gv.js.map +13 -0
  180. package/dist/{chunk-swxzncrv.js → chunk-y05543x6.js} +51 -8
  181. package/dist/{chunk-swxzncrv.js.map → chunk-y05543x6.js.map} +5 -5
  182. package/dist/{chunk-zdkcdshk.js → chunk-y9jmd7e5.js} +41 -3
  183. package/dist/{chunk-zdkcdshk.js.map → chunk-y9jmd7e5.js.map} +4 -3
  184. package/dist/{chunk-nkbev3tr.js → chunk-yv9czyfr.js} +3 -3
  185. package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
  186. package/dist/chunk-yw9pyg66.js.map +11 -0
  187. package/dist/{chunk-cxj8y8t0.js → chunk-za5yd58j.js} +2 -2
  188. package/dist/{chunk-zb47r1c8.js → chunk-zb77kjth.js} +3 -3
  189. package/dist/{chunk-dp7yk20b.js → chunk-zxawp1n2.js} +1 -1
  190. package/dist/datasets/builders.d.ts +12 -1
  191. package/dist/datasets/builders.d.ts.map +1 -1
  192. package/dist/datasets/execution.d.ts +27 -1
  193. package/dist/datasets/execution.d.ts.map +1 -1
  194. package/dist/datasets/index.d.ts +1 -1
  195. package/dist/datasets/index.d.ts.map +1 -1
  196. package/dist/datasets/types.d.ts +2 -0
  197. package/dist/datasets/types.d.ts.map +1 -1
  198. package/dist/datasets/write.d.ts +5 -0
  199. package/dist/datasets/write.d.ts.map +1 -1
  200. package/dist/datasets/write.js +10 -5
  201. package/dist/datasets/write.js.map +1 -1
  202. package/dist/edits/properties.d.ts.map +1 -1
  203. package/dist/events/execution.d.ts +2 -1
  204. package/dist/events/execution.d.ts.map +1 -1
  205. package/dist/events/types/objects.d.ts +5 -0
  206. package/dist/events/types/objects.d.ts.map +1 -1
  207. package/dist/execution/agent.d.ts +10 -0
  208. package/dist/execution/agent.d.ts.map +1 -1
  209. package/dist/execution/agent.js +49 -43
  210. package/dist/execution/agent.js.map +1 -1
  211. package/dist/execution/authorized-object-reader.d.ts +9 -2
  212. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  213. package/dist/execution/primitive.js +45 -41
  214. package/dist/execution/primitive.js.map +2 -2
  215. package/dist/execution/request.js +46 -42
  216. package/dist/execution/request.js.map +2 -2
  217. package/dist/http/api-routes.d.ts.map +1 -1
  218. package/dist/http/index.js +1 -1
  219. package/dist/index.d.ts +16 -11
  220. package/dist/index.d.ts.map +1 -1
  221. package/dist/index.js +79 -71
  222. package/dist/index.js.map +1 -1
  223. package/dist/lake-storage/in-memory.d.ts +5 -1
  224. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  225. package/dist/lake-storage/index.d.ts +1 -1
  226. package/dist/lake-storage/index.d.ts.map +1 -1
  227. package/dist/lake-storage/index.js +8 -5
  228. package/dist/lake-storage/index.js.map +1 -1
  229. package/dist/lake-storage/types.d.ts +26 -0
  230. package/dist/lake-storage/types.d.ts.map +1 -1
  231. package/dist/maintenance/ontology-maintenance.d.ts +5 -1
  232. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  233. package/dist/maintenance/types.d.ts +1 -4
  234. package/dist/maintenance/types.d.ts.map +1 -1
  235. package/dist/materialization/event-envelopes.d.ts +20 -0
  236. package/dist/materialization/event-envelopes.d.ts.map +1 -0
  237. package/dist/materialization/events.d.ts +29 -3
  238. package/dist/materialization/events.d.ts.map +1 -1
  239. package/dist/materialization/index.d.ts +4 -1
  240. package/dist/materialization/index.d.ts.map +1 -1
  241. package/dist/materialization/index.js +9 -3
  242. package/dist/materialization/index.js.map +1 -1
  243. package/dist/materializer/edits/plan.d.ts +2 -10
  244. package/dist/materializer/edits/plan.d.ts.map +1 -1
  245. package/dist/materializer/effective/build-events.d.ts +5 -21
  246. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  247. package/dist/materializer/effective/vector-indexing.d.ts +2 -3
  248. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -1
  249. package/dist/materializer/effective/vectors.d.ts +2 -3
  250. package/dist/materializer/effective/vectors.d.ts.map +1 -1
  251. package/dist/materializer/execution/scope.d.ts +1 -11
  252. package/dist/materializer/execution/scope.d.ts.map +1 -1
  253. package/dist/materializer/execution/work-executor.d.ts +5 -7
  254. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  255. package/dist/materializer/execution/work-records.d.ts +1 -3
  256. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  257. package/dist/materializer/index.js +35 -33
  258. package/dist/materializer/index.js.map +1 -1
  259. package/dist/materializer/projections/replace.d.ts.map +1 -1
  260. package/dist/materializer/projections/replacement-plan.d.ts +8 -11
  261. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  262. package/dist/materializer/shared/batching.d.ts +5 -0
  263. package/dist/materializer/shared/batching.d.ts.map +1 -1
  264. package/dist/materializer/telemetry/plan.d.ts +2 -8
  265. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  266. package/dist/models/audio/catalog.d.ts +20 -0
  267. package/dist/models/audio/catalog.d.ts.map +1 -0
  268. package/dist/models/audio/errors.d.ts +8 -0
  269. package/dist/models/audio/errors.d.ts.map +1 -0
  270. package/dist/models/audio/file.d.ts +9 -0
  271. package/dist/models/audio/file.d.ts.map +1 -0
  272. package/dist/models/audio/runtime.d.ts +8 -0
  273. package/dist/models/audio/runtime.d.ts.map +1 -0
  274. package/dist/models/audio/types.d.ts +60 -0
  275. package/dist/models/audio/types.d.ts.map +1 -0
  276. package/dist/models/catalog.d.ts +24 -2
  277. package/dist/models/catalog.d.ts.map +1 -1
  278. package/dist/models/definitions.d.ts +1 -1
  279. package/dist/models/definitions.d.ts.map +1 -1
  280. package/dist/models/events.d.ts +3 -0
  281. package/dist/models/events.d.ts.map +1 -1
  282. package/dist/models/execution/binding.d.ts +6 -0
  283. package/dist/models/execution/binding.d.ts.map +1 -1
  284. package/dist/models/execution/index.js +27 -24
  285. package/dist/models/execution/index.js.map +1 -1
  286. package/dist/models/execution/model-call-admission.d.ts +6 -1
  287. package/dist/models/execution/model-call-admission.d.ts.map +1 -1
  288. package/dist/models/execution/model-call-limits.d.ts.map +1 -1
  289. package/dist/models/execution/model-call-recorder.d.ts +4 -0
  290. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  291. package/dist/models/execution/reranking.d.ts +4 -0
  292. package/dist/models/execution/reranking.d.ts.map +1 -0
  293. package/dist/models/execution/usage.d.ts.map +1 -1
  294. package/dist/models/execution.d.ts +2 -1
  295. package/dist/models/execution.d.ts.map +1 -1
  296. package/dist/models/generation-types.d.ts +2 -0
  297. package/dist/models/generation-types.d.ts.map +1 -1
  298. package/dist/models/index.d.ts +7 -1
  299. package/dist/models/index.d.ts.map +1 -1
  300. package/dist/models/index.js +6 -2
  301. package/dist/models/index.js.map +1 -1
  302. package/dist/models/language-model.d.ts +6 -0
  303. package/dist/models/language-model.d.ts.map +1 -1
  304. package/dist/models/pricing.d.ts +2 -2
  305. package/dist/models/pricing.d.ts.map +1 -1
  306. package/dist/models/reranking-model.d.ts +49 -0
  307. package/dist/models/reranking-model.d.ts.map +1 -0
  308. package/dist/objects/context/index.d.ts +1 -1
  309. package/dist/objects/context/index.d.ts.map +1 -1
  310. package/dist/objects/context/types.d.ts +6 -0
  311. package/dist/objects/context/types.d.ts.map +1 -1
  312. package/dist/objects/execution.d.ts +2 -1
  313. package/dist/objects/execution.d.ts.map +1 -1
  314. package/dist/objects/index.js +31 -27
  315. package/dist/objects/index.js.map +1 -1
  316. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  317. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  318. package/dist/objects/object/upsert.d.ts.map +1 -1
  319. package/dist/objects/property-clearance.d.ts +41 -0
  320. package/dist/objects/property-clearance.d.ts.map +1 -0
  321. package/dist/objects/query/executor.d.ts +5 -1
  322. package/dist/objects/query/executor.d.ts.map +1 -1
  323. package/dist/objects/query/index.d.ts +1 -1
  324. package/dist/objects/query/index.d.ts.map +1 -1
  325. package/dist/objects/query/index.js +27 -24
  326. package/dist/objects/query/index.js.map +1 -1
  327. package/dist/objects/query/ir.d.ts +8 -1
  328. package/dist/objects/query/ir.d.ts.map +1 -1
  329. package/dist/objects/query/normalize.d.ts.map +1 -1
  330. package/dist/objects/query/planner.d.ts +1 -1
  331. package/dist/objects/query/planner.d.ts.map +1 -1
  332. package/dist/objects/query/primary-id.d.ts +7 -0
  333. package/dist/objects/query/primary-id.d.ts.map +1 -0
  334. package/dist/objects/query/reranking-executor.d.ts +13 -0
  335. package/dist/objects/query/reranking-executor.d.ts.map +1 -0
  336. package/dist/objects/query/reranking-limits.d.ts +3 -0
  337. package/dist/objects/query/reranking-limits.d.ts.map +1 -0
  338. package/dist/objects/query/reranking-query.d.ts +4 -0
  339. package/dist/objects/query/reranking-query.d.ts.map +1 -0
  340. package/dist/objects/query/validate.d.ts +10 -1
  341. package/dist/objects/query/validate.d.ts.map +1 -1
  342. package/dist/objects/sdk/file-handle.d.ts +6 -0
  343. package/dist/objects/sdk/file-handle.d.ts.map +1 -0
  344. package/dist/objects/sdk/object-handle.d.ts +2 -2
  345. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  346. package/dist/objects/sdk/object-set.d.ts +2 -0
  347. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  348. package/dist/objects/sdk/query-builder.d.ts +8 -0
  349. package/dist/objects/sdk/query-builder.d.ts.map +1 -1
  350. package/dist/objects/sdk/query-executor.d.ts +2 -2
  351. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  352. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  353. package/dist/objects/vectors/indexing-dispatch.d.ts +21 -0
  354. package/dist/objects/vectors/indexing-dispatch.d.ts.map +1 -0
  355. package/dist/objects/vectors/query.d.ts.map +1 -1
  356. package/dist/ontology/builders.d.ts +12 -1
  357. package/dist/ontology/builders.d.ts.map +1 -1
  358. package/dist/ontology/docs-markdown.d.ts +35 -0
  359. package/dist/ontology/docs-markdown.d.ts.map +1 -0
  360. package/dist/ontology/docs.d.ts +50 -0
  361. package/dist/ontology/docs.d.ts.map +1 -0
  362. package/dist/ontology/index.d.ts +1 -1
  363. package/dist/ontology/index.d.ts.map +1 -1
  364. package/dist/ontology/index.js +7 -4
  365. package/dist/ontology/index.js.map +1 -1
  366. package/dist/ontology/inference/index.d.ts +19 -0
  367. package/dist/ontology/inference/index.d.ts.map +1 -1
  368. package/dist/ontology/internal.d.ts +3 -1
  369. package/dist/ontology/internal.d.ts.map +1 -1
  370. package/dist/ontology/internal.js +276 -3
  371. package/dist/ontology/internal.js.map +4 -3
  372. package/dist/ontology/query-capabilities.d.ts +1 -0
  373. package/dist/ontology/query-capabilities.d.ts.map +1 -1
  374. package/dist/ontology/tokens.d.ts +8 -1
  375. package/dist/ontology/tokens.d.ts.map +1 -1
  376. package/dist/ontology/types.d.ts +25 -0
  377. package/dist/ontology/types.d.ts.map +1 -1
  378. package/dist/ontology/validation/index.d.ts +1 -1
  379. package/dist/ontology/validation/index.d.ts.map +1 -1
  380. package/dist/ontology/validation/query.d.ts.map +1 -1
  381. package/dist/ontology/validation/schema.d.ts +7 -0
  382. package/dist/ontology/validation/schema.d.ts.map +1 -1
  383. package/dist/pipelines/index.js +29 -26
  384. package/dist/pipelines/index.js.map +1 -1
  385. package/dist/projections/internal.js +27 -24
  386. package/dist/projections/internal.js.map +1 -1
  387. package/dist/query.d.ts +4 -2
  388. package/dist/query.d.ts.map +1 -1
  389. package/dist/query.js +2 -2
  390. package/dist/queues/in-memory.d.ts +3 -0
  391. package/dist/queues/in-memory.d.ts.map +1 -1
  392. package/dist/queues/index.js +1 -1
  393. package/dist/queues/types.d.ts +4 -0
  394. package/dist/queues/types.d.ts.map +1 -1
  395. package/dist/runtime/create.d.ts +11 -2
  396. package/dist/runtime/create.d.ts.map +1 -1
  397. package/dist/runtime/definitions.d.ts +3 -1
  398. package/dist/runtime/definitions.d.ts.map +1 -1
  399. package/dist/runtime/host.d.ts +14 -2
  400. package/dist/runtime/host.d.ts.map +1 -1
  401. package/dist/runtime/index.d.ts +1 -1
  402. package/dist/runtime/index.d.ts.map +1 -1
  403. package/dist/runtime/internal.d.ts +1 -0
  404. package/dist/runtime/internal.d.ts.map +1 -1
  405. package/dist/runtime/internal.js +32 -27
  406. package/dist/runtime/internal.js.map +1 -1
  407. package/dist/runtime/locale.d.ts +9 -0
  408. package/dist/runtime/locale.d.ts.map +1 -0
  409. package/dist/runtime/public-origin.d.ts +10 -0
  410. package/dist/runtime/public-origin.d.ts.map +1 -0
  411. package/dist/runtime/resolve-definitions.d.ts +4 -2
  412. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  413. package/dist/runtime/sixb.d.ts +1 -0
  414. package/dist/runtime/sixb.d.ts.map +1 -1
  415. package/dist/runtime/types.d.ts +42 -5
  416. package/dist/runtime/types.d.ts.map +1 -1
  417. package/dist/sandboxes/index.js +7 -6
  418. package/dist/sandboxes/index.js.map +1 -1
  419. package/dist/scheduler/index.js +1 -1
  420. package/dist/scheduler/runtime.d.ts +3 -0
  421. package/dist/scheduler/runtime.d.ts.map +1 -1
  422. package/dist/security/builders.d.ts +11 -2
  423. package/dist/security/builders.d.ts.map +1 -1
  424. package/dist/security/index.d.ts +4 -4
  425. package/dist/security/index.d.ts.map +1 -1
  426. package/dist/security/markings.d.ts +19 -0
  427. package/dist/security/markings.d.ts.map +1 -0
  428. package/dist/security/redactions.d.ts +4 -0
  429. package/dist/security/redactions.d.ts.map +1 -0
  430. package/dist/security/registry.d.ts +7 -1
  431. package/dist/security/registry.d.ts.map +1 -1
  432. package/dist/security/types.d.ts +25 -0
  433. package/dist/security/types.d.ts.map +1 -1
  434. package/dist/security/validation.d.ts +4 -1
  435. package/dist/security/validation.d.ts.map +1 -1
  436. package/dist/shares/internal.js +24 -21
  437. package/dist/shares/internal.js.map +2 -2
  438. package/dist/storage/agents/provider.d.ts.map +1 -1
  439. package/dist/storage/agents/provider.js +5 -4
  440. package/dist/storage/agents/provider.js.map +1 -1
  441. package/dist/storage/agents/types.d.ts +15 -9
  442. package/dist/storage/agents/types.d.ts.map +1 -1
  443. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  444. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  445. package/dist/storage/ai-cost/provider.js +3 -3
  446. package/dist/storage/ai-cost/types.d.ts +1 -1
  447. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  448. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  449. package/dist/storage/ai-limits/enforcement.js +2 -2
  450. package/dist/storage/ai-limits/in-memory.d.ts.map +1 -1
  451. package/dist/storage/ai-limits/provider.d.ts +7 -2
  452. package/dist/storage/ai-limits/provider.d.ts.map +1 -1
  453. package/dist/storage/ai-limits/provider.js +4 -2
  454. package/dist/storage/ai-limits/provider.js.map +1 -1
  455. package/dist/storage/ai-limits/types.d.ts +3 -0
  456. package/dist/storage/ai-limits/types.d.ts.map +1 -1
  457. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  458. package/dist/storage/ai-usage/types.d.ts +8 -4
  459. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  460. package/dist/storage/ai-usage/usage.d.ts.map +1 -1
  461. package/dist/storage/file-download-grants/in-memory.d.ts +11 -0
  462. package/dist/storage/file-download-grants/in-memory.d.ts.map +1 -0
  463. package/dist/storage/file-download-grants/index.d.ts +3 -0
  464. package/dist/storage/file-download-grants/index.d.ts.map +1 -0
  465. package/dist/storage/file-download-grants/record.d.ts +11 -0
  466. package/dist/storage/file-download-grants/record.d.ts.map +1 -0
  467. package/dist/storage/file-download-grants/types.d.ts +44 -0
  468. package/dist/storage/file-download-grants/types.d.ts.map +1 -0
  469. package/dist/storage/file-upload-sessions/provider.js +10 -7
  470. package/dist/storage/file-upload-sessions/provider.js.map +1 -1
  471. package/dist/storage/in-memory/index.d.ts +4 -0
  472. package/dist/storage/in-memory/index.d.ts.map +1 -1
  473. package/dist/storage/index.d.ts +6 -3
  474. package/dist/storage/index.d.ts.map +1 -1
  475. package/dist/storage/index.js +35 -32
  476. package/dist/storage/index.js.map +1 -1
  477. package/dist/storage/internal.d.ts +1 -0
  478. package/dist/storage/internal.d.ts.map +1 -1
  479. package/dist/storage/internal.js +9 -4
  480. package/dist/storage/internal.js.map +1 -1
  481. package/dist/storage/migrations/index.d.ts +1 -1
  482. package/dist/storage/migrations/index.d.ts.map +1 -1
  483. package/dist/storage/migrations/migrate-storage.d.ts +3 -3
  484. package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
  485. package/dist/storage/migrations/types.d.ts +7 -0
  486. package/dist/storage/migrations/types.d.ts.map +1 -1
  487. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  488. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  489. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  490. package/dist/storage/objects/query-preparation.d.ts +39 -0
  491. package/dist/storage/objects/query-preparation.d.ts.map +1 -0
  492. package/dist/storage/objects/types.d.ts +9 -0
  493. package/dist/storage/objects/types.d.ts.map +1 -1
  494. package/dist/storage/ontology/commits.d.ts +1 -6
  495. package/dist/storage/ontology/commits.d.ts.map +1 -1
  496. package/dist/storage/ontology/in-memory/index.d.ts +4 -2
  497. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  498. package/dist/storage/ontology/in-memory/materializations-state.d.ts +0 -2
  499. package/dist/storage/ontology/in-memory/materializations-state.d.ts.map +1 -1
  500. package/dist/storage/ontology/in-memory/materializations-work.d.ts +1 -3
  501. package/dist/storage/ontology/in-memory/materializations-work.d.ts.map +1 -1
  502. package/dist/storage/ontology/in-memory/materializations.d.ts +23 -57
  503. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  504. package/dist/storage/ontology/in-memory/outbox.d.ts +3 -2
  505. package/dist/storage/ontology/in-memory/outbox.d.ts.map +1 -1
  506. package/dist/storage/ontology/in-memory/replacement-plans.d.ts +104 -0
  507. package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -0
  508. package/dist/storage/ontology/in-memory/shared-state.d.ts +17 -2
  509. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  510. package/dist/storage/ontology/in-memory/source-roots.d.ts +3 -1
  511. package/dist/storage/ontology/in-memory/source-roots.d.ts.map +1 -1
  512. package/dist/storage/ontology/in-memory/sources.d.ts +1 -2
  513. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  514. package/dist/storage/ontology/in-memory/state-reader.d.ts +25 -0
  515. package/dist/storage/ontology/in-memory/state-reader.d.ts.map +1 -0
  516. package/dist/storage/ontology/index.d.ts +6 -3
  517. package/dist/storage/ontology/index.d.ts.map +1 -1
  518. package/dist/storage/ontology/materializations.d.ts +40 -59
  519. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  520. package/dist/storage/ontology/outbox.d.ts +4 -6
  521. package/dist/storage/ontology/outbox.d.ts.map +1 -1
  522. package/dist/storage/ontology/provider-work.d.ts +114 -3
  523. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  524. package/dist/storage/ontology/provider.d.ts +14 -39
  525. package/dist/storage/ontology/provider.d.ts.map +1 -1
  526. package/dist/storage/ontology/provider.js +26 -12
  527. package/dist/storage/ontology/provider.js.map +1 -1
  528. package/dist/storage/ontology/replacement-plans.d.ts +103 -0
  529. package/dist/storage/ontology/replacement-plans.d.ts.map +1 -0
  530. package/dist/storage/ontology/sources.d.ts +0 -8
  531. package/dist/storage/ontology/sources.d.ts.map +1 -1
  532. package/dist/storage/operation-scope.d.ts.map +1 -1
  533. package/dist/storage/operation-scope.js +1 -1
  534. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  535. package/dist/storage/projection-runs/types.d.ts +2 -0
  536. package/dist/storage/projection-runs/types.d.ts.map +1 -1
  537. package/dist/storage/types.d.ts +2 -0
  538. package/dist/storage/types.d.ts.map +1 -1
  539. package/dist/storage/workflow-runs/provider.js +10 -7
  540. package/dist/storage/workflow-runs/provider.js.map +1 -1
  541. package/dist/syncs/index.js +30 -27
  542. package/dist/syncs/index.js.map +1 -1
  543. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  544. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
  545. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  546. package/dist/testing/file-download-grant-storage-contract.d.ts +9 -0
  547. package/dist/testing/file-download-grant-storage-contract.d.ts.map +1 -0
  548. package/dist/testing/index.d.ts +1 -0
  549. package/dist/testing/index.d.ts.map +1 -1
  550. package/dist/testing/index.js +2556 -1495
  551. package/dist/testing/index.js.map +14 -13
  552. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  553. package/dist/testing/materializer-storage-contract.d.ts +14 -0
  554. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  555. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  556. package/dist/testing/ontology-contract-fixture.d.ts +5 -1
  557. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  558. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  559. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  560. package/dist/testing/queues-contract.d.ts.map +1 -1
  561. package/dist/webhooks/internal.js +25 -22
  562. package/dist/webhooks/internal.js.map +2 -2
  563. package/dist/workers/index.js +15 -17
  564. package/dist/workers/index.js.map +3 -3
  565. package/dist/workers/queue-worker.d.ts +3 -2
  566. package/dist/workers/queue-worker.d.ts.map +1 -1
  567. package/dist/workflows/builders.d.ts.map +1 -1
  568. package/dist/workflows/index.js +51 -47
  569. package/dist/workflows/index.js.map +1 -1
  570. package/dist/workflows/request.d.ts.map +1 -1
  571. package/dist/workflows/types.d.ts +6 -3
  572. package/dist/workflows/types.d.ts.map +1 -1
  573. package/dist/workflows/validation.d.ts +2 -1
  574. package/dist/workflows/validation.d.ts.map +1 -1
  575. package/package.json +7 -1
  576. package/src/actions/read-facade.ts +2 -1
  577. package/src/actions/types/context.ts +5 -2
  578. package/src/actions/validation.ts +4 -1
  579. package/src/agents/adapters.ts +15 -0
  580. package/src/agents/authority.ts +15 -0
  581. package/src/agents/context/entries.ts +48 -4
  582. package/src/agents/context/index.ts +1 -0
  583. package/src/agents/context-compaction.ts +6 -0
  584. package/src/agents/errors.ts +3 -0
  585. package/src/agents/index.ts +13 -1
  586. package/src/agents/message.ts +9 -0
  587. package/src/agents/request.ts +178 -22
  588. package/src/agents/skills.ts +63 -0
  589. package/src/agents/types.ts +35 -5
  590. package/src/auth/runtime.ts +14 -0
  591. package/src/auth/types.ts +6 -0
  592. package/src/authorization/resolve.ts +6 -1
  593. package/src/authorization/types.ts +7 -0
  594. package/src/blob-storage/download-urls.ts +138 -0
  595. package/src/blob-storage/execution.ts +44 -1
  596. package/src/blob-storage/file-content.ts +106 -0
  597. package/src/blob-storage/index.ts +1 -0
  598. package/src/blob-storage/internal.ts +8 -0
  599. package/src/blob-storage/media-type.ts +29 -0
  600. package/src/blob-storage/types.ts +13 -1
  601. package/src/blob-storage/validation.ts +13 -0
  602. package/src/bootstrap/agent-context.ts +356 -0
  603. package/src/bootstrap/discovery.ts +100 -33
  604. package/src/bootstrap/index.ts +1 -1
  605. package/src/bootstrap/ontology-type-manifest.ts +3 -38
  606. package/src/datasets/builders.ts +17 -1
  607. package/src/datasets/execution.ts +110 -2
  608. package/src/datasets/index.ts +7 -1
  609. package/src/datasets/types.ts +2 -0
  610. package/src/datasets/write.ts +21 -2
  611. package/src/edits/properties.ts +3 -0
  612. package/src/events/execution.ts +15 -16
  613. package/src/events/types/objects.ts +5 -0
  614. package/src/execution/agent.ts +27 -0
  615. package/src/execution/authorization.ts +1 -0
  616. package/src/execution/authorized-object-reader.ts +104 -35
  617. package/src/execution/scopes.ts +2 -6
  618. package/src/http/api-routes.ts +4 -3
  619. package/src/index.ts +52 -2
  620. package/src/lake-storage/in-memory.ts +38 -9
  621. package/src/lake-storage/index.ts +2 -0
  622. package/src/lake-storage/types.ts +30 -0
  623. package/src/maintenance/ontology-maintenance.ts +50 -23
  624. package/src/maintenance/types.ts +1 -4
  625. package/src/materialization/event-envelopes.ts +168 -0
  626. package/src/materialization/events.ts +40 -4
  627. package/src/materialization/index.ts +9 -1
  628. package/src/materializer/README.md +55 -10
  629. package/src/materializer/edits/commit.ts +3 -19
  630. package/src/materializer/edits/plan.ts +20 -71
  631. package/src/materializer/effective/build-events.ts +42 -136
  632. package/src/materializer/effective/vector-indexing.ts +2 -3
  633. package/src/materializer/effective/vectors.ts +2 -3
  634. package/src/materializer/execution/scope.ts +1 -38
  635. package/src/materializer/execution/work-executor.ts +21 -115
  636. package/src/materializer/execution/work-records.ts +0 -15
  637. package/src/materializer/projections/replace.ts +106 -63
  638. package/src/materializer/projections/replacement-plan.ts +73 -218
  639. package/src/materializer/shared/batching.ts +7 -0
  640. package/src/materializer/telemetry/append.ts +2 -14
  641. package/src/materializer/telemetry/plan.ts +6 -43
  642. package/src/models/audio/catalog.ts +90 -0
  643. package/src/models/audio/errors.ts +19 -0
  644. package/src/models/audio/file.ts +78 -0
  645. package/src/models/audio/runtime.ts +182 -0
  646. package/src/models/audio/types.ts +69 -0
  647. package/src/models/catalog.ts +78 -7
  648. package/src/models/definitions.ts +8 -1
  649. package/src/models/events.ts +3 -0
  650. package/src/models/execution/README.md +24 -4
  651. package/src/models/execution/binding.ts +6 -0
  652. package/src/models/execution/model-call-admission.ts +6 -1
  653. package/src/models/execution/model-call-limits.ts +21 -11
  654. package/src/models/execution/model-call-recorder.ts +11 -0
  655. package/src/models/execution/model-call-recovery.ts +1 -0
  656. package/src/models/execution/reranking.ts +137 -0
  657. package/src/models/execution/session.ts +2 -2
  658. package/src/models/execution/usage.ts +1 -0
  659. package/src/models/execution.ts +11 -3
  660. package/src/models/generation-types.ts +2 -0
  661. package/src/models/index.ts +32 -0
  662. package/src/models/language-model.ts +6 -0
  663. package/src/models/pricing.ts +2 -1
  664. package/src/models/reranking-model.ts +114 -0
  665. package/src/objects/context/index.ts +1 -0
  666. package/src/objects/context/types.ts +7 -0
  667. package/src/objects/execution.ts +4 -1
  668. package/src/objects/materializer-adapter.ts +3 -0
  669. package/src/objects/object/upsert-batch.ts +4 -1
  670. package/src/objects/object/upsert.ts +3 -1
  671. package/src/objects/property-clearance.ts +209 -0
  672. package/src/objects/query/executor.ts +85 -38
  673. package/src/objects/query/explain.ts +8 -0
  674. package/src/objects/query/index.ts +1 -0
  675. package/src/objects/query/ir.ts +10 -0
  676. package/src/objects/query/normalize.ts +2 -0
  677. package/src/objects/query/planner.ts +12 -1
  678. package/src/objects/query/primary-id.ts +56 -0
  679. package/src/objects/query/reranking-executor.ts +91 -0
  680. package/src/objects/query/reranking-limits.ts +3 -0
  681. package/src/objects/query/reranking-query.ts +8 -0
  682. package/src/objects/query/validate.ts +166 -15
  683. package/src/objects/sdk/file-handle.ts +77 -0
  684. package/src/objects/sdk/object-handle.ts +8 -4
  685. package/src/objects/sdk/object-set.ts +5 -2
  686. package/src/objects/sdk/query-builder.ts +15 -2
  687. package/src/objects/sdk/query-executor.ts +2 -2
  688. package/src/objects/sdk/runtime-query-executor.ts +7 -4
  689. package/src/objects/vectors/README.md +6 -2
  690. package/src/objects/vectors/indexing-dispatch.ts +83 -0
  691. package/src/objects/vectors/query.ts +3 -0
  692. package/src/ontology/builders.ts +19 -2
  693. package/src/ontology/docs-markdown.ts +394 -0
  694. package/src/ontology/docs.ts +196 -0
  695. package/src/ontology/index.ts +2 -0
  696. package/src/ontology/inference/index.ts +25 -0
  697. package/src/ontology/internal.ts +7 -0
  698. package/src/ontology/query-capabilities.ts +1 -1
  699. package/src/ontology/tokens.ts +13 -2
  700. package/src/ontology/types.ts +26 -0
  701. package/src/ontology/validation/index.ts +1 -0
  702. package/src/ontology/validation/query.ts +57 -0
  703. package/src/ontology/validation/schema.ts +26 -1
  704. package/src/query.ts +4 -0
  705. package/src/queues/in-memory.ts +54 -19
  706. package/src/queues/types.ts +4 -0
  707. package/src/runtime/create.ts +34 -4
  708. package/src/runtime/definitions.ts +3 -1
  709. package/src/runtime/host.ts +73 -2
  710. package/src/runtime/index.ts +4 -0
  711. package/src/runtime/internal.ts +1 -0
  712. package/src/runtime/locale.ts +26 -0
  713. package/src/runtime/public-origin.ts +33 -0
  714. package/src/runtime/resolve-definitions.ts +28 -1
  715. package/src/runtime/sixb.ts +14 -3
  716. package/src/runtime/types.ts +51 -5
  717. package/src/scheduler/runtime.ts +11 -2
  718. package/src/security/builders.ts +49 -5
  719. package/src/security/index.ts +6 -1
  720. package/src/security/markings.ts +313 -0
  721. package/src/security/redactions.ts +6 -0
  722. package/src/security/registry.ts +21 -1
  723. package/src/security/types.ts +26 -0
  724. package/src/security/validation.ts +59 -2
  725. package/src/storage/agents/provider.ts +11 -0
  726. package/src/storage/agents/types.ts +15 -7
  727. package/src/storage/ai-cost/analytics.ts +2 -0
  728. package/src/storage/ai-cost/codec.ts +2 -1
  729. package/src/storage/ai-cost/types.ts +1 -0
  730. package/src/storage/ai-cost/validation.ts +21 -8
  731. package/src/storage/ai-limits/in-memory.ts +10 -2
  732. package/src/storage/ai-limits/provider.ts +29 -2
  733. package/src/storage/ai-limits/types.ts +3 -0
  734. package/src/storage/ai-usage/record.ts +9 -0
  735. package/src/storage/ai-usage/types.ts +8 -4
  736. package/src/storage/ai-usage/usage.ts +2 -0
  737. package/src/storage/file-download-grants/in-memory.ts +73 -0
  738. package/src/storage/file-download-grants/index.ts +8 -0
  739. package/src/storage/file-download-grants/record.ts +47 -0
  740. package/src/storage/file-download-grants/types.ts +48 -0
  741. package/src/storage/in-memory/index.ts +13 -2
  742. package/src/storage/index.ts +32 -13
  743. package/src/storage/internal.ts +1 -0
  744. package/src/storage/migrations/index.ts +1 -0
  745. package/src/storage/migrations/migrate-storage.ts +36 -12
  746. package/src/storage/migrations/types.ts +8 -0
  747. package/src/storage/objects/in-memory/query.ts +2 -0
  748. package/src/storage/objects/in-memory/selected-reader.ts +1 -0
  749. package/src/storage/objects/in-memory/storage.ts +1 -0
  750. package/src/storage/objects/query-preparation.ts +77 -0
  751. package/src/storage/objects/types.ts +9 -0
  752. package/src/storage/ontology/commits.ts +1 -6
  753. package/src/storage/ontology/in-memory/index.ts +28 -9
  754. package/src/storage/ontology/in-memory/materializations-finalization.ts +35 -68
  755. package/src/storage/ontology/in-memory/materializations-state.ts +0 -22
  756. package/src/storage/ontology/in-memory/materializations-work.ts +0 -45
  757. package/src/storage/ontology/in-memory/materializations.ts +172 -653
  758. package/src/storage/ontology/in-memory/outbox.ts +37 -29
  759. package/src/storage/ontology/in-memory/replacement-plans.ts +697 -0
  760. package/src/storage/ontology/in-memory/shared-state.ts +24 -2
  761. package/src/storage/ontology/in-memory/source-roots.ts +7 -2
  762. package/src/storage/ontology/in-memory/sources.ts +7 -33
  763. package/src/storage/ontology/in-memory/state-reader.ts +245 -0
  764. package/src/storage/ontology/index.ts +19 -13
  765. package/src/storage/ontology/materializations.ts +45 -74
  766. package/src/storage/ontology/outbox.ts +4 -7
  767. package/src/storage/ontology/provider-header-validation.ts +0 -57
  768. package/src/storage/ontology/provider-work.ts +381 -90
  769. package/src/storage/ontology/provider.ts +74 -171
  770. package/src/storage/ontology/replacement-plans.ts +117 -0
  771. package/src/storage/ontology/sources.ts +0 -12
  772. package/src/storage/operation-scope.ts +33 -1
  773. package/src/storage/projection-runs/in-memory.ts +7 -1
  774. package/src/storage/projection-runs/types.ts +2 -0
  775. package/src/storage/types.ts +2 -0
  776. package/src/testing/ai-cost-storage-contract.ts +1 -0
  777. package/src/testing/ai-limit-storage-contract.ts +62 -0
  778. package/src/testing/ai-usage-storage-contract.ts +31 -0
  779. package/src/testing/file-download-grant-storage-contract.ts +139 -0
  780. package/src/testing/index.ts +4 -0
  781. package/src/testing/lake-storage-contract.ts +87 -1
  782. package/src/testing/materializer-storage-contract.ts +1008 -1
  783. package/src/testing/object-read-scope-contract.ts +1 -0
  784. package/src/testing/ontology-contract-fixture.ts +11 -87
  785. package/src/testing/ontology-storage-contract.ts +70 -39
  786. package/src/testing/projection-run-storage-contract.ts +14 -0
  787. package/src/testing/queues-contract.ts +59 -0
  788. package/src/workers/queue-worker.ts +19 -16
  789. package/src/workflows/builders.ts +24 -1
  790. package/src/workflows/request.ts +3 -0
  791. package/src/workflows/types.ts +6 -3
  792. package/src/workflows/validation.ts +32 -4
  793. package/dist/chunk-3q7z9hd4.js.map +0 -46
  794. package/dist/chunk-667x4drs.js.map +0 -12
  795. package/dist/chunk-69266efg.js.map +0 -12
  796. package/dist/chunk-6z1q7j19.js.map +0 -62
  797. package/dist/chunk-7ytf06d3.js +0 -113
  798. package/dist/chunk-7ytf06d3.js.map +0 -10
  799. package/dist/chunk-8x74221e.js.map +0 -20
  800. package/dist/chunk-91kcnbf0.js.map +0 -10
  801. package/dist/chunk-98cw09sw.js.map +0 -10
  802. package/dist/chunk-9vx5e9g1.js.map +0 -11
  803. package/dist/chunk-a0073121.js.map +0 -12
  804. package/dist/chunk-a7ne02hk.js.map +0 -15
  805. package/dist/chunk-cd234ba4.js.map +0 -14
  806. package/dist/chunk-chdg6eqq.js.map +0 -10
  807. package/dist/chunk-dmn70ztd.js.map +0 -11
  808. package/dist/chunk-f72rbvsb.js.map +0 -19
  809. package/dist/chunk-g4rbm4a6.js.map +0 -15
  810. package/dist/chunk-h044jb97.js.map +0 -15
  811. package/dist/chunk-h3v76ams.js.map +0 -11
  812. package/dist/chunk-h4138ww2.js.map +0 -50
  813. package/dist/chunk-hgqpcmyr.js.map +0 -12
  814. package/dist/chunk-jgwb25gc.js.map +0 -12
  815. package/dist/chunk-k4kkp58d.js.map +0 -11
  816. package/dist/chunk-kttr5ftm.js.map +0 -12
  817. package/dist/chunk-kvysp909.js.map +0 -17
  818. package/dist/chunk-mdnw7nj8.js.map +0 -15
  819. package/dist/chunk-s3csryxe.js.map +0 -11
  820. package/dist/chunk-tnvafr7g.js.map +0 -19
  821. package/dist/chunk-vjqt7q3a.js.map +0 -36
  822. package/dist/chunk-xnx96gfy.js.map +0 -15
  823. package/dist/chunk-z5rnrmz1.js.map +0 -11
  824. package/dist/chunk-zvmr2hqk.js.map +0 -12
  825. package/dist/materializer/execution/plan-stream.d.ts +0 -8
  826. package/dist/materializer/execution/plan-stream.d.ts.map +0 -1
  827. package/src/materializer/execution/plan-stream.ts +0 -121
  828. /package/dist/{chunk-4gmng3vf.js.map → chunk-22v5bpz3.js.map} +0 -0
  829. /package/dist/{chunk-fj1dvp37.js.map → chunk-2vhg6ysa.js.map} +0 -0
  830. /package/dist/{chunk-gmdvns8f.js.map → chunk-48e3cn2d.js.map} +0 -0
  831. /package/dist/{chunk-cq44v1a6.js.map → chunk-7hpdd6r9.js.map} +0 -0
  832. /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
  833. /package/dist/{chunk-7g2gjvah.js.map → chunk-ex496vct.js.map} +0 -0
  834. /package/dist/{chunk-nvymebc1.js.map → chunk-f1zxad2t.js.map} +0 -0
  835. /package/dist/{chunk-b9y8hcm2.js.map → chunk-mfs23znk.js.map} +0 -0
  836. /package/dist/{chunk-h866d223.js.map → chunk-qkvz64nd.js.map} +0 -0
  837. /package/dist/{chunk-tkdbge6v.js.map → chunk-rt9p8m9t.js.map} +0 -0
  838. /package/dist/{chunk-sbcm1b92.js.map → chunk-v6xpd60t.js.map} +0 -0
  839. /package/dist/{chunk-nj0020ay.js.map → chunk-vgk3hknm.js.map} +0 -0
  840. /package/dist/{chunk-qnd7ehe5.js.map → chunk-vx2yp45y.js.map} +0 -0
  841. /package/dist/{chunk-nkbev3tr.js.map → chunk-yv9czyfr.js.map} +0 -0
  842. /package/dist/{chunk-cxj8y8t0.js.map → chunk-za5yd58j.js.map} +0 -0
  843. /package/dist/{chunk-zb47r1c8.js.map → chunk-zb77kjth.js.map} +0 -0
  844. /package/dist/{chunk-dp7yk20b.js.map → chunk-zxawp1n2.js.map} +0 -0
@@ -0,0 +1,19 @@
1
+ import { ModelProviderError } from "../errors"
2
+ import type { TranscriptionModelResponseMetadata } from "./types"
3
+
4
+ /** Retains billing metadata even when the provider returns an invalid transcript. */
5
+ export class TranscriptionModelResponseError extends ModelProviderError {
6
+ constructor(
7
+ message: string,
8
+ providerId: string,
9
+ modelId: string,
10
+ readonly metadata: TranscriptionModelResponseMetadata,
11
+ options?: ErrorOptions
12
+ ) {
13
+ super(message, providerId, modelId, {
14
+ ...options,
15
+ code: "invalid_transcription_response",
16
+ retryable: false,
17
+ })
18
+ }
19
+ }
@@ -0,0 +1,78 @@
1
+ import { createHash } from "node:crypto"
2
+ import type { BlobStorage, FileRef } from "../../blob-storage/types"
3
+ import { isFileRef } from "../../blob-storage/validation"
4
+
5
+ /** Snapshot caller-owned metadata before model resolution or storage introduces an await. */
6
+ export function prepareTranscriptionFile(input: FileRef): { audio: FileRef; mediaType: string } {
7
+ if (!isFileRef(input) || !Number.isSafeInteger(input.sizeBytes) || input.sizeBytes <= 0) {
8
+ throw new TypeError("[SixbModels] Transcription requires a nonempty FileRef.")
9
+ }
10
+
11
+ const audio = { ...input }
12
+ const mediaType = audio.mediaType?.split(";", 1)[0]?.trim().toLowerCase()
13
+ if (!mediaType || !/^audio\/[a-z0-9.+-]+$/.test(mediaType)) {
14
+ throw new TypeError("[SixbModels] Audio FileRef must declare an audio mediaType.")
15
+ }
16
+
17
+ return { audio, mediaType }
18
+ }
19
+
20
+ /** Read an already validated reference, bounded by its verified size and the model's limit. */
21
+ export async function readTranscriptionFile(
22
+ storage: BlobStorage,
23
+ file: FileRef,
24
+ signal: AbortSignal
25
+ ): Promise<Uint8Array> {
26
+ const info = await storage.stat(file.blobId)
27
+ signal.throwIfAborted()
28
+ if (
29
+ !info ||
30
+ info.blobId !== file.blobId ||
31
+ info.digest !== file.digest ||
32
+ info.sizeBytes !== file.sizeBytes
33
+ ) {
34
+ throw new Error("[SixbModels] Audio reference does not match the stored file.")
35
+ }
36
+
37
+ const stream = await storage.open(file.blobId)
38
+ const reader = stream.getReader()
39
+ const cancel = () => {
40
+ void reader.cancel(signal.reason).catch(() => undefined)
41
+ }
42
+ signal.addEventListener("abort", cancel, { once: true })
43
+
44
+ let complete = false
45
+ try {
46
+ signal.throwIfAborted()
47
+
48
+ const bytes = new Uint8Array(file.sizeBytes)
49
+ const hash = createHash("sha256")
50
+ let offset = 0
51
+
52
+ while (true) {
53
+ const { value, done } = await reader.read()
54
+ signal.throwIfAborted()
55
+ if (done) break
56
+ if (!(value instanceof Uint8Array) || value.byteLength > bytes.byteLength - offset) {
57
+ throw new Error("[SixbModels] Audio stream exceeds its declared size.")
58
+ }
59
+
60
+ bytes.set(value, offset)
61
+ hash.update(value)
62
+ offset += value.byteLength
63
+ }
64
+
65
+ if (offset !== file.sizeBytes || `sha256:${hash.digest("hex")}` !== file.digest) {
66
+ throw new Error("[SixbModels] Audio stream does not match its content-addressed reference.")
67
+ }
68
+
69
+ complete = true
70
+ return bytes
71
+ } finally {
72
+ signal.removeEventListener("abort", cancel)
73
+ if (!complete) {
74
+ void reader.cancel().catch(() => undefined)
75
+ }
76
+ reader.releaseLock()
77
+ }
78
+ }
@@ -0,0 +1,182 @@
1
+ import { randomUUID } from "node:crypto"
2
+ import { assertProviderAccess } from "../../authorization"
3
+ import type { BlobStorage } from "../../blob-storage/types"
4
+ import type { ExecutionContext } from "../../execution"
5
+ import type { SixbRuntimeContext } from "../../runtime/types"
6
+ import type { ModelCatalog } from "../catalog"
7
+ import type { ModelCallEndEvent } from "../events"
8
+ import type { AiModelCallRecorder } from "../execution/model-call-recorder"
9
+ import type { ModelExecutionSession } from "../execution/session"
10
+ import { estimateModelCall, type ModelMoney } from "../pricing"
11
+ import { assertTranscriptionModel } from "./catalog"
12
+ import { TranscriptionModelResponseError } from "./errors"
13
+ import { prepareTranscriptionFile, readTranscriptionFile } from "./file"
14
+ import type {
15
+ AudioModelsRuntime,
16
+ TranscriptionModel,
17
+ TranscriptionModelResponseMetadata,
18
+ TranscriptionModelResult,
19
+ } from "./types"
20
+
21
+ export function createAudioRuntime(
22
+ runtime: SixbRuntimeContext,
23
+ execution: ExecutionContext,
24
+ catalog: ModelCatalog | undefined,
25
+ session: ModelExecutionSession,
26
+ blobs: BlobStorage | undefined
27
+ ): AudioModelsRuntime {
28
+ return {
29
+ async transcribe(input) {
30
+ assertProviderAccess(runtime, execution, "models.audio.transcribe")
31
+
32
+ const { audio, mediaType } = prepareTranscriptionFile(input.audio)
33
+ if (!blobs) {
34
+ throw new Error("[SixbModels] Transcription requires blob storage.")
35
+ }
36
+
37
+ const signal = session.signal(input.signal)
38
+ signal.throwIfAborted()
39
+
40
+ const binding = selectModel(catalog, input.model)
41
+ assertTranscriptionModel(binding)
42
+ assertFileSupport(binding, audio.sizeBytes, mediaType)
43
+
44
+ const accounting = await session.accounting()
45
+ accounting.assertHealthy()
46
+
47
+ const model = binding.resolve ? await binding.resolve() : binding
48
+ assertTranscriptionModel(model)
49
+ if (model.providerId !== binding.providerId || model.modelId !== binding.modelId) {
50
+ throw new TypeError(
51
+ "[SixbModels] Resolved transcription model identity does not match the selected model."
52
+ )
53
+ }
54
+ assertFileSupport(model, audio.sizeBytes, mediaType)
55
+
56
+ signal.throwIfAborted()
57
+ const bytes = await readTranscriptionFile(blobs, audio, signal)
58
+ accounting.assertHealthy()
59
+
60
+ const reservationCost = estimateReservationCost(model, bytes.byteLength, mediaType)
61
+ const callId = `call_${randomUUID()}`
62
+ await accounting.admitCall({
63
+ callId,
64
+ providerId: model.providerId,
65
+ modelId: model.modelId,
66
+ modelKind: "transcription",
67
+ inputTokens: { status: "unavailable", reason: "nonTextInput" },
68
+ outputTokenAllowance: 0,
69
+ reservationCost,
70
+ })
71
+
72
+ let result: TranscriptionModelResult
73
+ try {
74
+ signal.throwIfAborted()
75
+ result = await model.transcribe({ audio: bytes, mediaType, signal })
76
+ } catch (error) {
77
+ await recordTranscription(
78
+ accounting,
79
+ model,
80
+ callId,
81
+ error instanceof TranscriptionModelResponseError ? error.metadata : {}
82
+ )
83
+ throw error
84
+ }
85
+
86
+ // A completed, billable reply must survive cancellation and transcript validation failures.
87
+ const event = await recordTranscription(accounting, model, callId, result ?? {})
88
+ signal.throwIfAborted()
89
+ if (typeof result?.output?.text !== "string") {
90
+ throw new TranscriptionModelResponseError(
91
+ "[SixbModels] Invalid transcription response.",
92
+ model.providerId,
93
+ model.modelId,
94
+ result ?? {}
95
+ )
96
+ }
97
+
98
+ return {
99
+ output: { text: result.output.text },
100
+ usage: event.usage,
101
+ cost: event.cost,
102
+ callId,
103
+ }
104
+ },
105
+ }
106
+ }
107
+
108
+ function selectModel(
109
+ catalog: ModelCatalog | undefined,
110
+ requested: TranscriptionModel | undefined
111
+ ): TranscriptionModel {
112
+ if (!catalog && requested) return requested
113
+
114
+ const transcribers = catalog?.audio?.transcription
115
+ const selected = requested
116
+ ? transcribers?.getByRef({ provider: requested.providerId, modelId: requested.modelId })?.model
117
+ : transcribers?.default.model
118
+
119
+ if (!selected) {
120
+ throw new Error(
121
+ "[SixbModels] Configure the selected model in models.audio.transcription, or supply a model when no catalog is configured."
122
+ )
123
+ }
124
+
125
+ return selected
126
+ }
127
+
128
+ function assertFileSupport(model: TranscriptionModel, sizeBytes: number, mediaType: string): void {
129
+ if (sizeBytes > model.definition.maxInputBytes) {
130
+ throw new RangeError(
131
+ `[SixbModels] Audio exceeds the model's ${model.definition.maxInputBytes}-byte input limit.`
132
+ )
133
+ }
134
+ if (model.definition.mediaTypes && !model.definition.mediaTypes.includes(mediaType)) {
135
+ throw new TypeError(
136
+ `[SixbModels] Audio media type '${mediaType}' is not supported by the selected model.`
137
+ )
138
+ }
139
+ }
140
+
141
+ function estimateReservationCost(
142
+ model: TranscriptionModel,
143
+ sizeBytes: number,
144
+ mediaType: string
145
+ ): ModelMoney | undefined {
146
+ try {
147
+ return model.costEstimator?.estimateReservation?.({ sizeBytes, mediaType })
148
+ } catch {
149
+ // Optional pricing cannot bypass an enforced budget: admission fails closed without it.
150
+ return undefined
151
+ }
152
+ }
153
+
154
+ async function recordTranscription(
155
+ accounting: AiModelCallRecorder,
156
+ model: TranscriptionModel,
157
+ callId: string,
158
+ metadata: TranscriptionModelResponseMetadata
159
+ ): Promise<ModelCallEndEvent> {
160
+ const usage = metadata.usage ?? {}
161
+ const estimate = estimateModelCall(model, {
162
+ usage,
163
+ route: metadata.route,
164
+ responseModelId: metadata.responseModelId,
165
+ })
166
+ const event: ModelCallEndEvent = {
167
+ callId,
168
+ modelKind: "transcription",
169
+ providerId: model.providerId,
170
+ modelId: model.modelId,
171
+ responseId: metadata.providerIds?.responseId ?? callId,
172
+ providerIds: metadata.providerIds,
173
+ responseModelId: metadata.responseModelId,
174
+ usage,
175
+ cost: metadata.reportedCost ? { status: "reported", ...metadata.reportedCost } : estimate,
176
+ ...(metadata.reportedCost ? { estimate } : {}),
177
+ route: metadata.route,
178
+ }
179
+
180
+ await accounting.onModelCallEnd(event)
181
+ return event
182
+ }
@@ -0,0 +1,69 @@
1
+ import type { FileRef } from "../../blob-storage/types"
2
+ import type { ModelDefinition } from "../definitions"
3
+ import type { ModelProviderIds, ModelRoute, ModelUsage } from "../events"
4
+ import type { ModelCallCost, ModelCostEstimator, ModelMoney, ModelReportedCost } from "../pricing"
5
+
6
+ export interface TranscriptionModelDefinition extends ModelDefinition {
7
+ readonly kind: "transcription"
8
+ /** Bounds memory consumption before a file is opened. Providers may impose lower limits. */
9
+ readonly maxInputBytes: number
10
+ /** Omitted when the provider does not publish a reliable format list. */
11
+ readonly mediaTypes?: readonly string[]
12
+ }
13
+
14
+ export interface TranscriptionModelRequest {
15
+ readonly audio: Uint8Array
16
+ readonly mediaType: string
17
+ readonly signal?: AbortSignal
18
+ }
19
+
20
+ export interface TranscriptionOutput {
21
+ readonly text: string
22
+ }
23
+
24
+ export interface TranscriptionModelResponseMetadata {
25
+ readonly usage?: ModelUsage
26
+ readonly providerIds?: ModelProviderIds
27
+ readonly responseModelId?: string
28
+ readonly reportedCost?: ModelReportedCost
29
+ readonly route?: ModelRoute
30
+ }
31
+
32
+ export interface TranscriptionModelResult extends TranscriptionModelResponseMetadata {
33
+ readonly output: TranscriptionOutput
34
+ }
35
+
36
+ export interface TranscriptionCostEstimator extends Pick<ModelCostEstimator, "estimate"> {
37
+ /** Return undefined if the request cannot be priced safely before inference. */
38
+ estimateReservation?(input: {
39
+ readonly sizeBytes: number
40
+ readonly mediaType: string
41
+ }): ModelMoney | undefined
42
+ }
43
+
44
+ /** Provider binding. Resolving it may fetch metadata, but must never perform inference. */
45
+ export interface TranscriptionModel {
46
+ readonly providerId: string
47
+ readonly modelId: string
48
+ readonly definition: TranscriptionModelDefinition
49
+ readonly costEstimator?: TranscriptionCostEstimator
50
+ resolve?(): Promise<TranscriptionModel>
51
+ transcribe(request: TranscriptionModelRequest): Promise<TranscriptionModelResult>
52
+ }
53
+
54
+ export interface AudioTranscribeInput {
55
+ readonly audio: FileRef
56
+ readonly model?: TranscriptionModel
57
+ readonly signal?: AbortSignal
58
+ }
59
+
60
+ export interface AudioTranscribeResult {
61
+ readonly output: TranscriptionOutput
62
+ readonly usage: ModelUsage
63
+ readonly cost: ModelCallCost
64
+ readonly callId: string
65
+ }
66
+
67
+ export interface AudioModelsRuntime {
68
+ transcribe(input: AudioTranscribeInput): Promise<AudioTranscribeResult>
69
+ }
@@ -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"
@@ -8,7 +13,12 @@ import {
8
13
  type ModelDefinition,
9
14
  } from "./definitions"
10
15
  import { assertEmbeddingModel, type EmbeddingModel } from "./embedding-model"
11
- import type { LanguageModel } from "./language-model"
16
+ import {
17
+ type LanguageModel,
18
+ MODEL_REASONING_LEVELS,
19
+ modelReasoningSupportIssue,
20
+ } from "./language-model"
21
+ import { assertRerankingModel, type RerankingModel } from "./reranking-model"
12
22
 
13
23
  /** Stable identity of a configured provider binding. */
14
24
  export interface ModelRef {
@@ -27,6 +37,15 @@ export interface EmbeddingModelCatalog {
27
37
  getByRef(ref: ModelRef): EmbeddingModelEntry | null
28
38
  }
29
39
 
40
+ export interface RerankingModelEntry extends ModelRef {
41
+ readonly model: RerankingModel
42
+ }
43
+
44
+ export interface RerankingModelCatalog {
45
+ list(): readonly RerankingModelEntry[]
46
+ getByRef(ref: ModelRef): RerankingModelEntry | null
47
+ }
48
+
30
49
  /** The configured language models, with the project default. */
31
50
  export interface LanguageModelCatalog {
32
51
  readonly default: LanguageModelEntry
@@ -47,17 +66,22 @@ export interface LanguageModelEntry extends LanguageModelRef {
47
66
 
48
67
  /** Models a project allows Sixb to use, organized by technical model kind. */
49
68
  export interface ModelCatalog {
69
+ readonly audio?: AudioModelCatalog
50
70
  readonly language?: LanguageModelCatalog
51
71
  readonly decision?: DecisionModelCatalog
52
72
  readonly embedding: EmbeddingModelCatalog
73
+ readonly reranking?: RerankingModelCatalog
53
74
  }
54
75
 
55
76
  export interface ModelCatalogInput {
77
+ readonly audio?: AudioModelCatalogInput
56
78
  /** Ordered; the first entry is the project default. */
57
79
  readonly language?: readonly LanguageModel[]
58
80
  /** Ordered; the first entry is the project default decision model. */
59
81
  readonly decision?: readonly DecisionModel[]
60
82
  readonly embedding?: readonly EmbeddingModel[]
83
+ /** Available rerankers; no default model and no automatic activation. */
84
+ readonly reranking?: readonly RerankingModel[]
61
85
  }
62
86
 
63
87
  // Only statically required inputs make their corresponding catalogs required.
@@ -66,7 +90,14 @@ type ConfiguredModelKinds<TInput> = {
66
90
  }[keyof ModelCatalog]
67
91
 
68
92
  export type ModelCatalogFor<TInput extends ModelCatalogInput> = ModelCatalog &
69
- Required<Pick<ModelCatalog, ConfiguredModelKinds<TInput>>>
93
+ Required<Pick<ModelCatalog, ConfiguredModelKinds<TInput>>> &
94
+ ([TInput] extends [{ readonly audio: { readonly transcription: readonly unknown[] } }]
95
+ ? {
96
+ readonly audio: AudioModelCatalog & {
97
+ readonly transcription: NonNullable<AudioModelCatalog["transcription"]>
98
+ }
99
+ }
100
+ : unknown)
70
101
 
71
102
  /** Build an immutable catalog while preserving each family's default and empty-list rules. */
72
103
  export function createModelCatalog<TInput extends ModelCatalogInput>(
@@ -80,12 +111,32 @@ export function createModelCatalog(input: ModelCatalogInput): ModelCatalog {
80
111
  const language = createLanguageCatalog(input.language)
81
112
  const embedding = createEmbeddingCatalog(input.embedding)
82
113
  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.")
114
+ const audio = createAudioCatalog(input.audio)
115
+ const reranking = createRerankingCatalog(input.reranking)
116
+
117
+ if (
118
+ !language &&
119
+ !decision &&
120
+ !audio &&
121
+ embedding.list().length === 0 &&
122
+ !reranking?.list().length
123
+ ) {
124
+ throw new RuntimeError(
125
+ "[Sixb] Configure at least one language, embedding, decision, audio or reranking model."
126
+ )
86
127
  }
87
128
 
88
- return Object.freeze({ language, embedding, decision })
129
+ return Object.freeze({ language, embedding, decision, audio, reranking })
130
+ }
131
+
132
+ function createRerankingCatalog(
133
+ models: readonly RerankingModel[] | undefined
134
+ ): RerankingModelCatalog | undefined {
135
+ if (models === undefined) return undefined
136
+ if (!Array.isArray(models)) {
137
+ throw new RuntimeError("[Sixb] models.reranking must be an array of reranking models.")
138
+ }
139
+ return indexModelBindings(models, "reranking", assertRerankingModel)
89
140
  }
90
141
 
91
142
  function createLanguageCatalog(
@@ -96,7 +147,10 @@ function createLanguageCatalog(
96
147
  throw new RuntimeError("[Sixb] 'models.language' must be an array of Sixb language models.")
97
148
  }
98
149
 
99
- const index = indexModelBindings(models, "language", assertLanguageModel)
150
+ const index = indexModelBindings(models, "language", (model, position) => {
151
+ assertLanguageModel(model, position)
152
+ assertDefaultReasoning(model, position)
153
+ })
100
154
  const [defaultEntry] = index.list()
101
155
  if (!defaultEntry) {
102
156
  throw new RuntimeError(
@@ -117,6 +171,23 @@ function createEmbeddingCatalog(
117
171
  return indexModelBindings(models ?? [], "embedding", assertEmbeddingModel)
118
172
  }
119
173
 
174
+ // Capabilities known without catalog I/O. Unknown support is accepted: providers fall back to their
175
+ // default when a resolved model turns out not to support the level.
176
+ function assertDefaultReasoning(model: LanguageModel, index: number): void {
177
+ const reasoning: unknown = model.defaultReasoning
178
+ if (reasoning === undefined) return
179
+ if (!(MODEL_REASONING_LEVELS as readonly unknown[]).includes(reasoning)) {
180
+ throw invalidLanguageModel(
181
+ index,
182
+ `expected 'defaultReasoning' to be one of: ${MODEL_REASONING_LEVELS.join(", ")}`
183
+ )
184
+ }
185
+ const issue = modelReasoningSupportIssue(model.definition.capabilities.reasoning, reasoning)
186
+ if (issue !== undefined) {
187
+ throw invalidLanguageModel(index, `default reasoning '${reasoning}' cannot be used: ${issue}`)
188
+ }
189
+ }
190
+
120
191
  function assertLanguageModel(model: unknown, index: number): asserts model is LanguageModel {
121
192
  if ((typeof model !== "object" && typeof model !== "function") || model === null) {
122
193
  throw invalidLanguageModel(index, "expected a Sixb LanguageModel instance")
@@ -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 {
@@ -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
@@ -43,9 +43,29 @@ unknown input usage and unresolved capacity. Inference is never retried here.
43
43
  replays accounting only, never inference; see the
44
44
  [worker recovery contract](../../../../agent-worker/docs/usage-accounting.md).
45
45
 
46
- Direct provider calls bypass this session. Webhook handlers have no bound model execution attempt;
47
- they must dispatch an action for accounted calls. A process crash before accounting is captured
48
- can still leave provider billing outside the ledger.
46
+ An Agent run binds its own recorder to its SDK, so calls from its tools share the run's admission,
47
+ failure state and cancellation. Direct provider calls bypass this session. Webhook handlers have no
48
+ bound model execution attempt; they must dispatch an action for accounted calls. A process crash
49
+ before accounting is captured can still leave provider billing outside the ledger.
50
+
51
+ ## Reranking flow
52
+
53
+ `reranking.ts` binds the registered catalog to the same session. Object queries resolve only that
54
+ catalog, after semantic authorization and before query embedding. The query executor retrieves
55
+ authorized vector candidates first and sends only profile source text; inference holds no storage
56
+ transaction. Outer limits and property selection apply after ranking.
57
+
58
+ Admission estimates the UTF-8 bytes of each query/document pair divided by four, rounded up, with
59
+ zero output allowance. Actual provider meters are preserved. This is a heuristic, not a tokenizer or provider context guarantee. Calls have
60
+ the shared 30-second cancellation bound, with no inference retry. Accounting precedes cancellation
61
+ and ranking validation. A complete permutation with finite scores is required; ties preserve the
62
+ candidate order. `RerankingModelResponseError` carries metadata from malformed billable responses.
63
+
64
+ Provider charges remain distinct from token usage: absent tokens stay unknown. Token limits
65
+ neither admit nor count reranking or transcription calls (`aiLimitMeterApplies` in the limit
66
+ storage helpers), so their unmetered records cannot make a token meter unavailable. Reported
67
+ costs reconcile monetary reservations; missing tariffs fail admission under cost limits. Recovery
68
+ remains the existing accounting-only replay.
49
69
 
50
70
  ## Decision flow
51
71
 
@@ -1,10 +1,16 @@
1
1
  import type { ModelsRuntime } from "../generation-types"
2
+ import type { AiModelCallRecorder } from "./model-call-recorder"
2
3
 
3
4
  export interface ModelExecutionAttempt {
4
5
  readonly attempt: number
5
6
  readonly signal: AbortSignal
6
7
  /** Internal durable fence around admission; it must invoke admit exactly once to proceed. */
7
8
  readonly embeddingAdmission?: (admit: () => Promise<void>) => Promise<void>
9
+ /**
10
+ * Accounting the execution attempt already owns, such as an Agent run's. Calls then share its
11
+ * admission and failure state instead of opening a second recorder for the same attempt.
12
+ */
13
+ readonly accounting?: AiModelCallRecorder
8
14
  }
9
15
 
10
16
  const bindings = new WeakMap<ModelsRuntime, (input: ModelExecutionAttempt) => void>()
@@ -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