@sixb/core 0.1.12 → 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 (527) hide show
  1. package/dist/actions/index.d.ts +2 -2
  2. package/dist/actions/index.d.ts.map +1 -1
  3. package/dist/actions/index.js +28 -26
  4. package/dist/actions/index.js.map +1 -1
  5. package/dist/actions/read-facade.d.ts +14 -16
  6. package/dist/actions/read-facade.d.ts.map +1 -1
  7. package/dist/actions/request.d.ts.map +1 -1
  8. package/dist/actions/run-dispatch.d.ts +2 -0
  9. package/dist/actions/run-dispatch.d.ts.map +1 -1
  10. package/dist/actions/types/context.d.ts +18 -31
  11. package/dist/actions/types/context.d.ts.map +1 -1
  12. package/dist/actions/types/params.d.ts +2 -1
  13. package/dist/actions/types/params.d.ts.map +1 -1
  14. package/dist/actions/worker.js +1 -1
  15. package/dist/agents/index.js +41 -39
  16. package/dist/agents/index.js.map +1 -1
  17. package/dist/agents/streams/index.js +2 -2
  18. package/dist/agents/streams/internal.js +2 -2
  19. package/dist/assert-never.d.ts +6 -0
  20. package/dist/assert-never.d.ts.map +1 -0
  21. package/dist/auth/client-address.d.ts +3 -0
  22. package/dist/auth/client-address.d.ts.map +1 -0
  23. package/dist/auth/csrf.d.ts +5 -1
  24. package/dist/auth/csrf.d.ts.map +1 -1
  25. package/dist/auth/index.d.ts +3 -2
  26. package/dist/auth/index.d.ts.map +1 -1
  27. package/dist/auth/index.js +14 -8
  28. package/dist/auth/index.js.map +1 -1
  29. package/dist/auth/runtime.d.ts +58 -41
  30. package/dist/auth/runtime.d.ts.map +1 -1
  31. package/dist/auth/session-cache.d.ts +10 -3
  32. package/dist/auth/session-cache.d.ts.map +1 -1
  33. package/dist/auth/sessions.d.ts +12 -0
  34. package/dist/auth/sessions.d.ts.map +1 -1
  35. package/dist/auth/strategy.js +1 -1
  36. package/dist/auth/types.d.ts +8 -15
  37. package/dist/auth/types.d.ts.map +1 -1
  38. package/dist/authorization/index.js +3 -3
  39. package/dist/bootstrap/index.d.ts +1 -1
  40. package/dist/bootstrap/index.d.ts.map +1 -1
  41. package/dist/bootstrap/index.js +45 -43
  42. package/dist/bootstrap/index.js.map +1 -1
  43. package/dist/bootstrap/ontology-type-manifest.d.ts +8 -0
  44. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  45. package/dist/{chunk-q5gz3g2j.js → chunk-0321g649.js} +2 -16
  46. package/dist/{chunk-q5gz3g2j.js.map → chunk-0321g649.js.map} +2 -2
  47. package/dist/{chunk-e1f1sqba.js → chunk-04h4t2b5.js} +3 -3
  48. package/dist/{chunk-y3ev53cq.js → chunk-2fv8sajb.js} +2 -2
  49. package/dist/{chunk-3bnt2wna.js → chunk-2hbhn1ff.js} +1 -1
  50. package/dist/{chunk-eyjzgav0.js → chunk-3nx8vj5a.js} +6 -4
  51. package/dist/chunk-3nx8vj5a.js.map +12 -0
  52. package/dist/{chunk-5tetw4hn.js → chunk-4tnrzqqh.js} +1 -1
  53. package/dist/{chunk-g50nxqs5.js → chunk-63fp9x3q.js} +63 -20
  54. package/dist/chunk-63fp9x3q.js.map +20 -0
  55. package/dist/{chunk-qm535afa.js → chunk-693f3zn8.js} +66 -24
  56. package/dist/chunk-693f3zn8.js.map +15 -0
  57. package/dist/{chunk-7zgecwy1.js → chunk-6x0pqh32.js} +12 -1
  58. package/dist/{chunk-7zgecwy1.js.map → chunk-6x0pqh32.js.map} +3 -3
  59. package/dist/{chunk-6ma8dvzc.js → chunk-898y24dd.js} +49 -42
  60. package/dist/chunk-898y24dd.js.map +15 -0
  61. package/dist/{chunk-7qnvhtcd.js → chunk-91wthfwe.js} +17 -17
  62. package/dist/{chunk-7qnvhtcd.js.map → chunk-91wthfwe.js.map} +5 -5
  63. package/dist/chunk-96yw3pwd.js.map +2 -2
  64. package/dist/{chunk-2cxv584m.js → chunk-9pfw47qx.js} +309 -204
  65. package/dist/chunk-9pfw47qx.js.map +44 -0
  66. package/dist/{chunk-4k53sm9e.js → chunk-a0073121.js} +59 -59
  67. package/dist/{chunk-4k53sm9e.js.map → chunk-a0073121.js.map} +5 -5
  68. package/dist/{chunk-jjwhy3rs.js → chunk-a69fkrtr.js} +5 -5
  69. package/dist/{chunk-y1ahv8b7.js → chunk-bdhfn0ww.js} +1 -1
  70. package/dist/{chunk-4ph94nhd.js → chunk-bep5rrdq.js} +2 -2
  71. package/dist/{chunk-kept9cdd.js → chunk-bxx3ms5t.js} +1 -1
  72. package/dist/{chunk-xtfryrfb.js → chunk-cbn96bve.js} +2 -2
  73. package/dist/{chunk-nzsy3xrp.js → chunk-cvrbhvtr.js} +69 -44
  74. package/dist/{chunk-nzsy3xrp.js.map → chunk-cvrbhvtr.js.map} +7 -7
  75. package/dist/{chunk-vsg0g7h9.js → chunk-d8yes9yx.js} +304 -45
  76. package/dist/chunk-d8yes9yx.js.map +20 -0
  77. package/dist/{chunk-tg4g4zh0.js → chunk-darm7eeg.js} +9 -9
  78. package/dist/{chunk-tg4g4zh0.js.map → chunk-darm7eeg.js.map} +3 -3
  79. package/dist/{chunk-vpxss818.js → chunk-drz59ve0.js} +9 -8
  80. package/dist/chunk-drz59ve0.js.map +10 -0
  81. package/dist/{chunk-7c2g3sz9.js → chunk-dsfw1bdr.js} +5 -5
  82. package/dist/{chunk-7c2g3sz9.js.map → chunk-dsfw1bdr.js.map} +1 -1
  83. package/dist/{chunk-p6r1ex7t.js → chunk-ffwvdgk1.js} +5 -13
  84. package/dist/chunk-ffwvdgk1.js.map +10 -0
  85. package/dist/{chunk-r5zythxp.js → chunk-gbcrz0gr.js} +7 -7
  86. package/dist/{chunk-ybhz3j9g.js → chunk-gc226ten.js} +104 -148
  87. package/dist/{chunk-ybhz3j9g.js.map → chunk-gc226ten.js.map} +7 -8
  88. package/dist/{chunk-3ghw2t5q.js → chunk-gmt22nxx.js} +10 -16
  89. package/dist/chunk-gmt22nxx.js.map +10 -0
  90. package/dist/chunk-h89wz928.js +42 -0
  91. package/dist/chunk-h89wz928.js.map +10 -0
  92. package/dist/{chunk-hkw8rykk.js → chunk-ht4a7mjg.js} +74 -4
  93. package/dist/chunk-ht4a7mjg.js.map +15 -0
  94. package/dist/{chunk-t7dzd1tm.js → chunk-jhyc777j.js} +2 -2
  95. package/dist/{chunk-xn686q2e.js → chunk-jmwy25mf.js} +75 -57
  96. package/dist/{chunk-xn686q2e.js.map → chunk-jmwy25mf.js.map} +3 -3
  97. package/dist/{chunk-f06sf7rr.js → chunk-k4kkp58d.js} +18 -5
  98. package/dist/chunk-k4kkp58d.js.map +11 -0
  99. package/dist/{chunk-2h63nrde.js → chunk-ky7zpbtt.js} +5 -7
  100. package/dist/{chunk-2h63nrde.js.map → chunk-ky7zpbtt.js.map} +3 -4
  101. package/dist/chunk-m4ehq95f.js +9 -0
  102. package/dist/chunk-m4ehq95f.js.map +10 -0
  103. package/dist/{chunk-0mza4xb2.js → chunk-m8zkvep1.js} +2 -2
  104. package/dist/{chunk-b768c93y.js → chunk-mf6hwpzh.js} +83 -28
  105. package/dist/{chunk-b768c93y.js.map → chunk-mf6hwpzh.js.map} +5 -5
  106. package/dist/{chunk-yxb4c62x.js → chunk-mr60an99.js} +3 -2
  107. package/dist/{chunk-yxb4c62x.js.map → chunk-mr60an99.js.map} +3 -3
  108. package/dist/chunk-n33e8dz8.js +191 -0
  109. package/dist/chunk-n33e8dz8.js.map +11 -0
  110. package/dist/chunk-rdghfsss.js.map +2 -2
  111. package/dist/{chunk-m7cx05vp.js → chunk-rqtdtm43.js} +126 -59
  112. package/dist/{chunk-m7cx05vp.js.map → chunk-rqtdtm43.js.map} +13 -12
  113. package/dist/{chunk-bbaa1fet.js → chunk-rzcjp5m2.js} +7 -3
  114. package/dist/chunk-rzcjp5m2.js.map +25 -0
  115. package/dist/{chunk-hzw7yv5g.js → chunk-rzkr70gr.js} +5 -1
  116. package/dist/{chunk-hzw7yv5g.js.map → chunk-rzkr70gr.js.map} +3 -3
  117. package/dist/{chunk-sfypc7mk.js → chunk-s24qbp32.js} +4 -4
  118. package/dist/{chunk-axndsymr.js → chunk-tw03bsmb.js} +2 -2
  119. package/dist/{chunk-axndsymr.js.map → chunk-tw03bsmb.js.map} +3 -3
  120. package/dist/{chunk-y0v18c2j.js → chunk-vef6qa14.js} +2 -2
  121. package/dist/{chunk-gzt6v1ja.js → chunk-vn3yh259.js} +1 -1
  122. package/dist/{chunk-bg2bs62d.js → chunk-w9bp61e7.js} +5 -5
  123. package/dist/{chunk-3h7ctayx.js → chunk-xgptywp0.js} +4 -3
  124. package/dist/chunk-xgptywp0.js.map +11 -0
  125. package/dist/{chunk-gswwr35f.js → chunk-y487ywrv.js} +4 -4
  126. package/dist/{chunk-bet1rb9h.js → chunk-y6vnvayj.js} +1 -1
  127. package/dist/{chunk-x9tmx3fc.js → chunk-ypj2wqtj.js} +3 -6
  128. package/dist/{chunk-x9tmx3fc.js.map → chunk-ypj2wqtj.js.map} +4 -4
  129. package/dist/{chunk-g2gezsg5.js → chunk-z9h698s8.js} +1 -1
  130. package/dist/{chunk-wjffn5m4.js → chunk-zdkcdshk.js} +3 -36
  131. package/dist/{chunk-wjffn5m4.js.map → chunk-zdkcdshk.js.map} +3 -4
  132. package/dist/{chunk-bfjv1adk.js → chunk-znw0zvy4.js} +1 -1
  133. package/dist/edits/types.d.ts +19 -19
  134. package/dist/edits/types.d.ts.map +1 -1
  135. package/dist/error-reporting/internal.js +3 -3
  136. package/dist/errors/catalog.d.ts +4 -0
  137. package/dist/errors/catalog.d.ts.map +1 -1
  138. package/dist/errors/internal.js +1 -1
  139. package/dist/events/envelope.d.ts +0 -12
  140. package/dist/events/envelope.d.ts.map +1 -1
  141. package/dist/events/index.d.ts +1 -1
  142. package/dist/events/index.d.ts.map +1 -1
  143. package/dist/events/index.js +3 -3
  144. package/dist/events/service.d.ts +1 -2
  145. package/dist/events/service.d.ts.map +1 -1
  146. package/dist/events/toStoredEvent.d.ts +1 -2
  147. package/dist/events/toStoredEvent.d.ts.map +1 -1
  148. package/dist/events/types/index.d.ts +2 -1
  149. package/dist/events/types/index.d.ts.map +1 -1
  150. package/dist/execution/agent.d.ts +1 -2
  151. package/dist/execution/agent.d.ts.map +1 -1
  152. package/dist/execution/agent.js +39 -37
  153. package/dist/execution/agent.js.map +1 -1
  154. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  155. package/dist/execution/primitive.d.ts +1 -2
  156. package/dist/execution/primitive.d.ts.map +1 -1
  157. package/dist/execution/primitive.js +38 -36
  158. package/dist/execution/primitive.js.map +3 -3
  159. package/dist/execution/request.d.ts +1 -2
  160. package/dist/execution/request.d.ts.map +1 -1
  161. package/dist/execution/request.js +39 -37
  162. package/dist/execution/request.js.map +3 -3
  163. package/dist/index.d.ts +6 -6
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js +56 -50
  166. package/dist/index.js.map +1 -1
  167. package/dist/maintenance/ontology-maintenance.d.ts +11 -1
  168. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  169. package/dist/materialization/errors.d.ts +3 -1
  170. package/dist/materialization/errors.d.ts.map +1 -1
  171. package/dist/materialization/events.d.ts +27 -2
  172. package/dist/materialization/events.d.ts.map +1 -1
  173. package/dist/materializer/edits/commit.d.ts.map +1 -1
  174. package/dist/materializer/edits/operations.d.ts +2 -1
  175. package/dist/materializer/edits/operations.d.ts.map +1 -1
  176. package/dist/materializer/edits/plan.d.ts +2 -2
  177. package/dist/materializer/edits/plan.d.ts.map +1 -1
  178. package/dist/materializer/edits/user-refs.d.ts +30 -0
  179. package/dist/materializer/edits/user-refs.d.ts.map +1 -0
  180. package/dist/materializer/effective/build-events.d.ts +2 -2
  181. package/dist/materializer/effective/build-events.d.ts.map +1 -1
  182. package/dist/materializer/execution/scope.d.ts +11 -3
  183. package/dist/materializer/execution/scope.d.ts.map +1 -1
  184. package/dist/materializer/index.js +23 -21
  185. package/dist/materializer/index.js.map +1 -1
  186. package/dist/materializer/projections/replacement-plan.d.ts +2 -0
  187. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  188. package/dist/materializer/telemetry/plan.d.ts +2 -2
  189. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  190. package/dist/models/execution/index.js +23 -21
  191. package/dist/models/execution/index.js.map +1 -1
  192. package/dist/models/index.js +1 -1
  193. package/dist/objects/execution.d.ts +21 -27
  194. package/dist/objects/execution.d.ts.map +1 -1
  195. package/dist/objects/index.js +28 -26
  196. package/dist/objects/index.js.map +1 -1
  197. package/dist/objects/query/executor.d.ts.map +1 -1
  198. package/dist/objects/query/index.js +27 -25
  199. package/dist/objects/query/index.js.map +1 -1
  200. package/dist/objects/query/ir.d.ts +8 -1
  201. package/dist/objects/query/ir.d.ts.map +1 -1
  202. package/dist/objects/query/scalar-values.d.ts.map +1 -1
  203. package/dist/objects/query/validate.d.ts.map +1 -1
  204. package/dist/objects/sdk/object-handle.d.ts +1 -2
  205. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  206. package/dist/objects/sdk/object-set.d.ts +2 -3
  207. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  208. package/dist/objects/sdk/query-builder.d.ts +8 -10
  209. package/dist/objects/sdk/query-builder.d.ts.map +1 -1
  210. package/dist/objects/sdk/telemetry-channel.d.ts +1 -2
  211. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  212. package/dist/objects/sdk/where.d.ts +2 -3
  213. package/dist/objects/sdk/where.d.ts.map +1 -1
  214. package/dist/ontology/builders.d.ts +11 -10
  215. package/dist/ontology/builders.d.ts.map +1 -1
  216. package/dist/ontology/index.d.ts +4 -2
  217. package/dist/ontology/index.d.ts.map +1 -1
  218. package/dist/ontology/index.js +6 -4
  219. package/dist/ontology/index.js.map +1 -1
  220. package/dist/ontology/inference/index.d.ts +34 -22
  221. package/dist/ontology/inference/index.d.ts.map +1 -1
  222. package/dist/ontology/internal.d.ts +1 -0
  223. package/dist/ontology/internal.d.ts.map +1 -1
  224. package/dist/ontology/internal.js +9 -7
  225. package/dist/ontology/internal.js.map +1 -1
  226. package/dist/ontology/primitives.d.ts +38 -0
  227. package/dist/ontology/primitives.d.ts.map +1 -0
  228. package/dist/ontology/query-capabilities.d.ts +38 -0
  229. package/dist/ontology/query-capabilities.d.ts.map +1 -0
  230. package/dist/ontology/refs.d.ts +23 -2
  231. package/dist/ontology/refs.d.ts.map +1 -1
  232. package/dist/ontology/registered.d.ts +16 -0
  233. package/dist/ontology/registered.d.ts.map +1 -0
  234. package/dist/ontology/registry.d.ts.map +1 -1
  235. package/dist/ontology/tokens.d.ts +35 -1
  236. package/dist/ontology/tokens.d.ts.map +1 -1
  237. package/dist/ontology/types.d.ts +18 -4
  238. package/dist/ontology/types.d.ts.map +1 -1
  239. package/dist/ontology/user-ref.d.ts +35 -0
  240. package/dist/ontology/user-ref.d.ts.map +1 -0
  241. package/dist/ontology/validation/definition.d.ts.map +1 -1
  242. package/dist/ontology/validation/index.d.ts +1 -1
  243. package/dist/ontology/validation/index.d.ts.map +1 -1
  244. package/dist/ontology/validation/normalize.d.ts.map +1 -1
  245. package/dist/ontology/validation/properties.d.ts +6 -1
  246. package/dist/ontology/validation/properties.d.ts.map +1 -1
  247. package/dist/ontology/validation/query.d.ts.map +1 -1
  248. package/dist/ontology/validation/schema.d.ts.map +1 -1
  249. package/dist/pipelines/index.js +26 -24
  250. package/dist/pipelines/index.js.map +1 -1
  251. package/dist/predicates/types.d.ts +53 -3
  252. package/dist/predicates/types.d.ts.map +1 -1
  253. package/dist/projections/builders.d.ts +19 -1
  254. package/dist/projections/builders.d.ts.map +1 -1
  255. package/dist/projections/internal.js +23 -21
  256. package/dist/projections/internal.js.map +1 -1
  257. package/dist/projections/validation.d.ts.map +1 -1
  258. package/dist/query.js +2 -2
  259. package/dist/queues/in-memory.d.ts +1 -1
  260. package/dist/queues/in-memory.d.ts.map +1 -1
  261. package/dist/runtime/create.d.ts +1 -1
  262. package/dist/runtime/create.d.ts.map +1 -1
  263. package/dist/runtime/host.d.ts +5 -5
  264. package/dist/runtime/host.d.ts.map +1 -1
  265. package/dist/runtime/index.d.ts +1 -1
  266. package/dist/runtime/index.d.ts.map +1 -1
  267. package/dist/runtime/internal.js +27 -25
  268. package/dist/runtime/internal.js.map +1 -1
  269. package/dist/runtime/sixb.d.ts +5 -5
  270. package/dist/runtime/sixb.d.ts.map +1 -1
  271. package/dist/runtime/types.d.ts +171 -188
  272. package/dist/runtime/types.d.ts.map +1 -1
  273. package/dist/sandboxes/index.js +5 -5
  274. package/dist/sandboxes/sandbox.d.ts +4 -1
  275. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  276. package/dist/shared/params/types.d.ts +4 -3
  277. package/dist/shared/params/types.d.ts.map +1 -1
  278. package/dist/shared/params/user-refs.d.ts +19 -0
  279. package/dist/shared/params/user-refs.d.ts.map +1 -0
  280. package/dist/shares/compiler.d.ts.map +1 -1
  281. package/dist/shares/internal.js +24 -22
  282. package/dist/shares/internal.js.map +2 -2
  283. package/dist/storage/action-runs/failure.js +2 -2
  284. package/dist/storage/action-runs/types.d.ts +1 -1
  285. package/dist/storage/action-runs/types.d.ts.map +1 -1
  286. package/dist/storage/agents/provider.js +1 -1
  287. package/dist/storage/ai-limits/enforcement.js +2 -2
  288. package/dist/storage/auth/in-memory/access-tokens.d.ts.map +1 -1
  289. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  290. package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -1
  291. package/dist/storage/auth/in-memory/sessions.d.ts +8 -1
  292. package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
  293. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  294. package/dist/storage/auth/index.d.ts +1 -1
  295. package/dist/storage/auth/index.d.ts.map +1 -1
  296. package/dist/storage/auth/types.d.ts +62 -13
  297. package/dist/storage/auth/types.d.ts.map +1 -1
  298. package/dist/storage/connector-connections/provider.js +1 -1
  299. package/dist/storage/executions/provider.js +1 -1
  300. package/dist/storage/file-upload-sessions/in-memory.d.ts +9 -18
  301. package/dist/storage/file-upload-sessions/in-memory.d.ts.map +1 -1
  302. package/dist/storage/file-upload-sessions/index.d.ts +1 -1
  303. package/dist/storage/file-upload-sessions/index.d.ts.map +1 -1
  304. package/dist/storage/file-upload-sessions/provider.d.ts +52 -0
  305. package/dist/storage/file-upload-sessions/provider.d.ts.map +1 -0
  306. package/dist/storage/file-upload-sessions/provider.js +24 -0
  307. package/dist/storage/file-upload-sessions/provider.js.map +9 -0
  308. package/dist/storage/file-upload-sessions/types.d.ts +19 -1
  309. package/dist/storage/file-upload-sessions/types.d.ts.map +1 -1
  310. package/dist/storage/file-upload-sessions/utils.d.ts +8 -2
  311. package/dist/storage/file-upload-sessions/utils.d.ts.map +1 -1
  312. package/dist/storage/index.d.ts +3 -3
  313. package/dist/storage/index.d.ts.map +1 -1
  314. package/dist/storage/index.js +29 -25
  315. package/dist/storage/index.js.map +1 -1
  316. package/dist/storage/internal.js +11 -9
  317. package/dist/storage/internal.js.map +1 -1
  318. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  319. package/dist/storage/ontology/commits.d.ts +6 -2
  320. package/dist/storage/ontology/commits.d.ts.map +1 -1
  321. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  322. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  323. package/dist/storage/ontology/provider.d.ts +14 -1
  324. package/dist/storage/ontology/provider.d.ts.map +1 -1
  325. package/dist/storage/ontology/provider.js +8 -2
  326. package/dist/storage/ontology/provider.js.map +1 -1
  327. package/dist/storage/operation-scope.d.ts.map +1 -1
  328. package/dist/storage/operation-scope.js +1 -1
  329. package/dist/storage/projection-runs/provider.js +2 -2
  330. package/dist/storage/types.d.ts +1 -1
  331. package/dist/storage/types.d.ts.map +1 -1
  332. package/dist/storage/workflow-interventions/index.d.ts +1 -1
  333. package/dist/storage/workflow-interventions/index.d.ts.map +1 -1
  334. package/dist/storage/workflow-interventions/types.d.ts +5 -8
  335. package/dist/storage/workflow-interventions/types.d.ts.map +1 -1
  336. package/dist/storage/workflow-runs/provider.js +8 -8
  337. package/dist/syncs/index.js +27 -25
  338. package/dist/syncs/index.js.map +1 -1
  339. package/dist/testing/action-execution.d.ts +4 -0
  340. package/dist/testing/action-execution.d.ts.map +1 -1
  341. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  342. package/dist/testing/execution.d.ts +1 -2
  343. package/dist/testing/execution.d.ts.map +1 -1
  344. package/dist/testing/file-upload-session-storage-contract.d.ts +12 -0
  345. package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -0
  346. package/dist/testing/index.d.ts +2 -0
  347. package/dist/testing/index.d.ts.map +1 -1
  348. package/dist/testing/index.js +1951 -1242
  349. package/dist/testing/index.js.map +15 -13
  350. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  351. package/dist/testing/object-query-contract.d.ts.map +1 -1
  352. package/dist/testing/ontology-contract-fixture.d.ts +8 -0
  353. package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
  354. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  355. package/dist/testing/sandboxes-contract.d.ts.map +1 -1
  356. package/dist/testing/workflow-intervention-storage-contract.d.ts +8 -0
  357. package/dist/testing/workflow-intervention-storage-contract.d.ts.map +1 -0
  358. package/dist/webhooks/internal.js +24 -22
  359. package/dist/webhooks/internal.js.map +2 -2
  360. package/dist/webhooks/types.d.ts +2 -2
  361. package/dist/webhooks/types.d.ts.map +1 -1
  362. package/dist/workers/index.js +1 -1
  363. package/dist/workflows/index.js +42 -40
  364. package/dist/workflows/index.js.map +1 -1
  365. package/dist/workflows/run-dispatch.d.ts.map +1 -1
  366. package/dist/workflows/types.d.ts +2 -2
  367. package/dist/workflows/types.d.ts.map +1 -1
  368. package/package.json +7 -1
  369. package/src/actions/index.ts +0 -3
  370. package/src/actions/read-facade.ts +102 -62
  371. package/src/actions/request.ts +13 -0
  372. package/src/actions/run-dispatch.ts +3 -0
  373. package/src/actions/types/context.ts +17 -65
  374. package/src/actions/types/params.ts +2 -1
  375. package/src/agents/authority.ts +1 -1
  376. package/src/assert-never.ts +7 -0
  377. package/src/auth/client-address.ts +12 -0
  378. package/src/auth/csrf.ts +14 -5
  379. package/src/auth/index.ts +3 -2
  380. package/src/auth/runtime.ts +299 -277
  381. package/src/auth/session-cache.ts +18 -6
  382. package/src/auth/sessions.ts +30 -0
  383. package/src/auth/types.ts +7 -17
  384. package/src/bootstrap/index.ts +1 -0
  385. package/src/bootstrap/ontology-type-manifest.ts +112 -60
  386. package/src/edits/types.ts +47 -63
  387. package/src/errors/catalog.ts +4 -0
  388. package/src/events/envelope.ts +0 -13
  389. package/src/events/index.ts +1 -1
  390. package/src/events/service.ts +1 -11
  391. package/src/events/toStoredEvent.ts +1 -3
  392. package/src/events/types/index.ts +1 -1
  393. package/src/execution/agent.ts +1 -2
  394. package/src/execution/authorized-object-reader.ts +5 -7
  395. package/src/execution/primitive.ts +1 -2
  396. package/src/execution/request.ts +1 -2
  397. package/src/index.ts +8 -7
  398. package/src/maintenance/ontology-maintenance.ts +77 -1
  399. package/src/materialization/errors.ts +2 -0
  400. package/src/materialization/events.ts +27 -2
  401. package/src/materializer/README.md +2 -0
  402. package/src/materializer/edits/commit.ts +21 -12
  403. package/src/materializer/edits/operations.ts +32 -4
  404. package/src/materializer/edits/plan.ts +4 -5
  405. package/src/materializer/edits/user-refs.ts +115 -0
  406. package/src/materializer/effective/build-events.ts +4 -5
  407. package/src/materializer/execution/scope.ts +40 -7
  408. package/src/materializer/projections/replace.ts +2 -0
  409. package/src/materializer/projections/replacement-plan.ts +4 -0
  410. package/src/materializer/telemetry/append.ts +4 -12
  411. package/src/materializer/telemetry/plan.ts +4 -5
  412. package/src/objects/execution.ts +33 -62
  413. package/src/objects/query/executor.ts +12 -3
  414. package/src/objects/query/ir.ts +7 -0
  415. package/src/objects/query/planner.ts +1 -0
  416. package/src/objects/query/scalar-values.ts +19 -0
  417. package/src/objects/query/validate.ts +55 -44
  418. package/src/objects/sdk/object-handle.ts +8 -8
  419. package/src/objects/sdk/object-set.ts +8 -15
  420. package/src/objects/sdk/query-builder.ts +59 -71
  421. package/src/objects/sdk/telemetry-channel.ts +6 -7
  422. package/src/objects/sdk/where.ts +6 -13
  423. package/src/ontology/builders.ts +15 -11
  424. package/src/ontology/index.ts +4 -0
  425. package/src/ontology/inference/index.ts +56 -36
  426. package/src/ontology/internal.ts +1 -0
  427. package/src/ontology/json-schema.ts +12 -0
  428. package/src/ontology/primitives.ts +91 -0
  429. package/src/ontology/query-capabilities.ts +136 -0
  430. package/src/ontology/refs.ts +33 -6
  431. package/src/ontology/registered.ts +22 -0
  432. package/src/ontology/registry.ts +6 -3
  433. package/src/ontology/tokens.ts +41 -2
  434. package/src/ontology/types.ts +19 -3
  435. package/src/ontology/user-ref.ts +120 -0
  436. package/src/ontology/validation/definition.ts +2 -13
  437. package/src/ontology/validation/index.ts +1 -0
  438. package/src/ontology/validation/normalize.ts +39 -3
  439. package/src/ontology/validation/properties.ts +95 -19
  440. package/src/ontology/validation/query.ts +11 -42
  441. package/src/ontology/validation/schema.ts +16 -0
  442. package/src/predicates/types.ts +43 -33
  443. package/src/projections/builders.ts +24 -3
  444. package/src/projections/validation.ts +15 -1
  445. package/src/runtime/create.ts +2 -2
  446. package/src/runtime/host.ts +10 -12
  447. package/src/runtime/index.ts +3 -2
  448. package/src/runtime/sixb.ts +13 -23
  449. package/src/runtime/types.ts +277 -479
  450. package/src/sandboxes/sandbox.ts +4 -1
  451. package/src/shared/params/types.ts +4 -3
  452. package/src/shared/params/user-refs.ts +48 -0
  453. package/src/shares/compiler.ts +6 -16
  454. package/src/storage/action-runs/types.ts +1 -0
  455. package/src/storage/auth/in-memory/access-tokens.ts +5 -2
  456. package/src/storage/auth/in-memory/auth-storage.ts +5 -8
  457. package/src/storage/auth/in-memory/device-authorizations.ts +0 -2
  458. package/src/storage/auth/in-memory/sessions.ts +69 -1
  459. package/src/storage/auth/in-memory/shared.ts +13 -7
  460. package/src/storage/auth/index.ts +2 -1
  461. package/src/storage/auth/types.ts +57 -13
  462. package/src/storage/executions/validation.ts +1 -1
  463. package/src/storage/file-upload-sessions/in-memory.ts +64 -113
  464. package/src/storage/file-upload-sessions/index.ts +1 -0
  465. package/src/storage/file-upload-sessions/provider.ts +258 -0
  466. package/src/storage/file-upload-sessions/types.ts +20 -1
  467. package/src/storage/file-upload-sessions/utils.ts +25 -9
  468. package/src/storage/index.ts +3 -2
  469. package/src/storage/objects/in-memory/query.ts +13 -3
  470. package/src/storage/ontology/commits.ts +6 -2
  471. package/src/storage/ontology/in-memory/materializations.ts +6 -34
  472. package/src/storage/ontology/provider-header-validation.ts +57 -0
  473. package/src/storage/ontology/provider-work.ts +15 -3
  474. package/src/storage/ontology/provider.ts +59 -1
  475. package/src/storage/operation-scope.ts +1 -0
  476. package/src/storage/types.ts +0 -1
  477. package/src/storage/workflow-interventions/index.ts +0 -1
  478. package/src/storage/workflow-interventions/types.ts +5 -9
  479. package/src/testing/action-execution.ts +13 -3
  480. package/src/testing/auth-storage-contract.ts +149 -62
  481. package/src/testing/execution-storage-contract.ts +1 -2
  482. package/src/testing/execution.ts +4 -7
  483. package/src/testing/file-upload-session-storage-contract.ts +335 -0
  484. package/src/testing/index.ts +8 -0
  485. package/src/testing/materializer-storage-contract.ts +86 -4
  486. package/src/testing/object-query-contract.ts +121 -2
  487. package/src/testing/ontology-contract-fixture.ts +23 -3
  488. package/src/testing/ontology-storage-contract.ts +58 -0
  489. package/src/testing/sandboxes-contract.ts +27 -0
  490. package/src/testing/workflow-intervention-storage-contract.ts +203 -0
  491. package/src/webhooks/types.ts +2 -2
  492. package/src/workflows/run-dispatch.ts +12 -1
  493. package/src/workflows/snapshot.ts +16 -7
  494. package/src/workflows/types.ts +2 -2
  495. package/dist/chunk-2cxv584m.js.map +0 -43
  496. package/dist/chunk-3ghw2t5q.js.map +0 -10
  497. package/dist/chunk-3h7ctayx.js.map +0 -11
  498. package/dist/chunk-6ma8dvzc.js.map +0 -15
  499. package/dist/chunk-bbaa1fet.js.map +0 -25
  500. package/dist/chunk-eyjzgav0.js.map +0 -12
  501. package/dist/chunk-f06sf7rr.js.map +0 -11
  502. package/dist/chunk-g50nxqs5.js.map +0 -18
  503. package/dist/chunk-hkw8rykk.js.map +0 -15
  504. package/dist/chunk-p6r1ex7t.js.map +0 -10
  505. package/dist/chunk-qm535afa.js.map +0 -15
  506. package/dist/chunk-vpxss818.js.map +0 -10
  507. package/dist/chunk-vsg0g7h9.js.map +0 -17
  508. /package/dist/{chunk-e1f1sqba.js.map → chunk-04h4t2b5.js.map} +0 -0
  509. /package/dist/{chunk-y3ev53cq.js.map → chunk-2fv8sajb.js.map} +0 -0
  510. /package/dist/{chunk-3bnt2wna.js.map → chunk-2hbhn1ff.js.map} +0 -0
  511. /package/dist/{chunk-5tetw4hn.js.map → chunk-4tnrzqqh.js.map} +0 -0
  512. /package/dist/{chunk-jjwhy3rs.js.map → chunk-a69fkrtr.js.map} +0 -0
  513. /package/dist/{chunk-y1ahv8b7.js.map → chunk-bdhfn0ww.js.map} +0 -0
  514. /package/dist/{chunk-4ph94nhd.js.map → chunk-bep5rrdq.js.map} +0 -0
  515. /package/dist/{chunk-kept9cdd.js.map → chunk-bxx3ms5t.js.map} +0 -0
  516. /package/dist/{chunk-xtfryrfb.js.map → chunk-cbn96bve.js.map} +0 -0
  517. /package/dist/{chunk-r5zythxp.js.map → chunk-gbcrz0gr.js.map} +0 -0
  518. /package/dist/{chunk-t7dzd1tm.js.map → chunk-jhyc777j.js.map} +0 -0
  519. /package/dist/{chunk-0mza4xb2.js.map → chunk-m8zkvep1.js.map} +0 -0
  520. /package/dist/{chunk-sfypc7mk.js.map → chunk-s24qbp32.js.map} +0 -0
  521. /package/dist/{chunk-y0v18c2j.js.map → chunk-vef6qa14.js.map} +0 -0
  522. /package/dist/{chunk-gzt6v1ja.js.map → chunk-vn3yh259.js.map} +0 -0
  523. /package/dist/{chunk-bg2bs62d.js.map → chunk-w9bp61e7.js.map} +0 -0
  524. /package/dist/{chunk-gswwr35f.js.map → chunk-y487ywrv.js.map} +0 -0
  525. /package/dist/{chunk-bet1rb9h.js.map → chunk-y6vnvayj.js.map} +0 -0
  526. /package/dist/{chunk-g2gezsg5.js.map → chunk-z9h698s8.js.map} +0 -0
  527. /package/dist/{chunk-bfjv1adk.js.map → chunk-znw0zvy4.js.map} +0 -0
