@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
@@ -16,6 +16,8 @@ import type { Broker } from "../broker"
16
16
  import type { DomainEventLog } from "../events"
17
17
  import type { RuntimeAuthorization } from "../execution"
18
18
  import type { AuthorizedObjectReader } from "../execution/authorized-object-reader"
19
+ import type { EmbeddingModelCatalog } from "../models"
20
+ import type { ModelExecutionSession } from "../models/execution/session"
19
21
  import type {
20
22
  ObjectQuery,
21
23
  ObjectQueryExplanation,
@@ -28,16 +30,22 @@ import type {
28
30
  ObjectQuerySortDirection,
29
31
  ValidatedObjectQuery,
30
32
  } from "../objects/query"
31
- import type { ObjectLinkTargetType, ObjectRef, ObjectType, Property, ValueType } from "../ontology"
33
+ import type { ObjectVectorHandle, VectorProfileName } from "../objects/vectors/types"
34
+ import type { ObjectLinkTargetType, ObjectRef, Property } from "../ontology"
32
35
  import type {
33
- InferObjectProperties,
34
36
  InferPropertyUnit,
35
37
  InferPropertyValue,
36
38
  InferTelemetryBatchProperties,
37
39
  InferTelemetryPropertyIds,
38
40
  } from "../ontology/inference"
41
+ import type { RegisteredObjectType } from "../ontology/registered"
39
42
  import type { OntologyDocumentInput, OntologyRegistry, OntologySource } from "../ontology/registry"
40
- import type { LinkToken, ObjectTypeWithPropertyTokens, PropertyToken } from "../ontology/tokens"
43
+ import type {
44
+ LinkToken,
45
+ ObjectTypeProperties,
46
+ ObjectTypeWithPropertyTokens,
47
+ PropertyToken,
48
+ } from "../ontology/tokens"
41
49
  import type { Queues } from "../queues"
42
50
  import type { ActionRunRecord, ObjectLinkRow, Storage } from "../storage"
43
51
  // ── Shared runtime context ──────────────────────────────────
@@ -49,6 +57,7 @@ import type { ActionRunRecord, ObjectLinkRow, Storage } from "../storage"
49
57
  * registered runtime authority.
50
58
  */
51
59
  export interface SixbHostContext {
60
+ readonly embeddingModels?: EmbeddingModelCatalog
52
61
  readonly projectId: string
53
62
  readonly broker: Broker
54
63
  readonly ontology: OntologyRegistry
@@ -60,6 +69,8 @@ export interface SixbHostContext {
60
69
 
61
70
  /** Host dependencies paired with the process-local authority of one bound execution. */
62
71
  export interface SixbRuntimeContext extends SixbHostContext {
72
+ /** Internal model-call session shared by object operations and model generation. */
73
+ readonly modelExecution?: ModelExecutionSession
63
74
  readonly runtimeAuthorization: RuntimeAuthorization
64
75
  /** Core-owned read boundary carrying this exact execution authority. */
65
76
  readonly objectReader: AuthorizedObjectReader
@@ -85,50 +96,43 @@ export type BatchItemResult<T> =
85
96
  // Re-export for backward compatibility — canonical definitions live in ontology/registry.ts
86
97
  export type { OntologyDocumentInput, OntologySource }
87
98
 
88
- type ObjectTypeFromSource<TSource> = TSource extends {
89
- objectTypes: infer TObjectTypes extends readonly ObjectTypeWithPropertyTokens[]
90
- }
91
- ? TObjectTypes[number]
92
- : TSource extends ObjectTypeWithPropertyTokens
93
- ? TSource
94
- : never
95
-
96
- type ValueTypeFromSource<TSource> = TSource extends {
97
- valueTypes: infer TValueTypes extends readonly ValueType[]
98
- }
99
- ? TValueTypes[number]
100
- : never
101
-
102
- export type RegisteredObjectType<TOntologySources extends readonly OntologySource[]> =
103
- ObjectTypeFromSource<TOntologySources[number]>
104
-
105
- export type RegisteredValueTypes<TOntologySources extends readonly OntologySource[]> =
106
- readonly ValueTypeFromSource<TOntologySources[number]>[]
107
-
108
- // A type alias, not an interface: relating two generic-interface
109
- // instantiations makes TypeScript measure the interface's variance by probing
110
- // it with marker types, and `InferObjectProperties<marker>` overflows its
111
- // recursion limits (TS2589) in consumers like `rows.map(...)`. The alias
112
- // relates structurally, which stays within limits.
113
- export type TwinObject<TObjectType extends ObjectType, TValueTypes extends readonly ValueType[]> = {
99
+ // ── Rows ────────────────────────────────────────────────────
100
+ //
101
+ // Rows read `properties` from the type inferred where the object type is defined
102
+ // (`ObjectTypeProperties`), never from the schema, so relating two rows — or anything returning
103
+ // them — costs no schema inference. Rows and query builders also declare their variance, so
104
+ // TypeScript never measures it: a measurement that overflows (TS2589) caches the variance it gave
105
+ // up on, under which a plain query once passed for an expanded one.
106
+
107
+ /** One stored object. Covariant: a row of an object type is a row of the loose base type. */
108
+ export type TwinObject<out TObjectType extends ObjectTypeWithPropertyTokens> = {
114
109
  primaryId: string
115
110
  objectTypeId: TObjectType["id"]
116
- properties: InferObjectProperties<TObjectType, TValueTypes>
111
+ properties: ObjectTypeProperties<TObjectType>
117
112
  createdAt: Date
118
113
  updatedAt: Date
119
114
  }
120
115
 
121
- type MaterializedObjectRow<
122
- TObjectType extends Pick<ObjectType, "id" | "properties">,
123
- TValueTypes extends readonly ValueType[],
124
- > = {
125
- primaryId: string
126
- objectTypeId: TObjectType["id"]
127
- properties: InferObjectProperties<TObjectType, TValueTypes>
128
- createdAt: Date
129
- updatedAt: Date
130
- }
116
+ /** A row returned by an object query, before any `.expand(...)`. */
117
+ export type ObjectQueryRow<TObjectType extends ObjectTypeWithPropertyTokens> =
118
+ TwinObject<TObjectType> & {
119
+ /** Relevance, present when the query ranks its results (`search`, `vector`). */
120
+ score?: number
121
+ }
122
+
123
+ /**
124
+ * An object attached under a row's `.links` by `.expand(...)`, before any nested expansion. The
125
+ * executor attaches `linkProperties` only when the relationship carries metadata.
126
+ */
127
+ export type ObjectExpansionRow<TObjectType extends ObjectTypeWithPropertyTokens> =
128
+ TwinObject<TObjectType> & {
129
+ linkProperties?: Record<string, unknown>
130
+ }
131
131
 
132
+ /**
133
+ * Flattens a row built from intersections, so editors show its fields instead of the aliases it was
134
+ * built from. The `& {}` is what makes TypeScript print the fields.
135
+ */
132
136
  type Simplify<T> = { [K in keyof T]: T[K] } & {}
133
137
 
134
138
  export type { ObjectRef }
@@ -161,43 +165,34 @@ type PropertyById<
161
165
  type PropertyWhereValue<
162
166
  TObjectType extends ObjectTypeWithPropertyTokens,
163
167
  TPropertyId extends TObjectType["properties"][number]["id"],
164
- TValueTypes extends readonly ValueType[],
165
- > = InferPropertyValue<PropertyById<TObjectType, TPropertyId>, TValueTypes>
168
+ > = InferPropertyValue<PropertyById<TObjectType, TPropertyId>>
166
169
 
167
170
  type PropertyWhereContainsValue<
168
171
  TObjectType extends ObjectTypeWithPropertyTokens,
169
172
  TPropertyId extends TObjectType["properties"][number]["id"],
170
- TValueTypes extends readonly ValueType[],
171
173
  > =
172
- NonNullable<PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>> extends string
174
+ NonNullable<PropertyWhereValue<TObjectType, TPropertyId>> extends string
173
175
  ? string
174
- : NonNullable<
175
- PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
176
- > extends readonly (infer TItem)[]
176
+ : NonNullable<PropertyWhereValue<TObjectType, TPropertyId>> extends readonly (infer TItem)[]
177
177
  ? TItem
178
- : NonNullable<PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>> extends Record<
179
- string,
180
- unknown
181
- >
178
+ : NonNullable<PropertyWhereValue<TObjectType, TPropertyId>> extends Record<string, unknown>
182
179
  ? string
183
180
  : never
184
181
 
185
182
  type PropertyWhereComparisonClause<
186
183
  TObjectType extends ObjectTypeWithPropertyTokens,
187
184
  TPropertyId extends TObjectType["properties"][number]["id"],
188
- TValueTypes extends readonly ValueType[],
189
185
  > = Omit<ObjectQueryPredicateComparison, "propertyId" | "value"> & {
190
186
  propertyId: TPropertyId
191
- value: PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
187
+ value: PropertyWhereValue<TObjectType, TPropertyId>
192
188
  }
193
189
 
194
190
  type PropertyWhereInClause<
195
191
  TObjectType extends ObjectTypeWithPropertyTokens,
196
192
  TPropertyId extends TObjectType["properties"][number]["id"],
197
- TValueTypes extends readonly ValueType[],
198
193
  > = Omit<ObjectQueryPredicateIn, "propertyId" | "values"> & {
199
194
  propertyId: TPropertyId
200
- values: readonly PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>[]
195
+ values: readonly PropertyWhereValue<TObjectType, TPropertyId>[]
201
196
  }
202
197
 
203
198
  type PropertyWhereExistsClause<
@@ -210,49 +205,44 @@ type PropertyWhereExistsClause<
210
205
  type PropertyWhereContainsClause<
211
206
  TObjectType extends ObjectTypeWithPropertyTokens,
212
207
  TPropertyId extends TObjectType["properties"][number]["id"],
213
- TValueTypes extends readonly ValueType[],
214
208
  > = Omit<ObjectQueryPredicateContains, "propertyId" | "value"> & {
215
209
  propertyId: TPropertyId
216
- value: PropertyWhereContainsValue<TObjectType, TPropertyId, TValueTypes>
210
+ value: PropertyWhereContainsValue<TObjectType, TPropertyId>
217
211
  }
218
212
 
219
213
  /** Predicate operators exposed on `where` builder properties. */
220
214
  type PropertyPredicate<
221
215
  TObjectType extends ObjectTypeWithPropertyTokens,
222
216
  TPropertyId extends TObjectType["properties"][number]["id"],
223
- TValueTypes extends readonly ValueType[],
224
217
  > = {
225
218
  eq(
226
- value: PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
227
- ): PropertyWhereComparisonClause<TObjectType, TPropertyId, TValueTypes> & { op: "eq" }
219
+ value: PropertyWhereValue<TObjectType, TPropertyId>
220
+ ): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "eq" }
228
221
  neq(
229
- value: PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
230
- ): PropertyWhereComparisonClause<TObjectType, TPropertyId, TValueTypes> & { op: "neq" }
222
+ value: PropertyWhereValue<TObjectType, TPropertyId>
223
+ ): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "neq" }
231
224
  lt(
232
- value: PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
233
- ): PropertyWhereComparisonClause<TObjectType, TPropertyId, TValueTypes> & { op: "lt" }
225
+ value: PropertyWhereValue<TObjectType, TPropertyId>
226
+ ): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "lt" }
234
227
  lte(
235
- value: PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
236
- ): PropertyWhereComparisonClause<TObjectType, TPropertyId, TValueTypes> & { op: "lte" }
228
+ value: PropertyWhereValue<TObjectType, TPropertyId>
229
+ ): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "lte" }
237
230
  gt(
238
- value: PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
239
- ): PropertyWhereComparisonClause<TObjectType, TPropertyId, TValueTypes> & { op: "gt" }
231
+ value: PropertyWhereValue<TObjectType, TPropertyId>
232
+ ): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "gt" }
240
233
  gte(
241
- value: PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
242
- ): PropertyWhereComparisonClause<TObjectType, TPropertyId, TValueTypes> & { op: "gte" }
234
+ value: PropertyWhereValue<TObjectType, TPropertyId>
235
+ ): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "gte" }
243
236
  in(
244
- values: readonly PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>[]
245
- ): PropertyWhereInClause<TObjectType, TPropertyId, TValueTypes>
237
+ values: readonly PropertyWhereValue<TObjectType, TPropertyId>[]
238
+ ): PropertyWhereInClause<TObjectType, TPropertyId>
246
239
  exists(value?: boolean): PropertyWhereExistsClause<TObjectType, TPropertyId>
