@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,196 @@
1
+ /**
2
+ * Where each object type's Agent reference doc lives, and which hand-written docs and scripts are
3
+ * mounted next to it.
4
+ *
5
+ * The generated doc of a type mirrors the `ontology/` module that defines it:
6
+ * `billing/invoice.ts` → `billing/invoice.md`. A module that defines several types gets a folder,
7
+ * one doc per type: `billing.ts` → `billing/Invoice.md`, `billing/Customer.md`.
8
+ *
9
+ * Hand-written docs are notes when they sit at a type's doc path or next to a module exporting the
10
+ * type (`billing.md` for every type of `billing.ts`), compared without case. Notes are appended to
11
+ * the doc of each visible type they belong to, so a reader never receives the notes of types it
12
+ * cannot see. Any other hand-written doc is mounted as written, for every reader.
13
+ */
14
+
15
+ import type { AgentProjectFile } from "../agents/skills"
16
+ import { RuntimeError } from "../runtime/errors"
17
+ import type { ObjectType } from "./types"
18
+
19
+ /** Hand-written Markdown under `ontology/`. */
20
+ export interface OntologyDoc {
21
+ /** POSIX path relative to `ontology/`. */
22
+ readonly path: string
23
+ readonly contents: string
24
+ }
25
+
26
+ /** The Agent's files under `ontology/`, as createSixb() discovers them. */
27
+ export interface OntologyDocsInput {
28
+ /** Each module, by POSIX path relative to `ontology/`, with the object types it exports. */
29
+ readonly modules: readonly { readonly path: string; readonly objectTypeIds: readonly string[] }[]
30
+ readonly docs: readonly OntologyDoc[]
31
+ /** Every file in a `scripts/` directory under `ontology/`, mounted as written. */
32
+ readonly scripts: readonly AgentProjectFile[]
33
+ }
34
+
35
+ /** Paths are POSIX and relative to `ontology/`. */
36
+ export interface OntologyDocsCatalog {
37
+ /** Path of the doc generated for this object type. */
38
+ docPathFor(objectTypeId: string): string
39
+ /** The team's notes for this type, appended to its doc. Sorted by path. */
40
+ notesFor(objectTypeId: string): readonly OntologyDoc[]
41
+ /** Hand-written docs that belong to no object type, mounted for every reader. */
42
+ listDocs(): readonly OntologyDoc[]
43
+ listScripts(): readonly AgentProjectFile[]
44
+ /** Whether a link declares any type (`*`) as its target. Readers' views expand it. */
45
+ isWildcardLink(objectTypeId: string, linkId: string): boolean
46
+ }
47
+
48
+ /** Resolve every registered object type's doc path, rejecting two files that would share one. */
49
+ export function createOntologyDocsCatalog(input: {
50
+ readonly objectTypes: readonly ObjectType[]
51
+ readonly docs?: OntologyDocsInput
52
+ }): OntologyDocsCatalog {
53
+ const modules = input.docs?.modules ?? []
54
+ const scripts = Object.freeze([...(input.docs?.scripts ?? [])])
55
+ // Sandboxes may sit on a case-insensitive filesystem, where `Invoice.md` overwrites `invoice.md`.
56
+ const claimedPaths = new Map<string, string>(
57
+ scripts.map((script) => [script.path.toLowerCase(), `script 'ontology/${script.path}'`])
58
+ )
59
+ const claim = (path: string, owner: string) => {
60
+ const claimedBy = claimedPaths.get(path.toLowerCase())
61
+ if (claimedBy !== undefined) {
62
+ throw new RuntimeError(
63
+ `[Sixb] The ${owner} at 'ontology/${path}' collides with ${claimedBy}, which only differs ` +
64
+ "by case or not at all. Rename one of them."
65
+ )
66
+ }
67
+ claimedPaths.set(path.toLowerCase(), `the ${owner}`)
68
+ }
69
+
70
+ const docPathByType = new Map<string, string>()
71
+ // A hand-written doc at a type's doc path, or next to any module that exports the type, is
72
+ // notes for that type. Several types share the notes of a module that exports all of them.
73
+ const typeIdsByNotesPath = new Map<string, Set<string>>()
74
+ const addNotesPath = (path: string, objectTypeIds: readonly string[]) => {
75
+ const typeIds = typeIdsByNotesPath.get(path.toLowerCase()) ?? new Set<string>()
76
+ for (const objectTypeId of objectTypeIds) typeIds.add(objectTypeId)
77
+ typeIdsByNotesPath.set(path.toLowerCase(), typeIds)
78
+ }
79
+ for (const objectType of input.objectTypes) {
80
+ const path = docPathFor(objectType.id, modules)
81
+ claim(path, `doc of object type '${objectType.id}'`)
82
+ docPathByType.set(objectType.id, path)
83
+ addNotesPath(path, [objectType.id])
84
+ }
85
+ for (const module of modules) {
86
+ if (module.objectTypeIds.length > 0) {
87
+ addNotesPath(`${withoutExtension(module.path)}.md`, module.objectTypeIds)
88
+ }
89
+ }
90
+
91
+ const notesByType = new Map<string, OntologyDoc[]>()
92
+ const docs: OntologyDoc[] = []
93
+ const docPaths = new Map<string, string>()
94
+ for (const doc of input.docs?.docs ?? []) {
95
+ const sameName = docPaths.get(doc.path.toLowerCase())
96
+ if (sameName !== undefined) {
97
+ throw new RuntimeError(
98
+ `[Sixb] The ontology docs 'ontology/${sameName}' and 'ontology/${doc.path}' only differ ` +
99
+ "by case. Rename one of them."
100
+ )
101
+ }
102
+ docPaths.set(doc.path.toLowerCase(), doc.path)
103
+
104
+ const objectTypeIds = typeIdsByNotesPath.get(doc.path.toLowerCase())
105
+ if (objectTypeIds === undefined) {
106
+ docs.push(doc)
107
+ continue
108
+ }
109
+ for (const objectTypeId of objectTypeIds) {
110
+ notesByType.set(objectTypeId, [...(notesByType.get(objectTypeId) ?? []), doc])
111
+ }
112
+ }
113
+ for (const notes of notesByType.values()) notes.sort(byPath)
114
+ Object.freeze(docs)
115
+
116
+ const wildcardLinks = new Set(
117
+ input.objectTypes.flatMap((objectType) =>
118
+ objectType.links
119
+ .filter((link) => link.targetObjectTypeId === "*")
120
+ .map((link) => linkKey(objectType.id, link.id))
121
+ )
122
+ )
123
+
124
+ return Object.freeze({
125
+ docPathFor: (objectTypeId: string) => {
126
+ const path = docPathByType.get(objectTypeId)
127
+ if (path === undefined) {
128
+ throw new RuntimeError(`[Sixb] Object type '${objectTypeId}' is not registered.`)
129
+ }
130
+ return path
131
+ },
132
+ notesFor: (objectTypeId: string) => notesByType.get(objectTypeId) ?? [],
133
+ listDocs: () => docs,
134
+ listScripts: () => scripts,
135
+ isWildcardLink: (objectTypeId: string, linkId: string) =>
136
+ wildcardLinks.has(linkKey(objectTypeId, linkId)),
137
+ })
138
+ }
139
+
140
+ /**
141
+ * The module that defines a type, among those exporting it: the one named after the type
142
+ * (`email-thread.ts` for `EmailThread`), else any module but an `index`, else the one exporting the
143
+ * fewest types, else the first by path. Re-exporting barrels never take a type from its module.
144
+ */
145
+ function docPathFor(objectTypeId: string, modules: OntologyDocsInput["modules"]): string {
146
+ const rank = (module: OntologyDocsInput["modules"][number]) => {
147
+ const name = basename(withoutExtension(module.path))
148
+ return [
149
+ kebabCase(name) === kebabCase(objectTypeId) ? 0 : 1,
150
+ name === "index" ? 1 : 0,
151
+ module.objectTypeIds.length,
152
+ ]
153
+ }
154
+ let owner: OntologyDocsInput["modules"][number] | undefined
155
+ for (const module of modules) {
156
+ if (!module.objectTypeIds.includes(objectTypeId)) continue
157
+ if (owner === undefined || compareRanks(rank(module), rank(owner)) < 0) owner = module
158
+ }
159
+
160
+ const fileName = `${objectTypeId.replaceAll(/[^A-Za-z0-9._-]/g, "_")}.md`
161
+ if (owner === undefined) return fileName
162
+ const base = withoutExtension(owner.path)
163
+ return owner.objectTypeIds.length === 1 ? `${base}.md` : `${base}/${fileName}`
164
+ }
165
+
166
+ function compareRanks(left: readonly number[], right: readonly number[]): number {
167
+ for (const [index, value] of left.entries()) {
168
+ const difference = value - (right[index] ?? 0)
169
+ if (difference !== 0) return difference
170
+ }
171
+ return 0
172
+ }
173
+
174
+ function kebabCase(name: string): string {
175
+ return name
176
+ .replaceAll(/([a-z0-9])([A-Z])/g, "$1-$2")
177
+ .replaceAll(/([A-Z]+)([A-Z][a-z])/g, "$1-$2")
178
+ .replaceAll(/[\s_]+/g, "-")
179
+ .toLowerCase()
180
+ }
181
+
182
+ function withoutExtension(path: string): string {
183
+ return path.replace(/\.[^./]+$/, "")
184
+ }
185
+
186
+ function basename(path: string): string {
187
+ return path.slice(path.lastIndexOf("/") + 1)
188
+ }
189
+
190
+ function linkKey(objectTypeId: string, linkId: string): string {
191
+ return JSON.stringify([objectTypeId, linkId])
192
+ }
193
+
194
+ function byPath(left: OntologyDoc, right: OntologyDoc): number {
195
+ return left.path < right.path ? -1 : left.path > right.path ? 1 : 0
196
+ }
@@ -47,8 +47,10 @@ export type {
47
47
  ObjectLink,
48
48
  ObjectLinkTargetMetadata,
49
49
  ObjectLinkTargetType,
50
+ ObjectQueryIndexDefinition,
50
51
  ObjectSchema,
51
52
  ObjectType,
53
+ ObjectTypeQueryMetadata,
52
54
  ObjectTypeSearchMetadata,
53
55
  ObjectVectorSearchProfile,
54
56
  Ontology,
@@ -211,6 +211,31 @@ export type InferObjectProperties<
211
211
  }
