@sixb/core 0.1.11 → 0.1.13

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 (910) hide show
  1. package/dist/actions/builders/params.d.ts +1 -22
  2. package/dist/actions/builders/params.d.ts.map +1 -1
  3. package/dist/actions/index.d.ts +2 -2
  4. package/dist/actions/index.d.ts.map +1 -1
  5. package/dist/actions/index.js +33 -30
  6. package/dist/actions/index.js.map +1 -1
  7. package/dist/actions/read-facade.d.ts +14 -16
  8. package/dist/actions/read-facade.d.ts.map +1 -1
  9. package/dist/actions/request.d.ts.map +1 -1
  10. package/dist/actions/run-dispatch.d.ts +2 -0
  11. package/dist/actions/run-dispatch.d.ts.map +1 -1
  12. package/dist/actions/types/context.d.ts +18 -31
  13. package/dist/actions/types/context.d.ts.map +1 -1
  14. package/dist/actions/types/params.d.ts +11 -44
  15. package/dist/actions/types/params.d.ts.map +1 -1
  16. package/dist/actions/validation.d.ts.map +1 -1
  17. package/dist/actions/worker.js +3 -2
  18. package/dist/actions/worker.js.map +2 -2
  19. package/dist/agents/errors.d.ts +1 -1
  20. package/dist/agents/errors.d.ts.map +1 -1
  21. package/dist/agents/execution.d.ts +15 -9
  22. package/dist/agents/execution.d.ts.map +1 -1
  23. package/dist/agents/ids.d.ts +2 -0
  24. package/dist/agents/ids.d.ts.map +1 -1
  25. package/dist/agents/index.d.ts +1 -1
  26. package/dist/agents/index.d.ts.map +1 -1
  27. package/dist/agents/index.js +52 -44
  28. package/dist/agents/index.js.map +1 -1
  29. package/dist/agents/request.d.ts.map +1 -1
  30. package/dist/agents/sandbox.d.ts +5 -0
  31. package/dist/agents/sandbox.d.ts.map +1 -0
  32. package/dist/agents/streams/index.js +4 -3
  33. package/dist/agents/streams/index.js.map +1 -1
  34. package/dist/agents/streams/internal.js +4 -3
  35. package/dist/agents/streams/internal.js.map +1 -1
  36. package/dist/agents/validation.d.ts.map +1 -1
  37. package/dist/assert-never.d.ts +6 -0
  38. package/dist/assert-never.d.ts.map +1 -0
  39. package/dist/auth/client-address.d.ts +3 -0
  40. package/dist/auth/client-address.d.ts.map +1 -0
  41. package/dist/auth/csrf.d.ts +5 -1
  42. package/dist/auth/csrf.d.ts.map +1 -1
  43. package/dist/auth/index.d.ts +3 -2
  44. package/dist/auth/index.d.ts.map +1 -1
  45. package/dist/auth/index.js +15 -7
  46. package/dist/auth/index.js.map +1 -1
  47. package/dist/auth/runtime.d.ts +58 -41
  48. package/dist/auth/runtime.d.ts.map +1 -1
  49. package/dist/auth/session-cache.d.ts +10 -3
  50. package/dist/auth/session-cache.d.ts.map +1 -1
  51. package/dist/auth/sessions.d.ts +12 -0
  52. package/dist/auth/sessions.d.ts.map +1 -1
  53. package/dist/auth/strategy.js +1 -1
  54. package/dist/auth/types.d.ts +8 -15
  55. package/dist/auth/types.d.ts.map +1 -1
  56. package/dist/authorization/index.js +5 -4
  57. package/dist/authorization/index.js.map +1 -1
  58. package/dist/bootstrap/index.d.ts +1 -1
  59. package/dist/bootstrap/index.d.ts.map +1 -1
  60. package/dist/bootstrap/index.js +54 -48
  61. package/dist/bootstrap/index.js.map +1 -1
  62. package/dist/bootstrap/ontology-type-manifest.d.ts +8 -0
  63. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  64. package/dist/{chunk-q5gz3g2j.js → chunk-0321g649.js} +2 -16
  65. package/dist/{chunk-q5gz3g2j.js.map → chunk-0321g649.js.map} +2 -2
  66. package/dist/{chunk-d63nnr5b.js → chunk-04h4t2b5.js} +39 -53
  67. package/dist/{chunk-d63nnr5b.js.map → chunk-04h4t2b5.js.map} +5 -6
  68. package/dist/chunk-2fv8sajb.js +84 -0
  69. package/dist/chunk-2fv8sajb.js.map +10 -0
  70. package/dist/{chunk-1yefycb1.js → chunk-2hbhn1ff.js} +2 -2
  71. package/dist/{chunk-ap0g1g74.js → chunk-3nx8vj5a.js} +43 -6
  72. package/dist/chunk-3nx8vj5a.js.map +12 -0
  73. package/dist/{chunk-wjasrj67.js → chunk-3qpcrcj8.js} +1 -1
  74. package/dist/{chunk-0y39rgsb.js → chunk-4tnrzqqh.js} +1 -1
  75. package/dist/chunk-58geavnf.js +29 -0
  76. package/dist/chunk-58geavnf.js.map +10 -0
  77. package/dist/{chunk-01kj2pbh.js → chunk-63fp9x3q.js} +97 -67
  78. package/dist/chunk-63fp9x3q.js.map +20 -0
  79. package/dist/{chunk-7bs40fe1.js → chunk-69266efg.js} +83 -2
  80. package/dist/chunk-69266efg.js.map +12 -0
  81. package/dist/{chunk-sepyxgpc.js → chunk-693f3zn8.js} +70 -28
  82. package/dist/chunk-693f3zn8.js.map +15 -0
  83. package/dist/{chunk-7zgecwy1.js → chunk-6x0pqh32.js} +12 -1
  84. package/dist/{chunk-7zgecwy1.js.map → chunk-6x0pqh32.js.map} +3 -3
  85. package/dist/{chunk-c5rkjrgp.js → chunk-7ytf06d3.js} +1 -1
  86. package/dist/{chunk-a0e6x5hd.js → chunk-898y24dd.js} +165 -90
  87. package/dist/chunk-898y24dd.js.map +15 -0
  88. package/dist/{chunk-mrp7k0pw.js → chunk-91kcnbf0.js} +9 -14
  89. package/dist/chunk-91kcnbf0.js.map +10 -0
  90. package/dist/{chunk-z0s4axeh.js → chunk-91wthfwe.js} +97 -21
  91. package/dist/{chunk-z0s4axeh.js.map → chunk-91wthfwe.js.map} +8 -7
  92. package/dist/{chunk-yv79ncbv.js → chunk-96yw3pwd.js} +3 -3
  93. package/dist/chunk-96yw3pwd.js.map +10 -0
  94. package/dist/chunk-98cw09sw.js.map +2 -2
  95. package/dist/{chunk-g00bfdq6.js → chunk-9pfw47qx.js} +318 -257
  96. package/dist/chunk-9pfw47qx.js.map +44 -0
  97. package/dist/{chunk-5hz0fnca.js → chunk-a0073121.js} +64 -60
  98. package/dist/chunk-a0073121.js.map +12 -0
  99. package/dist/{chunk-cfvakeax.js → chunk-a69fkrtr.js} +5 -5
  100. package/dist/{chunk-72w2pxk7.js → chunk-bdhfn0ww.js} +11 -3
  101. package/dist/{chunk-72w2pxk7.js.map → chunk-bdhfn0ww.js.map} +3 -3
  102. package/dist/chunk-bep5rrdq.js +81 -0
  103. package/dist/chunk-bep5rrdq.js.map +10 -0
  104. package/dist/chunk-bxx3ms5t.js +29 -0
  105. package/dist/chunk-bxx3ms5t.js.map +10 -0
  106. package/dist/{chunk-v2vcg0w6.js → chunk-cbn96bve.js} +2 -2
  107. package/dist/{chunk-860dwwy0.js → chunk-cd234ba4.js} +22 -12
  108. package/dist/chunk-cd234ba4.js.map +14 -0
  109. package/dist/{chunk-gq8vhakp.js → chunk-cvrbhvtr.js} +292 -104
  110. package/dist/chunk-cvrbhvtr.js.map +46 -0
  111. package/dist/{chunk-ms2tmn1k.js → chunk-d8yes9yx.js} +355 -100
  112. package/dist/chunk-d8yes9yx.js.map +20 -0
  113. package/dist/{chunk-pr2h4bv4.js → chunk-darm7eeg.js} +9 -9
  114. package/dist/{chunk-pr2h4bv4.js.map → chunk-darm7eeg.js.map} +3 -3
  115. package/dist/chunk-dmn70ztd.js.map +2 -2
  116. package/dist/chunk-drz59ve0.js +57 -0
  117. package/dist/chunk-drz59ve0.js.map +10 -0
  118. package/dist/{chunk-skz0hst3.js → chunk-dsfw1bdr.js} +6 -86
  119. package/dist/{chunk-skz0hst3.js.map → chunk-dsfw1bdr.js.map} +3 -3
  120. package/dist/{chunk-g6cke204.js → chunk-f85hpqnm.js} +1 -1
  121. package/dist/{chunk-vsj3mdfj.js → chunk-fc5zfxy1.js} +1 -1
  122. package/dist/chunk-ffwvdgk1.js +85 -0
  123. package/dist/chunk-ffwvdgk1.js.map +10 -0
  124. package/dist/chunk-gbcrz0gr.js +552 -0
  125. package/dist/chunk-gbcrz0gr.js.map +17 -0
  126. package/dist/{chunk-gqm76kse.js → chunk-gc226ten.js} +434 -177
  127. package/dist/chunk-gc226ten.js.map +62 -0
  128. package/dist/{chunk-awbhdqyc.js → chunk-gmt22nxx.js} +10 -16
  129. package/dist/chunk-gmt22nxx.js.map +10 -0
  130. package/dist/chunk-h89wz928.js +42 -0
  131. package/dist/chunk-h89wz928.js.map +10 -0
  132. package/dist/{chunk-aa6z4a19.js → chunk-hgqpcmyr.js} +2 -1
  133. package/dist/chunk-hgqpcmyr.js.map +12 -0
  134. package/dist/{chunk-gqh45d2n.js → chunk-ht4a7mjg.js} +76 -6
  135. package/dist/chunk-ht4a7mjg.js.map +15 -0
  136. package/dist/{chunk-x9m9x2eq.js → chunk-jhyc777j.js} +3 -3
  137. package/dist/{chunk-fh8kgex1.js → chunk-jmwy25mf.js} +76 -58
  138. package/dist/{chunk-fh8kgex1.js.map → chunk-jmwy25mf.js.map} +3 -3
  139. package/dist/{chunk-rb1xx120.js → chunk-k4kkp58d.js} +25 -8
  140. package/dist/chunk-k4kkp58d.js.map +11 -0
  141. package/dist/{chunk-jsy70480.js → chunk-ky7zpbtt.js} +366 -98
  142. package/dist/chunk-ky7zpbtt.js.map +19 -0
  143. package/dist/chunk-m4ehq95f.js +9 -0
  144. package/dist/chunk-m4ehq95f.js.map +10 -0
  145. package/dist/{chunk-17kfctj6.js → chunk-m8zkvep1.js} +2 -2
  146. package/dist/{chunk-z0271qkp.js → chunk-mdnw7nj8.js} +8 -6
  147. package/dist/chunk-mdnw7nj8.js.map +15 -0
  148. package/dist/{chunk-4zhmdsx6.js → chunk-mf6hwpzh.js} +121 -28
  149. package/dist/{chunk-4zhmdsx6.js.map → chunk-mf6hwpzh.js.map} +6 -6
  150. package/dist/{chunk-z30bv4ga.js → chunk-mr60an99.js} +5 -3
  151. package/dist/{chunk-z30bv4ga.js.map → chunk-mr60an99.js.map} +3 -3
  152. package/dist/chunk-n33e8dz8.js +191 -0
  153. package/dist/chunk-n33e8dz8.js.map +11 -0
  154. package/dist/chunk-p1683c0v.js +104 -0
  155. package/dist/chunk-p1683c0v.js.map +11 -0
  156. package/dist/{chunk-9qsh3p5y.js → chunk-rb143ggb.js} +1 -1
  157. package/dist/{chunk-653vwrzr.js → chunk-rdghfsss.js} +1 -1
  158. package/dist/chunk-rdghfsss.js.map +10 -0
  159. package/dist/{chunk-ftv470j8.js → chunk-rqtdtm43.js} +365 -67
  160. package/dist/chunk-rqtdtm43.js.map +50 -0
  161. package/dist/{chunk-dz5h08xv.js → chunk-rzcjp5m2.js} +28 -9
  162. package/dist/chunk-rzcjp5m2.js.map +25 -0
  163. package/dist/{chunk-f4w3yp4f.js → chunk-rzkr70gr.js} +108 -21
  164. package/dist/chunk-rzkr70gr.js.map +13 -0
  165. package/dist/{chunk-3ckk0xfj.js → chunk-s24qbp32.js} +18 -13
  166. package/dist/{chunk-3ckk0xfj.js.map → chunk-s24qbp32.js.map} +3 -3
  167. package/dist/{chunk-f0rwz2vh.js → chunk-t6f3tdnr.js} +2 -54
  168. package/dist/chunk-t6f3tdnr.js.map +10 -0
  169. package/dist/{chunk-93csa55g.js → chunk-tw03bsmb.js} +11 -5
  170. package/dist/chunk-tw03bsmb.js.map +11 -0
  171. package/dist/chunk-vef6qa14.js +363 -0
  172. package/dist/chunk-vef6qa14.js.map +14 -0
  173. package/dist/{chunk-92vk7gta.js → chunk-vn3yh259.js} +1 -1
  174. package/dist/{chunk-g91qxjj0.js → chunk-w9bp61e7.js} +5 -5
  175. package/dist/{chunk-b19g04jk.js → chunk-xgptywp0.js} +4 -3
  176. package/dist/chunk-xgptywp0.js.map +11 -0
  177. package/dist/{chunk-g53f0e4j.js → chunk-xnx96gfy.js} +45 -17
  178. package/dist/{chunk-g53f0e4j.js.map → chunk-xnx96gfy.js.map} +3 -3
  179. package/dist/{chunk-1824gssz.js → chunk-y487ywrv.js} +4 -4
  180. package/dist/{chunk-7apz6hg4.js → chunk-y6vnvayj.js} +8 -4
  181. package/dist/chunk-y6vnvayj.js.map +10 -0
  182. package/dist/{chunk-wf88w4kp.js → chunk-ypj2wqtj.js} +3 -6
  183. package/dist/{chunk-wf88w4kp.js.map → chunk-ypj2wqtj.js.map} +4 -4
  184. package/dist/chunk-z3y5kg1x.js +14 -0
  185. package/dist/chunk-z3y5kg1x.js.map +10 -0
  186. package/dist/{chunk-38zv5rkr.js → chunk-z9h698s8.js} +1 -1
  187. package/dist/{chunk-38zv5rkr.js.map → chunk-z9h698s8.js.map} +2 -2
  188. package/dist/{chunk-8vj0rjgs.js → chunk-zdkcdshk.js} +3 -36
  189. package/dist/{chunk-8vj0rjgs.js.map → chunk-zdkcdshk.js.map} +3 -4
  190. package/dist/{chunk-358caqf5.js → chunk-znw0zvy4.js} +2 -2
  191. package/dist/datasets/validation.d.ts +4 -0
  192. package/dist/datasets/validation.d.ts.map +1 -1
  193. package/dist/datasets/write.d.ts.map +1 -1
  194. package/dist/datasets/write.js +5 -4
  195. package/dist/datasets/write.js.map +1 -1
  196. package/dist/edits/types.d.ts +19 -19
  197. package/dist/edits/types.d.ts.map +1 -1
  198. package/dist/error-reporting/capability.d.ts +3 -2
  199. package/dist/error-reporting/capability.d.ts.map +1 -1
  200. package/dist/error-reporting/internal.js +5 -4
  201. package/dist/error-reporting/internal.js.map +1 -1
  202. package/dist/error-reporting/reports.d.ts +10 -0
  203. package/dist/error-reporting/reports.d.ts.map +1 -1
  204. package/dist/error-reporting/types.d.ts +10 -2
  205. package/dist/error-reporting/types.d.ts.map +1 -1
  206. package/dist/errors/catalog.d.ts +16 -0
  207. package/dist/errors/catalog.d.ts.map +1 -1
  208. package/dist/errors/failure-message.d.ts +8 -0
  209. package/dist/errors/failure-message.d.ts.map +1 -0
  210. package/dist/errors/internal.d.ts.map +1 -1
  211. package/dist/errors/internal.js +3 -2
  212. package/dist/errors/internal.js.map +1 -1
  213. package/dist/events/envelope.d.ts +0 -12
  214. package/dist/events/envelope.d.ts.map +1 -1
  215. package/dist/events/index.d.ts +1 -1
  216. package/dist/events/index.d.ts.map +1 -1
  217. package/dist/events/index.js +5 -4
  218. package/dist/events/index.js.map +1 -1
  219. package/dist/events/service.d.ts +1 -2
  220. package/dist/events/service.d.ts.map +1 -1
  221. package/dist/events/toStoredEvent.d.ts +1 -2
  222. package/dist/events/toStoredEvent.d.ts.map +1 -1
  223. package/dist/events/types/index.d.ts +2 -1
  224. package/dist/events/types/index.d.ts.map +1 -1
  225. package/dist/execution/agent.d.ts +1 -2
  226. package/dist/execution/agent.d.ts.map +1 -1
  227. package/dist/execution/agent.js +48 -43
  228. package/dist/execution/agent.js.map +1 -1
  229. package/dist/execution/authorization.d.ts.map +1 -1
  230. package/dist/execution/authorized-object-reader.d.ts +3 -0
  231. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  232. package/dist/execution/kernel-operation.d.ts +4 -0
  233. package/dist/execution/kernel-operation.d.ts.map +1 -0
  234. package/dist/execution/primitive.d.ts +1 -2
  235. package/dist/execution/primitive.d.ts.map +1 -1
  236. package/dist/execution/primitive.js +47 -42
  237. package/dist/execution/primitive.js.map +3 -3
  238. package/dist/execution/request.d.ts +1 -2
  239. package/dist/execution/request.d.ts.map +1 -1
  240. package/dist/execution/request.js +48 -43
  241. package/dist/execution/request.js.map +3 -3
  242. package/dist/execution/types.d.ts +6 -0
  243. package/dist/execution/types.d.ts.map +1 -1
  244. package/dist/index.d.ts +20 -10
  245. package/dist/index.d.ts.map +1 -1
  246. package/dist/index.js +77 -62
  247. package/dist/index.js.map +1 -1
  248. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  249. package/dist/lake-storage/index.js +5 -4
  250. package/dist/lake-storage/index.js.map +1 -1
  251. package/dist/maintenance/ontology-maintenance.d.ts +11 -1
  252. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  253. package/dist/materialization/errors.d.ts +4 -2
  254. package/dist/materialization/errors.d.ts.map +1 -1
  255. package/dist/materialization/events.d.ts +27 -2
  256. package/dist/materialization/events.d.ts.map +1 -1
  257. package/dist/materialization/index.d.ts +1 -0
  258. package/dist/materialization/index.d.ts.map +1 -1
  259. package/dist/materialization/index.js +3 -3
  260. package/dist/materialization/model.d.ts +2 -0
  261. package/dist/materialization/model.d.ts.map +1 -1
  262. package/dist/materialization/vectors.d.ts +19 -0
  263. package/dist/materialization/vectors.d.ts.map +1 -0
  264. package/dist/materializer/context.d.ts.map +1 -1
  265. package/dist/materializer/edits/commit.d.ts.map +1 -1
  266. package/dist/materializer/edits/operations.d.ts +2 -1
  267. package/dist/materializer/edits/operations.d.ts.map +1 -1
  268. package/dist/materializer/edits/plan.d.ts +2 -2
  269. package/dist/materializer/edits/plan.d.ts.map +1 -1
  270. package/dist/materializer/edits/user-refs.d.ts +30 -0
  271. package/dist/materializer/edits/user-refs.d.ts.map +1 -0
  272. package/dist/materializer/edits/vector-authority.d.ts +6 -0
  273. package/dist/materializer/edits/vector-authority.d.ts.map +1 -0
  274. package/dist/materializer/edits/vectors.d.ts +6 -0
  275. package/dist/materializer/edits/vectors.d.ts.map +1 -0
  276. package/dist/materializer/effective/build-events.d.ts +2 -2
  277. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  278. package/dist/materializer/effective/validate.d.ts.map +1 -1
  279. package/dist/materializer/effective/vector-indexing.d.ts +7 -0
  280. package/dist/materializer/effective/vector-indexing.d.ts.map +1 -0
  281. package/dist/materializer/effective/vectors.d.ts +6 -0
  282. package/dist/materializer/effective/vectors.d.ts.map +1 -0
  283. package/dist/materializer/execution/scope.d.ts +11 -3
  284. package/dist/materializer/execution/scope.d.ts.map +1 -1
  285. package/dist/materializer/execution/work-executor.d.ts +2 -1
  286. package/dist/materializer/execution/work-executor.d.ts.map +1 -1
  287. package/dist/materializer/index.js +30 -27
  288. package/dist/materializer/index.js.map +1 -1
  289. package/dist/materializer/projections/replacement-plan.d.ts +2 -0
  290. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  291. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  292. package/dist/materializer/telemetry/plan.d.ts +2 -2
  293. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  294. package/dist/models/catalog-index.d.ts +15 -0
  295. package/dist/models/catalog-index.d.ts.map +1 -0
  296. package/dist/models/catalog.d.ts +27 -6
  297. package/dist/models/catalog.d.ts.map +1 -1
  298. package/dist/models/decision/catalog.d.ts +12 -0
  299. package/dist/models/decision/catalog.d.ts.map +1 -0
  300. package/dist/models/decision/errors.d.ts +7 -0
  301. package/dist/models/decision/errors.d.ts.map +1 -0
  302. package/dist/models/decision/output.d.ts +50 -0
  303. package/dist/models/decision/output.d.ts.map +1 -0
  304. package/dist/models/decision/questions.d.ts +14 -0
  305. package/dist/models/decision/questions.d.ts.map +1 -0
  306. package/dist/models/decision/runtime.d.ts +7 -0
  307. package/dist/models/decision/runtime.d.ts.map +1 -0
  308. package/dist/models/decision/types.d.ts +92 -0
  309. package/dist/models/decision/types.d.ts.map +1 -0
  310. package/dist/models/decision/validation.d.ts +7 -0
  311. package/dist/models/decision/validation.d.ts.map +1 -0
  312. package/dist/models/definitions.d.ts +1 -1
  313. package/dist/models/definitions.d.ts.map +1 -1
  314. package/dist/models/embedding-model.d.ts +60 -0
  315. package/dist/models/embedding-model.d.ts.map +1 -0
  316. package/dist/models/execution/binding.d.ts +2 -0
  317. package/dist/models/execution/binding.d.ts.map +1 -1
  318. package/dist/models/execution/embedding.d.ts +5 -0
  319. package/dist/models/execution/embedding.d.ts.map +1 -0
  320. package/dist/models/execution/index.js +32 -27
  321. package/dist/models/execution/index.js.map +1 -1
  322. package/dist/models/execution/model-call-recorder.d.ts +5 -1
  323. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  324. package/dist/models/execution/session.d.ts +21 -0
  325. package/dist/models/execution/session.d.ts.map +1 -0
  326. package/dist/models/execution.d.ts.map +1 -1
  327. package/dist/models/generation-types.d.ts +2 -0
  328. package/dist/models/generation-types.d.ts.map +1 -1
  329. package/dist/models/index.d.ts +9 -1
  330. package/dist/models/index.d.ts.map +1 -1
  331. package/dist/models/index.js +17 -7
  332. package/dist/models/index.js.map +1 -1
  333. package/dist/models/pricing.d.ts +3 -2
  334. package/dist/models/pricing.d.ts.map +1 -1
  335. package/dist/objects/authorized-ontology-view.d.ts.map +1 -1
  336. package/dist/objects/execution.d.ts +21 -26
  337. package/dist/objects/execution.d.ts.map +1 -1
  338. package/dist/objects/index.js +33 -30
  339. package/dist/objects/index.js.map +1 -1
  340. package/dist/objects/query/executor.d.ts +3 -0
  341. package/dist/objects/query/executor.d.ts.map +1 -1
  342. package/dist/objects/query/index.d.ts +2 -0
  343. package/dist/objects/query/index.d.ts.map +1 -1
  344. package/dist/objects/query/index.js +42 -30
  345. package/dist/objects/query/index.js.map +1 -1
  346. package/dist/objects/query/ir.d.ts +14 -3
  347. package/dist/objects/query/ir.d.ts.map +1 -1
  348. package/dist/objects/query/normalize.d.ts.map +1 -1
  349. package/dist/objects/query/scalar-values.d.ts.map +1 -1
  350. package/dist/objects/query/validate.d.ts.map +1 -1
  351. package/dist/objects/sdk/object-handle.d.ts +6 -2
  352. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  353. package/dist/objects/sdk/object-set.d.ts +2 -3
  354. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  355. package/dist/objects/sdk/query-builder.d.ts +8 -10
  356. package/dist/objects/sdk/query-builder.d.ts.map +1 -1
  357. package/dist/objects/sdk/query-executor.d.ts +2 -0
  358. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  359. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  360. package/dist/objects/sdk/telemetry-channel.d.ts +1 -2
  361. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  362. package/dist/objects/sdk/where.d.ts +2 -3
  363. package/dist/objects/sdk/where.d.ts.map +1 -1
  364. package/dist/objects/vectors/handle.d.ts +4 -0
  365. package/dist/objects/vectors/handle.d.ts.map +1 -0
  366. package/dist/objects/vectors/indexing-batch.d.ts +6 -0
  367. package/dist/objects/vectors/indexing-batch.d.ts.map +1 -0
  368. package/dist/objects/vectors/indexing-generate.d.ts +11 -0
  369. package/dist/objects/vectors/indexing-generate.d.ts.map +1 -0
  370. package/dist/objects/vectors/indexing-runtime.d.ts +7 -0
  371. package/dist/objects/vectors/indexing-runtime.d.ts.map +1 -0
  372. package/dist/objects/vectors/indexing-shared.d.ts +17 -0
  373. package/dist/objects/vectors/indexing-shared.d.ts.map +1 -0
  374. package/dist/objects/vectors/indexing-single.d.ts +4 -0
  375. package/dist/objects/vectors/indexing-single.d.ts.map +1 -0
  376. package/dist/objects/vectors/indexing-store-batch.d.ts +6 -0
  377. package/dist/objects/vectors/indexing-store-batch.d.ts.map +1 -0
  378. package/dist/objects/vectors/indexing.d.ts +7 -0
  379. package/dist/objects/vectors/indexing.d.ts.map +1 -0
  380. package/dist/objects/vectors/profile.d.ts +13 -0
  381. package/dist/objects/vectors/profile.d.ts.map +1 -0
  382. package/dist/objects/vectors/query.d.ts +5 -0
  383. package/dist/objects/vectors/query.d.ts.map +1 -0
  384. package/dist/objects/vectors/resolve-query.d.ts +6 -0
  385. package/dist/objects/vectors/resolve-query.d.ts.map +1 -0
  386. package/dist/objects/vectors/types.d.ts +11 -0
  387. package/dist/objects/vectors/types.d.ts.map +1 -0
  388. package/dist/ontology/builders.d.ts +11 -10
  389. package/dist/ontology/builders.d.ts.map +1 -1
  390. package/dist/ontology/index.d.ts +5 -2
  391. package/dist/ontology/index.d.ts.map +1 -1
  392. package/dist/ontology/index.js +7 -5
  393. package/dist/ontology/index.js.map +1 -1
  394. package/dist/ontology/inference/index.d.ts +34 -22
  395. package/dist/ontology/inference/index.d.ts.map +1 -1
  396. package/dist/ontology/internal.d.ts +1 -0
  397. package/dist/ontology/internal.d.ts.map +1 -1
  398. package/dist/ontology/internal.js +10 -7
  399. package/dist/ontology/internal.js.map +1 -1
  400. package/dist/ontology/primitives.d.ts +38 -0
  401. package/dist/ontology/primitives.d.ts.map +1 -0
  402. package/dist/ontology/query-capabilities.d.ts +38 -0
  403. package/dist/ontology/query-capabilities.d.ts.map +1 -0
  404. package/dist/ontology/refs.d.ts +23 -2
  405. package/dist/ontology/refs.d.ts.map +1 -1
  406. package/dist/ontology/registered.d.ts +16 -0
  407. package/dist/ontology/registered.d.ts.map +1 -0
  408. package/dist/ontology/registry.d.ts.map +1 -1
  409. package/dist/ontology/tokens.d.ts +35 -1
  410. package/dist/ontology/tokens.d.ts.map +1 -1
  411. package/dist/ontology/types.d.ts +26 -13
  412. package/dist/ontology/types.d.ts.map +1 -1
  413. package/dist/ontology/user-ref.d.ts +35 -0
  414. package/dist/ontology/user-ref.d.ts.map +1 -0
  415. package/dist/ontology/validation/definition.d.ts +3 -0
  416. package/dist/ontology/validation/definition.d.ts.map +1 -0
  417. package/dist/ontology/validation/index.d.ts +1 -1
  418. package/dist/ontology/validation/index.d.ts.map +1 -1
  419. package/dist/ontology/validation/normalize.d.ts.map +1 -1
  420. package/dist/ontology/validation/properties.d.ts +6 -1
  421. package/dist/ontology/validation/properties.d.ts.map +1 -1
  422. package/dist/ontology/validation/query.d.ts.map +1 -1
  423. package/dist/ontology/validation/schema.d.ts +1 -1
  424. package/dist/ontology/validation/schema.d.ts.map +1 -1
  425. package/dist/ontology/vector-profiles.d.ts +4 -0
  426. package/dist/ontology/vector-profiles.d.ts.map +1 -0
  427. package/dist/pipelines/index.js +32 -29
  428. package/dist/pipelines/index.js.map +1 -1
  429. package/dist/predicates/types.d.ts +53 -3
  430. package/dist/predicates/types.d.ts.map +1 -1
  431. package/dist/projections/builders.d.ts +19 -1
  432. package/dist/projections/builders.d.ts.map +1 -1
  433. package/dist/projections/internal.js +28 -25
  434. package/dist/projections/internal.js.map +1 -1
  435. package/dist/projections/validation.d.ts.map +1 -1
  436. package/dist/query.js +2 -2
  437. package/dist/queues/in-memory.d.ts +3 -2
  438. package/dist/queues/in-memory.d.ts.map +1 -1
  439. package/dist/queues/index.d.ts +1 -1
  440. package/dist/queues/index.d.ts.map +1 -1
  441. package/dist/queues/index.js +1 -1
  442. package/dist/queues/types.d.ts +5 -0
  443. package/dist/queues/types.d.ts.map +1 -1
  444. package/dist/runtime/create.d.ts +4 -3
  445. package/dist/runtime/create.d.ts.map +1 -1
  446. package/dist/runtime/host.d.ts +10 -7
  447. package/dist/runtime/host.d.ts.map +1 -1
  448. package/dist/runtime/index.d.ts +1 -1
  449. package/dist/runtime/index.d.ts.map +1 -1
  450. package/dist/runtime/internal.d.ts +3 -0
  451. package/dist/runtime/internal.d.ts.map +1 -1
  452. package/dist/runtime/internal.js +49 -1
  453. package/dist/runtime/internal.js.map +1 -1
  454. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  455. package/dist/runtime/sixb.d.ts +11 -6
  456. package/dist/runtime/sixb.d.ts.map +1 -1
  457. package/dist/runtime/types.d.ts +182 -187
  458. package/dist/runtime/types.d.ts.map +1 -1
  459. package/dist/sandboxes/auth.d.ts +16 -0
  460. package/dist/sandboxes/auth.d.ts.map +1 -0
  461. package/dist/sandboxes/config.d.ts +5 -0
  462. package/dist/sandboxes/config.d.ts.map +1 -0
  463. package/dist/sandboxes/configuration.d.ts +41 -0
  464. package/dist/sandboxes/configuration.d.ts.map +1 -0
  465. package/dist/sandboxes/environment.d.ts +13 -0
  466. package/dist/sandboxes/environment.d.ts.map +1 -0
  467. package/dist/sandboxes/errors.d.ts +1 -1
  468. package/dist/sandboxes/errors.d.ts.map +1 -1
  469. package/dist/sandboxes/index.d.ts +6 -1
  470. package/dist/sandboxes/index.d.ts.map +1 -1
  471. package/dist/sandboxes/index.js +16 -3
  472. package/dist/sandboxes/index.js.map +1 -1
  473. package/dist/sandboxes/sandbox.d.ts +39 -4
  474. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  475. package/dist/shared/params/builders.d.ts +25 -0
  476. package/dist/shared/params/builders.d.ts.map +1 -0
  477. package/dist/shared/params/types.d.ts +48 -0
  478. package/dist/shared/params/types.d.ts.map +1 -0
  479. package/dist/shared/params/user-refs.d.ts +19 -0
  480. package/dist/shared/params/user-refs.d.ts.map +1 -0
  481. package/dist/shared/params/validation.d.ts +15 -0
  482. package/dist/shared/params/validation.d.ts.map +1 -0
  483. package/dist/shares/compiler.d.ts.map +1 -1
  484. package/dist/shares/internal.js +29 -26
  485. package/dist/shares/internal.js.map +2 -2
  486. package/dist/storage/action-runs/failure.js +4 -3
  487. package/dist/storage/action-runs/failure.js.map +1 -1
  488. package/dist/storage/action-runs/provider.js +1 -1
  489. package/dist/storage/action-runs/types.d.ts +1 -1
  490. package/dist/storage/action-runs/types.d.ts.map +1 -1
  491. package/dist/storage/agents/in-memory.d.ts +2 -1
  492. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  493. package/dist/storage/agents/index.d.ts +1 -1
  494. package/dist/storage/agents/index.d.ts.map +1 -1
  495. package/dist/storage/agents/provider.d.ts +5 -1
  496. package/dist/storage/agents/provider.d.ts.map +1 -1
  497. package/dist/storage/agents/provider.js +8 -4
  498. package/dist/storage/agents/provider.js.map +1 -1
  499. package/dist/storage/agents/types.d.ts +49 -0
  500. package/dist/storage/agents/types.d.ts.map +1 -1
  501. package/dist/storage/ai-cost/analytics.d.ts +1 -0
  502. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  503. package/dist/storage/ai-cost/index.d.ts +1 -1
  504. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  505. package/dist/storage/ai-cost/provider.js +2 -2
  506. package/dist/storage/ai-cost/types.d.ts +14 -2
  507. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  508. package/dist/storage/ai-limits/enforcement.js +4 -3
  509. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  510. package/dist/storage/auth/in-memory/access-tokens.d.ts.map +1 -1
  511. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  512. package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -1
  513. package/dist/storage/auth/in-memory/sessions.d.ts +8 -1
  514. package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
  515. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  516. package/dist/storage/auth/index.d.ts +1 -1
  517. package/dist/storage/auth/index.d.ts.map +1 -1
  518. package/dist/storage/auth/types.d.ts +62 -13
  519. package/dist/storage/auth/types.d.ts.map +1 -1
  520. package/dist/storage/connector-connections/provider.js +3 -2
  521. package/dist/storage/connector-connections/provider.js.map +2 -2
  522. package/dist/storage/executions/provider.d.ts +3 -3
  523. package/dist/storage/executions/provider.d.ts.map +1 -1
  524. package/dist/storage/executions/provider.js +13 -11
  525. package/dist/storage/executions/provider.js.map +3 -3
  526. package/dist/storage/executions/types.d.ts +3 -0
  527. package/dist/storage/executions/types.d.ts.map +1 -1
  528. package/dist/storage/executions/validation.d.ts.map +1 -1
  529. package/dist/storage/file-upload-sessions/in-memory.d.ts +9 -18
  530. package/dist/storage/file-upload-sessions/in-memory.d.ts.map +1 -1
  531. package/dist/storage/file-upload-sessions/index.d.ts +1 -1
  532. package/dist/storage/file-upload-sessions/index.d.ts.map +1 -1
  533. package/dist/storage/file-upload-sessions/provider.d.ts +52 -0
  534. package/dist/storage/file-upload-sessions/provider.d.ts.map +1 -0
  535. package/dist/storage/file-upload-sessions/provider.js +24 -0
  536. package/dist/storage/file-upload-sessions/provider.js.map +9 -0
  537. package/dist/storage/file-upload-sessions/types.d.ts +19 -1
  538. package/dist/storage/file-upload-sessions/types.d.ts.map +1 -1
  539. package/dist/storage/file-upload-sessions/utils.d.ts +8 -2
  540. package/dist/storage/file-upload-sessions/utils.d.ts.map +1 -1
  541. package/dist/storage/index.d.ts +8 -6
  542. package/dist/storage/index.d.ts.map +1 -1
  543. package/dist/storage/index.js +37 -30
  544. package/dist/storage/index.js.map +1 -1
  545. package/dist/storage/internal.js +11 -9
  546. package/dist/storage/internal.js.map +1 -1
  547. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  548. package/dist/storage/objects/in-memory/read-source.d.ts +5 -0
  549. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  550. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  551. package/dist/storage/objects/in-memory/storage.d.ts +7 -0
  552. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  553. package/dist/storage/objects/types.d.ts +2 -0
  554. package/dist/storage/objects/types.d.ts.map +1 -1
  555. package/dist/storage/ontology/commits.d.ts +7 -2
  556. package/dist/storage/ontology/commits.d.ts.map +1 -1
  557. package/dist/storage/ontology/in-memory/index.d.ts +4 -0
  558. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  559. package/dist/storage/ontology/in-memory/materializations.d.ts +2 -0
  560. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  561. package/dist/storage/ontology/in-memory/shared-state.d.ts +7 -0
  562. package/dist/storage/ontology/in-memory/shared-state.d.ts.map +1 -1
  563. package/dist/storage/ontology/in-memory/vector-indexing.d.ts +44 -0
  564. package/dist/storage/ontology/in-memory/vector-indexing.d.ts.map +1 -0
  565. package/dist/storage/ontology/in-memory/vectors.d.ts +31 -0
  566. package/dist/storage/ontology/in-memory/vectors.d.ts.map +1 -0
  567. package/dist/storage/ontology/index.d.ts +6 -0
  568. package/dist/storage/ontology/index.d.ts.map +1 -1
  569. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  570. package/dist/storage/ontology/provider.d.ts +14 -1
  571. package/dist/storage/ontology/provider.d.ts.map +1 -1
  572. package/dist/storage/ontology/provider.js +9 -3
  573. package/dist/storage/ontology/provider.js.map +1 -1
  574. package/dist/storage/ontology/vector-indexing.d.ts +94 -0
  575. package/dist/storage/ontology/vector-indexing.d.ts.map +1 -0
  576. package/dist/storage/ontology/vectors.d.ts +56 -0
  577. package/dist/storage/ontology/vectors.d.ts.map +1 -0
  578. package/dist/storage/operation-scope.d.ts.map +1 -1
  579. package/dist/storage/operation-scope.js +1 -1
  580. package/dist/storage/projection-runs/provider.js +4 -3
  581. package/dist/storage/projection-runs/provider.js.map +1 -1
  582. package/dist/storage/types.d.ts +2 -2
  583. package/dist/storage/types.d.ts.map +1 -1
  584. package/dist/storage/workflow-interventions/index.d.ts +1 -1
  585. package/dist/storage/workflow-interventions/index.d.ts.map +1 -1
  586. package/dist/storage/workflow-interventions/types.d.ts +5 -8
  587. package/dist/storage/workflow-interventions/types.d.ts.map +1 -1
  588. package/dist/storage/workflow-runs/provider.js +10 -8
  589. package/dist/storage/workflow-runs/provider.js.map +1 -1
  590. package/dist/syncs/index.js +33 -30
  591. package/dist/syncs/index.js.map +1 -1
  592. package/dist/testing/action-execution.d.ts +4 -0
  593. package/dist/testing/action-execution.d.ts.map +1 -1
  594. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  595. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  596. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  597. package/dist/testing/execution.d.ts +1 -2
  598. package/dist/testing/execution.d.ts.map +1 -1
  599. package/dist/testing/file-upload-session-storage-contract.d.ts +12 -0
  600. package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -0
  601. package/dist/testing/index.d.ts +2 -0
  602. package/dist/testing/index.d.ts.map +1 -1
  603. package/dist/testing/index.js +2351 -1263
  604. package/dist/testing/index.js.map +19 -17
  605. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  606. package/dist/testing/object-query-contract.d.ts.map +1 -1
  607. package/dist/testing/object-read-scope-contract.d.ts.map +1 -1
  608. package/dist/testing/ontology-contract-fixture.d.ts +8 -0
  609. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  610. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  611. package/dist/testing/queues-contract.d.ts.map +1 -1
  612. package/dist/testing/sandboxes-contract.d.ts.map +1 -1
  613. package/dist/testing/workflow-intervention-storage-contract.d.ts +8 -0
  614. package/dist/testing/workflow-intervention-storage-contract.d.ts.map +1 -0
  615. package/dist/webhooks/internal.js +29 -26
  616. package/dist/webhooks/internal.js.map +2 -2
  617. package/dist/webhooks/types.d.ts +2 -2
  618. package/dist/webhooks/types.d.ts.map +1 -1
  619. package/dist/workers/index.js +3 -2
  620. package/dist/workers/index.js.map +2 -2
  621. package/dist/workflows/failure.d.ts.map +1 -1
  622. package/dist/workflows/index.js +51 -45
  623. package/dist/workflows/index.js.map +1 -1
  624. package/dist/workflows/run-dispatch.d.ts.map +1 -1
  625. package/dist/workflows/types.d.ts +2 -2
  626. package/dist/workflows/types.d.ts.map +1 -1
  627. package/package.json +7 -1
  628. package/src/actions/builders/params.ts +1 -48
  629. package/src/actions/index.ts +0 -3
  630. package/src/actions/read-facade.ts +102 -62
  631. package/src/actions/request.ts +13 -0
  632. package/src/actions/run-dispatch.ts +3 -0
  633. package/src/actions/types/context.ts +17 -65
  634. package/src/actions/types/params.ts +16 -75
  635. package/src/actions/validation.ts +7 -84
  636. package/src/agents/authority.ts +1 -1
  637. package/src/agents/errors.ts +3 -0
  638. package/src/agents/execution.ts +67 -15
  639. package/src/agents/ids.ts +8 -0
  640. package/src/agents/index.ts +1 -0
  641. package/src/agents/request.ts +11 -0
  642. package/src/agents/sandbox.ts +44 -0
  643. package/src/agents/validation.ts +2 -108
  644. package/src/assert-never.ts +7 -0
  645. package/src/auth/client-address.ts +12 -0
  646. package/src/auth/csrf.ts +14 -5
  647. package/src/auth/index.ts +3 -2
  648. package/src/auth/runtime.ts +299 -277
  649. package/src/auth/session-cache.ts +18 -6
  650. package/src/auth/sessions.ts +30 -0
  651. package/src/auth/types.ts +7 -17
  652. package/src/bootstrap/index.ts +1 -0
  653. package/src/bootstrap/ontology-type-manifest.ts +112 -60
  654. package/src/datasets/validation.ts +40 -11
  655. package/src/datasets/write.ts +8 -11
  656. package/src/edits/types.ts +47 -63
  657. package/src/error-reporting/capability.ts +11 -0
  658. package/src/error-reporting/reports.ts +23 -0
  659. package/src/error-reporting/types.ts +12 -1
  660. package/src/errors/catalog.ts +16 -0
  661. package/src/errors/failure-message.ts +15 -0
  662. package/src/errors/internal.ts +57 -25
  663. package/src/events/envelope.ts +0 -13
  664. package/src/events/index.ts +1 -1
  665. package/src/events/service.ts +1 -11
  666. package/src/events/toStoredEvent.ts +1 -3
  667. package/src/events/types/index.ts +1 -1
  668. package/src/execution/agent.ts +1 -2
  669. package/src/execution/authorization.ts +12 -5
  670. package/src/execution/authorized-object-reader.ts +42 -9
  671. package/src/execution/kernel-operation.ts +27 -0
  672. package/src/execution/primitive.ts +1 -2
  673. package/src/execution/request.ts +1 -2
  674. package/src/execution/scopes.ts +2 -0
  675. package/src/execution/types.ts +4 -4
  676. package/src/index.ts +68 -8
  677. package/src/lake-storage/in-memory.ts +5 -3
  678. package/src/maintenance/ontology-maintenance.ts +77 -1
  679. package/src/materialization/errors.ts +4 -2
  680. package/src/materialization/events.ts +27 -2
  681. package/src/materialization/index.ts +1 -0
  682. package/src/materialization/model.ts +2 -0
  683. package/src/materialization/vectors.ts +18 -0
  684. package/src/materializer/README.md +16 -0
  685. package/src/materializer/context.ts +10 -0
  686. package/src/materializer/edits/commit.ts +29 -13
  687. package/src/materializer/edits/operations.ts +32 -4
  688. package/src/materializer/edits/plan.ts +4 -5
  689. package/src/materializer/edits/user-refs.ts +115 -0
  690. package/src/materializer/edits/vector-authority.ts +108 -0
  691. package/src/materializer/edits/vectors.ts +100 -0
  692. package/src/materializer/effective/build-events.ts +4 -5
  693. package/src/materializer/effective/validate.ts +10 -3
  694. package/src/materializer/effective/vector-indexing.ts +84 -0
  695. package/src/materializer/effective/vectors.ts +47 -0
  696. package/src/materializer/execution/scope.ts +40 -7
  697. package/src/materializer/execution/work-executor.ts +11 -3
  698. package/src/materializer/projections/replace.ts +3 -1
  699. package/src/materializer/projections/replacement-plan.ts +4 -0
  700. package/src/materializer/shared/normalize.ts +11 -0
  701. package/src/materializer/telemetry/append.ts +5 -13
  702. package/src/materializer/telemetry/plan.ts +4 -5
  703. package/src/models/catalog-index.ts +38 -0
  704. package/src/models/catalog.ts +66 -38
  705. package/src/models/decision/catalog.ts +32 -0
  706. package/src/models/decision/errors.ts +18 -0
  707. package/src/models/decision/output.ts +101 -0
  708. package/src/models/decision/questions.ts +29 -0
  709. package/src/models/decision/runtime.ts +188 -0
  710. package/src/models/decision/types.ts +109 -0
  711. package/src/models/decision/validation.ts +335 -0
  712. package/src/models/definitions.ts +1 -1
  713. package/src/models/embedding-model.ts +129 -0
  714. package/src/models/execution/README.md +63 -0
  715. package/src/models/execution/binding.ts +2 -0
  716. package/src/models/execution/embedding.ts +133 -0
  717. package/src/models/execution/model-call-recorder.ts +42 -30
  718. package/src/models/execution/session.ts +81 -0
  719. package/src/models/execution.ts +10 -52
  720. package/src/models/generation-types.ts +2 -0
  721. package/src/models/index.ts +37 -0
  722. package/src/models/pricing.ts +1 -2
  723. package/src/objects/authorized-ontology-view.ts +12 -8
  724. package/src/objects/execution.ts +34 -61
  725. package/src/objects/query/executor.ts +25 -7
  726. package/src/objects/query/explain.ts +7 -2
  727. package/src/objects/query/index.ts +2 -0
  728. package/src/objects/query/ir.ts +13 -2
  729. package/src/objects/query/normalize.ts +5 -1
  730. package/src/objects/query/planner.ts +1 -0
  731. package/src/objects/query/scalar-values.ts +19 -0
  732. package/src/objects/query/validate.ts +129 -117
  733. package/src/objects/sdk/object-handle.ts +11 -8
  734. package/src/objects/sdk/object-set.ts +9 -15
  735. package/src/objects/sdk/query-builder.ts +66 -72
  736. package/src/objects/sdk/query-executor.ts +2 -1
  737. package/src/objects/sdk/runtime-query-executor.ts +6 -2
  738. package/src/objects/sdk/telemetry-channel.ts +6 -7
  739. package/src/objects/sdk/where.ts +6 -13
  740. package/src/objects/vectors/README.md +59 -0
  741. package/src/objects/vectors/handle.ts +91 -0
  742. package/src/objects/vectors/indexing-batch.ts +163 -0
  743. package/src/objects/vectors/indexing-generate.ts +184 -0
  744. package/src/objects/vectors/indexing-runtime.ts +17 -0
  745. package/src/objects/vectors/indexing-shared.ts +188 -0
  746. package/src/objects/vectors/indexing-single.ts +51 -0
  747. package/src/objects/vectors/indexing-store-batch.ts +62 -0
  748. package/src/objects/vectors/indexing.ts +23 -0
  749. package/src/objects/vectors/profile.ts +64 -0
  750. package/src/objects/vectors/query.ts +16 -0
  751. package/src/objects/vectors/resolve-query.ts +89 -0
  752. package/src/objects/vectors/types.ts +10 -0
  753. package/src/ontology/builders.ts +15 -11
  754. package/src/ontology/index.ts +6 -0
  755. package/src/ontology/inference/index.ts +56 -36
  756. package/src/ontology/internal.ts +1 -0
  757. package/src/ontology/json-schema.ts +12 -0
  758. package/src/ontology/primitives.ts +91 -0
  759. package/src/ontology/query-capabilities.ts +136 -0
  760. package/src/ontology/refs.ts +33 -6
  761. package/src/ontology/registered.ts +22 -0
  762. package/src/ontology/registry.ts +14 -3
  763. package/src/ontology/tokens.ts +41 -2
  764. package/src/ontology/types.ts +28 -12
  765. package/src/ontology/user-ref.ts +120 -0
  766. package/src/ontology/validation/definition.ts +93 -0
  767. package/src/ontology/validation/index.ts +1 -0
  768. package/src/ontology/validation/normalize.ts +39 -3
  769. package/src/ontology/validation/properties.ts +109 -23
  770. package/src/ontology/validation/query.ts +44 -92
  771. package/src/ontology/validation/schema.ts +101 -23
  772. package/src/ontology/vector-profiles.ts +35 -0
  773. package/src/predicates/types.ts +43 -33
  774. package/src/projections/builders.ts +24 -3
  775. package/src/projections/validation.ts +15 -1
  776. package/src/queues/in-memory.ts +5 -0
  777. package/src/queues/index.ts +1 -0
  778. package/src/queues/types.ts +10 -0
  779. package/src/runtime/create.ts +7 -6
  780. package/src/runtime/host.ts +44 -10
  781. package/src/runtime/index.ts +3 -2
  782. package/src/runtime/internal.ts +3 -0
  783. package/src/runtime/resolve-definitions.ts +19 -1
  784. package/src/runtime/sixb.ts +25 -17
  785. package/src/runtime/types.ts +288 -478
  786. package/src/sandboxes/README.md +41 -0
  787. package/src/sandboxes/auth.ts +17 -0
  788. package/src/sandboxes/config.ts +37 -0
  789. package/src/sandboxes/configuration.ts +268 -0
  790. package/src/sandboxes/environment.ts +107 -0
  791. package/src/sandboxes/errors.ts +1 -1
  792. package/src/sandboxes/index.ts +15 -0
  793. package/src/sandboxes/sandbox.ts +42 -4
  794. package/src/shared/params/builders.ts +50 -0
  795. package/src/shared/params/types.ts +85 -0
  796. package/src/shared/params/user-refs.ts +48 -0
  797. package/src/shared/params/validation.ts +114 -0
  798. package/src/shares/compiler.ts +6 -16
  799. package/src/storage/action-runs/types.ts +1 -0
  800. package/src/storage/agents/in-memory.ts +25 -1
  801. package/src/storage/agents/index.ts +3 -0
  802. package/src/storage/agents/provider.ts +105 -0
  803. package/src/storage/agents/types.ts +54 -0
  804. package/src/storage/ai-cost/analytics.ts +59 -21
  805. package/src/storage/ai-cost/index.ts +1 -0
  806. package/src/storage/ai-cost/types.ts +19 -2
  807. package/src/storage/auth/in-memory/access-tokens.ts +5 -2
  808. package/src/storage/auth/in-memory/auth-storage.ts +5 -8
  809. package/src/storage/auth/in-memory/device-authorizations.ts +0 -2
  810. package/src/storage/auth/in-memory/sessions.ts +69 -1
  811. package/src/storage/auth/in-memory/shared.ts +13 -7
  812. package/src/storage/auth/index.ts +2 -1
  813. package/src/storage/auth/types.ts +57 -13
  814. package/src/storage/executions/provider.ts +24 -12
  815. package/src/storage/executions/types.ts +1 -0
  816. package/src/storage/executions/validation.ts +8 -4
  817. package/src/storage/file-upload-sessions/in-memory.ts +64 -113
  818. package/src/storage/file-upload-sessions/index.ts +1 -0
  819. package/src/storage/file-upload-sessions/provider.ts +258 -0
  820. package/src/storage/file-upload-sessions/types.ts +20 -1
  821. package/src/storage/file-upload-sessions/utils.ts +25 -9
  822. package/src/storage/index.ts +18 -3
  823. package/src/storage/objects/in-memory/query.ts +38 -14
  824. package/src/storage/objects/in-memory/read-scope.ts +9 -2
  825. package/src/storage/objects/in-memory/read-source.ts +5 -0
  826. package/src/storage/objects/in-memory/selected-reader.ts +5 -1
  827. package/src/storage/objects/in-memory/storage.ts +19 -1
  828. package/src/storage/objects/types.ts +2 -0
  829. package/src/storage/ontology/commits.ts +7 -2
  830. package/src/storage/ontology/in-memory/index.ts +20 -0
  831. package/src/storage/ontology/in-memory/materializations.ts +19 -34
  832. package/src/storage/ontology/in-memory/shared-state.ts +9 -0
  833. package/src/storage/ontology/in-memory/vector-indexing.ts +179 -0
  834. package/src/storage/ontology/in-memory/vectors.ts +73 -0
  835. package/src/storage/ontology/index.ts +14 -0
  836. package/src/storage/ontology/provider-header-validation.ts +57 -0
  837. package/src/storage/ontology/provider-work.ts +15 -3
  838. package/src/storage/ontology/provider.ts +59 -1
  839. package/src/storage/ontology/vector-indexing.ts +98 -0
  840. package/src/storage/ontology/vectors.ts +48 -0
  841. package/src/storage/operation-scope.ts +2 -0
  842. package/src/storage/types.ts +3 -1
  843. package/src/storage/workflow-interventions/index.ts +0 -1
  844. package/src/storage/workflow-interventions/types.ts +5 -9
  845. package/src/testing/action-execution.ts +13 -3
  846. package/src/testing/agent-storage-contract.ts +246 -0
  847. package/src/testing/ai-cost-storage-contract.ts +134 -0
  848. package/src/testing/auth-storage-contract.ts +149 -62
  849. package/src/testing/execution-storage-contract.ts +1 -2
  850. package/src/testing/execution.ts +4 -7
  851. package/src/testing/file-upload-session-storage-contract.ts +335 -0
  852. package/src/testing/index.ts +8 -0
  853. package/src/testing/materializer-storage-contract.ts +86 -4
  854. package/src/testing/object-query-contract.ts +162 -27
  855. package/src/testing/object-read-scope-contract.ts +1 -5
  856. package/src/testing/ontology-contract-fixture.ts +23 -3
  857. package/src/testing/ontology-storage-contract.ts +58 -0
  858. package/src/testing/queues-contract.ts +31 -0
  859. package/src/testing/sandboxes-contract.ts +27 -0
  860. package/src/testing/workflow-intervention-storage-contract.ts +203 -0
  861. package/src/webhooks/types.ts +2 -2
  862. package/src/workflows/failure.ts +10 -4
  863. package/src/workflows/run-dispatch.ts +12 -1
  864. package/src/workflows/snapshot.ts +16 -7
  865. package/src/workflows/types.ts +2 -2
  866. package/src/workflows/validation.ts +2 -2
  867. package/dist/chunk-01kj2pbh.js.map +0 -19
  868. package/dist/chunk-5hz0fnca.js.map +0 -12
  869. package/dist/chunk-653vwrzr.js.map +0 -10
  870. package/dist/chunk-7apz6hg4.js.map +0 -10
  871. package/dist/chunk-7bs40fe1.js.map +0 -12
  872. package/dist/chunk-860dwwy0.js.map +0 -14
  873. package/dist/chunk-93csa55g.js.map +0 -11
  874. package/dist/chunk-a0e6x5hd.js.map +0 -14
  875. package/dist/chunk-aa6z4a19.js.map +0 -12
  876. package/dist/chunk-ap0g1g74.js.map +0 -11
  877. package/dist/chunk-awbhdqyc.js.map +0 -10
  878. package/dist/chunk-b19g04jk.js.map +0 -11
  879. package/dist/chunk-dz5h08xv.js.map +0 -25
  880. package/dist/chunk-f0rwz2vh.js.map +0 -11
  881. package/dist/chunk-f4w3yp4f.js.map +0 -12
  882. package/dist/chunk-ftv470j8.js.map +0 -45
  883. package/dist/chunk-g00bfdq6.js.map +0 -43
  884. package/dist/chunk-gq8vhakp.js.map +0 -44
  885. package/dist/chunk-gqh45d2n.js.map +0 -15
  886. package/dist/chunk-gqm76kse.js.map +0 -58
  887. package/dist/chunk-jsy70480.js.map +0 -15
  888. package/dist/chunk-mrp7k0pw.js.map +0 -10
  889. package/dist/chunk-ms2tmn1k.js.map +0 -17
  890. package/dist/chunk-rb1xx120.js.map +0 -11
  891. package/dist/chunk-sepyxgpc.js.map +0 -15
  892. package/dist/chunk-yv79ncbv.js.map +0 -10
  893. package/dist/chunk-z0271qkp.js.map +0 -15
  894. package/dist/chunk-z3y411fq.js +0 -99
  895. package/dist/chunk-z3y411fq.js.map +0 -11
  896. /package/dist/{chunk-1yefycb1.js.map → chunk-2hbhn1ff.js.map} +0 -0
  897. /package/dist/{chunk-wjasrj67.js.map → chunk-3qpcrcj8.js.map} +0 -0
  898. /package/dist/{chunk-0y39rgsb.js.map → chunk-4tnrzqqh.js.map} +0 -0
  899. /package/dist/{chunk-c5rkjrgp.js.map → chunk-7ytf06d3.js.map} +0 -0
  900. /package/dist/{chunk-cfvakeax.js.map → chunk-a69fkrtr.js.map} +0 -0
  901. /package/dist/{chunk-v2vcg0w6.js.map → chunk-cbn96bve.js.map} +0 -0
  902. /package/dist/{chunk-g6cke204.js.map → chunk-f85hpqnm.js.map} +0 -0
  903. /package/dist/{chunk-vsj3mdfj.js.map → chunk-fc5zfxy1.js.map} +0 -0
  904. /package/dist/{chunk-x9m9x2eq.js.map → chunk-jhyc777j.js.map} +0 -0
  905. /package/dist/{chunk-17kfctj6.js.map → chunk-m8zkvep1.js.map} +0 -0
  906. /package/dist/{chunk-9qsh3p5y.js.map → chunk-rb143ggb.js.map} +0 -0
  907. /package/dist/{chunk-92vk7gta.js.map → chunk-vn3yh259.js.map} +0 -0
  908. /package/dist/{chunk-g91qxjj0.js.map → chunk-w9bp61e7.js.map} +0 -0
  909. /package/dist/{chunk-1824gssz.js.map → chunk-y487ywrv.js.map} +0 -0
  910. /package/dist/{chunk-358caqf5.js.map → chunk-znw0zvy4.js.map} +0 -0