247
240
  contains(
248
- value: PropertyWhereContainsValue<TObjectType, TPropertyId, TValueTypes>
249
- ): PropertyWhereContainsClause<TObjectType, TPropertyId, TValueTypes>
241
+ value: PropertyWhereContainsValue<TObjectType, TPropertyId>
242
+ ): PropertyWhereContainsClause<TObjectType, TPropertyId>
250
243
  }
251
244
 
252
- type PropertyWhereClause<
253
- TObjectType extends ObjectTypeWithPropertyTokens,
254
- TValueTypes extends readonly ValueType[],
255
- > =
245
+ type PropertyWhereClause<TObjectType extends ObjectTypeWithPropertyTokens> =
256
246
  HasKnownPropertyIds<TObjectType> extends false
257
247
  ?
258
248
  | ObjectQueryPredicateComparison
@@ -261,10 +251,10 @@ type PropertyWhereClause<
261
251
  | ObjectQueryPredicateContains
262
252
  : {
263
253
  [TPropertyId in TObjectType["properties"][number]["id"]]:
264
- | PropertyWhereComparisonClause<TObjectType, TPropertyId, TValueTypes>
265
- | PropertyWhereInClause<TObjectType, TPropertyId, TValueTypes>
254
+ | PropertyWhereComparisonClause<TObjectType, TPropertyId>
255
+ | PropertyWhereInClause<TObjectType, TPropertyId>
266
256
  | PropertyWhereExistsClause<TObjectType, TPropertyId>
267
- | PropertyWhereContainsClause<TObjectType, TPropertyId, TValueTypes>
257
+ | PropertyWhereContainsClause<TObjectType, TPropertyId>
268
258
  }[TObjectType["properties"][number]["id"]]
269
259
 