212
212
  >
213
213
 
214
+ /**
215
+ * Property values as a principal reads them. A marked property may be redacted, so it is optional
216
+ * even when required; writes keep {@link InferObjectProperties}.
217
+ */
218
+ export type InferObjectReadProperties<
219
+ TObjectType extends { properties: readonly Property[] },
220
+ TValueTypes extends readonly ValueType[] = RegisteredValueTypes,
221
+ > = string extends TObjectType["properties"][number]["id"]
222
+ ? Record<string, unknown>
223
+ : Simplify<
224
+ {
225
+ [TProp in TObjectType["properties"][number] as TProp extends { required: true }
226
+ ? TProp extends { markings: readonly string[] }
227
+ ? never
228
+ : TProp["id"]
229
+ : never]: InferPropertyValue<TProp, TValueTypes>
230
+ } & {
231
+ [TProp in TObjectType["properties"][number] as TProp extends { required: true }
232
+ ? TProp extends { markings: readonly string[] }
233
+ ? TProp["id"]
234
+ : never
235
+ : TProp["id"]]?: InferPropertyValue<TProp, TValueTypes>
236
+ }
237
+ >
238
+
214
239
  /** Useful for APIs that should only accept telemetry-mode properties. */
215
240
  export type InferTelemetryPropertyIds<TObjectType extends { properties: readonly Property[] }> =