@@ -37,6 +37,24 @@ function sessionInput(
37
37
  }
38
38
  }
39
39
 
40
+ function bearerSessionInput(id: string) {
41
+ return {
42
+ id,
43
+ projectId,
44
+ userId: "usr_1",
45
+ strategyId: "magic-link",
46
+ audience: "atlas" as const,
47
+ tokenHash: "access-1",
48
+ createdAt: at("2026-05-14T10:00:00.000Z"),
49
+ expiresAt: at("2026-06-14T10:00:00.000Z"),
50
+ bearer: {
51
+ clientName: "sixb CLI",
52
+ accessExpiresAt: at("2026-05-14T10:15:00.000Z"),
53
+ refreshTokenHash: "refresh-1",
54
+ },
55
+ }
56
+ }
57
+
40
58
  async function expectAuthError(
41
59
  promise: Promise<unknown>,
42
60
  code: AuthStorageErrorCode
@@ -851,8 +869,7 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
851
869
  projectId,
852
870
  name: "Local CLI",
853
871
  kind: "personal",
854
- subjectType: "user",
855
- subjectId: "usr_1",
872
+ subject: { type: "user", id: "usr_1" },
856
873
  tokenHash: "hash-personal",
857
874
  groupIds: ["commercial", "commercial", "finance"],
858
875
  createdAt: at("2026-05-14T10:01:00.000Z"),
@@ -893,8 +910,7 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
893
910
  projectId,
894
911
  name: "Sandbox agent",
895
912
  kind: "serviceAccount",
896
- subjectType: "serviceAccount",
897
- subjectId: "svc_ingest",
913
+ subject: { type: "serviceAccount", id: "svc_ingest" },
898
914
  tokenHash: "hash-service",
899
915
  createdAt: at("2026-05-14T10:04:00.000Z"),
900
916
  expiresAt: at("2026-05-21T10:04:00.000Z"),
@@ -902,8 +918,7 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
902
918
  await expect(
903
919
  storage.accessTokens.list({
904
920
  projectId,
905
- subjectType: "serviceAccount",
906
- subjectId: "svc_ingest",
921
+ subject: { type: "serviceAccount", id: "svc_ingest" },
907
922
  })
908
923
  ).resolves.toMatchObject({
909
924
  accessTokens: [{ id: "tok_service" }],
@@ -978,8 +993,7 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
978
993
  projectId,
979
994
  name: `Token by ${principal.type}`,
980
995
  kind: "personal",
981
- subjectType: "user",
982
- subjectId: "usr_creator",
996
+ subject: { type: "user", id: "usr_creator" },
983
997
  tokenHash: `hash-${tokenId}`,
984
998
  createdByPrincipal: principal,
985
999
  createdBySessionId: "ses_creator",
@@ -1019,8 +1033,7 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
1019
1033
  projectId,
1020
1034
  name: "Touch token",
1021
1035
  kind: "personal",
1022
- subjectType: "user",
1023
- subjectId: "usr_1",
1036
+ subject: { type: "user", id: "usr_1" },
1024
1037
  tokenHash: "hash-touch",
1025
1038
  createdAt: at("2026-05-14T10:00:00.000Z"),
1026
1039
  expiresAt: at("2026-05-21T10:00:00.000Z"),
@@ -1066,8 +1079,7 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
1066
1079
  projectId,
1067
1080
  name: `Token ${id}`,
1068
1081
  kind: "personal",
1069
- subjectType: "user",
1070
- subjectId: "usr_1",
1082
+ subject: { type: "user", id: "usr_1" },
1071
1083
  tokenHash: `hash-${id}`,
1072
1084
  createdAt: at(`2026-05-14T10:0${index}:00.000Z`),
1073
1085
  expiresAt: at(`2026-05-21T10:0${index}:00.000Z`),
@@ -1182,8 +1194,7 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
1182
1194
  projectId,
1183
1195
  name: "Bad kind",
1184
1196
  kind: "serviceAccount",
1185
- subjectType: "user",
1186
- subjectId: "usr_1",
1197
+ subject: { type: "user", id: "usr_1" },
1187
1198
  tokenHash: "hash",
1188
1199
  createdAt: at("2026-05-14T10:00:00.000Z"),
1189
1200
  expiresAt: at("2026-05-21T10:00:00.000Z"),
@@ -1196,8 +1207,7 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
1196
1207
  projectId,
1197
1208
  name: "Missing subject",
1198
1209
  kind: "serviceAccount",
1199
- subjectType: "serviceAccount",
1200
- subjectId: "svc_missing",
1210
+ subject: { type: "serviceAccount", id: "svc_missing" },
1201
1211
  tokenHash: "hash",
1202
1212
  createdAt: at("2026-05-14T10:00:00.000Z"),
1203
1213
  expiresAt: at("2026-05-21T10:00:00.000Z"),
@@ -1316,11 +1326,11 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
1316
1326
  })
1317
1327
  })