270
260
  /**
@@ -291,16 +281,13 @@ type HasKnownPropertyIds<TObjectType extends ObjectTypeWithPropertyTokens> =
291
281
  string extends TObjectType["properties"][number]["id"] ? false : true
292
282
 
293
283
  /** Typed ObjectSet where predicate. Serialized shape matches object query IR predicates. */
294
- export type ObjectWhereClause<
295
- TObjectType extends ObjectTypeWithPropertyTokens,
296
- TValueTypes extends readonly ValueType[],
297
- > =
298
- | PropertyWhereClause<TObjectType, TValueTypes>
284
+ export type ObjectWhereClause<TObjectType extends ObjectTypeWithPropertyTokens> =
285
+ | PropertyWhereClause<TObjectType>
299
286
  | (Omit<ObjectQueryPredicateGroup, "items"> & {
300
- items: readonly ObjectWhereClause<TObjectType, TValueTypes>[]
287
+ items: readonly ObjectWhereClause<TObjectType>[]
301
288
  })
302
289
  | (Omit<ObjectQueryPredicateNot, "item"> & {
303
- item: ObjectWhereClause<TObjectType, TValueTypes>
290
+ item: ObjectWhereClause<TObjectType>
304
291
  })
305
292
 
306
293
  /**
@@ -308,28 +295,18 @@ export type ObjectWhereClause<
308
295
  *
309
296
  * Example: `(r) => r.p.externalId.eq("RM-101")`
310
297
  */