216
241
  Extract<TObjectType["properties"][number], { mode: "telemetry" }>["id"]
@@ -1,3 +1,9 @@
1
+ export type {
2
+ OntologyDocsIndexEntry,
3
+ RenderedOntologyDocs,
4
+ RenderOntologyDocsInput,
5
+ } from "./docs-markdown"
6
+ export { renderOntologyDocs } from "./docs-markdown"
1
7
  export { schemaFieldsToJsonSchema, schemaRecordToJsonSchema } from "./json-schema"
2
8
  export { resolvePropertyQueryCapabilities } from "./query-capabilities"
3
9
  export { validateSchemaOrRefValue } from "./refs"
@@ -26,6 +32,7 @@ export {
26
32
  } from "./validation/properties"
27
33
  export { validateQueryMetadata } from "./validation/query"
28
34
  export {
35
+ assertValidFileRefs,
29
36
  isRecord,
30
37
  resolveValueTypeRef,
31
38
  resolveValueTypeSchema,
@@ -123,7 +123,7 @@ export function resolvePropertyQueryCapabilities(
123
123
  }
124
124
  }
125
125
 
126
- function resolveQuerySchema(
126
+ export function resolveQuerySchema(
127
127
  schema: Schema,
128
128
  valueTypesById: ReadonlyMap<string, ValueType>,
129
129
  seen = new Set<string>()
@@ -1,4 +1,4 @@
1
- import type { InferObjectProperties } from "./inference"
1
+ import type { InferObjectProperties, InferObjectReadProperties } from "./inference"
2
2
  import {
3
3
  createLinkPathSelection,
4
4
  type LinkPathSelectionBuilder,
@@ -75,7 +75,10 @@ export type ObjectTypeWithPropertyTokens<TObjectType extends ObjectType = Object
75
75
  */
76
76
  export type ObjectPropertiesMetadata<TObjectType extends ObjectType> = {
77
77
  readonly [objectPropertiesBrand]?: string extends TObjectType["id"]
78
- ? { readonly properties: Record<string, unknown> }
78
+ ? {
79
+ readonly properties: Record<string, unknown>
80
+ readonly readProperties: Record<string, unknown>
81
+ }
79
82
  : ObjectPropertiesCarrier<TObjectType>
80
83
  }
81
84
 
@@ -91,6 +94,7 @@ export type ObjectPropertiesMetadata<TObjectType extends ObjectType> = {
91
94
  */
92
95
  interface ObjectPropertiesCarrier<in out TObjectType extends ObjectType> {
93
96
  readonly properties: InferObjectProperties<TObjectType>
97
+ readonly readProperties: InferObjectReadProperties<TObjectType>
94
98
  }
95
99
 
96
100
  /**
@@ -103,6 +107,13 @@ export type ObjectTypeProperties<TObjectType extends ObjectTypeWithPropertyToken
103
107
  TObjectType[typeof objectPropertiesBrand]
104
108
  >["properties"]
105
109
 
110
+ /**
111
+ * The property values of an object type as a read returns them: a marked property is optional,
112
+ * because a reader without clearance receives it redacted.
113
+ */
114
+ export type ObjectTypeReadProperties<TObjectType extends ObjectTypeWithPropertyTokens> =
115
+ NonNullable<TObjectType[typeof objectPropertiesBrand]>["readProperties"]
116
+
106
117
  /**
107
118
  * Object type with property tokens (`p.*`) and link tokens (`l.*`).
108
119
  *
@@ -284,6 +284,11 @@ export interface Property {
284
284
  semanticType?: QuantitativeTypeId
285
285
  /** Query/indexing metadata for this property. */
286
286
  query?: PropertyQueryMetadata
287
+ /**
288
+ * Marking ids. A principal receives this property only when its roles clear every marking;
289
+ * otherwise the value is omitted and listed in the object's `redactions`.
290
+ */
291
+ markings?: readonly string[]
287
292
  }
288
293
 
289
294
  /**
@@ -360,6 +365,25 @@ export interface Interface {
360
365
  links: ObjectLink[]
361
366
  }
362
367
 
368
+ /** Compound query shapes prepared by the storage provider, in addition to property flags. */
369
+ export type ObjectQueryIndexDefinition =
370
+ | {
371
+ kind: "sort"
372
+ fields: readonly { propertyId: string; direction?: "asc" | "desc" }[]
373
+ /** String equality filters preceding the ordered fields. */
374
+ filters?: readonly string[]
375
+ }
376
+ | {
377
+ kind: "text"
378
+ propertyId: string
379
+ /** String filters/facets commonly combined with this substring search. */
380
+ filters?: readonly string[]
381
+ }
382
+
383
+ export interface ObjectTypeQueryMetadata {
384
+ indexes?: readonly ObjectQueryIndexDefinition[]
385
+ }
386
+
363
387
  /**
364
388
  * Canonical ontology node for a real-world asset, system, concept, or process.
365
389
  *
@@ -413,6 +437,8 @@ export interface ObjectType {
413
437
 
414
438
  properties: Property[]
415
439
  links: ObjectLink[]
440
+ /** Query index declarations, prepared automatically after storage migrations. */
441
+ query?: ObjectTypeQueryMetadata
416
442
  /** Search profile for this object type. */
417
443
  search?: ObjectTypeSearchMetadata
418
444
  }
@@ -24,6 +24,7 @@ export {
24
24
  } from "./properties"
25
25
  export { validateQueryMetadata } from "./query"
26
26
  export {
27
+ assertValidFileRefs,
27
28
  isRecord,
28
29
  resolveValueTypeRef,
29
30
  resolveValueTypeSchema,
@@ -7,6 +7,8 @@ import {
7
7
  isFilterableSchema,
8
8
  isSortableSchema,
9
9
  isTextSchema,
10
+ queryScalarKindForSchema,
11
+ resolveQuerySchema,
10
12
  } from "../query-capabilities"
11
13
 
12
14
  type QueryFeature = "filterable" | "sortable" | "text" | "exact" | "facet"
@@ -27,6 +29,7 @@ export function validateQueryMetadata(
27
29
  }
28
30
 
29
31
  validateObjectSearchMetadata(typeId, objectType, valueTypesById)
32
+ validateQueryIndexes(typeId, objectType, valueTypesById)
30
33
  }
31
34
  }
32
35
 
@@ -250,3 +253,57 @@ function resolveSchema(
250
253
  seenValueTypeIds.add(schema.valueTypeId)
251
254
  return resolveSchema(resolved, valueTypesById, path, seenValueTypeIds)
252
255
  }
256
+
257
+ function validateQueryIndexes(
258
+ typeId: string,
259
+ objectType: ObjectType,
260
+ valueTypes: ReadonlyMap<string, ValueType>
261
+ ): void {
262
+ for (const index of objectType.query?.indexes ?? []) {
263
+ const fields =
264
+ index.kind === "sort" ? index.fields.map((field) => field.propertyId) : [index.propertyId]
265
+ const filters = index.filters ?? []
266
+ if (
267
+ !fields.length ||
268
+ fields.length + filters.length > 8 ||
269
+ new Set([...fields, ...filters]).size !== fields.length + filters.length
270
+ )
271
+ throw new OntologyValidationError(
272
+ `[Sixb] Query index on '${typeId}' requires one to eight distinct properties`
273
+ )
274
+ if (index.kind === "text" && filters.length > 4)
275
+ throw new OntologyValidationError(
276
+ `[Sixb] Text query index on '${typeId}' accepts at most four filters`
277
+ )
278
+ for (const id of [...fields, ...filters]) {
279
+ const property = objectType.properties.find((property) => property.id === id)
280
+ if (!property)
281
+ throw new OntologyValidationError(
282
+ `[Sixb] Query index on '${typeId}' references unknown property '${id}'`
283
+ )
284
+ if (property.mode === "telemetry")
285
+ throw new OntologyValidationError(
286
+ `[Sixb] Query indexes cannot include telemetry property '${typeId}.${id}'`
287
+ )
288
+ const flag = filters.includes(id) ? "filterable" : index.kind === "sort" ? "sortable" : "text"
289
+ assertPropertyQueryFlag(typeId, property, flag, "query.indexes")
290
+ if (filters.includes(id)) {
291
+ const schema = resolveQuerySchema(property.schema, valueTypes)
292
+ if (!schema || queryScalarKindForSchema(schema) !== "string")
293
+ throw new OntologyValidationError(
294
+ `[Sixb] Query index filters must be strings: '${typeId}.${id}'`
295
+ )
296
+ }
297
+ }
298
+ if (
299
+ index.kind === "sort" &&
300
+ index.fields.some(
301
+ (field) =>
302
+ field.direction !== undefined && field.direction !== "asc" && field.direction !== "desc"
303
+ )
304
+ )
305
+ throw new OntologyValidationError(
306
+ `[Sixb] Query index direction must be asc or desc on '${typeId}'`
307
+ )
308
+ }
309
+ }
@@ -1,4 +1,4 @@
1
- import { isFileRef } from "../../blob-storage/validation"
1
+ import { isFileRef, isValidFileRef } from "../../blob-storage/validation"
2
2
  import { withFailureMessage } from "../../errors/failure-message"
3
3
  import type { ObjectFieldSchema, Schema, ValueType, ValueTypeRefSchema } from ".."
4
4
  import { isDecimalString } from "../decimal"
@@ -201,6 +201,31 @@ export function validateSchemaValue(
201
201
  }
202
202
  }
