@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
@@ -1,10 +1,17 @@
1
1
  import { type ResolvedRole, resolveRoleGrants } from "../authorization"
2
2
  import { APPLICATION_IDS } from "./applications"
3
- import type { GroupDefinition, MembershipPolicyDefinition, RoleDefinition } from "./types"
3
+ import type {
4
+ GroupDefinition,
5
+ MarkingDefinition,
6
+ MembershipPolicyDefinition,
7
+ RoleDefinition,
8
+ } from "./types"
4
9
  import { validateSecurityDefinitionsAtStartup } from "./validation"
5
10
 
6
11
  /** Read-only access to validated security definitions and resolved role grants. */
7
12
  export interface SecurityDefinitionCatalog {
13
+ listMarkings(): readonly MarkingDefinition[]
14
+ getMarkingById(markingId: string): MarkingDefinition | null
8
15
  listGroups(): readonly GroupDefinition[]
9
16
  getGroupById(groupId: string): GroupDefinition | null
10
17
  listRoles(): readonly RoleDefinition[]
@@ -15,6 +22,7 @@ export interface SecurityDefinitionCatalog {
15
22
  }
16
23
 
17
24
  export interface SecurityRegistryOptions {
25
+ readonly markings?: readonly MarkingDefinition[]
18
26
  readonly groups?: readonly GroupDefinition[]
19
27
  readonly roles?: readonly RoleDefinition[]
20
28
  readonly membershipPolicies?: readonly MembershipPolicyDefinition[]
@@ -32,6 +40,7 @@ export interface SecurityRegistryOptions {
32
40
  }
33
41
 
34
42
  export class SecurityRegistry implements SecurityDefinitionCatalog {
43
+ private readonly markingsById: ReadonlyMap<string, MarkingDefinition>
35
44
  private readonly groupsById: ReadonlyMap<string, GroupDefinition>
36
45
  private readonly rolesById: ReadonlyMap<string, RoleDefinition>
37
46
  private readonly membershipPoliciesById: ReadonlyMap<string, MembershipPolicyDefinition>
@@ -39,6 +48,7 @@ export class SecurityRegistry implements SecurityDefinitionCatalog {
39
48
 
40
49
  constructor(input: SecurityRegistryOptions) {
41
50
  const definitions = validateSecurityDefinitionsAtStartup({
51
+ markings: input.markings ?? [],
42
52
  groups: input.groups ?? [],
43
53
  roles: input.roles ?? [],
44
54
  membershipPolicies: input.membershipPolicies ?? [],
@@ -71,6 +81,7 @@ export class SecurityRegistry implements SecurityDefinitionCatalog {
71
81
  getSubTypes: input.getSubTypes ?? (() => []),
72
82
  }
73
83
 
84
+ this.markingsById = definitions.markingsById
74
85
  this.groupsById = definitions.groupsById
75
86
  this.rolesById = definitions.rolesById
76
87
  this.membershipPoliciesById = definitions.membershipPoliciesById
@@ -78,9 +89,18 @@ export class SecurityRegistry implements SecurityDefinitionCatalog {
78
89
  id: role.id,
79
90
  grantedToGroupIds: role.grantedToGroupIds,
80
91
  grants: resolveRoleGrants(role, universe),
92
+ clearances: new Set(role.clearances ?? []),
81
93
  }))
82
94
  }
83
95
 
96
+ listMarkings(): readonly MarkingDefinition[] {
97
+ return [...this.markingsById.values()]
98
+ }
99
+
100
+ getMarkingById(markingId: string): MarkingDefinition | null {
101
+ return this.markingsById.get(markingId) ?? null
102
+ }
103
+
84
104
  listGroups(): readonly GroupDefinition[] {
85
105
  return [...this.groupsById.values()]
86
106
  }
@@ -7,6 +7,28 @@ export interface GroupDefinition<TId extends string = string> {
7
7
  readonly description?: string
8
8
  }
9
9
 
10
+ /**
11
+ * A classification carried by sensitive properties and dataset columns.
12
+ *
13
+ * A principal reads a marked value only when one of its roles lists the marking in `clearances`.
14
+ * No grant bypasses a marking.
15
+ */
16
+ export interface MarkingDefinition<TId extends string = string> {
17
+ readonly kind: "marking"
18
+ readonly id: TId
19
+ readonly label?: string
20
+ readonly description?: string
21
+ }
22
+
23
+ /** Why a value was omitted from a read. */
24
+ export type RedactionReason = "missing_clearance"
25
+
26
+ /**
27
+ * Values omitted from a read, keyed by property id or column name. A redacted value is absent,
28
+ * never `null`.
29
+ */
30
+ export type Redactions = Readonly<Record<string, { readonly reason: RedactionReason }>>
31
+
10
32
  /**
11
33
  * A group named either by its definition or by its id.
12
34
  *
@@ -149,6 +171,8 @@ export interface RoleDefinition<TId extends string = string> {
149
171
  readonly description?: string
150
172
  readonly grantedToGroupIds: readonly string[]
151
173
  readonly grants: readonly GrantDefinition[]
174
+ /** Ids of the markings this role's members may read. Absent means none. */
175
+ readonly clearances?: readonly string[]
152
176
  }
153
177
 
154
178
  export type MembershipOperation = "invite" | "assignGroups" | "suspend"
@@ -162,6 +186,8 @@ export interface MembershipPolicyDefinition<TId extends string = string> {
162
186
  }
163
187
 
164
188
  export interface RegisteredSecurityDefinitions {
189
+ readonly markings: readonly MarkingDefinition[]
190
+ readonly markingsById: ReadonlyMap<string, MarkingDefinition>
165
191
  readonly groups: readonly GroupDefinition[]
166
192
  readonly groupsById: ReadonlyMap<string, GroupDefinition>
167
193
  readonly roles: readonly RoleDefinition[]
@@ -5,6 +5,7 @@ import type {
5
5
  GrantCapability,
6
6
  GrantDefinition,
7
7
  GroupDefinition,
8
+ MarkingDefinition,
8
9
  MembershipPolicyDefinition,
9
10
  RegisteredSecurityDefinitions,
10
11
  RoleDefinition,
@@ -132,6 +133,32 @@ function assertNoDuplicateOperations(
132
133
  }
133
134
  }
134
135
 
136
+ export function assertMarkingDefinition(
137
+ value: unknown,
138
+ createError: CreateSecurityError = (message) => new SecurityValidationError(message)
139
+ ): asserts value is MarkingDefinition {
140
+ if (!isRecord(value)) {
141
+ throw createError("[Sixb] Marking definition must be an object.")
142
+ }
143
+
144
+ if (value.kind !== "marking") {
145
+ throw createError("[Sixb] Marking definition kind must be 'marking'.")
146
+ }
147
+
148
+ assertNonEmptyString(value.id, "Marking id", createError)
149
+ assertOptionalString(value.label, `Marking '${value.id}' label`, createError)
150
+ assertOptionalString(value.description, `Marking '${value.id}' description`, createError)
151
+ }
152
+
153
+ export function isMarkingDefinition(value: unknown): value is MarkingDefinition {
154
+ try {
155
+ assertMarkingDefinition(value, (message) => new Error(message))
156
+ return true
157
+ } catch {
158
+ return false
159
+ }
160
+ }
161
+
135
162
  export function assertGroupDefinition(
136
163
  value: unknown,
137
164
  createError: CreateSecurityError = (message) => new SecurityValidationError(message)
@@ -285,6 +312,10 @@ export function assertRoleDefinition(
285
312
  for (const grant of value.grants) {
286
313
  assertGrantDefinition(grant, `Role '${value.id}' grants`, createError)
287
314
  }
315
+
316
+ if (value.clearances !== undefined) {
317
+ assertStringArray(value.clearances, `Role '${value.id}' clearances`, createError)
318
+ }
288
319
  }
289
320
 
290
321
  export function isRoleDefinition(value: unknown): value is RoleDefinition {
@@ -297,6 +328,7 @@ export function isRoleDefinition(value: unknown): value is RoleDefinition {
297
328
  }
298
329
 
299
330
  export function validateSecurityDefinitionsAtStartup(input: {
331
+ readonly markings?: readonly MarkingDefinition[]
300
332
  readonly groups: readonly GroupDefinition[]
301
333
  readonly membershipPolicies: readonly MembershipPolicyDefinition[]
302
334
  readonly roles?: readonly RoleDefinition[]
@@ -325,10 +357,21 @@ export function validateSecurityDefinitionsAtStartup(input: {
325
357
  /** Registered Share ids — when provided, share grants must reference them. */
326
358
  readonly shareIds?: ReadonlySet<string>
327
359
  }): RegisteredSecurityDefinitions {
360
+ const markingsById = new Map<string, MarkingDefinition>()
328
361
  const groupsById = new Map<string, GroupDefinition>()
329
362
  const rolesById = new Map<string, RoleDefinition>()
330
363
  const membershipPoliciesById = new Map<string, MembershipPolicyDefinition>()
331
364
 
365
+ for (const marking of input.markings ?? []) {
366
+ assertMarkingDefinition(marking)
367
+
368
+ if (markingsById.has(marking.id)) {
369
+ throw new SecurityValidationError(`[Sixb] Duplicate marking id: ${marking.id}`)
370
+ }
371
+
372
+ markingsById.set(marking.id, marking)
373
+ }
374
+
332
375
  for (const group of input.groups) {
333
376
  assertGroupDefinition(group)
334
377
 
@@ -352,11 +395,23 @@ export function validateSecurityDefinitionsAtStartup(input: {
352
395
  )
353
396
  }
354
397
 
355
- if (role.grants.length === 0) {
356
- throw new SecurityValidationError(`[Sixb] Role '${role.id}' must declare at least one grant.`)
398
+ const clearances = role.clearances ?? []
399
+ if (role.grants.length === 0 && clearances.length === 0) {
400
+ throw new SecurityValidationError(
401
+ `[Sixb] Role '${role.id}' must declare at least one grant or clearance.`
402
+ )
357
403
  }
358
404
 
359
405
  assertNoDuplicateIds(role.grantedToGroupIds, `Role '${role.id}' grantedTo`)
406
+ assertNoDuplicateIds(clearances, `Role '${role.id}' clearances`)
407
+
408
+ for (const markingId of clearances) {
409
+ if (!markingsById.has(markingId)) {
410
+ throw new SecurityValidationError(
411
+ `[Sixb] Role '${role.id}' clearances reference unknown marking '${markingId}'. Add it to 'security/markings/' or pass it to createSixb({ markings }).`
412
+ )
413
+ }
414
+ }
360
415
 
361
416
  for (const groupId of role.grantedToGroupIds) {
362
417
  if (!groupsById.has(groupId)) {
@@ -416,6 +471,8 @@ export function validateSecurityDefinitionsAtStartup(input: {
416
471
  }
417
472
 
418
473
  return {
474
+ markings: [...markingsById.values()],
475
+ markingsById,
419
476
  groups: [...groupsById.values()],
420
477
  groupsById,
421
478
  roles: [...rolesById.values()],
@@ -150,6 +150,17 @@ export function assertConversationAgentRunSpec(
150
150
  `[${prefix}] Conversational Agent reasoning must be one of: ${AGENT_REASONING_LEVELS.join(", ")}, or a nonnegative budgetTokens object.`
151
151
  )
152
152
  }
153
+ for (const [name, value] of [
154
+ ["timeZone", spec.timeZone],
155
+ ["locale", spec.locale],
156
+ ] as const) {
157
+ if (value !== undefined && (typeof value !== "string" || value.trim().length === 0)) {
158
+ throw new AgentStorageError(
159
+ "invalid_input",
160
+ `[${prefix}] Conversational Agent run '${name}' must be a non-empty string.`
161
+ )
162
+ }
163
+ }
153
164
  }
154
165
 
155
166
  function isRecord(value: unknown): value is Readonly<Record<string, unknown>> {
@@ -1,5 +1,5 @@
1
1
  import type { AgentMessage, AgentMessagePart, AgentMessageRole } from "../../agents/message"
2
- import type { AgentReasoningLevel } from "../../agents/types"
2
+ import type { AgentReasoning } from "../../agents/types"
3
3
  import type { Principal } from "../../auth"
4
4
  import type { FileRef } from "../../blob-storage"
5
5
  import type { SixbErrorCode, SixbFailure } from "../../errors/types"
@@ -123,8 +123,9 @@ export type AgentRunFailureCode = (typeof AGENT_RUN_FAILURE_CODES)[number]
123
123
 
124
124
  /**
125
125
  * Why a run ended — Sixb's provider-independent vocabulary. It includes model-loop reasons plus
126
- * platform-level endings such as `timeout`, so reads remain typed and exhaustive. `other` and
127
- * `unknown` preserve terminal state when a provider adds a new reason.
126
+ * platform-level endings such as `timeout`, or `interrupted` for a turn whose worker died before
127
+ * finishing it, so reads remain typed and exhaustive. `other` and `unknown` preserve terminal state
128
+ * when a provider adds a new reason.
128
129
  */
129
130
  export const AGENT_RUN_FINISH_REASONS = [
130
131
  "stop",
@@ -132,6 +133,7 @@ export const AGENT_RUN_FINISH_REASONS = [
132
133
  "content-filter",
133
134
  "tool-calls",
134
135
  "timeout",
136
+ "interrupted",
135
137
  "error",
136
138
  "other",
137
139
  "unknown",
@@ -162,6 +164,7 @@ export const AGENT_RUN_DIAGNOSTIC_CODES = [
162
164
  "output_collection_failed",
163
165
  "output_file_changed",
164
166
  "output_storage_failed",
167
+ "step_limit_reached",
165
168
  ] as const
166
169
 
167
170
  /**
@@ -178,7 +181,8 @@ export type AgentRunDiagnosticSeverity = "warning" | "error"
178
181
  export interface AgentRunDiagnostic {
179
182
  readonly code: AgentRunDiagnosticCode
180
183
  readonly severity: AgentRunDiagnosticSeverity
181
- readonly scope: "output"
184
+ /** `output` for published files, `run` for the turn as a whole. */
185
+ readonly scope: "output" | "run"
182
186
  /** Relative path inside the run's published output directory, when one file is involved. */
183
187
  readonly path?: string
184
188
  /** Sanitized, stable copy suitable for display to an end user. */
@@ -224,16 +228,20 @@ export interface ConversationAgentRunRecord extends AgentRunRecordBase {
224
228
  readonly spec?: ConversationAgentRunSpec
225
229
  }
226
230
 
227
- /** Immutable, serialisable model selection for one conversational turn. */
231
+ /** Immutable, serialisable model selection and requester settings for one conversational turn. */
228
232
  export interface ConversationAgentRunSpec {
229
233
  readonly model: LanguageModelRef
230
- readonly reasoning?: AgentReasoningLevel
234
+ readonly reasoning?: AgentReasoning
235
+ /** Canonical IANA time zone of the requester. Absent uses the project time zone. */
236
+ readonly timeZone?: string
237
+ /** Canonical BCP 47 language of the requester. Absent uses the project locale. */
238
+ readonly locale?: string
231
239
  }
232
240
 
233
241
  /** Immutable, serialisable child configuration captured before dispatch. */
234
242
  export interface SubagentRunSpec {
235
243
  readonly model: LanguageModelRef
236
- readonly reasoning?: AgentReasoningLevel
244
+ readonly reasoning?: AgentReasoning
237
245
  /** Focused task supplied by the parent Agent. */
238
246
  readonly task: string
239
247
  /** Project tools available when the child was admitted. Runtime tools are injected separately. */
@@ -68,6 +68,7 @@ export interface AiAccountingAggregateFragment {
68
68
  readonly cacheWriteInputTokens: AiAccountingUsageMeterFragment
69
69
  readonly textOutputTokens: AiAccountingUsageMeterFragment
70
70
  readonly reasoningOutputTokens: AiAccountingUsageMeterFragment
71
+ readonly audioDurationMs: AiAccountingUsageMeterFragment
71
72
  }
72
73
  readonly costs: {
73
74
  readonly amount?: AiMoney
@@ -406,6 +407,7 @@ const AGGREGATE_USAGE_FIELDS = [
406
407
  "cacheWriteInputTokens",
407
408
  "textOutputTokens",
408
409
  "reasoningOutputTokens",
410
+ "audioDurationMs",
409
411
  ] as const
410
412
 
411
413
  type AggregateUsageField = (typeof AGGREGATE_USAGE_FIELDS)[number]
@@ -110,7 +110,8 @@ function billableMeter(value: unknown): AiBillableMeter {
110
110
  value !== "tokens.input.cacheWrite1h" &&
111
111
  value !== "tokens.output.total" &&
112
112
  value !== "tokens.output.text" &&
113
- value !== "tokens.output.reasoning"
113
+ value !== "tokens.output.reasoning" &&
114
+ value !== "audio.input.milliseconds"
114
115
  ) {
115
116
  throw invalidDetails()
116
117
  }
@@ -6,6 +6,7 @@ import type {
6
6
 
7
7
  /** Token meters supported by deterministic local rate cards. */
8
8
  export type AiBillableMeter =
9
+ | "audio.input.milliseconds"
9
10
  | "tokens.input.total"
10
11
  | "tokens.input.uncached"
11
12
  | "tokens.input.cacheRead"
@@ -15,8 +15,8 @@ import type {
15
15
  } from "./types"
16
16
 
17
17
  const SIGNED_INT64_MAX = 9_223_372_036_854_775_807n
18
- const TOKENS_PER_MILLION = 1_000_000n
19
- const HALF_MILLION = TOKENS_PER_MILLION / 2n
18
+ const UNITS_PER_MILLION = 1_000_000n
19
+ const HALF_MILLION = UNITS_PER_MILLION / 2n
20
20
  const MAX_NUMERIC_TEXT_LENGTH = 128
21
21
  const METER_ORDER: Readonly<Record<AiBillableMeter, number>> = {
22
22
  "tokens.input.total": 0,
@@ -28,6 +28,7 @@ const METER_ORDER: Readonly<Record<AiBillableMeter, number>> = {
28
28
  "tokens.output.total": 6,
29
29
  "tokens.output.text": 7,
30
30
  "tokens.output.reasoning": 8,
31
+ "audio.input.milliseconds": 9,
31
32
  }
32
33
  const METERS = new Set(Object.keys(METER_ORDER) as AiBillableMeter[])
33
34
  const UNPRICEABLE_REASONS = new Set<AiUnpriceableReason>([
@@ -120,11 +121,7 @@ export function aiModelCallCostMatchesUsage(
120
121
  const components = new Map(
121
122
  record.estimate.components.map((component) => [component.meter, component])
122
123
  )
123
- if (
124
- !inputComponentsMatchUsage(components, usage) ||
125
- !outputComponentsMatchUsage(components, usage)
126
- )
127
- return false
124
+ if (!componentsMatchUsage(components, usage)) return false
128
125
  }
129
126
  if (record.status === "unpriceable") return true
130
127
  if (record.components.length === 0 && isExternalValuationSource(record.priceSource.sourceId)) {
@@ -133,6 +130,22 @@ export function aiModelCallCostMatchesUsage(
133
130
 
134
131
  const usage = normalizeAiModelCallUsage(usageRecord.usage)
135
132
  const components = new Map(record.components.map((component) => [component.meter, component]))
133
+ return componentsMatchUsage(components, usage)
134
+ }
135
+
136
+ function componentsMatchUsage(
137
+ components: ReadonlyMap<AiBillableMeter, AiCostComponent>,
138
+ usage: AiModelCallUsage
139
+ ): boolean {
140
+ const audio = components.get("audio.input.milliseconds")
141
+ if (audio) {
142
+ return (
143
+ components.size === 1 &&
144
+ usage.audioDurationMs !== undefined &&
145
+ BigInt(audio.quantity) === BigInt(usage.audioDurationMs)
146
+ )
147
+ }
148
+
136
149
  return (
137
150
  inputComponentsMatchUsage(components, usage) && outputComponentsMatchUsage(components, usage)
138
151
  )
@@ -362,7 +375,7 @@ function calculateComponent(
362
375
  ): AiCostComponent {
363
376
  const normalizedQuantity = parseQuantity(quantity, `${meter} quantity`)
364
377
  const rate = parseNonnegativeInt64(rateAmountNanosPerMillion, `${meter} rate`)
365
- const charge = (normalizedQuantity * rate + HALF_MILLION) / TOKENS_PER_MILLION
378
+ const charge = (normalizedQuantity * rate + HALF_MILLION) / UNITS_PER_MILLION
366
379
  assertSignedInt64(charge, `${meter} charge`)
367
380
  return {
368
381
  meter,
@@ -8,6 +8,7 @@ import {
8
8
  AiLimitOperationLock,
9
9
  aiLimitAccountingEntryAppliesToSubject,
10
10
  aiLimitAmountKey,
11
+ aiLimitMeterApplies,
11
12
  aiLimitPolicyDimensionKey,
12
13
  aiLimitQuantityFromAmount,
13
14
  aiLimitReservationBuckets,
@@ -227,7 +228,12 @@ export class InMemoryAiLimitStorage implements AiLimitStorage {
227
228
  const unavailablePolicies: AiLimitPolicyStatus[] = []
228
229
  const unavailableReasons = new Set<"missingEstimate" | "incompleteAccounting">()
229
230
  for (const policy of enabledPolicies) {
230
- if (!subjectKeys.has(aiLimitSubjectKey(policy.subject))) continue
231
+ if (
232
+ !subjectKeys.has(aiLimitSubjectKey(policy.subject)) ||
233
+ !aiLimitMeterApplies(policy.limit.meter, request.modelKind)
234
+ ) {
235
+ continue
236
+ }
231
237
  const limit = normalizeAiLimitAmount(policy.limit)
232
238
  const estimate = estimates.get(aiLimitAmountKey(limit))
233
239
  const status = await this.policyStatus(policy, request.period)
@@ -268,7 +274,8 @@ export class InMemoryAiLimitStorage implements AiLimitStorage {
268
274
  const buckets = aiLimitReservationBuckets(
269
275
  enabledPolicies,
270
276
  request.subjects,
271
- request.estimates
277
+ request.estimates,
278
+ request.modelKind
272
279
  )
273
280
  if (buckets.length === 0) return { status: "notRequired" }
274
281
  for (const bucket of buckets) {
@@ -601,6 +608,7 @@ export class InMemoryAiLimitStorage implements AiLimitStorage {
601
608
  attempt: record.attempt,
602
609
  callId: record.callId,
603
610
  occurredAt: new Date(record.occurredAt),
611
+ ...(record.modelKind === undefined ? {} : { modelKind: record.modelKind }),
604
612
  ...(record.usage.totalTokens === undefined ? {} : { totalTokens: record.usage.totalTokens }),
605
613
  requesterGroupIds: [...record.requesterGroupIds],
606
614
  ...(requester?.type === "user" || requester?.type === "serviceAccount"
@@ -1,7 +1,9 @@
1
+ import type { ModelKind } from "../../models/definitions"
1
2
  import type { AiMoney } from "../ai-cost"
2
3
  import { AiLimitStorageError } from "./errors"
3
4
  import { aiLimitCalendarMonth } from "./period"
4
5
  import type {
6
+ AiLimitMeter,
5
7
  AiLimitPeriod,
6
8
  AiLimitPolicy,
7
9
  AiLimitQuantity,
@@ -16,6 +18,20 @@ import type {
16
18
 
17
19
  const SIGNED_INT64_MAX = 9_223_372_036_854_775_807n
18
20
 
21
+ // These calls are billed per audio second or per search, and their providers report no tokens.
22
+ // Token limits neither admit nor count them; cost limits still do.
23
+ const TOKENLESS_MODEL_KINDS: ReadonlySet<ModelKind> = new Set(["transcription", "reranking"])
24
+
25
+ /** @internal Whether a limit meter governs calls of this kind. Unclassified calls are metered. */
26
+ export function aiLimitMeterApplies(
27
+ meter: AiLimitMeter,
28
+ modelKind: ModelKind | undefined
29
+ ): boolean {
30
+ return (
31
+ meter !== "tokens.total" || modelKind === undefined || !TOKENLESS_MODEL_KINDS.has(modelKind)
32
+ )
33
+ }
34
+
19
35
  /** @internal Serialize compound limit operations, including within an existing transaction. */
20
36
  export class AiLimitOperationLock {
21
37
  private tail: Promise<void> = Promise.resolve()
@@ -55,6 +71,7 @@ export interface AiLimitAccountingEntry {
55
71
  readonly attempt: number
56
72
  readonly callId: string
57
73
  readonly occurredAt: Date
74
+ readonly modelKind?: ModelKind
58
75
  readonly totalTokens?: number
59
76
  readonly requesterGroupIds: readonly string[]
60
77
  readonly requester?:
@@ -228,6 +245,7 @@ export function normalizeReserveAiModelCall(input: ReserveAiModelCallInput): {
228
245
  readonly identity: AiModelCallReservationIdentity
229
246
  readonly subjects: readonly AiLimitSubject[]
230
247
  readonly estimates: readonly AiLimitQuantity[]
248
+ readonly modelKind?: ModelKind
231
249
  readonly period: AiLimitPeriod
232
250
  readonly reservedAt: Date
233
251
  } {
@@ -237,6 +255,7 @@ export function normalizeReserveAiModelCall(input: ReserveAiModelCallInput): {
237
255
  identity,
238
256
  subjects: normalizeAiLimitSubjects(input.subjects),
239
257
  estimates: normalizeAiLimitQuantities(input.estimates, "estimates"),
258
+ ...(input.modelKind === undefined ? {} : { modelKind: input.modelKind }),
240
259
  period: aiLimitCalendarMonth(reservedAt),
241
260
  reservedAt,
242
261
  }
@@ -297,13 +316,16 @@ export function aiLimitReservationRequestKey(
297
316
  const amount = normalizeAiLimitAmount(quantity)
298
317
  return [amount.meter, amount.currency, amount.amount.toString()]
299
318
  }),
319
+ // Appended only when present, so keys of reservations made before model kinds stay valid.
320
+ ...(request.modelKind === undefined ? [] : [request.modelKind]),
300
321
  ])
301
322
  }
302
323
 
303
324
  export function aiLimitReservationBuckets(
304
325
  policies: readonly AiLimitPolicy[],
305
326
  subjects: readonly AiLimitSubject[],
306
- estimates: readonly AiLimitQuantity[]
327
+ estimates: readonly AiLimitQuantity[],
328
+ modelKind?: ModelKind
307
329
  ): readonly AiLimitReservationBucket[] {
308
330
  const subjectKeys = new Set(subjects.map(aiLimitSubjectKey))
309
331
  const estimatesByDimension = new Map(
@@ -313,7 +335,11 @@ export function aiLimitReservationBuckets(
313
335
  })
314
336
  )
315
337
  return policies
316
- .filter((policy) => subjectKeys.has(aiLimitSubjectKey(policy.subject)))
338
+ .filter(
339
+ (policy) =>
340
+ subjectKeys.has(aiLimitSubjectKey(policy.subject)) &&
341
+ aiLimitMeterApplies(policy.limit.meter, modelKind)
342
+ )
317
343
  .flatMap((policy) => {
318
344
  const estimate = estimatesByDimension.get(
319
345
  aiLimitAmountKey(normalizeAiLimitAmount(policy.limit))
@@ -357,6 +383,7 @@ export function resolveAiLimitActual(
357
383
  let accountingStatus: ResolvedAiLimitActual["accountingStatus"] = "complete"
358
384
  for (const entry of entries) {
359
385
  if (dimension.meter === "tokens.total") {
386
+ if (!aiLimitMeterApplies(dimension.meter, entry.modelKind)) continue
360
387
  if (entry.totalTokens === undefined) {
361
388
  accountingStatus = "unavailable"
362
389
  } else {
@@ -1,3 +1,4 @@
1
+ import type { ModelKind } from "../../models/definitions"
1
2
  import type { AiMoney } from "../ai-cost"
2
3
 
3
4
  /** A project-wide, group, or durable requester identity charged for AI model calls. */
@@ -129,6 +130,8 @@ export interface ReserveAiModelCallInput extends AiModelCallReservationIdentity
129
130
  /** The project subject is always added, even when omitted here. */
130
131
  readonly subjects: readonly AiLimitSubject[]
131
132
  readonly estimates: readonly AiLimitQuantity[]
133
+ /** Transcription and reranking calls are outside token limits; see `aiLimitMeterApplies`. */
134
+ readonly modelKind?: ModelKind
132
135
  readonly reservedAt?: Date
133
136
  }
134
137
 
@@ -19,6 +19,14 @@ export function normalizeAiModelCallRecord(input: RecordAiModelCallInput): AiMod
19
19
  }
20
20
  assertNonBlank(input.responseId, "responseId")
21
21
 
22
+ if (
23
+ input.modelKind !== undefined &&
24
+ !["language", "image", "video", "embedding", "decision", "transcription", "reranking"].includes(
25
+ input.modelKind
26
+ )
27
+ ) {
28
+ throw new TypeError("[Sixb] AI model kind is invalid.")
29
+ }
22
30
  const occurredAt = cloneValidDate(input.occurredAt, "occurredAt")
23
31
  const recordedAt = cloneValidDate(input.recordedAt ?? new Date(), "recordedAt")
24
32
  const requesterGroupIds = normalizeRequesterGroupIds(input.requesterGroupIds)
@@ -37,6 +45,7 @@ export function normalizeAiModelCallRecord(input: RecordAiModelCallInput): AiMod
37
45
  ? {}
38
46
  : { providerIds: normalizeModelProviderIds(input.providerIds) }),
39
47
  requestedModelId: input.requestedModelId,
48
+ ...(input.modelKind === undefined ? {} : { modelKind: input.modelKind }),
40
49
  ...(requestedReasoning === undefined ? {} : { requestedReasoning }),
41
50
  ...(input.responseModelId === undefined ? {} : { responseModelId: input.responseModelId }),
42
51
  responseId: input.responseId,
@@ -1,11 +1,13 @@
1
1
  import type { ReadonlyJsonObject } from "../../json"
2
2
  import type { ModelReasoning } from "../../models/language-model"
3
3
 
4
- /** How much normalized token usage a provider reported for one model call. */
4
+ /** Coverage of normalized usage. Complete means both token totals are known; duration alone is partial. */
5
5
  export type AiUsageReportingStatus = "complete" | "partial" | "unavailable"
6
6
 
7
- /** Provider-neutral token counts accepted at the model-call boundary. */
7
+ /** Provider-neutral usage accepted at the model-call boundary. */
8
8
  export interface AiModelCallUsageInput {
9
+ /** Audio content duration in milliseconds, rounded to the nearest millisecond. Not billed duration. */
10
+ readonly audioDurationMs?: number
9
11
  readonly inputTokens?: number
10
12
  readonly outputTokens?: number
11
13
  readonly uncachedInputTokens?: number
@@ -15,7 +17,7 @@ export interface AiModelCallUsageInput {
15
17
  readonly reasoningOutputTokens?: number
16
18
  }
17
19
 
18
- /** Normalized token counts for one completed model call. Details overlap their input/output totals. */
20
+ /** Normalized usage for one completed model call. Token details overlap their input/output totals. */
19
21
  export interface AiModelCallUsage extends AiModelCallUsageInput {
20
22
  /** Present only when both input and output totals are known. */
21
23
  readonly totalTokens?: number
@@ -32,6 +34,8 @@ export interface AiUsageExecutionSummary {
32
34
 
33
35
  /** Input for an idempotent model-call ledger append. */
34
36
  export interface RecordAiModelCallInput {
37
+ /** Absent for historical calls whose kind was not captured. */
38
+ readonly modelKind?: import("../../models/definitions").ModelKind
35
39
  readonly providerIds?: import("../../models/events").ModelProviderIds
36
40
  readonly id: string
37
41
  readonly projectId: string
@@ -89,7 +93,7 @@ export interface GetLatestAiModelCallForExecutionInput {
89
93
  readonly executionId: string
90
94
  }
91
95
 
92
- /** Durable, provider-neutral accounting for completed language-model calls. */
96
+ /** Durable, provider-neutral accounting for completed model calls. */
93
97
  export interface AiUsageStorage {
94
98
  /**
95
99
  * Append one model-call record idempotently. The identity is project, execution ID, attempt, call
@@ -8,6 +8,7 @@ const USAGE_FIELDS = [
8
8
  "cacheWriteInputTokens",
9
9
  "textOutputTokens",
10
10
  "reasoningOutputTokens",
11
+ "audioDurationMs",
11
12
  ] as const
12
13
 
13
14
  type AiUsageField = (typeof USAGE_FIELDS)[number]
@@ -30,6 +31,7 @@ export function normalizeAiModelCallUsage(input: AiModelCallUsageInput): AiModel
30
31
  : "unavailable"
31
32
 
32
33
  return {
34
+ ...(input.audioDurationMs === undefined ? {} : { audioDurationMs: input.audioDurationMs }),
33
35
  ...(input.inputTokens === undefined ? {} : { inputTokens: input.inputTokens }),
34
36
  ...(input.outputTokens === undefined ? {} : { outputTokens: input.outputTokens }),
35
37
  ...(totalTokens === undefined ? {} : { totalTokens }),