311
- export type ObjectWhereBuilder<
312
- TObjectType extends ObjectTypeWithPropertyTokens,
313
- TValueTypes extends readonly ValueType[],
314
- > = {
298
+ export type ObjectWhereBuilder<TObjectType extends ObjectTypeWithPropertyTokens> = {
315
299
  p: HasKnownPropertyIds<TObjectType> extends false
316
300
  ? Record<string, UntypedPropertyPredicate>
317
301
  : {
318
302
  [TPropertyId in TObjectType["properties"][number]["id"]]: PropertyPredicate<
319
303
  TObjectType,
320
- TPropertyId,
321
- TValueTypes
304
+ TPropertyId
322
305
  >
323
306
  }
324
- and(
325
- ...items: readonly ObjectWhereClause<TObjectType, TValueTypes>[]
326
- ): ObjectWhereClause<TObjectType, TValueTypes>
327
- or(
328
- ...items: readonly ObjectWhereClause<TObjectType, TValueTypes>[]
329
- ): ObjectWhereClause<TObjectType, TValueTypes>
330
- not(
331
- item: ObjectWhereClause<TObjectType, TValueTypes>
332
- ): ObjectWhereClause<TObjectType, TValueTypes>
307
+ and(...items: readonly ObjectWhereClause<TObjectType>[]): ObjectWhereClause<TObjectType>
308
+ or(...items: readonly ObjectWhereClause<TObjectType>[]): ObjectWhereClause<TObjectType>
309
+ not(item: ObjectWhereClause<TObjectType>): ObjectWhereClause<TObjectType>
333
310
  }
334
311
 
335
312
  export type TelemetryPropertyToken<TObjectType extends ObjectTypeWithPropertyTokens> =
@@ -348,19 +325,16 @@ export type ObjectSetQueryPropertyToken<TObjectType extends ObjectTypeWithProper
348
325
  * - if property has a semantic type, unit is required
349
326
  * - otherwise unit is disallowed
350
327
  */
351
- type TelemetryUnitField<TToken extends AnyPropertyToken, TValueTypes extends readonly ValueType[]> =
328
+ type TelemetryUnitField<TToken extends AnyPropertyToken> =
352
329
  // If a property does not map to a semantic type, units are disallowed.
353
- InferPropertyUnit<TToken["property"], TValueTypes> extends never
330
+ InferPropertyUnit<TToken["property"]> extends never
354
331
  ? { unit?: never }
355
- : { unit: InferPropertyUnit<TToken["property"], TValueTypes> }
332
+ : { unit: InferPropertyUnit<TToken["property"]> }
356
333
 
357
- export type TelemetryAppendInput<
358
- TToken extends AnyPropertyToken,
359
- TValueTypes extends readonly ValueType[],
360
- > = {
361
- value: InferPropertyValue<TToken["property"], TValueTypes>
334
+ export type TelemetryAppendInput<TToken extends AnyPropertyToken> = {
335
+ value: InferPropertyValue<TToken["property"]>
362
336
  at: Date
363
- } & TelemetryUnitField<TToken, TValueTypes>
337
+ } & TelemetryUnitField<TToken>
364
338
 
365
339
  export interface TelemetryHistoryInput {
366
340
  readonly from?: Date
@@ -376,14 +350,11 @@ export interface TelemetryHistoryInput {
376
350
  * same series back, typed through the same token, instead of sending the caller under the typed
377
351
  * surface to `sixb.storage.timeseries`.
378
352
  */
379
- // A type alias for the same reason as `TwinObject` above: `history()` puts
380
- // `InferPropertyValue` in an output position, and probing a generic interface's variance there
381
- // overflows TS's recursion limits (TS2589) in consumers as ordinary as `points.map(...)`.
382
- export type TelemetryChannel<
383
- TToken extends AnyPropertyToken,
384
- TValueTypes extends readonly ValueType[],
385
- > = {
386
- append(input: TelemetryAppendInput<TToken, TValueTypes>): Promise<void>
353
+ // A type alias, not an interface: `history()` puts `InferPropertyValue` in an output position, and
354
+ // probing a generic interface's variance there overflows TS's recursion limits (TS2589) in consumers
355
+ // as ordinary as `points.map(...)`.
356
+ export type TelemetryChannel<TToken extends AnyPropertyToken> = {
357
+ append(input: TelemetryAppendInput<TToken>): Promise<void>
387
358
  /**
388
359
  * Points for this series, oldest first unless `order: "desc"`.
389
360
  *
@@ -392,16 +363,16 @@ export type TelemetryChannel<
392
363
  *
393
364
  * The point shape is written inline rather than extracted into a named alias. One more level of
394
365
  * alias indirection around `InferPropertyValue` in this output position overflows TS's instantiation
395
- * depth (TS2589) in consumers as ordinary as `points.map(...)` — the same budget the note on
396
- * `TwinObject` describes. `unit` is inferred through the same token as `append` writes it, rather
397
- * than widened to `string`: a read that kept `value` precise and gave up on `unit` would be an
398
- * arbitrary line, and both are the current ontology's view of a series it validated on write.
366
+ * depth (TS2589) in consumers as ordinary as `points.map(...)`. `unit` is inferred through the
367
+ * same token as `append` writes it, rather than widened to `string`: a read that kept `value`
368
+ * precise and gave up on `unit` would be an arbitrary line, and both are the current ontology's
369
+ * view of a series it validated on write.
399
370
  */
400
371
  history(input?: TelemetryHistoryInput): Promise<
401
372
  readonly {
402
- readonly value: InferPropertyValue<TToken["property"], TValueTypes>
373
+ readonly value: InferPropertyValue<TToken["property"]>
403
374
  readonly at: Date
404
- readonly unit?: InferPropertyUnit<TToken["property"], TValueTypes>
375
+ readonly unit?: InferPropertyUnit<TToken["property"]>
405
376
  }[]
406
377
  >
407
378
  }
@@ -429,6 +400,7 @@ export type ListResultWithoutTotal<T> = {
429
400
  }
430
401
 
431
402
  export type ObjectQueryListOptions = {
403
+ signal?: AbortSignal
432
404
  includeTotal?: boolean
433
405
  }
434
406
 
@@ -471,28 +443,55 @@ type LinkTargetObjectTypeId<TLinkToken> =
471
443
  : never
472
444
  : never
473
445
 
446
+ type ObjectTypeForRegisteredId<
447
+ TObjectTypeId extends string,
448
+ TFallback extends ObjectTypeWithPropertyTokens,
449
+ > = [Extract<RegisteredObjectType, { id: TObjectTypeId }>] extends [never]
450
+ ? TFallback
451
+ : Extract<RegisteredObjectType, { id: TObjectTypeId }>
452
+
453
+ /**
454
+ * Resolve an object type named by id, as seen from `TSource`.
455
+ *
456
+ * A self-reference (`link.self(...)`, or traversing one backwards) names the source's own id, so it
457
+ * resolves to the source. Every other id resolves through the generated registry first: a type
458
+ * reached through a link is then the very type the app imports and passes to `objects(...)`, which
459
+ * matters because builders are invariant in their object type. `TFallback` applies when the
460
+ * registry does not know the id — without a manifest, or for a stale one.
461
+ */
474
462
  type ObjectTypeForId<
475
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
463
+ TSource extends ObjectTypeWithPropertyTokens,
476
464
  TObjectTypeId extends string,
477
- > = [Extract<TRegisteredObjectTypes, { id: TObjectTypeId }>] extends [never]
478
- ? ObjectTypeWithPropertyTokens
479
- : Extract<TRegisteredObjectTypes, { id: TObjectTypeId }>
465
+ TFallback extends ObjectTypeWithPropertyTokens = ObjectTypeWithPropertyTokens,
466
+ > = [TObjectTypeId] extends [TSource["id"]]
467
+ ? [TSource["id"]] extends [TObjectTypeId]
468
+ ? TSource
469
+ : ObjectTypeForRegisteredId<TObjectTypeId, TFallback>
470
+ : ObjectTypeForRegisteredId<TObjectTypeId, TFallback>
480
471
 
481
472
  type DirectObjectTypeForLink<TLinkToken> =
482
473
  TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue, infer TLink>
483
474
  ? Extract<ObjectLinkTargetType<TLink>, ObjectTypeWithPropertyTokens>
484
475
  : never
485
476
 
477
+ /**
478
+ * The object type a link token points to: the registered type, else the target `link(id, Target)`
479
+ * captured, else the loose base type.
480
+ */
486
481
  type ObjectTypeForLinkTarget<
487
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
482
+ TSource extends ObjectTypeWithPropertyTokens,
488
483
  TLinkToken,
489
- > = [DirectObjectTypeForLink<TLinkToken>] extends [never]
490
- ? ObjectTypeForId<TRegisteredObjectTypes, LinkTargetObjectTypeId<TLinkToken>>
491
- : DirectObjectTypeForLink<TLinkToken>
484
+ > = ObjectTypeForId<
485
+ TSource,
486
+ LinkTargetObjectTypeId<TLinkToken>,
487
+ [DirectObjectTypeForLink<TLinkToken>] extends [never]
488
+ ? ObjectTypeWithPropertyTokens
489
+ : DirectObjectTypeForLink<TLinkToken>
490
+ >
492
491
 
493
492
  /**
494
493
  * True when the target type is a concrete ontology type rather than the degraded
495
- * generic base. Direct ObjectType links resolve before this point; unresolved
494
+ * generic base. Registered and direct targets resolve before this point; unresolved
496
495
  * id-only refs fall back to the base type, whose property ids are `string`.
497
496
  * Instantiating the typed token map over the broad `Property` union there
498
497
  * overflows TypeScript (the same reason `UntypedPropertyPredicate` exists). The
@@ -516,17 +515,12 @@ export type ObjectExpandOptions<TObjectType extends ObjectTypeWithPropertyTokens
516
515
  orderBy?: readonly ObjectExpansionSort<TObjectType>[]
517
516
  }
518
517
 
519
- // ── Expansion shape accumulation (the typed `.links` row) ───────────────────
518
+ // ── Expansion rows (the typed `.links` map) ─────────────────
520
519
  //
521
- // Each `.expand(link, …)` widens an accumulator type, keyed by link id, with a
522
- // branded {@link ExpansionNode} capturing the resolved target type, cardinality,
523
- // and the nested expansions. The accumulator materializes into the row's `links`
524
- // via {@link ObjectQueryRow}. The discipline that keeps this within TypeScript's
525
- // recursion limits (proven on the real ADN graph): recursion lives ONLY in the
526
- // lazily-evaluated row types below, never in constraints (which are eager); the
527
- // builders are type aliases; targets resolve through direct metadata first and
528
- // the id registry second; and the row is read through a direct conditional
529
- // `infer` (see `BuiltRow`).
520
+ // A builder carries the row its terminals return. Each `.expand(link, …)` intersects that row with
521
+ // one `.links` entry, typed from the link's resolved target and cardinality; a nested callback
522
+ // returns a builder carrying the child row. The row is covariant, so an expanded query still passes
523
+ // where the plain query is expected.
530
524
 
531
525
  /**
532
526
  * Cardinality declared on a link token's underlying link; absent cardinality is
@@ -543,116 +537,11 @@ type LinkTokenCardinality<TLinkToken> =
543
537
  type LinkTokenId<TLinkToken> =
544
538
  TLinkToken extends LinkToken<string, infer TLinkId, LinkTargetObjectTypeIdValue> ? TLinkId : never
545
539
 
546
- type LinkTokenSourceObjectTypeId<TLinkToken> =
547
- TLinkToken extends LinkToken<infer TObjectTypeId, string, LinkTargetObjectTypeIdValue>
548
- ? TObjectTypeId
549
- : string
550
-
551
- type ObjectLinkCardinality<TLink> = TLink extends { cardinality: infer TCardinality extends string }
552
- ? TCardinality
553
- : "many"
554
-
555
- type ObjectLinkTarget<TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens, TLink> = [
556
- Extract<ObjectLinkTargetType<TLink>, ObjectTypeWithPropertyTokens>,
557
- ] extends [never]
558
- ? TLink extends {
559
- targetObjectTypeId: infer TTargetObjectTypeId extends LinkTargetObjectTypeIdValue
560
- }
561
- ? ObjectTypeForId<TRegisteredObjectTypes, ResolveTargetTypeId<TTargetObjectTypeId>>
562
- : ObjectTypeWithPropertyTokens
563
- : Extract<ObjectLinkTargetType<TLink>, ObjectTypeWithPropertyTokens>
564
-
565
- type ObjectLinkById<
566
- TObjectType extends Pick<ObjectType, "links">,
567
- TLinkId extends string,
568
- > = Extract<TObjectType["links"][number], { id: TLinkId }>
569
-
570
- type HasKnownObjectLinkIds<TObjectType extends Pick<ObjectType, "links">> =
571
- string extends TObjectType["links"][number]["id"] ? false : true
572
-
573
- /**
574
- * A branded accumulator entry for one expanded link. Unconstrained on purpose —
575
- * keeping recursion out of constraints is what avoids TS2589.
576
- */
577
- type ExpansionNode<TLinkToken, TRegisteredObjectTypes, TTarget, TCardinality, TChildren> = {
578
- readonly __linkToken: TLinkToken
579
- readonly __registeredObjectTypes: TRegisteredObjectTypes
580
- readonly __target: TTarget
581
- readonly __cardinality: TCardinality
582
- readonly __children: TChildren
583
- }
584
-
585
- /** The single-key accumulator contribution of one `.expand(link, …)` call. */
586
- type ExpansionEntry<
587
- TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue>,
588
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
589
- TChild,
590
- > = {
591
- [K in TLinkToken["id"]]: ExpansionNode<
592
- TLinkToken,
593
- TRegisteredObjectTypes,
594
- ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>,
595
- LinkTokenCardinality<TLinkToken>,
596
- TChild
597
- >
598
- }
599
-
600
- type ExpansionNodeForSource<TNode, TObjectType extends Pick<ObjectType, "id" | "links">> =
601
- TNode extends ExpansionNode<
602
- infer TLinkToken,
603
- infer TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
604
- infer TTarget,
605
- infer TCardinality,
606
- infer TChildren
607
- >
608
- ? LinkTokenId<TLinkToken> extends infer TLinkId extends string
609
- ? HasKnownObjectLinkIds<TObjectType> extends true
610
- ? [ObjectLinkById<TObjectType, TLinkId>] extends [never]
611
- ? never
612
- : ExpansionNode<
613
- TLinkToken,
614
- TRegisteredObjectTypes,
615
- ObjectLinkTarget<TRegisteredObjectTypes, ObjectLinkById<TObjectType, TLinkId>>,
616
- ObjectLinkCardinality<ObjectLinkById<TObjectType, TLinkId>>,
617
- TChildren
618
- >
619
- : LinkTokenSourceObjectTypeId<TLinkToken> extends TObjectType["id"]
620
- ? ExpansionNode<TLinkToken, TRegisteredObjectTypes, TTarget, TCardinality, TChildren>
621
- : never
622
- : never
623
- : never
624
-
625
- type ExpansionLinksForSource<TLinks, TObjectType extends Pick<ObjectType, "id" | "links">> = {
626
- [K in keyof TLinks as [ExpansionNodeForSource<TLinks[K], TObjectType>] extends [never]
627
- ? never
628
- : K]: ExpansionNodeForSource<TLinks[K], TObjectType>
629
- }
630
-
631
- /** Materialize one accumulated expansion entry into its row value. */
632
- type ExpandedLinkType<TNode, TValueTypes extends readonly ValueType[]> =
633
- TNode extends ExpansionNode<
634
- unknown,
635
- infer TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
636
- infer TTarget,
637
- infer TCardinality,
638
- infer TChildren
639
- >
640
- ? TCardinality extends "one"
641
- ? ExpandedRowType<TTarget, TChildren, TValueTypes, TRegisteredObjectTypes> | null
642
- : ExpandedRowType<TTarget, TChildren, TValueTypes, TRegisteredObjectTypes>[]
643
- : never
644
-
645
- /**
646
- * An expanded child row: the target object, optional edge `linkProperties` (the
647
- * executor attaches it only when the relationship carries metadata), and its own
648
- * nested `links` (present only when the child was itself expanded). The recursion
649
- * is confined to this lazily-evaluated position.
650
- */
651
540
  /**
652
541
  * Loud row substituted for a `.expand()` whose target type is MISSING from an
653
542
  * otherwise-present ontology manifest (a stale manifest, or a wrong link target
654
543
  * id). Reading a real property is then a compile error pointing at the fix,
655
- * instead of the old silent `Record<string, unknown>`. The no-manifest loose
544
+ * instead of a silent `Record<string, unknown>`. The no-manifest loose
656
545
  * default stays graceful — this only fires when the registry is concrete yet the
657
546
  * target id is absent, i.e. precision was expected but lost.
658
547
  */
@@ -664,167 +553,98 @@ type UnresolvedExpansionRow = {
664
553
  }
665
554
  createdAt: Date
666
555
  updatedAt: Date
556
+ linkProperties?: Record<string, unknown>
667
557
  }
668
558
 
669
- type ExpandedRowType<
670
- TTarget,
671
- TChildren,
672
- TValueTypes extends readonly ValueType[],
673
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
674
- > =
675
- TTarget extends Pick<ObjectType, "id" | "properties" | "links">
676
- ? string extends TTarget["id"]
677
- ? // Target degraded to the loose base. Distinguish the two causes:
678
- string extends TRegisteredObjectTypes["id"]
679
- ? // No manifest at all → graceful loose default (unchanged, non-breaking).
680
- ExpandedRowForSource<
681
- TTarget,
682
- TValueTypes,
683
- ExpansionLinksForSource<TChildren, TTarget>,
684
- { linkProperties?: Record<string, unknown> }
685
- >
686
- : // Manifest present but this target id is absent → loud (was silent).
687
- UnresolvedExpansionRow
688
- : ExpandedRowForSource<
689
- TTarget,
690
- TValueTypes,
691
- ExpansionLinksForSource<TChildren, TTarget>,
692
- { linkProperties?: Record<string, unknown> }
693
- >
559
+ /**
560
+ * The row an expanded target contributes before its own nested expansions. A polymorphic target
561
+ * (`link(id, [A, B])`) yields a union of rows, discriminated by `objectTypeId`.
562
+ */
563
+ type ExpandedTargetRow<TTarget extends ObjectTypeWithPropertyTokens> =
564
+ TTarget extends ObjectTypeWithPropertyTokens
565
+ ? HasKnownObjectType<TTarget> extends true
566
+ ? ObjectExpansionRow<TTarget>
567
+ : // The target degraded to the loose base. Without a manifest that is the expected loose
568
+ // row; with one, the target is missing from it.
569
+ string extends RegisteredObjectType["id"]
570
+ ? ObjectExpansionRow<TTarget>
571
+ : UnresolvedExpansionRow
694
572
  : never
695
573
 
696
- type ExpandedRowForSource<
697
- TObjectType extends Pick<ObjectType, "id" | "properties" | "links">,
698
- TValueTypes extends readonly ValueType[],
699
- TLinks,
700
- TExtra = unknown,
701
- > = Simplify<
702
- MaterializedObjectRow<TObjectType, TValueTypes> &
703
- TExtra &
704
- ([keyof TLinks] extends [never]
705
- ? unknown
706
- : { links: { [K in keyof TLinks]: ExpandedLinkType<TLinks[K], TValueTypes> } })
707
- >
574
+ /** The `.links` entry one `.expand(link, …)` adds: `Target | null` for `"one"`, else `Target[]`. */
575
+ type ObjectExpansionLinks<TLinkToken, TChildRow> = {
576
+ links: {
577
+ [K in LinkTokenId<TLinkToken>]: LinkTokenCardinality<TLinkToken> extends "one"
578
+ ? Simplify<TChildRow> | null
579
+ : Simplify<TChildRow>[]
580
+ }
581
+ }
708
582
 
709
583
  /**
710
- * The terminal row of a query: the matched object, plus a typed `links` map once
711
- * the query accumulated expansions. A query with no `.expand(...)` returns the
712
- * plain materialized row, so existing `list`/`first` consumers are unchanged.
584
+ * Add the `.links` entry of one expansion to `TRow`. Distributes over a polymorphic row, so a
585
+ * nested expansion declared on one member type (`owner.expand(User.l.region)`) only reaches the
586
+ * rows of that type.
713
587
  */
714
- export type ObjectQueryRow<
715
- TObjectType extends ObjectTypeWithPropertyTokens,
716
- TValueTypes extends readonly ValueType[],
717
- TLinks,
718
- > = TObjectType extends ObjectTypeWithPropertyTokens
719
- ? ExpandedRowForSource<TObjectType, TValueTypes, ExpansionLinksForSource<TLinks, TObjectType>>
720
- : never
588
+ type WithExpansion<
589
+ TRow,
590
+ TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue>,
591
+ TChildRow,
592
+ > = TRow extends { objectTypeId: infer TObjectTypeId }
593
+ ? TLinkToken["objectTypeId"] extends TObjectTypeId
594
+ ? TRow & ObjectExpansionLinks<TLinkToken, TChildRow>
595
+ : TRow
596
+ : TRow
721
597
 
722
598
  /**
723
- * Builder passed to the nested `.expand(..., (e) => …)` callback. Exposes only
724
- * `expand`, resolving the next target type from direct metadata or the id
725
- * registry so deeper hops stay typed and accumulating `TAccumulated` so the
726
- * nested `.links` shape is recovered from the callback's return.
727
- *
728
- * A type alias (not an interface) so relating two instantiations stays
729
- * structural — the same discipline `TwinObject` follows to avoid TS2589
730
- * (see the note above `TwinObject`). The only recursion is in the lazily
731
- * evaluated return/callback positions.
599
+ * The nested-expansion callback for a link token's resolved target type. `TChildRow`
600
+ * is inferred from the returned builder, recovering the nested `.links` shape.
732
601
  *
733
- * When the target type is the degraded base (an unresolved id-only target), the
734
- * builder collapses to the untyped, non-generic {@link UntypedExpandBuilder}:
735
- * nested expansion still works, just without target-specific link/property
736
- * checking, and — crucially — without the self-referential generic instantiation
737
- * over the broad base type that would otherwise overflow TypeScript.
602
+ * Kept a plain (non-conditional) function type on purpose: wrapping the callback
603
+ * in a `TLinkToken extends … ? … : never` conditional blocks inference of
604
+ * `TChildRow` from the argument, so it would silently fall back to its default.
738
605
  */
739
- export type ObjectExpandBuilder<
740
- TObjectType extends ObjectTypeWithPropertyTokens,
741
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
742
- TAccumulated = unknown,
743
- > =
744
- HasKnownObjectType<TObjectType> extends false
745
- ? UntypedExpandBuilder
746
- : {
747
- // Phantom accumulator — never set at runtime. It is the only direct,
748
- // covariant site `TAccumulated` appears in, so the nested callback's
749
- // `TChild` is inferable from the returned builder even after the
750
- // degradation conditional above resolves (which otherwise buries the
751
- // accumulator inside `expand`'s return and defeats inference).
752
- readonly __links?: TAccumulated
753
- expand<
754
- TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
755
- TChild = unknown,
756
- >(
757
- link: TLinkToken,
758
- build: ObjectExpandNested<TLinkToken, TRegisteredObjectTypes, TChild>
759
- ): ObjectExpandBuilder<
760
- TObjectType,
761
- TRegisteredObjectTypes,
762
- TAccumulated & ExpansionEntry<TLinkToken, TRegisteredObjectTypes, TChild>
763
- >
764
- expand<
765
- TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
766
- TChild = unknown,
767
- >(
768
- link: TLinkToken,
769
- options?: ObjectExpandOptions<
770
- ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>
771
- >,
772
- build?: ObjectExpandNested<TLinkToken, TRegisteredObjectTypes, TChild>
773
- ): ObjectExpandBuilder<
774
- TObjectType,
775
- TRegisteredObjectTypes,
776
- TAccumulated & ExpansionEntry<TLinkToken, TRegisteredObjectTypes, TChild>
777
- >
778
- }
606
+ type ObjectExpandNested<
607
+ TSource extends ObjectTypeWithPropertyTokens,
608
+ TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue>,
609
+ TChildRow,
610
+ > = (
611
+ nested: ObjectExpandBuilder<ObjectTypeForLinkTarget<TSource, TLinkToken>>
612
+ ) => ObjectExpandBuilder<ObjectTypeForLinkTarget<TSource, TLinkToken>, TChildRow>
779
613
 
780
614
  /**
781
- * Loose expand builder for degraded targets. Non-generic and self-referential,
782
- * so it never instantiates the typed token machinery over the broad base type.
783
- * Nested expansions still run; their shape simply degrades to the loose row.
615
+ * Builder passed to the nested `.expand(..., (e) => …)` callback. Exposes only `expand`; each call
616
+ * adds a `.links` entry to `TRow`, the row this expanded target contributes to its parent.
784
617
  */
785
- type UntypedExpandBuilder = {
786
- expand(
787
- link: LinkToken,
788
- optionsOrBuild?:
789
- | ObjectExpandOptions<ObjectTypeWithPropertyTokens>
790
- | ((nested: UntypedExpandBuilder) => UntypedExpandBuilder),
791
- build?: (nested: UntypedExpandBuilder) => UntypedExpandBuilder
792
- ): UntypedExpandBuilder
618
+ export interface ObjectExpandBuilder<
619
+ in out TObjectType extends ObjectTypeWithPropertyTokens,
620
+ out TRow = ExpandedTargetRow<TObjectType>,
621
+ > {
622
+ expand<
623
+ TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
624
+ TChildRow = ExpandedTargetRow<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
625
+ >(
626
+ link: TLinkToken,
627
+ build: ObjectExpandNested<TObjectType, TLinkToken, TChildRow>
628
+ ): ObjectExpandBuilder<TObjectType, WithExpansion<TRow, TLinkToken, TChildRow>>
629
+ expand<
630
+ TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
631
+ TChildRow = ExpandedTargetRow<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
632
+ >(
633
+ link: TLinkToken,
634
+ options?: ObjectExpandOptions<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
635
+ build?: ObjectExpandNested<TObjectType, TLinkToken, TChildRow>
636
+ ): ObjectExpandBuilder<TObjectType, WithExpansion<TRow, TLinkToken, TChildRow>>
793
637
  }
794
638
 
795
639
  /**
796
- * The nested-expansion callback for a link token's resolved target type. `TChild`
797
- * is inferred from the returned builder's accumulator, recovering the nested
798
- * `.links` shape; on the degraded path the builder collapses and `TChild` stays
799
- * its `unknown` default.
640
+ * Executable object query rooted at `TObjectType`, returning `TRow` rows.
800
641
  *
801
- * Kept a plain (non-conditional) function type on purpose: wrapping the callback
802
- * in a `TLinkToken extends … ? … : never` conditional blocks inference of
803
- * `TChild` from the argument, so it would silently fall back to `unknown`.
642
+ * Invariant in the object type, whose predicates and tokens it both accepts and produces, and
643
+ * covariant in the row.
804
644
  */
805
- type ObjectExpandNested<
806
- TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue>,
807
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
808
- TChild,
809
- > = (
810
- nested: ObjectExpandBuilder<
811
- ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>,
812
- TRegisteredObjectTypes
813
- >
814
- ) => ObjectExpandBuilder<
815
- ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>,
816
- TRegisteredObjectTypes,
817
- TChild
818
- >
819
-
820
645
  export interface ObjectQueryBuilder<
821
- TObjectType extends ObjectTypeWithPropertyTokens,
822
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
823
- TValueTypes extends readonly ValueType[],
824
- // Accumulated expansion shape, widened by each `.expand(...)` and materialized
825
- // into the row's `links` by the `list`/`first` terminals. Empty `{}` until the
826
- // first expand; `traverse` resets it (the new result type has its own links).
827
- TLinks = unknown,
646
+ in out TObjectType extends ObjectTypeWithPropertyTokens,
647
+ out TRow = ObjectQueryRow<TObjectType>,
828
648
  > {
829
649
  /** Normalized provider-neutral query IR. */
830
650
  readonly ir: ObjectQuery
@@ -832,101 +652,76 @@ export interface ObjectQueryBuilder<
832
652
  /** Add a typed property predicate at the current object type. */
833
653
  where(
834
654
  where: (
835
- builder: ObjectWhereBuilder<TObjectType, TValueTypes>
836
- ) =>
837
- | ObjectWhereClause<TObjectType, TValueTypes>
838
- | readonly ObjectWhereClause<TObjectType, TValueTypes>[]
839
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
655
+ builder: ObjectWhereBuilder<TObjectType>
656
+ ) => ObjectWhereClause<TObjectType> | readonly ObjectWhereClause<TObjectType>[]
657
+ ): ObjectQueryBuilder<TObjectType, TRow>
840
658
 
841
659
  /** Search configured text fields at the current object type. */
842
660
  search(
843
661
  query: string,
844
662
  options?: { fields?: readonly ObjectSetQueryPropertyToken<TObjectType>[] }
845
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
663
+ ): ObjectQueryBuilder<TObjectType, TRow>
846
664
 
847
- /** Search a vector property at the current object type. */
665
+ /** Search a profile; text is embedded server-side with its configured model. */
848
666
  vector(
849
- property: ObjectSetQueryPropertyToken<TObjectType>,
850
- vector: readonly number[],
667
+ profile: VectorProfileName<TObjectType>,
668
+ vector: string,
851
669
  options: { k: number }
852
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
670
+ ): ObjectQueryBuilder<TObjectType, TRow>
853
671
 
854
672
  /** Follow an outgoing link and make the linked object type the current result type. */
855
673
  traverse<TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>>(
856
674
  link: TLinkToken,
857
675
  options?: { direction?: "outgoing" }
858
- ): ObjectQueryBuilder<
859
- ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>,
860
- TRegisteredObjectTypes,
861
- TValueTypes
862
- >
676
+ ): ObjectQueryBuilder<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>
863
677
 
864
678
  /** Follow an incoming link and make the link source object type the current result type. */
865
679
  traverse<TLinkToken extends LinkToken<string, string, TObjectType["id"] | readonly string[]>>(
866
680
  link: TLinkToken,
867
681
  options: { direction: "incoming" }
868
- ): ObjectQueryBuilder<
869
- ObjectTypeForId<TRegisteredObjectTypes, TLinkToken["objectTypeId"]>,
870
- TRegisteredObjectTypes,
871
- TValueTypes
872
- >
682
+ ): ObjectQueryBuilder<ObjectTypeForId<TObjectType, TLinkToken["objectTypeId"]>>
873
683
 
874
684
  /**
875
685
  * Attach an outgoing link's target objects to each row under `.links`, without
876
686
  * changing the result type — the additive counterpart to `traverse` (which
877
687
  * replaces the set). The callback nests deeper hops.
878
688
  *
879
- * Each call widens `TLinks`, so `list`/`first` rows gain a typed `.links` entry
880
- * for this link (cardinality `"one"` → `Target | null`, `"many"` → `Target[]`,
881
- * each carrying optional `linkProperties` and its own nested `.links`). Nested
882
- * targets stay precise when the link uses direct object targets or when the id
883
- * target resolves through the registry, and otherwise degrade to the loose base.
689
+ * Each call adds a typed `.links` entry to the rows `list`/`first` return
690
+ * (cardinality `"one"` → `Target | null`, `"many"` → `Target[]`, each carrying
691
+ * optional `linkProperties` and its own nested `.links`). Targets are precise
692
+ * when they are registered or linked directly, and otherwise degrade to the
693
+ * loose base.
884
694
  */
885
695
  expand<
886
696
  TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
887
- TChild = unknown,
697
+ TChildRow = ExpandedTargetRow<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
888
698
  >(
889
699
  link: TLinkToken,
890
- build: ObjectExpandNested<TLinkToken, TRegisteredObjectTypes, TChild>
891
- ): ObjectQueryBuilder<
892
- TObjectType,
893
- TRegisteredObjectTypes,
894
- TValueTypes,
895
- TLinks & ExpansionEntry<TLinkToken, TRegisteredObjectTypes, TChild>
896
- >
700
+ build: ObjectExpandNested<TObjectType, TLinkToken, TChildRow>
701
+ ): ObjectQueryBuilder<TObjectType, WithExpansion<TRow, TLinkToken, TChildRow>>
897
702
  expand<
898
703
  TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
899
- TChild = unknown,
704
+ TChildRow = ExpandedTargetRow<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
900
705
  >(
901
706
  link: TLinkToken,
902
- options?: ObjectExpandOptions<ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>>,
903
- build?: ObjectExpandNested<TLinkToken, TRegisteredObjectTypes, TChild>
904
- ): ObjectQueryBuilder<
905
- TObjectType,
906
- TRegisteredObjectTypes,
907
- TValueTypes,
908
- TLinks & ExpansionEntry<TLinkToken, TRegisteredObjectTypes, TChild>
909
- >
707
+ options?: ObjectExpandOptions<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
708
+ build?: ObjectExpandNested<TObjectType, TLinkToken, TChildRow>
709
+ ): ObjectQueryBuilder<TObjectType, WithExpansion<TRow, TLinkToken, TChildRow>>
910
710
 