@@ -8,6 +8,13 @@ import type {
8
8
  } from "../../ontology"
9
9
  import { normalizeDecimalValue } from "../../ontology"
10
10
  import { formatUnknownObjectTypeMessage } from "../../ontology/errors"
11
+ import {
12
+ isContainsSchema,
13
+ isExactSchema,
14
+ isSortableSchema,
15
+ isTextSchema,
16
+ queryScalarKindForSchema,
17
+ } from "../../ontology/query-capabilities"
11
18
  import { validatePropertyValue, validateSchemaValue } from "../../ontology/validation"
12
19
  import { MAX_VECTOR_K, normalizeVector, vectorConfiguration } from "../vectors/profile"
13
20
  import { hasVectorProfile, isVectorProfileQuery } from "../vectors/query"
@@ -593,8 +600,15 @@ function validatePredicate(
593
600
  addIssue(ctx, path, "invalid_exists_value", "Predicate 'exists' value must be boolean")
594
601
  }
595
602
  return predicate
596
- case "contains":
597
- resolveAndValidatePredicateProperty(predicate.propertyId, predicate.op, shape, path, ctx)
603
+ case "contains": {
604
+ const { scalarKind: _authoredScalarKind, ...authoredPredicate } = predicate
605
+ const scalarKind = resolveAndValidatePredicateProperty(
606
+ predicate.propertyId,
607
+ predicate.op,
608
+ shape,
609
+ path,
610
+ ctx
611
+ )
598
612
  validateContainsValue(predicate.propertyId, predicate.value, shape, path, ctx)
599
613
  admitProperty(ctx, {
600
614
  state: admissionState,
@@ -602,7 +616,12 @@ function validatePredicate(
602
616
  use: "filter",
603
617
  path,
604
618
  })
605
- return predicate
619
+ return {
620
+ ...authoredPredicate,
621
+ value: normalizeObjectQueryValue(predicate.value, scalarKind),
622
+ ...(scalarKind ? { scalarKind } : {}),
623
+ }
624
+ }
606
625
  }