1318
1328
 
1319
- test("authorizes a device and atomically creates its one-time access token", async () => {
1329
+ test("authorizes a device and atomically starts its bearer session", async () => {
1320
1330
  await withStorage(async (storage) => {
1321
1331
  await createUser(storage)
1322
1332
  await storage.sessions.create({
1323
- id: "ses_device",
1333
+ id: "ses_browser",
1324
1334
  projectId,
1325
1335
  userId: "usr_1",
1326
1336
  strategyId: "magic-link",
@@ -1335,69 +1345,146 @@ export function runAuthStorageContractSuite<TStorage extends AuthStorage>(
1335
1345
  deviceCodeHash: "device-code-hash",
1336
1346
  userCode: "BCDF-HJKM",
1337
1347
  clientName: "sixb CLI",
1338
- tokenName: "codex",
1339
- tokenExpiresAt: at("2026-08-12T10:00:00.000Z"),
1340
1348
  createdAt: at("2026-05-14T10:00:00.000Z"),
1341
1349
  expiresAt: at("2026-05-14T10:10:00.000Z"),
1342
1350
  })
1343
1351
 
1344
1352
  await expect(
1345
1353
  storage.deviceAuthorizations.getByUserCode({ projectId, userCode: "BCDF-HJKM" })
1346
- ).resolves.toMatchObject({ id: "dva_1", status: "pending" })
1354
+ ).resolves.toMatchObject({ id: "dva_1", status: "pending", clientName: "sixb CLI" })
1347
1355
  await storage.deviceAuthorizations.approve({
1348
1356
  projectId,
1349
1357
  id: "dva_1",
1350
1358
  userId: "usr_1",
1351
- sessionId: "ses_device",
1359
+ sessionId: "ses_browser",
1352
1360
  approvedAt: at("2026-05-14T10:01:00.000Z"),
1353
1361
  })
1354
1362
 
1355
- const completed = await storage.completeDeviceAuthorization({
1356
- projectId,
1357
- id: "dva_1",
1358
- deviceCodeHash: "device-code-hash",
1359
- completedAt: at("2026-05-14T10:02:00.000Z"),
1360
- accessToken: {
1361
- id: "tok_device",
1362
- projectId,
1363
- name: "codex",
1364
- kind: "personal",
1365
- subjectType: "user",
1366
- subjectId: "usr_1",
1367
- tokenHash: "access-token-hash",
1368
- createdByPrincipal: { type: "user", id: "usr_1" },
1369
- createdBySessionId: "ses_device",
1370
- createdAt: at("2026-05-14T10:02:00.000Z"),
1371
- expiresAt: at("2026-08-12T10:00:00.000Z"),
1372
- },
1373
- })
1374
-
1375
- expect(completed.authorization).toMatchObject({ status: "consumed" })
1376
- expect(completed.accessToken).toMatchObject({ id: "tok_device", subjectId: "usr_1" })
1377
- await expectAuthError(
1363
+ const complete = (id: string) =>
1378
1364
  storage.completeDeviceAuthorization({
1379
1365
  projectId,
1380
1366
  id: "dva_1",
1381
1367
  deviceCodeHash: "device-code-hash",
1382
- completedAt: at("2026-05-14T10:03:00.000Z"),
1383
- accessToken: {
1384
- id: "tok_device_2",
1385
- projectId,
1386
- name: "codex",
1387
- kind: "personal",
1388
- subjectType: "user",
1389
- subjectId: "usr_1",
1390
- tokenHash: "access-token-hash-2",
1391
- createdBySessionId: "ses_device",
1392
- createdAt: at("2026-05-14T10:03:00.000Z"),
1393
- expiresAt: at("2026-08-12T10:00:00.000Z"),
1394
- },
1395
- }),
1396
- "invalid_device_authorization"
1397
- )
1368
+ completedAt: at("2026-05-14T10:02:00.000Z"),
1369
+ session: bearerSessionInput(id),
1370
+ })
1371
+ const completed = await complete("ses_cli")
1372
+
1373
+ expect(completed.authorization).toMatchObject({ status: "consumed" })
1374
+ expect(completed.session).toMatchObject({
1375
+ id: "ses_cli",
1376
+ userId: "usr_1",
1377
+ bearer: { clientName: "sixb CLI", refreshTokenHash: "refresh-1" },
1378
+ })
1379
+ await expectAuthError(complete("ses_cli_2"), "invalid_device_authorization")
1380
+ await expect(storage.sessions.getById({ projectId, id: "ses_cli_2" })).resolves.toBeNull()
1381
+ })
1382
+ })
1383
+
1384
+ test("keeps bearer and cookie session credentials apart", async () => {
1385
+ await withStorage(async (storage) => {
1386
+ await createUser(storage)
1387
+ await storage.sessions.create(bearerSessionInput("ses_cli"))
1388
+ await storage.sessions.create({
1389
+ ...bearerSessionInput("ses_cookie"),
1390
+ tokenHash: "cookie-hash",
1391
+ bearer: undefined,
1392
+ })
1393
+ const now = at("2026-05-14T10:05:00.000Z")
1394
+
1395
+ await expect(
1396
+ storage.sessions.findValidByAccessTokenHash({
1397
+ projectId,
1398
+ id: "ses_cli",
1399
+ tokenHash: "access-1",
1400
+ now,
1401
+ })
1402
+ ).resolves.toMatchObject({ id: "ses_cli" })
1403
+ // A bearer access token never works as a cookie secret, and a cookie never as a token.
1404
+ await expect(
1405
+ storage.sessions.findValidByTokenHash({
1406
+ projectId,
1407
+ id: "ses_cli",
1408
+ audience: "atlas",
1409
+ tokenHash: "access-1",
1410
+ now,
1411
+ })
1412
+ ).resolves.toBeNull()
1398
1413
  await expect(
1399
- storage.accessTokens.getById({ projectId, id: "tok_device_2" })
1414
+ storage.sessions.findValidByAccessTokenHash({
1415
+ projectId,
1416
+ id: "ses_cookie",
1417
+ tokenHash: "cookie-hash",
1418
+ now,
1419
+ })
1400
1420
  ).resolves.toBeNull()
1421
+ // The access token expires before its session.
1422
+ await expect(
1423
+ storage.sessions.findValidByAccessTokenHash({
1424
+ projectId,
1425
+ id: "ses_cli",
1426
+ tokenHash: "access-1",
1427
+ now: at("2026-05-14T10:15:00.000Z"),
1428
+ })
1429
+ ).resolves.toBeNull()
1430
+ })
1431
+ })
1432
+
1433
+ test("rotates refresh tokens, tolerates a lost response, and revokes on reuse", async () => {
1434
+ await withStorage(async (storage) => {
1435
+ await createUser(storage)
1436
+ await storage.sessions.create({
1437
+ ...bearerSessionInput("ses_cli"),
1438
+ absoluteExpiresAt: at("2026-06-20T00:00:00.000Z"),
1439
+ })
1440
+ const rotate = (refreshTokenHash: string, now: string, generation: number) =>
1441
+ storage.sessions.rotateRefreshToken({
1442
+ projectId,
1443
+ id: "ses_cli",
1444
+ refreshTokenHash,
1445
+ now: at(now),
1446
+ reuseGraceMs: 60_000,
1447
+ next: {
1448
+ tokenHash: `access-${generation}`,
1449
+ accessExpiresAt: new Date(at(now).getTime() + 15 * 60_000),
1450
+ refreshTokenHash: `refresh-${generation}`,
1451
+ expiresAt: at("2026-07-01T00:00:00.000Z"),
1452
+ },
1453
+ })
1454
+
1455
+ const rotated = await rotate("refresh-1", "2026-05-15T10:00:00.000Z", 2)
1456
+ expect(rotated).toMatchObject({
1457
+ status: "rotated",
1458
+ session: {
1459
+ tokenHash: "access-2",
1460
+ bearer: { refreshTokenHash: "refresh-2", previousRefreshTokenHash: "refresh-1" },
1461
+ },
1462
+ })
1463
+ // The idle deadline moves, but never past the absolute one.
1464
+ expect(rotated.status === "rotated" && rotated.session.expiresAt.toISOString()).toBe(
1465
+ "2026-06-20T00:00:00.000Z"
1466
+ )
1467
+ // The response was lost; the client retries with the token it still has.
1468
+ await expect(rotate("refresh-1", "2026-05-15T10:00:30.000Z", 3)).resolves.toMatchObject({
1469
+ status: "rotated",
1470
+ session: { bearer: { refreshTokenHash: "refresh-3" } },
1471
+ })
1472
+ // An unknown token fails without touching the session.
1473
+ await expect(rotate("guess", "2026-05-15T10:01:00.000Z", 4)).resolves.toEqual({
1474
+ status: "invalid",
1475
+ })
1476
+ expect((await storage.sessions.getById({ projectId, id: "ses_cli" }))?.revokedAt).toBe(
1477
+ undefined
1478
+ )
1479
+ // A replaced token after the grace window means a copy is in use: end the session.
1480
+ await expect(rotate("refresh-2", "2026-05-15T10:05:00.000Z", 4)).resolves.toEqual({
1481
+ status: "reused",
1482
+ })
1483
+ await expect(rotate("refresh-3", "2026-05-15T10:05:01.000Z", 5)).resolves.toEqual({
1484
+ status: "invalid",
1485
+ })
1486
+ const session = await storage.sessions.getById({ projectId, id: "ses_cli" })
1487
+ expect(session?.revokedAt).toBeInstanceOf(Date)
1401
1488
  })
1402
1489
  })