911
711
  /** Add property ordering at the current object type. */
912
712
  orderBy(
913
713
  property: ObjectSetQueryPropertyToken<TObjectType>,
914
714
  direction?: ObjectQuerySortDirection
915
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
715
+ ): ObjectQueryBuilder<TObjectType, TRow>
916
716
 
917
717
  /** Add relevance ordering for providers that support ranked search. */
918
- orderByRelevance(
919
- direction?: ObjectQuerySortDirection
920
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
718
+ orderByRelevance(direction?: ObjectQuerySortDirection): ObjectQueryBuilder<TObjectType, TRow>
921
719
 
922
720
  /** Bound the result count. */
923
- limit(limit: number): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
721
+ limit(limit: number): ObjectQueryBuilder<TObjectType, TRow>
924
722
 
925
723
  /** Request one page of results. */
926
- page(input: {
927
- pageSize: number
928
- pageToken?: string
929
- }): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
724
+ page(input: { pageSize: number; pageToken?: string }): ObjectQueryBuilder<TObjectType, TRow>
930
725
 
931
726
  /** Validate this query against the registered ontology. */
932
727
  validate(): ValidatedObjectQuery
@@ -938,19 +733,15 @@ export interface ObjectQueryBuilder<
938
733
  formatExplanation(): string
939
734
 
940
735
  /** Execute this query and return matching objects (rows carry `.links` when expanded). */
941
- list(): Promise<ListResult<ObjectQueryRow<TObjectType, TValueTypes, TLinks>>>
736
+ list(): Promise<ListResult<Simplify<TRow>>>
942
737
  list(options: {
943
738
  includeTotal: false
944
- }): Promise<ListResultWithoutTotal<ObjectQueryRow<TObjectType, TValueTypes, TLinks>>>
945
- list(options: {
946
- includeTotal?: true
947
- }): Promise<ListResult<ObjectQueryRow<TObjectType, TValueTypes, TLinks>>>
739
+ signal?: AbortSignal
740
+ }): Promise<ListResultWithoutTotal<Simplify<TRow>>>
741
+ list(options: { includeTotal?: true; signal?: AbortSignal }): Promise<ListResult<Simplify<TRow>>>
948
742
  list(
949
743
  options?: ObjectQueryListOptions
950
- ): Promise<
951
- | ListResult<ObjectQueryRow<TObjectType, TValueTypes, TLinks>>
952
- | ListResultWithoutTotal<ObjectQueryRow<TObjectType, TValueTypes, TLinks>>
953
- >
744
+ ): Promise<ListResult<Simplify<TRow>> | ListResultWithoutTotal<Simplify<TRow>>>
954
745
 