607
626
  }
608
627
 
@@ -665,10 +684,41 @@ function resolveAndValidatePredicateProperty(
665
684
  }
666
685
  }
667
686
 
668
- if (op === "exists" || op === "contains") return undefined
687
+ if (op === "exists") return undefined
688
+ if (op === "contains") return resolveArrayItemScalarKind(schemas, ctx)
669
689
  return resolveCommonQueryScalarKind(schemas, propertyId, path, ctx)
670
690
  }
671
691
 
692
+ /**
693
+ * Item scalar kind for `contains` over arrays, so array membership compares items the way `eq`
694
+ * compares values. Strings and maps keep substring and key semantics, and mixed item kinds keep the
695
+ * untyped comparison.
696
+ */
697
+ function resolveArrayItemScalarKind(
698
+ schemas: readonly Schema[],
699
+ ctx: QueryValidationContext
700
+ ): QueryScalarKind | undefined {
701
+ const kinds = new Set<QueryScalarKind | undefined>()
702
+ for (const schema of schemas) {
703
+ if (typeof schema === "string" || schema.type !== "array") return undefined
704
+ const items = resolveValueTypeRefs(schema.items, ctx.valueTypesById)
705
+ kinds.add(items ? queryScalarKindForSchema(items) : undefined)
706
+ }
707
+ return kinds.size === 1 ? [...kinds][0] : undefined
708
+ }
709
+
710
+ function resolveValueTypeRefs(
711
+ schema: Schema,
712
+ valueTypesById: ReadonlyMap<string, ValueType>,
713
+ seen = new Set<string>()
714
+ ): Schema | undefined {
715
+ if (typeof schema === "string" || schema.type !== "valueTypeRef") return schema
716
+ if (seen.has(schema.valueTypeId)) return undefined
717
+ seen.add(schema.valueTypeId)
718
+ const resolved = schema._resolved ?? valueTypesById.get(schema.valueTypeId)?.schema
719
+ return resolved ? resolveValueTypeRefs(resolved, valueTypesById, seen) : undefined
720
+ }
721
+
672
722
  function normalizeObjectQueryValue(value: unknown, scalarKind: QueryScalarKind | undefined) {
673
723
  if (scalarKind !== "decimal" || typeof value !== "string") return value
674
724
  try {
@@ -703,12 +753,6 @@ function resolveCommonQueryScalarKind(
703
753
  return undefined
704
754
  }
705
755
 
706
- function queryScalarKindForSchema(schema: Schema): QueryScalarKind | undefined {
707
- if (typeof schema === "string") return schema === "fileRef" ? undefined : schema
708
- if (schema.type === "enum") return schema.valueType === "integer" ? "integer" : "string"
709
- return undefined
710
- }
711
-
712
756
  function validatePredicateValue(
713
757
  propertyId: string,
714
758
  value: unknown,
@@ -748,7 +792,7 @@ function validateContainsValue(
748
792
  if (!schema) continue
749
793
 
750
794
  if (typeof schema === "string") {
751
- if (schema === "string" || schema === "uuid") {
795
+ if (isContainsSchema(schema)) {
752
796
  if (typeof value !== "string") {
753
797
  addIssue(
754
798
  ctx,
@@ -1582,39 +1626,6 @@ function isPrimaryExactPredicate(property: Property, op: ObjectQueryPredicate["o
1582
1626
  return property.primary === true && (op === "eq" || op === "in")
1583
1627
  }
1584
1628
 
1585
- function isTextSchema(schema: Schema): boolean {
1586
- if (schema === "string") return true
1587
- return typeof schema !== "string" && schema.type === "enum" && schema.valueType === "string"
1588
- }
1589
-
1590
- function isExactSchema(schema: Schema): boolean {
1591
- if (typeof schema === "string") return schema !== "fileRef"
1592
- return schema.type === "enum"
1593
- }
1594
-
1595
- function isSortableSchema(schema: Schema): boolean {
1596
- if (typeof schema === "string") {
1597
- return (
1598
- schema === "string" ||
1599
- schema === "uuid" ||
1600
- schema === "integer" ||
1601
- schema === "double" ||
1602
- schema === "decimal" ||
1603
- schema === "date" ||
1604
- schema === "timestamp"
1605
- )
1606
- }
1607
- return schema.type === "enum"
1608
- }
1609
-
1610
- function isContainsSchema(schema: Schema): boolean {
1611
- return (
1612
- schema === "string" ||
1613
- schema === "uuid" ||
1614
- (typeof schema !== "string" && (schema.type === "array" || schema.type === "map"))
1615
- )
1616
- }
1617
-
1618
1629
  function keyForTypeIds(typeIds: readonly string[]): string {
1619
1630
  return uniqueStrings(typeIds).sort().join("\0")
1620
1631
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import type { ActionDefinition } from "../../actions"
8
- import type { ObjectLink, ObjectRef, ValueType } from "../../ontology"
8
+ import type { ObjectLink, ObjectRef } from "../../ontology"
9
9
  import { OntologyValidationError } from "../../ontology/errors"
10
10
  import type { LinkToken, ObjectTypeWithPropertyTokens } from "../../ontology/tokens"
11
11
  import { assertLinkTokenBelongsToObjectType } from "../../ontology/validation"
@@ -23,10 +23,10 @@ import { createTelemetryChannel } from "./telemetry-channel"
23
23
  type ObjectRefInput = ObjectRef
24
24
  type AnyLinkToken = LinkToken<string, string, string | readonly string[], ObjectLink>
25
25
 
26
- export function createObjectByIdHandle<
27
- TObjectType extends ObjectTypeWithPropertyTokens,
28
- TValueTypes extends readonly ValueType[],
29
- >(ctx: ExecutionObjectContext, primaryId: string): ObjectByIdHandle<TObjectType, TValueTypes> {
26
+ export function createObjectByIdHandle<TObjectType extends ObjectTypeWithPropertyTokens>(
27
+ ctx: ExecutionObjectContext,
28
+ primaryId: string
29
+ ): ObjectByIdHandle<TObjectType> {
30
30
  const objectHandle = {
31
31
  vector: (profileName: string) => createObjectVectorHandle(ctx, primaryId, profileName),
32
32
  get: async () => {
@@ -34,7 +34,7 @@ export function createObjectByIdHandle<
34
34
  objectTypeId: ctx.objectType.id,
35
35
  primaryId,
36
36
  })
37
- return row ? (row as unknown as TwinObject<TObjectType, TValueTypes>) : null
37
+ return row ? (row as unknown as TwinObject<TObjectType>) : null
38
38
  },
39
39
 
40
40
  listLinks: async (linkToken?: AnyLinkToken) => {
@@ -129,8 +129,8 @@ export function createObjectByIdHandle<
129
129
  })
130
130
  },
131
131
 
132
- telemetry: createTelemetryChannel<TObjectType, TValueTypes>(ctx, primaryId),
132
+ telemetry: createTelemetryChannel<TObjectType>(ctx, primaryId),
133
133
  }
134
134
 
135
- return objectHandle as unknown as ObjectByIdHandle<TObjectType, TValueTypes>
135
+ return objectHandle as unknown as ObjectByIdHandle<TObjectType>
136
136
  }
@@ -9,7 +9,6 @@ import type { AuthorizationContext } from "../../authorization"
9
9
  import { shareSixbErrorReporter } from "../../error-reporting/capability"
10
10
  import type { ExecutionContext } from "../../execution"
11
11
  import { assertAuthorizedObjectReaderBinding } from "../../execution/authorized-object-reader"
12
- import type { ValueType } from "../../ontology"
13
12
  import { OntologyValidationError } from "../../ontology/errors"
14
13
  import type { ObjectTypeWithPropertyTokens } from "../../ontology/tokens"
15
14
  import { shareOntologyMutationRuntime } from "../../runtime/ontology-mutations"
@@ -32,17 +31,13 @@ import { createObjectByIdHandle } from "./object-handle"
32
31
  import { createObjectQueryBuilder } from "./query-builder"
33
32
  import { createRuntimeQueryExecutor } from "./runtime-query-executor"
34
33
 
35
- export function createObjectSet<
36
- TObjectType extends ObjectTypeWithPropertyTokens,
37
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
38
- TValueTypes extends readonly ValueType[],
39
- >(
34
+ export function createObjectSet<TObjectType extends ObjectTypeWithPropertyTokens>(
40
35
  params: SixbRuntimeContext & {
41
36
  readonly execution: ExecutionContext
42
37
  readonly objectType: TObjectType
43
38
  readonly authorization?: AuthorizationContext
44
39
  }
45
- ): ObjectSet<TObjectType, TValueTypes, TRegisteredObjectTypes> {
40
+ ): ObjectSet<TObjectType> {
46
41
  assertAuthorizedObjectReaderBinding({
47
42
  reader: params.objectReader,
48
43
  scope: { execution: params.execution, authorization: params.runtimeAuthorization },
@@ -97,21 +92,21 @@ export function createObjectSet<
97
92
  objectTypeId: objectType.id,
98
93
  primaryId: id,
99
94
  })
100
- return row ? (row as unknown as TwinObject<TObjectType, TValueTypes>) : null
95
+ return row ? (row as unknown as TwinObject<TObjectType>) : null
101
96
  },
102
97
 
103
98
  upsert: async (input: { properties: Record<string, unknown> }) => {
104
99
  const row = await upsertObjectLeaf(resolvedCtx, input.properties)
105
- return row as unknown as TwinObject<TObjectType, TValueTypes>
100
+ return row as unknown as TwinObject<TObjectType>
106
101
  },
107
102
 
108
103
  query: () =>
109
- createObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes>({
104
+ createObjectQueryBuilder<TObjectType>({
110
105
  query: { kind: "start", objectTypeId: objectType.id },
111
106
  executor: queryExecutor,
112
107
  }),
113
108
 
114
- byId: (id: string) => createObjectByIdHandle<TObjectType, TValueTypes>(resolvedCtx, id),
109
+ byId: (id: string) => createObjectByIdHandle<TObjectType>(resolvedCtx, id),
115
110
 
116
111
  list: async (input?: ObjectSetListInput) => {
117
112
  const result = await objectReader.list({
@@ -129,9 +124,7 @@ export function createObjectSet<
129
124
  })
130
125
 
131
126
  return {
132
- objects: result.objects.map(
133
- (row) => row as unknown as TwinObject<TObjectType, TValueTypes>
134
- ),
127
+ objects: result.objects.map((row) => row as unknown as TwinObject<TObjectType>),
135
128
  hasMore: result.hasMore,
136
129
  total: result.total ?? result.objects.length,
137
130
  }
@@ -230,5 +223,5 @@ export function createObjectSet<
230
223
  },
231
224
  }
232
225
 
233
- return objectSet as unknown as ObjectSet<TObjectType, TValueTypes, TRegisteredObjectTypes>
226
+ return objectSet as unknown as ObjectSet<TObjectType>
234
227
  }
@@ -6,9 +6,9 @@
6
6
  * `ObjectQueryExecutor` — the server runtime executor or the HTTP client
7
7
  * executor — so the same builder serves both sides.
8
8
  */
9
- import type { ValueType } from "../../ontology"
10
9
  import { OntologyValidationError } from "../../ontology/errors"
11
10
  import type { LinkToken, ObjectTypeWithPropertyTokens, PropertyToken } from "../../ontology/tokens"
11
+ import { RuntimeError } from "../../runtime/errors"
12
12
  import type {
13
13
  ListResult,
14
14
  ListResultWithoutTotal,
@@ -39,24 +39,40 @@ type QueryBuilderParams = {
39
39
  executor: ObjectQueryExecutor
40
40
  }
41
41
 
42
- export function createObjectQueryBuilder<
43
- TObjectType extends ObjectTypeWithPropertyTokens,
44
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
45
- TValueTypes extends readonly ValueType[],
46
- >(
42
+ export function createObjectQueryBuilder<TObjectType extends ObjectTypeWithPropertyTokens>(
47
43
  params: QueryBuilderParams
48
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
49
- return new ObjectQueryBuilderImpl<TObjectType, TRegisteredObjectTypes, TValueTypes>(
44
+ ): ObjectQueryBuilder<TObjectType> {
45
+ return new ObjectQueryBuilderImpl<TObjectType>(
50
46
  params
51
- ) as unknown as ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes>
47
+ ) as unknown as ObjectQueryBuilder<TObjectType>
52
48
  }
53
49
 
54
- class ObjectQueryBuilderImpl<
55
- TObjectType extends ObjectTypeWithPropertyTokens,
56
- TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
57
- TValueTypes extends readonly ValueType[],
58
- > {
59
- constructor(private readonly params: QueryBuilderParams) {}
50
+ /**
51
+ * Returns the same query running through the executor `decorate` wraps around the builder's own.
52
+ *
53
+ * Refinements copy their builder's executor, so every query derived from the result, and every
54
+ * terminal it runs, goes through the decorated executor too.
55
+ */
56
+ export function decorateObjectQueryExecutor<TObjectType extends ObjectTypeWithPropertyTokens>(
57
+ builder: ObjectQueryBuilder<TObjectType>,
58
+ decorate: (executor: ObjectQueryExecutor) => ObjectQueryExecutor
59
+ ): ObjectQueryBuilder<TObjectType> {
60
+ // Narrowed from `unknown`: narrowing the builder interface to the class relates both structures.
61
+ const source: unknown = builder
62
+ if (!(source instanceof ObjectQueryBuilderImpl)) {
63
+ throw new RuntimeError(
64
+ "[Sixb] Only query builders created by createObjectQueryBuilder can change executor."
65
+ )
66
+ }
67
+ return new ObjectQueryBuilderImpl<TObjectType>({
68
+ ...source.params,
69
+ executor: decorate(source.params.executor),
70
+ }) as unknown as ObjectQueryBuilder<TObjectType>
71
+ }
72
+
73
+ class ObjectQueryBuilderImpl<TObjectType extends ObjectTypeWithPropertyTokens> {
74
+ /** Not private because `decorateObjectQueryExecutor` reads it; the class is not exported. */
75
+ constructor(readonly params: QueryBuilderParams) {}
60
76
 
61
77
  get ir(): ObjectQuery {
62
78
  return normalizeObjectQuery(this.params.query)
@@ -64,14 +80,11 @@ class ObjectQueryBuilderImpl<
64
80
 
65
81
  where(
66
82
  whereFn: (
67
- builder: ObjectWhereBuilder<TObjectType, TValueTypes>
68
- ) =>
69
- | ObjectWhereClause<TObjectType, TValueTypes>
70
- | readonly ObjectWhereClause<TObjectType, TValueTypes>[]
71
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
72
- const predicate = resolveWhere<TObjectType, TValueTypes>(whereFn)
73
- if (!predicate)
74
- return this as unknown as ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes>
83
+ builder: ObjectWhereBuilder<TObjectType>
84
+ ) => ObjectWhereClause<TObjectType> | readonly ObjectWhereClause<TObjectType>[]
85
+ ): ObjectQueryBuilder<TObjectType> {
86
+ const predicate = resolveWhere<TObjectType>(whereFn)
87
+ if (!predicate) return this as unknown as ObjectQueryBuilder<TObjectType>
75
88
 
76
89
  return this.withQuery({
77
90
  kind: "filter",
@@ -83,7 +96,7 @@ class ObjectQueryBuilderImpl<
83
96
  search(
84
97
  query: string,
85
98
  options?: { fields?: readonly PropertyToken<TObjectType["id"], string>[] }
86
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
99
+ ): ObjectQueryBuilder<TObjectType> {
87
100
  return this.withQuery({
88
101
  kind: "text",
89
102
  input: this.ir,
@@ -92,11 +105,7 @@ class ObjectQueryBuilderImpl<
92
105
  })
93
106
  }
94
107
 
95
- vector(
96
- profile: string,
97
- vector: string,
98
- options: { k: number }
99
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
108
+ vector(profile: string, vector: string, options: { k: number }): ObjectQueryBuilder<TObjectType> {
100
109
  if (typeof profile !== "string" || typeof vector !== "string") {
101
110
  throw new Error("[Sixb] Vector search requires a named profile and search text")
102
111
  }
@@ -112,25 +121,21 @@ class ObjectQueryBuilderImpl<
112
121
  traverse(
113
122
  link: LinkToken<TObjectType["id"], string, string>,
114
123
  options?: { direction?: "outgoing" }
115
- ): ObjectQueryBuilder<ObjectTypeWithPropertyTokens, TRegisteredObjectTypes, TValueTypes>
124
+ ): ObjectQueryBuilder<ObjectTypeWithPropertyTokens>
116
125
  traverse(
117
126
  link: LinkToken<string, string, TObjectType["id"] | readonly TObjectType["id"][]>,
118
127
  options: { direction: "incoming" }
119
- ): ObjectQueryBuilder<ObjectTypeWithPropertyTokens, TRegisteredObjectTypes, TValueTypes>
128
+ ): ObjectQueryBuilder<ObjectTypeWithPropertyTokens>
120
129
  traverse(
121
130
  link: LinkToken,
122
131
  options: { direction?: ObjectQueryDirection } = {}
123
- ): ObjectQueryBuilder<ObjectTypeWithPropertyTokens, TRegisteredObjectTypes, TValueTypes> {
132
+ ): ObjectQueryBuilder<ObjectTypeWithPropertyTokens> {
124
133
  const direction = options.direction ?? "outgoing"
125
134
  if (direction === "outgoing") {
126
135
  requireSingleTargetObjectTypeId(link)
127
136
  }
128
137
 
129
- return new ObjectQueryBuilderImpl<
130
- ObjectTypeWithPropertyTokens,
131
- TRegisteredObjectTypes,
132
- TValueTypes
133
- >({
138
+ return new ObjectQueryBuilderImpl<ObjectTypeWithPropertyTokens>({
134
139
  ...this.params,
135
140
  query: {
136
141
  kind: "traverse",
@@ -142,18 +147,14 @@ class ObjectQueryBuilderImpl<
142
147
  // matching the result type the fluent API advertises.
143
148
  ...(direction === "incoming" ? { sourceObjectTypeId: link.objectTypeId } : {}),
144
149
  },
145
- }) as unknown as ObjectQueryBuilder<
146
- ObjectTypeWithPropertyTokens,
147
- TRegisteredObjectTypes,
148
- TValueTypes
149
- >
150
+ }) as unknown as ObjectQueryBuilder<ObjectTypeWithPropertyTokens>
150
151
  }
151
152
 
152
153
  expand(
153
154
  link: LinkToken<string, string, string | readonly string[]>,
154
155
  optionsOrBuild?: ObjectExpandOptions<ObjectTypeWithPropertyTokens> | NestedExpandBuild,
155
156
  build?: NestedExpandBuild
156
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
157
+ ): ObjectQueryBuilder<TObjectType> {
157
158
  return this.withQuery({
158
159
  kind: "expand",
159
160
  input: this.ir,
@@ -164,7 +165,7 @@ class ObjectQueryBuilderImpl<
164
165
  orderBy(
165
166
  property: PropertyToken<TObjectType["id"], string>,
166
167
  direction?: ObjectQuerySortDirection
167
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
168
+ ): ObjectQueryBuilder<TObjectType> {
168
169
  return this.withQuery(
169
170
  appendSortField(this.ir, {
170
171
  kind: "property",
@@ -174,9 +175,7 @@ class ObjectQueryBuilderImpl<
174
175
  )
175
176
  }
176
177
 
177
- orderByRelevance(
178
- direction?: ObjectQuerySortDirection
179
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
178
+ orderByRelevance(direction?: ObjectQuerySortDirection): ObjectQueryBuilder<TObjectType> {
180
179
  return this.withQuery(
181
180
  appendSortField(this.ir, {
182
181
  kind: "relevance",
@@ -185,7 +184,7 @@ class ObjectQueryBuilderImpl<
185
184
  )
186
185
  }
187
186
 
188
- limit(limit: number): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
187
+ limit(limit: number): ObjectQueryBuilder<TObjectType> {
189
188
  return this.withQuery({
190
189
  kind: "limit",
191
190
  input: this.ir,
@@ -193,10 +192,7 @@ class ObjectQueryBuilderImpl<
193
192
  })
194
193
  }
195
194
 
196
- page(input: {
197
- pageSize: number
198
- pageToken?: string
199
- }): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
195
+ page(input: { pageSize: number; pageToken?: string }): ObjectQueryBuilder<TObjectType> {
200
196
  return this.withQuery({
201
197
  kind: "page",
202
198
  input: this.ir,
@@ -227,28 +223,25 @@ class ObjectQueryBuilderImpl<
227
223
  return formatObjectQueryExplanation(this.explain())
228
224
  }
229
225
 
230
- async list(): Promise<ListResult<TwinObject<TObjectType, TValueTypes>>>
226
+ async list(): Promise<ListResult<TwinObject<TObjectType>>>
231
227
  async list(options: {
232
228
  includeTotal: false
233
229
  signal?: AbortSignal
234
- }): Promise<ListResultWithoutTotal<TwinObject<TObjectType, TValueTypes>>>
230
+ }): Promise<ListResultWithoutTotal<TwinObject<TObjectType>>>
235
231
  async list(options: {
236
232
  includeTotal?: true
237
233
  signal?: AbortSignal
238
- }): Promise<ListResult<TwinObject<TObjectType, TValueTypes>>>
234
+ }): Promise<ListResult<TwinObject<TObjectType>>>
239
235
  async list(
240
236
  options?: ObjectQueryListOptions
241
237
  ): Promise<
242
- | ListResult<TwinObject<TObjectType, TValueTypes>>
243
- | ListResultWithoutTotal<TwinObject<TObjectType, TValueTypes>>
238
+ ListResult<TwinObject<TObjectType>> | ListResultWithoutTotal<TwinObject<TObjectType>>
244
239
  > {
245
240
  const result = await this.params.executor.list(this.ir, {
246
241
  includeTotal: options?.includeTotal,
247
242
  signal: options?.signal,
248
243
  })
249
- const objects = result.objects.map(
250
- (row) => row as unknown as TwinObject<TObjectType, TValueTypes>
251
- )
244
+ const objects = result.objects.map((row) => row as unknown as TwinObject<TObjectType>)
252
245
 
253
246
  if (options?.includeTotal === false) {
254
247
  return {
@@ -286,26 +279,21 @@ class ObjectQueryBuilderImpl<
286
279
  )
287
280
  }
288
281
 
289
- async first(): Promise<TwinObject<TObjectType, TValueTypes> | null> {
282
+ async first(): Promise<TwinObject<TObjectType> | null> {
290
283
  const result = await this.params.executor.list({ kind: "limit", input: this.ir, limit: 1 })
291
284
  const row = result.objects[0]
292
- return row ? (row as unknown as TwinObject<TObjectType, TValueTypes>) : null
285
+ return row ? (row as unknown as TwinObject<TObjectType>) : null
293
286
  }
294
287
 
295
- private withQuery(
296
- query: ObjectQuery
297
- ): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes> {
298
- return new ObjectQueryBuilderImpl<TObjectType, TRegisteredObjectTypes, TValueTypes>({
288
+ private withQuery(query: ObjectQuery): ObjectQueryBuilder<TObjectType> {
289
+ return new ObjectQueryBuilderImpl<TObjectType>({
299
290
  ...this.params,
300
291
  query,
301
- }) as unknown as ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes>
292
+ }) as unknown as ObjectQueryBuilder<TObjectType>
302
293
  }
303
294
  }
304
295
 
305
- type AnyExpandBuilder = ObjectExpandBuilder<
306
- ObjectTypeWithPropertyTokens,
307
- ObjectTypeWithPropertyTokens
308
- >
296
+ type AnyExpandBuilder = ObjectExpandBuilder<ObjectTypeWithPropertyTokens>
309
297
  type NestedExpandBuild = (nested: AnyExpandBuilder) => AnyExpandBuilder
310
298
 
311
299
  /**
@@ -5,7 +5,6 @@
5
5
  * reads the same series back through `getTelemetryHistoryBatch`, both keyed by the property token.
6
6
  */
7
7
  import type { TelemetryPointWrite } from "../../materialization/model"
8
- import type { ValueType } from "../../ontology"
9
8
  import type { ObjectTypeWithPropertyTokens } from "../../ontology/tokens"
10
9
  import {
11
10
  assertPropertyTokenBelongsToObjectType,
@@ -20,13 +19,13 @@ import type {
20
19
  import type { ResolvedObjectContext } from "../context"
21
20
  import { getTelemetryHistoryBatch, writeTelemetryBatch } from "../telemetry"
22
21
 
23
- export function createTelemetryChannel<
24
- TObjectType extends ObjectTypeWithPropertyTokens,
25
- TValueTypes extends readonly ValueType[],
26
- >(ctx: ResolvedObjectContext, primaryId: string) {
22
+ export function createTelemetryChannel<TObjectType extends ObjectTypeWithPropertyTokens>(
23
+ ctx: ResolvedObjectContext,
24
+ primaryId: string
25
+ ) {
27
26
  return <TToken extends TelemetryPropertyToken<TObjectType>>(
28
27
  property: TToken
29
- ): TelemetryChannel<TToken, TValueTypes> => {
28
+ ): TelemetryChannel<TToken> => {
30
29
  const { objectType } = ctx
31
30
  assertPropertyTokenBelongsToObjectType(objectType, property)
32
31
  assertTelemetryProperty(property.property)
@@ -84,6 +83,6 @@ export function createTelemetryChannel<
84
83
  }
85
84
 
86
85
  // Cast needed: generic token inference boundary — TToken is narrower than what `channel` sees
87
- return channel as unknown as TelemetryChannel<TToken, TValueTypes>
86
+ return channel as unknown as TelemetryChannel<TToken>
88
87
  }
89
88
  }
@@ -6,7 +6,6 @@
6
6
  * on demand through a Proxy, so no runtime ontology access is required —
7
7
  * property names are constrained at compile time and validated server-side.
8
8
  */
9
- import type { ValueType } from "../../ontology"
10
9
  import type { ObjectTypeWithPropertyTokens } from "../../ontology/tokens"
11
10
  import type { ObjectWhereBuilder, ObjectWhereClause } from "../../runtime/types"
12
11
  import type { ObjectQueryPredicate } from "../query"
@@ -47,8 +46,7 @@ function createPropertyPredicate(propertyId: string) {
47
46
 
48
47
  export function createWhereBuilder<
49
48
  TObjectType extends ObjectTypeWithPropertyTokens,
50
- TValueTypes extends readonly ValueType[],
51
- >(): ObjectWhereBuilder<TObjectType, TValueTypes> {
49
+ >(): ObjectWhereBuilder<TObjectType> {
52
50
  const p = new Proxy(
53
51
  {},
54
52
  {
@@ -62,21 +60,16 @@ export function createWhereBuilder<
62
60
  and: (...items: readonly ObjectQueryPredicate[]) => ({ op: "and", items }),
63
61
  or: (...items: readonly ObjectQueryPredicate[]) => ({ op: "or", items }),
64
62
  not: (item: ObjectQueryPredicate) => ({ op: "not", item }),
65
- } as ObjectWhereBuilder<TObjectType, TValueTypes>
63
+ } as ObjectWhereBuilder<TObjectType>
66
64
  }
67
65
 
68
- export function resolveWhere<
69
- TObjectType extends ObjectTypeWithPropertyTokens,
70
- TValueTypes extends readonly ValueType[],
71
- >(
66
+ export function resolveWhere<TObjectType extends ObjectTypeWithPropertyTokens>(
72
67
  whereFn?: (
73
- builder: ObjectWhereBuilder<TObjectType, TValueTypes>
74
- ) =>
75
- | ObjectWhereClause<TObjectType, TValueTypes>
76
- | readonly ObjectWhereClause<TObjectType, TValueTypes>[]
68
+ builder: ObjectWhereBuilder<TObjectType>
69
+ ) => ObjectWhereClause<TObjectType> | readonly ObjectWhereClause<TObjectType>[]
77
70
  ): ObjectQueryPredicate | undefined {
78
71
  if (!whereFn) return undefined
79
- const whereBuilder = createWhereBuilder<TObjectType, TValueTypes>()
72
+ const whereBuilder = createWhereBuilder<TObjectType>()
80
73
  const whereInput = whereFn(whereBuilder)
81
74
  if (!whereInput) return undefined
82
75
  const predicates = (
@@ -26,7 +26,7 @@
26
26
  * ```
27
27
  */
28
28
 
29
- import type { ObjectTypeWithPropertyTokens, ObjectTypeWithTokens, PropertyTokenMap } from "./tokens"
29
+ import type { ObjectTypeWithPropertyTokens, ObjectTypeWithTokens } from "./tokens"
30
30
  import { createLinkTokenMap, createPropertyTokenMap } from "./tokens"
31
31
  import type {
32
32
  EnumSchema,
@@ -450,18 +450,12 @@ export type DirectLinkTarget<
450
450
  TId extends string,
451
451
  TName extends string,
452
452
  TProperties extends Property[],
453
- > = {
453
+ > = ObjectTypeWithPropertyTokens<{
454
454
  id: TId
455
455
  name: TName
456
456
  properties: TProperties
457
457
  links: ObjectLink[]
458
- readonly p: PropertyTokenMap<{
459
- id: TId
460
- name: TName
461
- properties: TProperties
462
- links: ObjectLink[]
463
- }>
464
- }
458
+ }>
465
459
 
466
460
  type DirectLinkTargetFor<TTarget extends ObjectType> = TTarget extends ObjectTypeWithPropertyTokens
467
461
  ? DirectLinkTarget<TTarget["id"], TTarget["name"], TTarget["properties"]>
@@ -635,10 +629,17 @@ export const link: LinkBuilder = Object.assign(linkImpl, {
635
629
  export function valueTypeRef<const TId extends string>(
636
630
  valueTypeId: TId
637
631
  ): ValueTypeRefSchema & { valueTypeId: TId }
638
- // 2. ValueType object (concise, self-contained)
632
+ // 2. ValueType object (concise, self-contained: carries the schema and the semantic type)
639
633
  export function valueTypeRef<const TVT extends ValueType>(
640
634
  valueType: TVT
641
- ): { type: "valueTypeRef"; valueTypeId: TVT["id"]; _resolved: TVT["schema"] }
635
+ ): TVT extends { semanticType: infer TSemanticType extends QuantitativeTypeId }
636
+ ? {
637
+ type: "valueTypeRef"
638
+ valueTypeId: TVT["id"]
639
+ _resolved: TVT["schema"]
640
+ _semanticType: TSemanticType
641
+ }
642
+ : { type: "valueTypeRef"; valueTypeId: TVT["id"]; _resolved: TVT["schema"] }
642
643
  // 3. String id + explicit schema (escape hatch)
643
644
  export function valueTypeRef<const TId extends string, const TResolved extends Schema>(
644
645
  valueTypeId: TId,
@@ -659,6 +660,9 @@ export function valueTypeRef(
659
660
  type: "valueTypeRef",
660
661
  valueTypeId: idOrValueType.id,
661
662
  _resolved: idOrValueType.schema,
663
+ ...(idOrValueType.semanticType === undefined
664
+ ? {}
665
+ : { _semanticType: idOrValueType.semanticType }),
662
666
  }
663
667
  }
664
668