@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
@@ -1,9 +1,4 @@
1
- import {
2
- type AiModelCallUsage,
3
- type AiModelCallUsageRecord,
4
- aggregateAiModelCallUsage,
5
- normalizeAiModelCallUsage,
6
- } from "../ai-usage"
1
+ import { type AiModelCallUsageRecord, normalizeAiModelCallUsage } from "../ai-usage"
7
2
  import type {
8
3
  AiAccountingAgentBreakdown,
9
4
  AiAccountingAggregate,
@@ -65,6 +60,7 @@ export interface AiAccountingAggregateFragment {
65
60
  readonly modelCallCount: string
66
61
  readonly usage: {
67
62
  readonly reportedCallCount: string
63
+ readonly completeCallCount: string
68
64
  readonly inputTokens: AiAccountingUsageMeterFragment
69
65
  readonly outputTokens: AiAccountingUsageMeterFragment
70
66
  readonly uncachedInputTokens: AiAccountingUsageMeterFragment
@@ -358,9 +354,21 @@ export function aiAccountingBucketStart(at: Date, bucket: AiAccountingBucket): D
358
354
  function aggregateAccountingItems(
359
355
  items: readonly AiAccountingRecordSetItem[]
360
356
  ): AiAccountingAggregate {
357
+ const value = aggregateFragmentAccumulator()
358
+ value.modelCallCount = BigInt(items.length)
359
+ for (const item of items) {
360
+ const usage = normalizeAiModelCallUsage(item.usage.usage)
361
+ if (usage.reportingStatus !== "unavailable") value.reportedUsageCallCount += 1n
362
+ if (usage.reportingStatus === "complete") value.completeUsageCallCount += 1n
363
+ for (const field of AGGREGATE_USAGE_FIELDS) {
364
+ if (usage[field] === undefined) continue
365
+ value.usage[field].presentCallCount += 1n
366
+ value.usage[field].total += BigInt(usage[field])
367
+ }
368
+ }
361
369
  return {
362
370
  modelCallCount: items.length,
363
- usage: aggregateAiModelCallUsage(items.map((item) => item.usage.usage)),
371
+ ...finishAggregateUsage(value),
364
372
  costs: aggregateCosts(items),
365
373
  }
366
374
  }
@@ -405,6 +413,7 @@ type AggregateUsageField = (typeof AGGREGATE_USAGE_FIELDS)[number]
405
413
  interface AggregateFragmentAccumulator {
406
414
  modelCallCount: bigint
407
415
  reportedUsageCallCount: bigint
416
+ completeUsageCallCount: bigint
408
417
  usage: Record<AggregateUsageField, { presentCallCount: bigint; total: bigint }>
409
418
  amounts: Map<string, bigint>
410
419
  ratedCallCount: bigint
@@ -416,6 +425,7 @@ function aggregateFragmentAccumulator(): AggregateFragmentAccumulator {
416
425
  return {
417
426
  modelCallCount: 0n,
418
427
  reportedUsageCallCount: 0n,
428
+ completeUsageCallCount: 0n,
419
429
  usage: Object.fromEntries(
420
430
  AGGREGATE_USAGE_FIELDS.map((field) => [field, { presentCallCount: 0n, total: 0n }])
421
431
  ) as AggregateFragmentAccumulator["usage"],
@@ -446,6 +456,10 @@ function appendAggregateFragment(
446
456
  fragment.usage.reportedCallCount,
447
457
  "reported usage call count"
448
458
  )
459
+ target.completeUsageCallCount += naturalBigInt(
460
+ fragment.usage.completeCallCount,
461
+ "complete usage call count"
462
+ )
449
463
  for (const field of AGGREGATE_USAGE_FIELDS) {
450
464
  const source = fragment.usage[field]
451
465
  const presentCallCount = naturalBigInt(source.presentCallCount, `${field} call count`)
@@ -473,6 +487,7 @@ function finishAggregateFragment(value: AggregateFragmentAccumulator): AiAccount
473
487
  if (
474
488
  classifiedCallCount !== value.modelCallCount ||
475
489
  value.reportedUsageCallCount > value.modelCallCount ||
490
+ value.completeUsageCallCount > value.reportedUsageCallCount ||
476
491
  AGGREGATE_USAGE_FIELDS.some(
477
492
  (field) => value.usage[field].presentCallCount > value.modelCallCount
478
493
  )
@@ -480,22 +495,9 @@ function finishAggregateFragment(value: AggregateFragmentAccumulator): AiAccount
480
495
  throw new TypeError("[Sixb] AI accounting SQL aggregate counts are inconsistent.")
481
496
  }
482
497
  const modelCallCount = safeAggregateNumber(value.modelCallCount, "model-call count")
483
- const usageInput: Partial<Record<AggregateUsageField, number>> = {}
484
- if (value.modelCallCount > 0n) {
485
- for (const field of AGGREGATE_USAGE_FIELDS) {
486
- const aggregate = value.usage[field]
487
- if (aggregate.presentCallCount === value.modelCallCount) {
488
- usageInput[field] = safeAggregateNumber(aggregate.total, field)
489
- }
490
- }
491
- }
492
- let usage: AiModelCallUsage = normalizeAiModelCallUsage(usageInput)
493
- if (usage.reportingStatus === "unavailable" && value.reportedUsageCallCount > 0n) {
494
- usage = { ...usage, reportingStatus: "partial" }
495
- }
496
498
  return {
497
499
  modelCallCount,
498
- usage,
500
+ ...finishAggregateUsage(value),
499
501
  costs: {
500
502
  amounts: [...value.amounts]
501
503
  .sort(([left], [right]) => left.localeCompare(right))
@@ -510,6 +512,42 @@ function finishAggregateFragment(value: AggregateFragmentAccumulator): AiAccount
510
512
  }
511
513
  }
512
514
 
515
+ function finishAggregateUsage(
516
+ value: AggregateFragmentAccumulator
517
+ ): Pick<AiAccountingAggregate, "usage" | "usageCoverage"> {
518
+ const counts: Partial<Record<AggregateUsageField | "totalTokens", number>> = {}
519
+ const fieldCallCounts = {} as Record<AggregateUsageField, number>
520
+ for (const field of AGGREGATE_USAGE_FIELDS) {
521
+ const aggregate = value.usage[field]
522
+ fieldCallCounts[field] = safeAggregateNumber(aggregate.presentCallCount, `${field} call count`)
523
+ if (aggregate.presentCallCount > 0n) {
524
+ counts[field] = safeAggregateNumber(aggregate.total, field)
525
+ }
526
+ }
527
+ // Only the top-level meters contribute: cache/reasoning partitions overlap them.
528
+ if (counts.inputTokens !== undefined || counts.outputTokens !== undefined) {
529
+ counts.totalTokens = safeAggregateNumber(
530
+ value.usage.inputTokens.total + value.usage.outputTokens.total,
531
+ "totalTokens"
532
+ )
533
+ }
534
+ return {
535
+ usage: {
536
+ ...counts,
537
+ reportingStatus:
538
+ value.reportedUsageCallCount === 0n
539
+ ? "unavailable"
540
+ : value.completeUsageCallCount === value.modelCallCount
541
+ ? "complete"
542
+ : "partial",
543
+ },
544
+ usageCoverage: {
545
+ completeCallCount: safeAggregateNumber(value.completeUsageCallCount, "complete call count"),
546
+ fieldCallCounts,
547
+ },
548
+ }
549
+ }
550
+
513
551
  function naturalBigInt(value: string, field: string): bigint {
514
552
  if (!/^(0|[1-9]\d*)$/.test(value)) {
515
553
  throw new TypeError(`[Sixb] AI accounting SQL ${field} must be a natural integer.`)
@@ -14,6 +14,7 @@ export type {
14
14
  AiAccountingOverview,
15
15
  AiAccountingRange,
16
16
  AiAccountingTimeBucket,
17
+ AiAccountingUsage,
17
18
  AiAccountingWorkflowBreakdown,
18
19
  AiBillableMeter,
19
20
  AiBillingIdentity,
@@ -1,4 +1,8 @@
1
- import type { AiModelCallUsageRecord } from "../ai-usage"
1
+ import type {
2
+ AiModelCallUsageInput,
3
+ AiModelCallUsageRecord,
4
+ AiUsageReportingStatus,
5
+ } from "../ai-usage"
2
6
 
3
7
  /** Token meters supported by deterministic local rate cards. */
4
8
  export type AiBillableMeter =
@@ -141,9 +145,22 @@ export interface ListAiModelCallAccountingInput extends AiAccountingRange {
141
145
  readonly offset?: number
142
146
  }
143
147
 
148
+ /** Observed meter sums. Unreported meters are absent; incomplete sums are lower bounds. */
149
+ export interface AiAccountingUsage extends AiModelCallUsageInput {
150
+ /** Sum of available input and output counts, including one-sided reports. */
151
+ readonly totalTokens?: number
152
+ /** Complete only when every call reports both input and output; details have separate coverage. */
153
+ readonly reportingStatus: AiUsageReportingStatus
154
+ }
155
+
144
156
  export interface AiAccountingAggregate {
145
157
  readonly modelCallCount: number
146
- readonly usage: AiModelCallUsageRecord["usage"]
158
+ readonly usage: AiAccountingUsage
159
+ readonly usageCoverage: {
160
+ /** Calls reporting both inputTokens and outputTokens. */
161
+ readonly completeCallCount: number
162
+ readonly fieldCallCounts: Readonly<Record<keyof AiModelCallUsageInput, number>>
163
+ }
147
164
  readonly costs: AiCostSummary
148
165
  }
149
166
 
@@ -38,8 +38,11 @@ export class InMemoryAuthAccessTokenStore implements AuthAccessTokenStore {
38
38
  const rows = [...this.state.accessTokens.values()]
39
39
  .filter((token) => token.projectId === input.projectId)
40
40
  .filter((token) => input.kind === undefined || token.kind === input.kind)
41
- .filter((token) => input.subjectType === undefined || token.subjectType === input.subjectType)
42
- .filter((token) => input.subjectId === undefined || token.subjectId === input.subjectId)
41
+ .filter(
42
+ (token) =>
43
+ input.subject === undefined ||
44
+ (token.subject.type === input.subject.type && token.subject.id === input.subject.id)
45
+ )
43
46
  .filter((token) => input.includeRevoked || !token.revokedAt)
44
47
  .sort((a, b) => compareByCreatedAt(a, b, order))
45
48
  const page = rows.slice(offset, input.limit === undefined ? undefined : offset + input.limit)
@@ -30,7 +30,6 @@ import {
30
30
  cloneRecord,
31
31
  consumeMagicLinkRecord,
32
32
  consumeOidcAttemptRecord,
33
- createAccessTokenRecord,
34
33
  createAuthStorageState,
35
34
  createSessionRecord,
36
35
  deviceAuthorizationKey,
@@ -138,24 +137,22 @@ export class InMemoryAuthStorage implements AuthStorage {
138
137
  )
139
138
  }
140
139
  if (
141
- input.accessToken.projectId !== input.projectId ||
142
- input.accessToken.subjectType !== "user" ||
143
- input.accessToken.subjectId !== authorization.approvedUserId ||
144
- input.accessToken.createdBySessionId !== authorization.approvedSessionId
140
+ input.session.projectId !== input.projectId ||
141
+ input.session.userId !== authorization.approvedUserId
145
142
  ) {
146
143
  throw new AuthStorageError(
147
144
  "invalid_device_authorization",
148
- "[Sixb] Device access token is invalid."
145
+ "[Sixb] Device session is invalid."
149
146
  )
150
147
  }
151
- const accessToken = createAccessTokenRecord(this.state, input.accessToken)
148
+ const session = createSessionRecord(this.state, input.session)
152
149
  const consumed = {
153
150
  ...authorization,
154
151
  status: "consumed" as const,
155
152
  consumedAt: new Date(input.completedAt),
156
153
  }
157
154
  this.state.deviceAuthorizations.set(key, cloneRecord(consumed))
158
- return { authorization: cloneRecord(consumed), accessToken: cloneRecord(accessToken) }
155
+ return { authorization: cloneRecord(consumed), session: cloneRecord(session) }
159
156
  }
160
157
 
161
158
  async completeMagicLinkSignIn(
@@ -45,8 +45,6 @@ export class InMemoryAuthDeviceAuthorizationStore implements AuthDeviceAuthoriza
45
45
  deviceCodeHash: assertNonEmpty(input.deviceCodeHash, "Device code hash"),
46
46
  userCode: assertNonEmpty(input.userCode, "User code"),
47
47
  clientName: assertNonEmpty(input.clientName, "Client name"),
48
- tokenName: assertNonEmpty(input.tokenName, "Token name"),
49
- tokenExpiresAt: new Date(input.tokenExpiresAt),
50
48
  status: "pending",
51
49
  createdAt: new Date(input.createdAt),
52
50
  expiresAt: new Date(input.expiresAt),
@@ -1,6 +1,11 @@
1
1
  import type { AuthSessionAudience } from "../../../auth/audience"
2
2
  import { AuthStorageError } from "../errors"
3
- import type { AuthSessionStore, CreateAuthSessionInput, SessionRecord } from "../types"
3
+ import type {
4
+ AuthSessionStore,
5
+ CreateAuthSessionInput,
6
+ RotateSessionRefreshTokenResult,
7
+ SessionRecord,
8
+ } from "../types"
4
9
  import type { AuthStorageState } from "./shared"
5
10
  import {
6
11
  cloneDate,
@@ -73,6 +78,7 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
73
78
  const session = this.state.sessions.get(sessionKey(params.projectId, params.id))
74
79
  if (
75
80
  !session ||
81
+ session.bearer ||
76
82
  session.audience !== params.audience ||
77
83
  session.tokenHash !== params.tokenHash ||
78
84
  !isActiveSession(session, params.now)
@@ -83,6 +89,67 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
83
89
  return cloneRecord(session)
84
90
  }
85
91
 
92
+ async findValidByAccessTokenHash(params: {
93
+ readonly projectId: string
94
+ readonly id: string
95
+ readonly tokenHash: string
96
+ readonly now: Date
97
+ }): Promise<SessionRecord | null> {
98
+ const session = this.state.sessions.get(sessionKey(params.projectId, params.id))
99
+ if (
100
+ !session?.bearer ||
101
+ session.tokenHash !== params.tokenHash ||
102
+ session.bearer.accessExpiresAt <= params.now ||
103
+ !isActiveSession(session, params.now)
104
+ ) {
105
+ return null
106
+ }
107
+
108
+ return cloneRecord(session)
109
+ }
110
+
111
+ async rotateRefreshToken(
112
+ params: Parameters<AuthSessionStore["rotateRefreshToken"]>[0]
113
+ ): Promise<RotateSessionRefreshTokenResult> {
114
+ const key = sessionKey(params.projectId, params.id)
115
+ const session = this.state.sessions.get(key)
116
+ if (!session?.bearer || !isActiveSession(session, params.now)) {
117
+ return { status: "invalid" }
118
+ }
119
+
120
+ const { bearer } = session
121
+ const replacedRecently =
122
+ bearer.previousRefreshTokenHash === params.refreshTokenHash &&
123
+ bearer.refreshedAt !== undefined &&
124
+ params.now.getTime() - bearer.refreshedAt.getTime() <= params.reuseGraceMs
125
+ if (bearer.refreshTokenHash !== params.refreshTokenHash && !replacedRecently) {
126
+ if (bearer.previousRefreshTokenHash !== params.refreshTokenHash) {
127
+ return { status: "invalid" }
128
+ }
129
+ this.state.sessions.set(key, cloneRecord({ ...session, revokedAt: cloneDate(params.now) }))
130
+ return { status: "reused" }
131
+ }
132
+
133
+ const requestedExpiresAt = session.absoluteExpiresAt
134
+ ? new Date(Math.min(params.next.expiresAt.getTime(), session.absoluteExpiresAt.getTime()))
135
+ : params.next.expiresAt
136
+ const next: SessionRecord = {
137
+ ...session,
138
+ tokenHash: params.next.tokenHash,
139
+ expiresAt: new Date(Math.max(session.expiresAt.getTime(), requestedExpiresAt.getTime())),
140
+ lastSeenAt: cloneDate(params.now),
141
+ bearer: {
142
+ clientName: bearer.clientName,
143
+ accessExpiresAt: cloneDate(params.next.accessExpiresAt),
144
+ refreshTokenHash: params.next.refreshTokenHash,
145
+ previousRefreshTokenHash: bearer.refreshTokenHash,
146
+ refreshedAt: cloneDate(params.now),
147
+ },
148
+ }
149
+ this.state.sessions.set(key, cloneRecord(next))
150
+ return { status: "rotated", session: cloneRecord(next) }
151
+ }
152
+
86
153
  async renewIfValid(params: {
87
154
  readonly projectId: string
88
155
  readonly id: string
@@ -95,6 +162,7 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
95
162
  const session = this.state.sessions.get(key)
96
163
  if (
97
164
  !session ||
165
+ session.bearer ||
98
166
  session.audience !== params.audience ||
99
167
  session.tokenHash !== params.tokenHash ||
100
168
  !isActiveSession(session, params.now)
@@ -320,6 +320,13 @@ export function createSessionRecord(
320
320
  absoluteExpiresAt: input.absoluteExpiresAt ? cloneDate(input.absoluteExpiresAt) : undefined,
321
321
  userAgent: input.userAgent,
322
322
  ipAddress: input.ipAddress,
323
+ bearer: input.bearer
324
+ ? {
325
+ clientName: assertNonEmpty(input.bearer.clientName, "Session client name"),
326
+ accessExpiresAt: cloneDate(input.bearer.accessExpiresAt),
327
+ refreshTokenHash: assertNonEmpty(input.bearer.refreshTokenHash, "Refresh token hash"),
328
+ }
329
+ : undefined,
323
330
  }
324
331
 
325
332
  state.sessions.set(sessionKey(projectId, id), cloneRecord(session))
@@ -398,11 +405,11 @@ export function createAccessTokenRecord(
398
405
  const id = assertNonEmpty(input.id, "Access token id")
399
406
  const projectId = assertNonEmpty(input.projectId, "Project id")
400
407
  const name = assertNonEmpty(input.name, "Access token name")
401
- const subjectId = assertNonEmpty(input.subjectId, "Access token subject id")
408
+ const subjectId = assertNonEmpty(input.subject.id, "Access token subject id")
402
409
  const tokenHash = assertNonEmpty(input.tokenHash, "Access token hash")
403
410
 
404
- assertAccessTokenSubject(input.kind, input.subjectType)
405
- assertAccessTokenSubjectExists(state, projectId, input.subjectType, subjectId)
411
+ assertAccessTokenSubject(input.kind, input.subject.type)
412
+ assertAccessTokenSubjectExists(state, projectId, input.subject.type, subjectId)
406
413
 
407
414
  const key = accessTokenKey(projectId, id)
408
415
  if (state.accessTokens.has(key)) {
@@ -417,8 +424,7 @@ export function createAccessTokenRecord(
417
424
  projectId,
418
425
  name,
419
426
  kind: input.kind,
420
- subjectType: input.subjectType,
421
- subjectId,
427
+ subject: { type: input.subject.type, id: subjectId },
422
428
  tokenHash,
423
429
  groupIds: normalizeOptionalGroupIds(input.groupIds),
424
430
  createdByPrincipal: input.createdByPrincipal,
@@ -484,7 +490,7 @@ export function removeGroupMembershipRecord(
484
490
 
485
491
  function assertAccessTokenSubject(
486
492
  kind: CreateAuthAccessTokenInput["kind"],
487
- subjectType: CreateAuthAccessTokenInput["subjectType"]
493
+ subjectType: CreateAuthAccessTokenInput["subject"]["type"]
488
494
  ): void {
489
495
  if (
490
496
  (kind === "personal" && subjectType === "user") ||
@@ -502,7 +508,7 @@ function assertAccessTokenSubject(
502
508
  function assertAccessTokenSubjectExists(
503
509
  state: AuthStorageState,
504
510
  projectId: string,
505
- subjectType: CreateAuthAccessTokenInput["subjectType"],
511
+ subjectType: CreateAuthAccessTokenInput["subject"]["type"],
506
512
  subjectId: string
507
513
  ): void {
508
514
  if (subjectType === "user") {
@@ -3,7 +3,6 @@ export { AuthStorageError } from "./errors"
3
3
  export { InMemoryAuthStorage } from "./in-memory"
4
4
  export type {
5
5
  AccessTokenRecord,
6
- AccessTokenSubjectType,
7
6
  AuthAccessTokenStore,
8
7
  AuthDeviceAuthorizationStore,
9
8
  AuthGroupMembershipStore,
@@ -16,6 +15,7 @@ export type {
16
15
  AuthStorage,
17
16
  AuthUserIdentityStore,
18
17
  AuthUserStore,
18
+ BearerSessionState,
19
19
  CompleteAuthSessionInput,
20
20
  CompleteDeviceAuthorizationInput,
21
21
  CompleteDeviceAuthorizationResult,
@@ -47,6 +47,7 @@ export type {
47
47
  MagicLinkRecord,
48
48
  OidcAuthorizationAttemptRecord,
49
49
  ReconcileAuthServiceAccountGroupMembershipsInput,
50
+ RotateSessionRefreshTokenResult,
50
51
  ServiceAccountGroupMembershipRecord,
51
52
  ServiceAccountRecord,
52
53
  ServiceAccountStatus,
@@ -1,10 +1,10 @@
1
1
  import type { AccessTokenKind, AuthSessionAudience, Principal } from "../../auth"
2
+ import type { AuthorizablePrincipal } from "../../execution/types"
2
3
 
3
4
  export type UserStatus = "active" | "suspended"
4
5
  export type ServiceAccountStatus = "active" | "suspended"
5
6
  export type InvitationStatus = "pending" | "accepted" | "revoked"
6
7
  export type GroupMembershipSource = "invitation" | "manual" | "agent"
7
- export type AccessTokenSubjectType = "user" | "serviceAccount"
8
8
  export type DeviceAuthorizationStatus = "pending" | "approved" | "denied" | "consumed"
9
9
  export const MAX_PENDING_DEVICE_AUTHORIZATIONS = 100
10
10
 
@@ -54,6 +54,7 @@ export interface SessionRecord {
54
54
  readonly projectId: string
55
55
  readonly userId: string
56
56
  readonly strategyId: string
57
+ /** The web app a browser session belongs to. A bearer session belongs to none and ignores it. */
57
58
  readonly audience: AuthSessionAudience
58
59
  readonly tokenHash: string
59
60
  readonly createdAt: Date
@@ -65,15 +66,36 @@ export interface SessionRecord {
65
66
  // view. Display only — never used for authorization.
66
67
  readonly userAgent?: string
67
68
  readonly ipAddress?: string
69
+ /** Present when a native client holds the session as bearer tokens instead of a cookie. */
70
+ readonly bearer?: BearerSessionState
68
71
  }
69
72
 
73
+ /**
74
+ * A native client's credentials for its session. `tokenHash` on the session is the current access
75
+ * token's hash; the refresh token rotates on every refresh.
76
+ */
77
+ export interface BearerSessionState {
78
+ /** Self-reported client label, such as "sixb CLI on alex-mbp". Display only. */
79
+ readonly clientName: string
80
+ readonly accessExpiresAt: Date
81
+ readonly refreshTokenHash: string
82
+ /** The refresh token the last rotation replaced, accepted briefly in case its response was lost. */
83
+ readonly previousRefreshTokenHash?: string
84
+ readonly refreshedAt?: Date
85
+ }
86
+
87
+ export type RotateSessionRefreshTokenResult =
88
+ | { readonly status: "rotated"; readonly session: SessionRecord }
89
+ /** A replaced refresh token came back after the grace window; the session is now revoked. */
90
+ | { readonly status: "reused" }
91
+ | { readonly status: "invalid" }
92
+
70
93
  export interface AccessTokenRecord {
71
94
  readonly id: string
72
95
  readonly projectId: string
73
96
  readonly name: string
74
97
  readonly kind: AccessTokenKind
75
- readonly subjectType: AccessTokenSubjectType
76
- readonly subjectId: string
98
+ readonly subject: AuthorizablePrincipal
77
99
  readonly tokenHash: string
78
100
  /**
79
101
  * Optional group constraint. Undefined means "inherit every current group";
@@ -148,8 +170,6 @@ export interface DeviceAuthorizationRecord {
148
170
  readonly deviceCodeHash: string
149
171
  readonly userCode: string
150
172
  readonly clientName: string
151
- readonly tokenName: string
152
- readonly tokenExpiresAt: Date
153
173
  readonly status: DeviceAuthorizationStatus
154
174
  readonly approvedUserId?: string
155
175
  readonly approvedSessionId?: string
@@ -273,6 +293,7 @@ export interface CreateAuthSessionInput {
273
293
  readonly absoluteExpiresAt?: Date
274
294
  readonly userAgent?: string
275
295
  readonly ipAddress?: string
296
+ readonly bearer?: Pick<BearerSessionState, "clientName" | "accessExpiresAt" | "refreshTokenHash">
276
297
  }
277
298
 
278
299
  export interface CreateAuthAccessTokenInput {
@@ -280,8 +301,7 @@ export interface CreateAuthAccessTokenInput {
280
301
  readonly projectId: string
281
302
  readonly name: string
282
303
  readonly kind: AccessTokenKind
283
- readonly subjectType: AccessTokenSubjectType
284
- readonly subjectId: string
304
+ readonly subject: AuthorizablePrincipal
285
305
  readonly tokenHash: string
286
306
  readonly groupIds?: readonly string[]
287
307
  readonly createdByPrincipal?: Principal
@@ -293,8 +313,7 @@ export interface CreateAuthAccessTokenInput {
293
313
  export interface ListAuthAccessTokensInput {
294
314
  readonly projectId: string
295
315
  readonly kind?: AccessTokenKind
296
- readonly subjectType?: AccessTokenSubjectType
297
- readonly subjectId?: string
316
+ readonly subject?: AuthorizablePrincipal
298
317
  readonly includeRevoked?: boolean
299
318
  readonly limit?: number
300
319
  readonly offset?: number
@@ -385,8 +404,6 @@ export interface CreateDeviceAuthorizationInput {
385
404
  readonly deviceCodeHash: string
386
405
  readonly userCode: string
387
406
  readonly clientName: string
388
- readonly tokenName: string
389
- readonly tokenExpiresAt: Date
390
407
  readonly createdAt: Date
391
408
  readonly expiresAt: Date
392
409
  }
@@ -395,13 +412,14 @@ export interface CompleteDeviceAuthorizationInput {
395
412
  readonly projectId: string
396
413
  readonly id: string
397
414
  readonly deviceCodeHash: string
398
- readonly accessToken: CreateAuthAccessTokenInput
415
+ /** The bearer session to start for the approving user. */
416
+ readonly session: CreateAuthSessionInput & { readonly bearer: BearerSessionState }
399
417
  readonly completedAt: Date
400
418
  }
401
419
 
402
420
  export interface CompleteDeviceAuthorizationResult {
403
421
  readonly authorization: DeviceAuthorizationRecord
404
- readonly accessToken: AccessTokenRecord
422
+ readonly session: SessionRecord
405
423
  }
406
424
 
407
425
  export interface CompleteMagicLinkSignInInput {
@@ -523,6 +541,7 @@ export interface AuthSessionStore {
523
541
  readonly userId: string
524
542
  readonly now: Date
525
543
  }): Promise<readonly SessionRecord[]>
544
+ /** A live browser (cookie) session whose secret hashes to `tokenHash`. */
526
545
  findValidByTokenHash(params: {
527
546
  readonly projectId: string
528
547
  readonly id: string
@@ -530,6 +549,31 @@ export interface AuthSessionStore {
530
549
  readonly tokenHash: string
531
550
  readonly now: Date
532
551
  }): Promise<SessionRecord | null>
552
+ /** A live bearer session whose current, unexpired access token hashes to `tokenHash`. */
553
+ findValidByAccessTokenHash(params: {
554
+ readonly projectId: string
555
+ readonly id: string
556
+ readonly tokenHash: string
557
+ readonly now: Date
558
+ }): Promise<SessionRecord | null>
559
+ /**
560
+ * Atomically replace a live bearer session's tokens. The current refresh token rotates; the one
561
+ * it replaced also rotates within `reuseGraceMs` of that replacement. Presenting it later revokes
562
+ * the session. `next.expiresAt` extends the idle deadline, never past the absolute one.
563
+ */
564
+ rotateRefreshToken(params: {
565
+ readonly projectId: string
566
+ readonly id: string
567
+ readonly refreshTokenHash: string
568
+ readonly now: Date
569
+ readonly reuseGraceMs: number
570
+ readonly next: {
571
+ readonly tokenHash: string
572
+ readonly accessExpiresAt: Date
573
+ readonly refreshTokenHash: string
574
+ readonly expiresAt: Date
575
+ }
576
+ }): Promise<RotateSessionRefreshTokenResult>
533
577
  renewIfValid(params: {
534
578
  readonly projectId: string
535
579
  readonly id: string
@@ -1,4 +1,5 @@
1
- import type { TrustedPrimitiveKind } from "../../execution/types"
1
+ import { kernelOperationFromId, kernelOperationId } from "../../execution/kernel-operation"
2
+ import type { KernelOperation, TrustedPrimitiveKind } from "../../execution/types"
2
3
  import { ExecutionStorageError } from "./errors"
3
4
  import type { CreateExecutionInput, ExecutionRecord } from "./types"
4
5
  import { normalizeExecutionRecord } from "./validation"
@@ -16,7 +17,14 @@ export interface ExecutionStorageRow {
16
17
  readonly id: string
17
18
  readonly executorKind: "agent" | "kernel" | "request" | TrustedPrimitiveKind
18
19
  readonly executorId: string
19
- readonly sourceKind: "datasetVersion" | "event" | "execution" | "http" | "schedule" | "webhook"
20
+ readonly sourceKind:
21
+ | "ontologyCommit"
22
+ | "datasetVersion"
23
+ | "event"
24
+ | "execution"
25
+ | "http"
26
+ | "schedule"
27
+ | "webhook"
20
28
  readonly sourceId: string
21
29
  readonly requestedByUserId: string | null
22
30
  readonly requestedByServiceAccountId: string | null
@@ -31,7 +39,7 @@ export interface ExecutionStorageRow {
31
39
  readonly authorityAccessTokenId: string | null
32
40
  readonly authorityPrimitiveKind: TrustedPrimitiveKind | null
33
41
  readonly authorityPrimitiveId: string | null
34
- readonly authorityKernelOperation: "ontology.recover" | null
42
+ readonly authorityKernelOperation: KernelOperation["type"] | null
35
43
  readonly authorityDelegationKind: "share" | null
36
44
  readonly authorityDelegationId: string | null
37
45
  readonly authorityDelegationSessionId: string | null
@@ -108,7 +116,7 @@ function flattenExecutor(
108
116
  case "agent":
109
117
  return { executorKind: "agent", executorId: record.executor.runId }
110
118
  case "kernel":
111
- return { executorKind: "kernel", executorId: record.executor.operation.recoveryId }
119
+ return { executorKind: "kernel", executorId: kernelOperationId(record.executor.operation) }
112
120
  }
113
121
  }
114
122
 
@@ -116,6 +124,8 @@ function flattenSource(
116
124
  record: ExecutionRecord
117
125
  ): Pick<ExecutionStorageRow, "sourceId" | "sourceKind"> {
118
126
  switch (record.source.type) {
127
+ case "ontologyCommit":
128
+ return { sourceKind: "ontologyCommit", sourceId: record.source.commitId }
119
129
  case "http":
120
130
  return { sourceKind: "http", sourceId: record.source.requestId }
121
131
  case "webhook":
@@ -219,10 +229,10 @@ function inflateExecutor(row: ExecutionStorageRow): CreateExecutionInput["execut
219
229
  case "kernel":
220
230
  return {
221
231
  type: "kernel",
222
- operation: {
223
- type: requireValue(row.authorityKernelOperation, "authority kernel operation"),
224
- recoveryId: row.executorId,
225
- },
232
+ operation: kernelOperationFromId(
233
+ requireValue(row.authorityKernelOperation, "authority kernel operation"),
234
+ row.executorId
235
+ ),
226
236
  }
227
237
  default:
228
238
  return { type: "primitive", kind: row.executorKind, runId: row.executorId }
@@ -231,6 +241,8 @@ function inflateExecutor(row: ExecutionStorageRow): CreateExecutionInput["execut
231
241
 
232
242
  function inflateSource(row: ExecutionStorageRow): CreateExecutionInput["source"] {
233
243
  switch (row.sourceKind) {
244
+ case "ontologyCommit":
245
+ return { type: "ontologyCommit", commitId: row.sourceId }
234
246
  case "http":
235
247
  return { type: "http", requestId: row.sourceId }
236
248
  case "webhook":
@@ -307,10 +319,10 @@ function inflateAuthority(row: ExecutionStorageRow): CreateExecutionInput["autho
307
319
  case "kernel":
308
320
  return {
309
321
  type: "kernel",
310
- operation: {
311
- type: requireValue(row.authorityKernelOperation, "authority kernel operation"),
312
- recoveryId: row.executorId,
313
- },
322
+ operation: kernelOperationFromId(
323
+ requireValue(row.authorityKernelOperation, "authority kernel operation"),
324
+ row.executorId
325
+ ),
314
326
  }
315
327
  case "disabled":
316
328
  return { type: "disabled" }
@@ -17,6 +17,7 @@ export type DurableExecutionExecutor =
17
17
  * is attempt transport and is never persisted here.
18
18
  */
19
19
  export type DurableExecutionSource =
20
+ | { readonly type: "ontologyCommit"; readonly commitId: string }
20
21
  | { readonly type: "http"; readonly requestId: string }
21
22
  | { readonly type: "webhook"; readonly deliveryId: string }
22
23
  | { readonly type: "schedule"; readonly eventId: string }