203
203
 
204
+ /**
205
+ * Reject a value from a caller that holds a file reference whose `mediaType` is not exactly one
206
+ * media type, anywhere inside it. Call it where caller input is accepted, after
207
+ * `validateSchemaValue`; that validator also re-checks stored state, which must keep loading
208
+ * references written before the rule.
209
+ */
210
+ export function assertValidFileRefs(value: unknown, path: string): void {
211
+ if (isFileRef(value)) {
212
+ if (!isValidFileRef(value)) {
213
+ throw withFailureMessage(
214
+ new OntologyValidationError(
215
+ `[Sixb] Property ${path}.mediaType must be one media type, such as "application/pdf"`
216
+ ),
217
+ `Property ${path}.mediaType must be one media type, such as "application/pdf".`
218
+ )
219
+ }
220
+ return
221
+ }
222
+ if (Array.isArray(value)) {
223
+ for (const [index, item] of value.entries()) assertValidFileRefs(item, `${path}[${index}]`)
224
+ } else if (isRecord(value)) {
225
+ for (const [key, item] of Object.entries(value)) assertValidFileRefs(item, `${path}.${key}`)
226
+ }
227
+ }
228
+
204
229
  function validateFieldValue(
205
230
  field: ObjectFieldSchema,
206
231
  value: unknown,
package/src/query.ts CHANGED
@@ -6,6 +6,8 @@
6
6
  * top of this module.
7
7
  */
8
8
 
9
+ export type { ModelRef } from "./models/catalog"
10
+ export type { RerankingModelDefinition, RerankingModelRef } from "./models/reranking-model"
9
11
  export type { ObjectQueryPlanningIssue } from "./objects/query/errors"
10
12
  export {
11
13
  ObjectQueryExecutionError,
@@ -29,6 +31,7 @@ export type {
29
31
  ObjectQueryPredicateNot,
30
32
  ObjectQueryProject,
31
33
  ObjectQueryRefs,
34
+ ObjectQueryRerank,
32
35
  ObjectQueryResultShape,
33
36
  ObjectQuerySet,
34
37
  ObjectQuerySetOperation,
@@ -68,6 +71,7 @@ export type {
68
71
  ObjectQueryFacetBucket,
69
72
  ObjectQueryFacetInput,
70
73
  ObjectQueryFacetResult,
74
+ ObjectQueryFacetsResult,
71
75
  ObjectQueryListOptions,
72
76
  ObjectQueryRow,
73
77
  ObjectWhereBuilder,
@@ -109,11 +109,16 @@ function eligibleAt(record: QueueRecord): number {
109
109
  return Math.max(record.availableAtMs, record.leaseExpiryMs ?? -Infinity)
110
110
  }
111
111
 
112
+ // Largest delay `setTimeout` accepts; a waiting claim that wakes early just waits again.
113
+ const MAX_TIMER_DELAY_MS = 2_147_483_647
114
+
112
115
  interface QueueLane {
113
116
  // Terminal records remain here for caller-id deduplication, never in the delivery indexes.
114
117
  readonly records: Map<string, QueueRecord>
115
118
  readonly ready: IndexedHeap<QueueRecord>
116
119
  readonly waiting: IndexedHeap<QueueRecord>
120
+ /** Wakes claims waiting on this lane. */
121
+ readonly waiters: Set<() => void>
117
122
  }
118
123
 
119
124
  function toClaimedQueueJob<TQueueJob extends QueueJob>(
@@ -175,6 +180,27 @@ class InMemoryQueueStore {
175
180
  lane.ready.delete(record)
176
181
  lane.waiting.set(record)
177
182
  }
183
+ // Any change can make a job claimable or move the next due time; waiters look again.
184
+ for (const wake of lane.waiters) wake()
185
+ }
186
+
187
+ /** Resolves when the lane changes, its next delayed job or lease comes due, or `signal` aborts. */
188
+ waitForWork(projectId: string, queueId: string, signal: AbortSignal): Promise<void> {
189
+ const lane = this.lane(projectId, queueId)
190
+ const next = lane.waiting.peek()
191
+ const dueInMs = next ? eligibleAt(next) - Date.now() : MAX_TIMER_DELAY_MS
192
+ return new Promise((resolve) => {
193
+ // Always armed: like a blocking read on a socket, a waiting claim keeps its process alive.
194
+ const timer = setTimeout(wake, Math.min(dueInMs, MAX_TIMER_DELAY_MS))
195
+ function wake(): void {
196
+ clearTimeout(timer)
197
+ lane.waiters.delete(wake)
198
+ signal.removeEventListener("abort", wake)
199
+ resolve()
200
+ }
201
+ lane.waiters.add(wake)
202
+ signal.addEventListener("abort", wake, { once: true })
203
+ })
178
204
  }
179
205
 
180
206
  takeReady<TQueueJob extends QueueJob>(
@@ -216,6 +242,7 @@ class InMemoryQueueStore {
216
242
  waiting: new IndexedHeap(
217
243
  (left, right) => eligibleAt(left) - eligibleAt(right) || left.sequence - right.sequence
218
244
  ),
245
+ waiters: new Set(),
219
246
  }
220
247
  queues.set(queueId, lane)
221
248
  }
@@ -263,6 +290,7 @@ class InMemoryQueue<TQueueJob extends QueueJob, TFailureCode extends SixbErrorCo
263
290
  workerId: string
264
291
  limit?: number
265
292
  leaseMs?: number
293
+ signal?: AbortSignal
266
294
  }): Promise<readonly ClaimedQueueJob<TQueueJob>[]> {
267
295
  assertNonEmpty(params.projectId, "projectId")
268
296
  assertNonEmpty(params.workerId, "workerId")
@@ -275,27 +303,34 @@ class InMemoryQueue<TQueueJob extends QueueJob, TFailureCode extends SixbErrorCo
275
303
  const leaseMs = params.leaseMs ?? 30_000
276
304
  assertPositiveNumber(leaseMs, "leaseMs")
277
305
 
278
- const now = Date.now()
279
- const claimedAt = new Date(now).toISOString()
280
- // Validate before removing candidates, and cache the same millisecond precision we return.
281
- const leaseExpiry = new Date(now + leaseMs)
282
- const leaseExpiresAt = leaseExpiry.toISOString()
283
- const claimable = this.store.takeReady<TQueueJob>(params.projectId, this.queueId, now, limit)
284
-
285
- return claimable.map((record) => {
286
- // Attempts count claims so redelivery after lease expiry or retry is visible to workers.
287
- record.job = {
288
- ...record.job,
289
- attempt: record.job.attempt + 1,
306
+ for (;;) {
307
+ if (params.signal?.aborted) return []
308
+ const now = Date.now()
309
+ const claimedAt = new Date(now).toISOString()
310
+ // Validate before removing candidates, and cache the same millisecond precision we return.
311
+ const leaseExpiry = new Date(now + leaseMs)
312
+ const leaseExpiresAt = leaseExpiry.toISOString()
313
+ const claimable = this.store.takeReady<TQueueJob>(params.projectId, this.queueId, now, limit)
314
+ if (claimable.length === 0 && params.signal) {
315
+ await this.store.waitForWork(params.projectId, this.queueId, params.signal)
316
+ continue
290
317
  }
291
- record.leaseId = randomUUID()
292
- record.claimedAt = claimedAt
293
- record.leaseExpiresAt = leaseExpiresAt
294
- record.leaseExpiryMs = leaseExpiry.getTime()
295
- this.store.schedule(params.projectId, record, now)
296
318
 
297
- return toClaimedQueueJob(record)
298
- })
319
+ return claimable.map((record) => {
320
+ // Attempts count claims so redelivery after lease expiry or retry is visible to workers.
321
+ record.job = {
322
+ ...record.job,
323
+ attempt: record.job.attempt + 1,
324
+ }
325
+ record.leaseId = randomUUID()
326
+ record.claimedAt = claimedAt
327
+ record.leaseExpiresAt = leaseExpiresAt
328
+ record.leaseExpiryMs = leaseExpiry.getTime()
329
+ this.store.schedule(params.projectId, record, now)
330
+
331
+ return toClaimedQueueJob(record)
332
+ })
333
+ }
299
334
  }
300
335
 
301
336
  async complete(params: { projectId: string; jobId: string; leaseId: string }): Promise<void> {
@@ -82,12 +82,16 @@ export interface Queue<
82
82
  *
83
83
  * `leaseMs` is the visibility timeout for this claim. If the lease expires
84
84
  * before the job is acknowledged, the job may be delivered again.
85
+ *
86
+ * Without `signal`, returns at once, possibly empty. With `signal`, waits for work instead:
87
+ * it resolves once it claims at least one job, and empty only after `signal` aborts.
85
88
  */
86
89
  claim(params: {
87
90
  projectId: string
88
91
  workerId: string
89
92
  limit?: number
90
93
  leaseMs?: number
94
+ signal?: AbortSignal
91
95
  }): Promise<readonly ClaimedQueueJob<TQueueJob>[]>
92
96
 
93
97
  /** Acknowledges successful processing and removes the claimed job from delivery. */