955
746
  /** Count the matching objects without returning rows. */
956
747
  count(): Promise<number>
@@ -962,18 +753,51 @@ export interface ObjectQueryBuilder<
962
753
  facets(input: readonly ObjectQueryFacetInput<TObjectType>[]): Promise<ObjectQueryFacetResult[]>
963
754
 
964
755
  /** Execute this query with an outer limit of one and return the first object. */
965
- first(): Promise<ObjectQueryRow<TObjectType, TValueTypes, TLinks> | null>
756
+ first(): Promise<Simplify<TRow> | null>
966
757
  }
967
758
 
968
- export interface ObjectByIdHandle<
969
- TObjectType extends ObjectTypeWithPropertyTokens,
970
- TValueTypes extends readonly ValueType[],
971
- > {
759
+ /** Reads bound to one object id. */
760
+ export interface ObjectReadByIdHandle<out TObjectType extends ObjectTypeWithPropertyTokens> {
972
761
  /** Get the object at this id, or null if it doesn't exist. */
973
- get(): Promise<TwinObject<TObjectType, TValueTypes> | null>
762
+ get(): Promise<TwinObject<TObjectType> | null>
974
763
 
975
764
  /** List links from this object, optionally filtered by link token. */
976
765
  listLinks(link?: LinkTokenForObjectType<TObjectType>): Promise<readonly ObjectLinkRow[]>
766
+ }
767
+
768
+ /**
769
+ * The reads of an object set, declared once: `sixb.objects(Type)`, a Workflow step's
770
+ * `sixb.objects(Type)` and an Action's `read.objects(Type)` add only their own writes on top.
771
+ */
772
+ export interface ObjectReadSet<in out TObjectType extends ObjectTypeWithPropertyTokens> {
773
+ /** Get an object by id, or null if it doesn't exist. */
774
+ get(id: string): Promise<TwinObject<TObjectType> | null>
775
+
776
+ /** Build an executable provider-neutral object query rooted at this object type. */
777
+ query(): ObjectQueryBuilder<TObjectType>
778
+
779
+ /** Bind reads to a specific object id. */
780
+ byId(id: string): ObjectReadByIdHandle<TObjectType>
781
+
782
+ /** List stored objects of this type with storage-system filtering and pagination. */
783
+ list(input?: ObjectSetListInput): Promise<ListResult<TwinObject<TObjectType>>>
784
+ }
785
+
786
+ /**
787
+ * Reads objects without writing them.
788
+ *
789
+ * An Action's `read`, a Workflow step's `sixb` and a `Sixb` runtime are all object readers, so a
790
+ * helper that takes an `ObjectReader` works in each of them.
791
+ */
792
+ export interface ObjectReader {
793
+ objects<const TObjectType extends ObjectTypeWithPropertyTokens>(
794
+ objectType: TObjectType
795
+ ): ObjectReadSet<TObjectType>
796
+ }
797
+
798
+ export interface ObjectByIdHandle<TObjectType extends ObjectTypeWithPropertyTokens>
799
+ extends ObjectReadByIdHandle<TObjectType> {
800
+ vector(profile: VectorProfileName<TObjectType>): ObjectVectorHandle
977
801
 
978
802
  /** Create or update a link from the current object to a target object. */
979
803
  link<TLinkToken extends LinkTokenForObjectType<TObjectType>>(
@@ -1041,36 +865,22 @@ export interface ObjectByIdHandle<
1041
865
  /** Read and write telemetry for one telemetry-mode property token. */
1042
866
  telemetry<TToken extends TelemetryPropertyToken<TObjectType>>(
1043
867
  property: TToken
1044
- ): TelemetryChannel<TToken, TValueTypes>
868
+ ): TelemetryChannel<TToken>
1045
869
  }
1046
870
 
1047
- export interface ObjectSet<
1048
- TObjectType extends ObjectTypeWithPropertyTokens,
1049
- TValueTypes extends readonly ValueType[],
1050
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens = TObjectType,
1051
- > {
1052
- /** Get an object by id, or null if it doesn't exist. */
1053
- get(id: string): Promise<TwinObject<TObjectType, TValueTypes> | null>
1054
-
871
+ export interface ObjectSet<TObjectType extends ObjectTypeWithPropertyTokens>
872
+ extends ObjectReadSet<TObjectType> {
1055
873
  /** Upsert object state facts (latest projection). */
1056
- upsert(input: {
1057
- properties: InferObjectProperties<TObjectType, TValueTypes>
1058
- }): Promise<TwinObject<TObjectType, TValueTypes>>
1059
-
1060
- /** Build an executable provider-neutral object query rooted at this object type. */
1061
- query(): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes>
874
+ upsert(input: { properties: ObjectTypeProperties<TObjectType> }): Promise<TwinObject<TObjectType>>
1062
875
 
1063
876
  /** Bind operations to a specific object id. */
1064
- byId(id: string): ObjectByIdHandle<TObjectType, TValueTypes>
1065
-
1066
- /** List stored objects of this type with storage-system filtering and pagination. */
1067
- list(input?: ObjectSetListInput): Promise<ListResult<TwinObject<TObjectType, TValueTypes>>>
877
+ byId(id: string): ObjectByIdHandle<TObjectType>
1068
878
 
1069
879
  /** Append telemetry for multiple objects in a single batch. */
1070
880
  appendTelemetryBatch(
1071
881
  items: readonly {
1072
882
  id: string
1073
- properties: InferTelemetryBatchProperties<TObjectType, TValueTypes>
883
+ properties: InferTelemetryBatchProperties<TObjectType>
1074
884
  at?: Date
1075
885
  }[]
1076
886
  ): Promise<void>