1403
1490
 
@@ -402,8 +402,7 @@ async function seedAuth(auth: AuthStorage): Promise<void> {
402
402
  projectId,
403
403
  name: "Service token",
404
404
  kind: "serviceAccount",
405
- subjectType: "serviceAccount",
406
- subjectId: "service-one",
405
+ subject: { type: "serviceAccount", id: "service-one" },
407
406
  tokenHash: "service-token-hash",
408
407
  createdAt,
409
408
  expiresAt,
@@ -2,7 +2,6 @@ import type { AuthorizationContext } from "../authorization"
2
2
  import { createTestingScope } from "../execution/scopes"
3
3
  import type { ExecutionScope } from "../execution/types"
4
4
  import { bindModelExecutionAttempt } from "../models/execution/binding"
5
- import type { OntologySource } from "../ontology"
6
5
  import { SixbHost, type SixbHostOptions } from "../runtime/host"
7
6
  import { isBoundSixb, type Sixb } from "../runtime/sixb"
8
7
 
@@ -26,12 +25,10 @@ export interface TestExecutionHost {
26
25
  withScope(scope: ExecutionScope): object
27
26
  }
28
27
 
29
- export function createTestSixb<
30
- TOntologySources extends readonly OntologySource[] = readonly OntologySource[],
31
- >(
32
- hostOrOptions: TestExecutionHost | SixbHostOptions<TOntologySources>,
28
+ export function createTestSixb(
29
+ hostOrOptions: TestExecutionHost | SixbHostOptions,
33
30
  options: TestExecutionOptions = {}
34
- ): Sixb<TOntologySources> {
31
+ ): Sixb {
35
32
  const host: TestExecutionHost =
36
33
  "withScope" in hostOrOptions ? hostOrOptions : new SixbHost(hostOrOptions)
37
34
  const sixb = host.withScope(
@@ -43,7 +40,7 @@ export function createTestSixb<
43
40
  ...(options.correlationId === undefined ? {} : { correlationId: options.correlationId }),
44
41
  })
45
42
  )
46
- if (!isBoundSixb<TOntologySources>(sixb)) {
43
+ if (!isBoundSixb(sixb)) {
47
44
  throw new Error("[Sixb] Test host did not return an execution-bound Sixb SDK.")
48
45
  }
49
46
  bindModelExecutionAttempt(sixb.models, {
@@ -0,0 +1,335 @@
1
+ import { describe, expect, test } from "bun:test"
2
+ import type { Principal } from "../auth"
3
+ import type { BlobUploadSession, FileRef, SignedBlobUploadPart } from "../blob-storage"
4
+ import {
5
+ type CreateFileUploadSessionInput,
6
+ DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS,
7
+ type FileUploadSessionStore,
8
+ } from "../storage/file-upload-sessions"
9
+
10
+ export interface FileUploadSessionStorageContractSuiteOptions<
11
+ TStorage extends FileUploadSessionStore = FileUploadSessionStore,
12
+ > {
13
+ readonly createStorage: () => TStorage | Promise<TStorage>
14
+ readonly cleanup?: (storage: TStorage) => void | Promise<void>
15
+ }
16
+
17
+ const HOUR_MS = 60 * 60 * 1000
18
+ const projectId = "file-upload-contract"
19
+ const principal: Principal = { type: "user", id: "usr_contract" }
20
+ const fileRef: FileRef = {
21
+ blobId: `blob_${"a".repeat(64)}`,
22
+ digest: `sha256:${"a".repeat(64)}`,
23
+ sizeBytes: 3,
24
+ fileName: "report.pdf",
25
+ }
26
+
27
+ /**
28
+ * Provider-neutral lifecycle, retention, and abandoned-upload contract for file upload
29
+ * sessions. Stores read their own clock, so fixtures place `expiresAt` relative to the
30
+ * real time instead of controlling it.
31
+ */
32
+ export function runFileUploadSessionStorageContractSuite<TStorage extends FileUploadSessionStore>(
33
+ label: string,
34
+ options: FileUploadSessionStorageContractSuiteOptions<TStorage>
35
+ ): void {
36
+ const withStorage = async (run: (storage: TStorage) => Promise<void>): Promise<void> => {
37
+ const storage = await options.createStorage()
38
+ try {
39
+ await run(storage)
40
+ } finally {
41
+ await options.cleanup?.(storage)
42
+ }
43
+ }
44
+
45
+ describe(label, () => {
46
+ test("round-trips every field, including provider fields it does not know", async () => {
47
+ await withStorage(async (storage) => {
48
+ // Provider-specific session fields must survive the JSON round-trip.
49
+ const providerUpload = { ...multipart("upload_roundtrip"), partReceipt: "etag" as const }
50
+ const input = sessionInput("upload_roundtrip", {
51
+ fileName: "report.pdf",
52
+ mediaType: "application/pdf",
53
+ logicalPath: "reports/q3.pdf",
54
+ expectedSizeBytes: 3,
55
+ expectedDigest: fileRef.digest,
56
+ providerUpload,
57
+ })
58
+ const created = await storage.create(input)
59
+
60
+ expect(created).toMatchObject({ status: "pending", principal })
61
+ const read = await storage.getForPrincipal("upload_roundtrip", principal)
62
+ expect(read).toEqual(created)
63
+ expect(read.providerUpload?.expiresAt).toBeInstanceOf(Date)
64
+ expect(read.providerUpload).toMatchObject({ partReceipt: "etag" })
65
+ })
66
+ })
67
+
68
+ test("hides a session from other principals and unknown ids", async () => {
69
+ await withStorage(async (storage) => {
70
+ await storage.create(sessionInput("upload_private"))
71
+
72
+ await expect(
73
+ storage.getForPrincipal("upload_private", { type: "user", id: "usr_other" })
74
+ ).rejects.toMatchObject({ reason: "not_found" })
75
+ await expect(storage.getForPrincipal("upload_missing", principal)).rejects.toMatchObject({
76
+ reason: "not_found",
77
+ })
78
+ })
79
+ })
80
+
81
+ test("rejects a duplicate id", async () => {
82
+ await withStorage(async (storage) => {
83
+ await storage.create(sessionInput("upload_duplicate"))
84
+ await expect(storage.create(sessionInput("upload_duplicate"))).rejects.toThrow(
85
+ "already exists"
86
+ )
87
+ })
88
+ })
89
+
90
+ test("keeps signed parts unique and ordered by part number", async () => {
91
+ await withStorage(async (storage) => {
92
+ await storage.create(
93
+ sessionInput("upload_parts", { providerUpload: multipart("upload_parts") })
94
+ )
95
+ // Insertion order differs from sorted order at every step, so dropping the sort fails.
96
+ await storage.addSignedPart("upload_parts", signedPart(3))
97
+ await storage.addSignedPart("upload_parts", signedPart(1))
98
+ await storage.addSignedPart("upload_parts", signedPart(2))
99
+ const updated = await storage.addSignedPart("upload_parts", signedPart(2, "replaced"))
100
+
101
+ expect(updated.signedParts.map((part) => [part.partNumber, part.url])).toEqual([
102
+ [1, "https://blob.test/part-1"],
103
+ [2, "https://blob.test/part-2-replaced"],
104
+ [3, "https://blob.test/part-3"],
105
+ ])
106
+ const read = await storage.getForPrincipal("upload_parts", principal)
107
+ expect(read.signedParts).toEqual(updated.signedParts)
108
+ expect(read.signedParts[0]?.expiresAt).toBeInstanceOf(Date)
109
+ })
110
+ })
111
+
112
+ test("does not lose a part signed concurrently with another", async () => {
113
+ await withStorage(async (storage) => {
114
+ await storage.create(
115
+ sessionInput("upload_race", { providerUpload: multipart("upload_race") })
116
+ )
117
+ await Promise.all(
118
+ [1, 2, 3, 4, 5].map((n) => storage.addSignedPart("upload_race", signedPart(n)))
119
+ )
120
+
121
+ const read = await storage.getForPrincipal("upload_race", principal)
122
+ expect(read.signedParts.map((part) => part.partNumber)).toEqual([1, 2, 3, 4, 5])
123
+ })
124
+ })
125
+
126
+ test("moves through markUploaded to one terminal state", async () => {
127
+ await withStorage(async (storage) => {
128
+ await storage.create(sessionInput("upload_done"))
129
+ const uploaded = await storage.markUploaded("upload_done", fileRef)
130
+ expect(uploaded).toMatchObject({ status: "pending", fileRef })
131
+
132
+ const completed = await storage.complete("upload_done", fileRef)
133
+ expect(completed.status).toBe("completed")
134
+ expect(completed.completedAt).toBeInstanceOf(Date)
135
+ await expect(storage.complete("upload_done", fileRef)).rejects.toMatchObject({
136
+ reason: "already_completed",
137
+ })
138
+ await expect(storage.abort("upload_done")).rejects.toMatchObject({
139
+ reason: "already_completed",
140
+ })
141
+
142
+ await storage.create(sessionInput("upload_cancelled"))
143
+ expect((await storage.abort("upload_cancelled")).status).toBe("aborted")
144
+ await expect(storage.abort("upload_cancelled")).rejects.toMatchObject({
145
+ reason: "already_aborted",
146
+ })
147
+ })
148
+ })
149
+
150
+ test("checks expiry at the gate only, so a request that passed it can finish", async () => {
151
+ await withStorage(async (storage) => {
152
+ // Provider uploads keep both rows unreapable while pending.
153
+ for (const id of ["upload_late", "upload_abort_late"]) {
154
+ await storage.create(
155
+ sessionInput(id, { expiresAt: ago(HOUR_MS), providerUpload: multipart(id) })
156
+ )
157
+ }
158
+
159
+ await expect(storage.getForPrincipal("upload_late", principal)).rejects.toMatchObject({
160
+ reason: "expired",
161
+ })
162
+ // Transitions run after slow blob I/O that began before `expiresAt`.
163
+ await storage.addSignedPart("upload_late", signedPart(1))
164
+ await storage.markUploaded("upload_late", fileRef)
165
+ expect((await storage.complete("upload_late", fileRef)).status).toBe("completed")
166
+ expect((await storage.abort("upload_abort_late")).status).toBe("aborted")
167
+ })
168
+ })
169
+
170
+ test("lists abandoned sessions for one project only", async () => {
171
+ await withStorage(async (storage) => {
172
+ await storage.create(
173
+ sessionInput("upload_ours", {
174
+ expiresAt: ago(HOUR_MS),
175
+ providerUpload: multipart("ours"),
176
+ })
177
+ )
178
+ await storage.create(
179
+ sessionInput("upload_theirs", {
180
+ projectId: "other-project",
181
+ expiresAt: ago(HOUR_MS),
182
+ providerUpload: multipart("theirs"),
183
+ })
184
+ )
185
+
186
+ const ids = (await storage.listAbandoned({ projectId, now: new Date(), limit: 10 })).map(
187
+ (session) => session.id
188
+ )
189
+ expect(ids).toEqual(["upload_ours"])
190
+ })
191
+ })
192
+
193
+ test("never deletes an abandoned session, on read or on cleanup", async () => {
194
+ await withStorage(async (storage) => {
195
+ await storage.create(
196
+ sessionInput("upload_abandoned", {
197
+ expiresAt: ago(HOUR_MS),
198
+ providerUpload: multipart("upload_abandoned"),
199
+ })
200
+ )
201
+
202
+ // Reading an expired session must not delete it: nothing would abort its provider upload.
203
+ await expect(storage.getForPrincipal("upload_abandoned", principal)).rejects.toMatchObject({
204
+ reason: "expired",
205
+ })
206
+ expect(await storage.cleanupExpired(later(HOUR_MS))).toBe(0)
207
+ expect(
208
+ (await storage.listAbandoned({ projectId, now: new Date(), limit: 10 })).map(
209
+ (session) => session.id
210
+ )
211
+ ).toEqual(["upload_abandoned"])
212
+ })
213
+ })
214
+
215
+ test("lists only abandoned sessions, oldest expiry first, within the limit", async () => {
216
+ await withStorage(async (storage) => {
217
+ await storage.create(
218
+ sessionInput("upload_newer", { expiresAt: ago(HOUR_MS), providerUpload: multipart("n") })
219
+ )
220
+ await storage.create(
221
+ sessionInput("upload_older", {
222
+ expiresAt: ago(2 * HOUR_MS),
223
+ providerUpload: multipart("o"),
224
+ })
225
+ )
226
+ await storage.create(sessionInput("upload_live", { providerUpload: multipart("live") }))
227
+ await storage.create(sessionInput("upload_server", { expiresAt: ago(HOUR_MS) }))
228
+ await storage.create(
229
+ sessionInput("upload_aborted", {
230
+ expiresAt: ago(HOUR_MS),
231
+ providerUpload: multipart("a"),
232
+ })
233
+ )
234
+ await storage.abort("upload_aborted")
235
+
236
+ const ids = async (limit: number) =>
237
+ (await storage.listAbandoned({ projectId, now: new Date(), limit })).map(
238
+ (session) => session.id
239
+ )
240
+ expect(await ids(10)).toEqual(["upload_older", "upload_newer"])
241
+ expect(await ids(1)).toEqual(["upload_older"])
242
+ const [oldest] = await storage.listAbandoned({ projectId, now: new Date(), limit: 1 })
243
+ expect(oldest?.providerUpload?.expiresAt).toBeInstanceOf(Date)
244
+ await expect(
245
+ storage.listAbandoned({ projectId, now: new Date(), limit: 0 })
246
+ ).rejects.toThrow("positive integer")
247
+ })
248
+ })
249
+
250
+ test("reaps expired sessions without a provider upload and terminal ones after their TTL", async () => {
251
+ await withStorage(async (storage) => {
252
+ await storage.create(sessionInput("upload_live"))
253
+ await storage.create(sessionInput("upload_finished"))
254
+ await storage.complete("upload_finished", fileRef)
255
+ // Created last: a store may reap opportunistically on `create`.
256
+ await storage.create(sessionInput("upload_expired", { expiresAt: ago(HOUR_MS) }))
257
+
258
+ expect(await storage.cleanupExpired(new Date())).toBe(1)
259
+ await expect(storage.getForPrincipal("upload_expired", principal)).rejects.toMatchObject({
260
+ reason: "not_found",
261
+ })
262
+ // A completed session outlives its expiry so a retried `complete` stays idempotent.
263
+ expect((await storage.getForPrincipal("upload_finished", principal)).status).toBe(
264
+ "completed"
265
+ )
266
+
267
+ expect(
268
+ await storage.cleanupExpired(later(DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS + 60_000))
269
+ ).toBe(1)
270
+ await expect(storage.getForPrincipal("upload_finished", principal)).rejects.toMatchObject({
271
+ reason: "not_found",
272
+ })
273
+ expect((await storage.getForPrincipal("upload_live", principal)).status).toBe("pending")
274
+ })
275
+ })
276
+
277
+ test("reaps an abandoned session once it has been aborted", async () => {
278
+ await withStorage(async (storage) => {
279
+ await storage.create(
280
+ sessionInput("upload_swept", { expiresAt: ago(HOUR_MS), providerUpload: multipart("s") })
281
+ )
282
+ await storage.abort("upload_swept")
283
+
284
+ expect(await storage.listAbandoned({ projectId, now: new Date(), limit: 10 })).toEqual([])
285
+ expect(await storage.cleanupExpired(new Date())).toBe(0)
286
+ expect(
287
+ await storage.cleanupExpired(later(DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS + 60_000))
288
+ ).toBe(1)
289
+ })
290
+ })
291
+ })
292
+ }
293
+
294
+ function sessionInput(
295
+ id: string,
296
+ overrides: Partial<CreateFileUploadSessionInput> = {}
297
+ ): CreateFileUploadSessionInput {
298
+ return {
299
+ id,
300
+ projectId,
301
+ principal,
302
+ strategy: overrides.providerUpload?.strategy ?? "server",
303
+ expiresAt: later(HOUR_MS),
304
+ ...overrides,
305
+ }
306
+ }
307
+
308
+ function multipart(uploadId: string): BlobUploadSession {
309
+ return {
310
+ strategy: "multipart",
311
+ uploadId,
312
+ partSizeBytes: 5 * 1024 * 1024,
313
+ expiresAt: later(HOUR_MS),
314
+ stagingKey: `staging/${uploadId}`,
315
+ providerUploadId: `provider-${uploadId}`,
316
+ }
317
+ }
318
+
319
+ function signedPart(partNumber: number, suffix?: string): SignedBlobUploadPart {
320
+ return {
321
+ partNumber,
322
+ method: "PUT",
323
+ url: `https://blob.test/part-${partNumber}${suffix ? `-${suffix}` : ""}`,
324
+ headers: {},
325
+ expiresAt: later(HOUR_MS),
326
+ }
327
+ }
328
+
329
+ function ago(ms: number): Date {
330
+ return new Date(Date.now() - ms)
331
+ }
332
+
333
+ function later(ms: number): Date {
334
+ return new Date(Date.now() + ms)
335
+ }