@sixb/core 0.1.7 → 0.1.8

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 (612) hide show
  1. package/dist/actions/delegated-admission.d.ts +24 -0
  2. package/dist/actions/delegated-admission.d.ts.map +1 -0
  3. package/dist/actions/descriptor.d.ts +29 -0
  4. package/dist/actions/descriptor.d.ts.map +1 -0
  5. package/dist/actions/execution.d.ts +5 -5
  6. package/dist/actions/execution.d.ts.map +1 -1
  7. package/dist/actions/index.js +36 -30
  8. package/dist/actions/index.js.map +1 -1
  9. package/dist/actions/request.d.ts.map +1 -1
  10. package/dist/actions/run-authorization.d.ts +20 -0
  11. package/dist/actions/run-authorization.d.ts.map +1 -0
  12. package/dist/actions/run-dispatch.d.ts +3 -1
  13. package/dist/actions/run-dispatch.d.ts.map +1 -1
  14. package/dist/actions/worker.js +3 -3
  15. package/dist/actions/worker.js.map +1 -1
  16. package/dist/agents/adapters.d.ts +5 -122
  17. package/dist/agents/adapters.d.ts.map +1 -1
  18. package/dist/agents/authority.d.ts +1 -1
  19. package/dist/agents/authority.d.ts.map +1 -1
  20. package/dist/agents/context-resolution.d.ts.map +1 -1
  21. package/dist/agents/context.js +1 -1
  22. package/dist/agents/errors.d.ts +0 -9
  23. package/dist/agents/errors.d.ts.map +1 -1
  24. package/dist/agents/execution.d.ts.map +1 -1
  25. package/dist/agents/identity.d.ts +3 -0
  26. package/dist/agents/identity.d.ts.map +1 -0
  27. package/dist/agents/index.d.ts +3 -3
  28. package/dist/agents/index.d.ts.map +1 -1
  29. package/dist/agents/index.js +43 -43
  30. package/dist/agents/index.js.map +1 -1
  31. package/dist/agents/message.d.ts +4 -5
  32. package/dist/agents/message.d.ts.map +1 -1
  33. package/dist/agents/model-loop.d.ts +2 -0
  34. package/dist/agents/model-loop.d.ts.map +1 -1
  35. package/dist/agents/request.d.ts.map +1 -1
  36. package/dist/agents/tool-definition.d.ts +0 -1
  37. package/dist/agents/tool-definition.d.ts.map +1 -1
  38. package/dist/agents/validation.d.ts +0 -4
  39. package/dist/agents/validation.d.ts.map +1 -1
  40. package/dist/ai-usage/execution.d.ts.map +1 -1
  41. package/dist/auth/index.js +8 -5
  42. package/dist/auth/index.js.map +1 -1
  43. package/dist/authorization/decision.d.ts +10 -2
  44. package/dist/authorization/decision.d.ts.map +1 -1
  45. package/dist/authorization/grant-kinds.d.ts +2 -1
  46. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  47. package/dist/authorization/index.d.ts +1 -1
  48. package/dist/authorization/index.d.ts.map +1 -1
  49. package/dist/authorization/index.js +7 -4
  50. package/dist/authorization/index.js.map +1 -1
  51. package/dist/bootstrap/discovery.d.ts +7 -1
  52. package/dist/bootstrap/discovery.d.ts.map +1 -1
  53. package/dist/bootstrap/index.js +46 -39
  54. package/dist/bootstrap/index.js.map +1 -1
  55. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  56. package/dist/chunk-19jp6g9d.js +131 -0
  57. package/dist/chunk-19jp6g9d.js.map +11 -0
  58. package/dist/{chunk-x0qhkqje.js → chunk-2dw777qw.js} +50 -5
  59. package/dist/{chunk-x0qhkqje.js.map → chunk-2dw777qw.js.map} +4 -3
  60. package/dist/chunk-359jm1jw.js +147 -0
  61. package/dist/chunk-359jm1jw.js.map +10 -0
  62. package/dist/{chunk-2b5qtban.js → chunk-3xep5cjx.js} +56 -21
  63. package/dist/chunk-3xep5cjx.js.map +15 -0
  64. package/dist/{chunk-qjycjdj6.js → chunk-3z1qec12.js} +6 -8
  65. package/dist/{chunk-qjycjdj6.js.map → chunk-3z1qec12.js.map} +2 -2
  66. package/dist/{chunk-5jcdmjam.js → chunk-4jjp5k14.js} +1 -1
  67. package/dist/{chunk-n2arzn6e.js → chunk-4qfkag59.js} +44 -221
  68. package/dist/chunk-4qfkag59.js.map +20 -0
  69. package/dist/{chunk-rre42skh.js → chunk-4sm0aznx.js} +515 -80
  70. package/dist/{chunk-rre42skh.js.map → chunk-4sm0aznx.js.map} +11 -7
  71. package/dist/chunk-4yqmp43v.js +159 -0
  72. package/dist/chunk-4yqmp43v.js.map +11 -0
  73. package/dist/{chunk-atmkaf60.js → chunk-5e3pq99w.js} +2 -6
  74. package/dist/{chunk-atmkaf60.js.map → chunk-5e3pq99w.js.map} +3 -3
  75. package/dist/{chunk-agsvg9ar.js → chunk-5ntny1qx.js} +1 -1
  76. package/dist/{chunk-z2sery1b.js → chunk-9nbmsvn5.js} +60 -20
  77. package/dist/chunk-9nbmsvn5.js.map +11 -0
  78. package/dist/{chunk-e4rvtvpw.js → chunk-aa2pen2v.js} +250 -78
  79. package/dist/chunk-aa2pen2v.js.map +34 -0
  80. package/dist/{chunk-64sr682n.js → chunk-ajnan18g.js} +11 -8
  81. package/dist/chunk-ajnan18g.js.map +12 -0
  82. package/dist/{chunk-9aehf39w.js → chunk-f26bck4t.js} +4 -4
  83. package/dist/{chunk-7ds9620f.js → chunk-fvt9rjsa.js} +23 -7
  84. package/dist/chunk-fvt9rjsa.js.map +10 -0
  85. package/dist/{chunk-kt81c11h.js → chunk-gbejpkex.js} +5 -5
  86. package/dist/{chunk-kt81c11h.js.map → chunk-gbejpkex.js.map} +1 -1
  87. package/dist/{chunk-vjjv9mrb.js → chunk-gzasd5b6.js} +5 -5
  88. package/dist/{chunk-vjjv9mrb.js.map → chunk-gzasd5b6.js.map} +3 -3
  89. package/dist/{chunk-d63tybny.js → chunk-h0k55pc7.js} +4 -4
  90. package/dist/{chunk-d63tybny.js.map → chunk-h0k55pc7.js.map} +1 -1
  91. package/dist/chunk-h5vqbfmd.js +1537 -0
  92. package/dist/chunk-h5vqbfmd.js.map +19 -0
  93. package/dist/{chunk-3kv70xwp.js → chunk-j1sbhm7p.js} +18 -2
  94. package/dist/chunk-j1sbhm7p.js.map +10 -0
  95. package/dist/{chunk-hdz94br2.js → chunk-k522z7v6.js} +10 -5
  96. package/dist/chunk-k522z7v6.js.map +10 -0
  97. package/dist/{chunk-wjgm6jjt.js → chunk-mth82m8t.js} +128 -94
  98. package/dist/chunk-mth82m8t.js.map +14 -0
  99. package/dist/{chunk-qv38twt8.js → chunk-mwsxn98e.js} +46 -25
  100. package/dist/{chunk-qv38twt8.js.map → chunk-mwsxn98e.js.map} +6 -6
  101. package/dist/chunk-n4khvw9n.js +111 -0
  102. package/dist/chunk-n4khvw9n.js.map +11 -0
  103. package/dist/{chunk-qjzp9xyb.js → chunk-nn0tekr1.js} +6 -8
  104. package/dist/chunk-nn0tekr1.js.map +12 -0
  105. package/dist/chunk-nx7k8tpr.js +436 -0
  106. package/dist/chunk-nx7k8tpr.js.map +12 -0
  107. package/dist/{chunk-08twe8m6.js → chunk-p1rzczbt.js} +1 -1
  108. package/dist/{chunk-37wk412q.js → chunk-p1x242ad.js} +587 -70
  109. package/dist/chunk-p1x242ad.js.map +25 -0
  110. package/dist/{chunk-tn7xcs2n.js → chunk-pc7ys28c.js} +68 -5
  111. package/dist/chunk-pc7ys28c.js.map +14 -0
  112. package/dist/{chunk-3fqt22c4.js → chunk-q0k9nc5a.js} +280 -88
  113. package/dist/chunk-q0k9nc5a.js.map +14 -0
  114. package/dist/chunk-r8jrnexe.js +403 -0
  115. package/dist/chunk-r8jrnexe.js.map +10 -0
  116. package/dist/{chunk-gbrpsx4m.js → chunk-rafagrwr.js} +30 -2
  117. package/dist/chunk-rafagrwr.js.map +11 -0
  118. package/dist/{chunk-xdpwpkha.js → chunk-rv2hkwwa.js} +1 -1
  119. package/dist/{chunk-6ed5bwnd.js → chunk-sbzzr4kx.js} +1203 -691
  120. package/dist/{chunk-6ed5bwnd.js.map → chunk-sbzzr4kx.js.map} +15 -9
  121. package/dist/{chunk-d2ndstdf.js → chunk-v1xppd0y.js} +13 -11
  122. package/dist/{chunk-d2ndstdf.js.map → chunk-v1xppd0y.js.map} +2 -2
  123. package/dist/chunk-v4en4jc2.js +252 -0
  124. package/dist/chunk-v4en4jc2.js.map +10 -0
  125. package/dist/{chunk-1kamz6j0.js → chunk-w1tvjszy.js} +1 -1
  126. package/dist/{chunk-rp1mvzb4.js → chunk-w9tg6yyb.js} +11 -6
  127. package/dist/{chunk-rp1mvzb4.js.map → chunk-w9tg6yyb.js.map} +3 -3
  128. package/dist/{chunk-4nxeacx7.js → chunk-wdage1eb.js} +1 -1
  129. package/dist/{chunk-ha58tjtt.js → chunk-wtf06et8.js} +9 -5
  130. package/dist/{chunk-ha58tjtt.js.map → chunk-wtf06et8.js.map} +3 -3
  131. package/dist/{chunk-h0knpbz5.js → chunk-xajtptbw.js} +782 -211
  132. package/dist/chunk-xajtptbw.js.map +40 -0
  133. package/dist/{chunk-xc7hq65b.js → chunk-yp8ee62z.js} +49 -2
  134. package/dist/chunk-yp8ee62z.js.map +11 -0
  135. package/dist/chunk-z4ccwbkz.js +139 -0
  136. package/dist/chunk-z4ccwbkz.js.map +10 -0
  137. package/dist/datasets/builders.d.ts +11 -2
  138. package/dist/datasets/builders.d.ts.map +1 -1
  139. package/dist/datasets/changes.d.ts +14 -4
  140. package/dist/datasets/changes.d.ts.map +1 -1
  141. package/dist/datasets/execution.d.ts +15 -1
  142. package/dist/datasets/execution.d.ts.map +1 -1
  143. package/dist/datasets/index.d.ts +1 -0
  144. package/dist/datasets/index.d.ts.map +1 -1
  145. package/dist/datasets/sequence.d.ts +7 -0
  146. package/dist/datasets/sequence.d.ts.map +1 -0
  147. package/dist/datasets/types.d.ts +1 -0
  148. package/dist/datasets/types.d.ts.map +1 -1
  149. package/dist/datasets/validation.d.ts.map +1 -1
  150. package/dist/datasets/write.d.ts +37 -0
  151. package/dist/datasets/write.d.ts.map +1 -0
  152. package/dist/datasets/write.js +17 -0
  153. package/dist/datasets/write.js.map +9 -0
  154. package/dist/events/execution.d.ts.map +1 -1
  155. package/dist/events/types/datasets.d.ts +2 -6
  156. package/dist/events/types/datasets.d.ts.map +1 -1
  157. package/dist/execution/agent.d.ts.map +1 -1
  158. package/dist/execution/agent.js +39 -32
  159. package/dist/execution/agent.js.map +1 -1
  160. package/dist/execution/authorization.d.ts +58 -20
  161. package/dist/execution/authorization.d.ts.map +1 -1
  162. package/dist/execution/authorized-object-reader.d.ts +69 -0
  163. package/dist/execution/authorized-object-reader.d.ts.map +1 -0
  164. package/dist/execution/durable.d.ts.map +1 -1
  165. package/dist/execution/index.d.ts +1 -1
  166. package/dist/execution/index.d.ts.map +1 -1
  167. package/dist/execution/primitive.js +39 -32
  168. package/dist/execution/primitive.js.map +2 -2
  169. package/dist/execution/request.d.ts +11 -0
  170. package/dist/execution/request.d.ts.map +1 -1
  171. package/dist/execution/request.js +76 -40
  172. package/dist/execution/request.js.map +3 -3
  173. package/dist/execution/scopes.d.ts +16 -0
  174. package/dist/execution/scopes.d.ts.map +1 -1
  175. package/dist/execution/types.d.ts +9 -0
  176. package/dist/execution/types.d.ts.map +1 -1
  177. package/dist/http/api-routes.d.ts +2 -0
  178. package/dist/http/api-routes.d.ts.map +1 -1
  179. package/dist/http/index.js +1 -1
  180. package/dist/index.d.ts +8 -5
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +92 -78
  183. package/dist/index.js.map +1 -1
  184. package/dist/lake-storage/definition-updates.d.ts.map +1 -1
  185. package/dist/lake-storage/errors.d.ts +5 -1
  186. package/dist/lake-storage/errors.d.ts.map +1 -1
  187. package/dist/lake-storage/in-memory.d.ts +1 -0
  188. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  189. package/dist/lake-storage/index.d.ts +6 -1
  190. package/dist/lake-storage/index.d.ts.map +1 -1
  191. package/dist/lake-storage/index.js +24 -7
  192. package/dist/lake-storage/index.js.map +1 -1
  193. package/dist/lake-storage/merge-validation.d.ts.map +1 -1
  194. package/dist/lake-storage/merge.d.ts +13 -2
  195. package/dist/lake-storage/merge.d.ts.map +1 -1
  196. package/dist/lake-storage/source-ordering.d.ts +19 -0
  197. package/dist/lake-storage/source-ordering.d.ts.map +1 -0
  198. package/dist/lake-storage/sql-transforms.d.ts +2 -1
  199. package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
  200. package/dist/lake-storage/types.d.ts +10 -5
  201. package/dist/lake-storage/types.d.ts.map +1 -1
  202. package/dist/lake-storage/version-inputs.d.ts +4 -0
  203. package/dist/lake-storage/version-inputs.d.ts.map +1 -0
  204. package/dist/materializer/index.js +25 -22
  205. package/dist/materializer/index.js.map +1 -1
  206. package/dist/objects/authorized-ontology-view.d.ts +25 -0
  207. package/dist/objects/authorized-ontology-view.d.ts.map +1 -0
  208. package/dist/objects/execution.d.ts +1 -1
  209. package/dist/objects/execution.d.ts.map +1 -1
  210. package/dist/objects/index.js +29 -26
  211. package/dist/objects/index.js.map +1 -1
  212. package/dist/objects/link/authorization.d.ts +2 -7
  213. package/dist/objects/link/authorization.d.ts.map +1 -1
  214. package/dist/objects/query/executor.d.ts +4 -2
  215. package/dist/objects/query/executor.d.ts.map +1 -1
  216. package/dist/objects/query/index.js +24 -21
  217. package/dist/objects/query/index.js.map +1 -1
  218. package/dist/objects/query/links.d.ts +22 -1
  219. package/dist/objects/query/links.d.ts.map +1 -1
  220. package/dist/objects/query/selected-read-admission.d.ts +27 -0
  221. package/dist/objects/query/selected-read-admission.d.ts.map +1 -0
  222. package/dist/objects/query/validate.d.ts +60 -2
  223. package/dist/objects/query/validate.d.ts.map +1 -1
  224. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  225. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  226. package/dist/objects/sdk/runtime-query-executor.d.ts +2 -7
  227. package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
  228. package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
  229. package/dist/objects/service/list-service.d.ts +2 -3
  230. package/dist/objects/service/list-service.d.ts.map +1 -1
  231. package/dist/objects/telemetry/history.d.ts +8 -6
  232. package/dist/objects/telemetry/history.d.ts.map +1 -1
  233. package/dist/objects/telemetry/index.d.ts +2 -2
  234. package/dist/objects/telemetry/index.d.ts.map +1 -1
  235. package/dist/objects/telemetry/workload.d.ts +11 -0
  236. package/dist/objects/telemetry/workload.d.ts.map +1 -0
  237. package/dist/ontology/index.d.ts +2 -1
  238. package/dist/ontology/index.d.ts.map +1 -1
  239. package/dist/ontology/index.js +13 -12
  240. package/dist/ontology/index.js.map +1 -1
  241. package/dist/ontology/inference/index.d.ts +2 -1
  242. package/dist/ontology/inference/index.d.ts.map +1 -1
  243. package/dist/ontology/internal.d.ts +0 -1
  244. package/dist/ontology/internal.d.ts.map +1 -1
  245. package/dist/ontology/internal.js +5 -10
  246. package/dist/ontology/internal.js.map +3 -3
  247. package/dist/ontology/json-schema.d.ts +10 -6
  248. package/dist/ontology/json-schema.d.ts.map +1 -1
  249. package/dist/ontology/link-path-selection.d.ts +35 -0
  250. package/dist/ontology/link-path-selection.d.ts.map +1 -0
  251. package/dist/ontology/refs.d.ts +2 -0
  252. package/dist/ontology/refs.d.ts.map +1 -1
  253. package/dist/ontology/tokens.d.ts +2 -1
  254. package/dist/ontology/tokens.d.ts.map +1 -1
  255. package/dist/pipelines/execution.d.ts.map +1 -1
  256. package/dist/pipelines/index.js +27 -24
  257. package/dist/pipelines/index.js.map +1 -1
  258. package/dist/pipelines/request.d.ts.map +1 -1
  259. package/dist/projections/execution.d.ts.map +1 -1
  260. package/dist/projections/internal.js +25 -22
  261. package/dist/projections/internal.js.map +1 -1
  262. package/dist/projections/run-dispatch.d.ts.map +1 -1
  263. package/dist/rules/execution.d.ts.map +1 -1
  264. package/dist/runtime/create.d.ts +4 -1
  265. package/dist/runtime/create.d.ts.map +1 -1
  266. package/dist/runtime/definitions.d.ts +2 -0
  267. package/dist/runtime/definitions.d.ts.map +1 -1
  268. package/dist/runtime/host.d.ts +2 -0
  269. package/dist/runtime/host.d.ts.map +1 -1
  270. package/dist/runtime/internal.d.ts +1 -0
  271. package/dist/runtime/internal.d.ts.map +1 -1
  272. package/dist/runtime/resolve-definitions.d.ts +2 -0
  273. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  274. package/dist/runtime/sixb.d.ts +4 -0
  275. package/dist/runtime/sixb.d.ts.map +1 -1
  276. package/dist/runtime/types.d.ts +3 -0
  277. package/dist/runtime/types.d.ts.map +1 -1
  278. package/dist/schedules/execution.d.ts +2 -1
  279. package/dist/schedules/execution.d.ts.map +1 -1
  280. package/dist/security/every.d.ts +4 -1
  281. package/dist/security/every.d.ts.map +1 -1
  282. package/dist/security/grants.d.ts +7 -2
  283. package/dist/security/grants.d.ts.map +1 -1
  284. package/dist/security/index.d.ts +1 -1
  285. package/dist/security/index.d.ts.map +1 -1
  286. package/dist/security/registry.d.ts +1 -0
  287. package/dist/security/registry.d.ts.map +1 -1
  288. package/dist/security/types.d.ts +7 -1
  289. package/dist/security/types.d.ts.map +1 -1
  290. package/dist/security/validation.d.ts +2 -0
  291. package/dist/security/validation.d.ts.map +1 -1
  292. package/dist/shares/access-plan.d.ts +22 -0
  293. package/dist/shares/access-plan.d.ts.map +1 -0
  294. package/dist/shares/builders.d.ts +14 -0
  295. package/dist/shares/builders.d.ts.map +1 -0
  296. package/dist/shares/compiler.d.ts +14 -0
  297. package/dist/shares/compiler.d.ts.map +1 -0
  298. package/dist/shares/errors.d.ts +4 -0
  299. package/dist/shares/errors.d.ts.map +1 -0
  300. package/dist/shares/execution.d.ts +57 -0
  301. package/dist/shares/execution.d.ts.map +1 -0
  302. package/dist/shares/index.d.ts +10 -0
  303. package/dist/shares/index.d.ts.map +1 -0
  304. package/dist/shares/internal.d.ts +3 -0
  305. package/dist/shares/internal.d.ts.map +1 -0
  306. package/dist/shares/internal.js +239 -0
  307. package/dist/shares/internal.js.map +10 -0
  308. package/dist/shares/intersection.d.ts +9 -0
  309. package/dist/shares/intersection.d.ts.map +1 -0
  310. package/dist/shares/session-protocol.d.ts +41 -0
  311. package/dist/shares/session-protocol.d.ts.map +1 -0
  312. package/dist/shares/types.d.ts +51 -0
  313. package/dist/shares/types.d.ts.map +1 -0
  314. package/dist/shares/validation.d.ts +11 -0
  315. package/dist/shares/validation.d.ts.map +1 -0
  316. package/dist/storage/action-runs/provider.js +2 -2
  317. package/dist/storage/agents/provider.js +2 -2
  318. package/dist/storage/executions/in-memory.d.ts +3 -0
  319. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  320. package/dist/storage/executions/provider.d.ts +4 -1
  321. package/dist/storage/executions/provider.d.ts.map +1 -1
  322. package/dist/storage/executions/provider.js +23 -3
  323. package/dist/storage/executions/provider.js.map +3 -3
  324. package/dist/storage/executions/run-link.d.ts +7 -0
  325. package/dist/storage/executions/run-link.d.ts.map +1 -1
  326. package/dist/storage/executions/validation.d.ts +6 -0
  327. package/dist/storage/executions/validation.d.ts.map +1 -1
  328. package/dist/storage/in-memory/index.d.ts +8 -0
  329. package/dist/storage/in-memory/index.d.ts.map +1 -1
  330. package/dist/storage/index.d.ts +8 -2
  331. package/dist/storage/index.d.ts.map +1 -1
  332. package/dist/storage/index.js +65 -36
  333. package/dist/storage/index.js.map +1 -1
  334. package/dist/storage/objects/execution-limits.d.ts +25 -0
  335. package/dist/storage/objects/execution-limits.d.ts.map +1 -0
  336. package/dist/storage/objects/guard.d.ts +16 -0
  337. package/dist/storage/objects/guard.d.ts.map +1 -0
  338. package/dist/storage/objects/in-memory/index.d.ts +3 -0
  339. package/dist/storage/objects/in-memory/index.d.ts.map +1 -0
  340. package/dist/storage/objects/in-memory/keys.d.ts +10 -0
  341. package/dist/storage/objects/in-memory/keys.d.ts.map +1 -0
  342. package/dist/storage/objects/in-memory/query.d.ts +31 -0
  343. package/dist/storage/objects/in-memory/query.d.ts.map +1 -0
  344. package/dist/storage/objects/in-memory/read-scope.d.ts +18 -0
  345. package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -0
  346. package/dist/storage/objects/in-memory/read-source.d.ts +10 -0
  347. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -0
  348. package/dist/storage/objects/in-memory/selected-reader.d.ts +9 -0
  349. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -0
  350. package/dist/storage/objects/{in-memory.d.ts → in-memory/storage.d.ts} +13 -10
  351. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -0
  352. package/dist/storage/objects/index.d.ts +4 -1
  353. package/dist/storage/objects/index.d.ts.map +1 -1
  354. package/dist/storage/objects/keys.d.ts +1 -1
  355. package/dist/storage/objects/keys.d.ts.map +1 -1
  356. package/dist/storage/objects/read-scope.d.ts +25 -0
  357. package/dist/storage/objects/read-scope.d.ts.map +1 -0
  358. package/dist/storage/objects/types.d.ts +114 -22
  359. package/dist/storage/objects/types.d.ts.map +1 -1
  360. package/dist/storage/operation-scope.d.ts +3 -0
  361. package/dist/storage/operation-scope.d.ts.map +1 -1
  362. package/dist/storage/operation-scope.js +4 -2
  363. package/dist/storage/operation-scope.js.map +1 -1
  364. package/dist/storage/pipeline-runs/provider.js +2 -2
  365. package/dist/storage/projection-runs/provider.js +2 -2
  366. package/dist/storage/share-grants/errors.d.ts +8 -0
  367. package/dist/storage/share-grants/errors.d.ts.map +1 -0
  368. package/dist/storage/share-grants/in-memory.d.ts +11 -0
  369. package/dist/storage/share-grants/in-memory.d.ts.map +1 -0
  370. package/dist/storage/share-grants/index.d.ts +5 -0
  371. package/dist/storage/share-grants/index.d.ts.map +1 -0
  372. package/dist/storage/share-grants/provider.d.ts +4 -0
  373. package/dist/storage/share-grants/provider.d.ts.map +1 -0
  374. package/dist/storage/share-grants/provider.js +24 -0
  375. package/dist/storage/share-grants/provider.js.map +9 -0
  376. package/dist/storage/share-grants/record.d.ts +11 -0
  377. package/dist/storage/share-grants/record.d.ts.map +1 -0
  378. package/dist/storage/share-grants/types.d.ts +97 -0
  379. package/dist/storage/share-grants/types.d.ts.map +1 -0
  380. package/dist/storage/share-sessions/errors.d.ts +8 -0
  381. package/dist/storage/share-sessions/errors.d.ts.map +1 -0
  382. package/dist/storage/share-sessions/in-memory.d.ts +14 -0
  383. package/dist/storage/share-sessions/in-memory.d.ts.map +1 -0
  384. package/dist/storage/share-sessions/index.d.ts +5 -0
  385. package/dist/storage/share-sessions/index.d.ts.map +1 -0
  386. package/dist/storage/share-sessions/provider.d.ts +3 -0
  387. package/dist/storage/share-sessions/provider.d.ts.map +1 -0
  388. package/dist/storage/share-sessions/provider.js +20 -0
  389. package/dist/storage/share-sessions/provider.js.map +9 -0
  390. package/dist/storage/share-sessions/record.d.ts +8 -0
  391. package/dist/storage/share-sessions/record.d.ts.map +1 -0
  392. package/dist/storage/share-sessions/types.d.ts +50 -0
  393. package/dist/storage/share-sessions/types.d.ts.map +1 -0
  394. package/dist/storage/sync-runs/provider.js +2 -2
  395. package/dist/storage/transaction.d.ts +2 -1
  396. package/dist/storage/transaction.d.ts.map +1 -1
  397. package/dist/storage/types.d.ts +8 -0
  398. package/dist/storage/types.d.ts.map +1 -1
  399. package/dist/storage/webhook-runs/provider.js +2 -2
  400. package/dist/storage/workflow-runs/provider.js +10 -7
  401. package/dist/storage/workflow-runs/provider.js.map +1 -1
  402. package/dist/syncs/execution.d.ts.map +1 -1
  403. package/dist/syncs/index.js +27 -24
  404. package/dist/syncs/index.js.map +1 -1
  405. package/dist/syncs/request.d.ts.map +1 -1
  406. package/dist/testing/dataset-sequence-contract.d.ts +4 -0
  407. package/dist/testing/dataset-sequence-contract.d.ts.map +1 -0
  408. package/dist/testing/effective-storage-contract.d.ts.map +1 -1
  409. package/dist/testing/execution-storage-contract.d.ts +4 -0
  410. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  411. package/dist/testing/index.d.ts +3 -0
  412. package/dist/testing/index.d.ts.map +1 -1
  413. package/dist/testing/index.js +2555 -908
  414. package/dist/testing/index.js.map +11 -7
  415. package/dist/testing/lake-merge-storage-contract.d.ts +1 -0
  416. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
  417. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  418. package/dist/testing/object-read-scope-contract.d.ts +22 -0
  419. package/dist/testing/object-read-scope-contract.d.ts.map +1 -0
  420. package/dist/testing/share-grant-storage-contract.d.ts +10 -0
  421. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -0
  422. package/dist/testing/share-session-storage-contract.d.ts +9 -0
  423. package/dist/testing/share-session-storage-contract.d.ts.map +1 -0
  424. package/dist/webhooks/internal.js +24 -21
  425. package/dist/webhooks/internal.js.map +2 -2
  426. package/dist/workflows/execution.d.ts.map +1 -1
  427. package/dist/workflows/index.js +42 -35
  428. package/dist/workflows/index.js.map +1 -1
  429. package/dist/workflows/request.d.ts.map +1 -1
  430. package/package.json +25 -1
  431. package/src/actions/delegated-admission.ts +72 -0
  432. package/src/actions/descriptor.ts +58 -0
  433. package/src/actions/execution.ts +99 -24
  434. package/src/actions/request.ts +136 -19
  435. package/src/actions/run-authorization.ts +53 -0
  436. package/src/actions/run-dispatch.ts +8 -1
  437. package/src/agents/adapters.ts +30 -420
  438. package/src/agents/authority.ts +3 -4
  439. package/src/agents/context-resolution.ts +1 -4
  440. package/src/agents/errors.ts +0 -10
  441. package/src/agents/execution.ts +13 -5
  442. package/src/agents/identity.ts +4 -0
  443. package/src/agents/index.ts +1 -20
  444. package/src/agents/message.ts +4 -5
  445. package/src/agents/model-loop.ts +54 -6
  446. package/src/agents/request.ts +16 -3
  447. package/src/agents/tool-definition.ts +0 -19
  448. package/src/agents/validation.ts +6 -65
  449. package/src/ai-usage/execution.ts +4 -11
  450. package/src/authorization/decision.ts +29 -14
  451. package/src/authorization/grant-kinds.ts +10 -0
  452. package/src/authorization/index.ts +1 -0
  453. package/src/bootstrap/discovery.ts +3 -0
  454. package/src/bootstrap/ontology-type-manifest.ts +12 -6
  455. package/src/datasets/builders.ts +23 -2
  456. package/src/datasets/changes.ts +16 -4
  457. package/src/datasets/execution.ts +76 -5
  458. package/src/datasets/index.ts +1 -0
  459. package/src/datasets/sequence.ts +77 -0
  460. package/src/datasets/types.ts +1 -0
  461. package/src/datasets/validation.ts +26 -0
  462. package/src/datasets/write.ts +240 -0
  463. package/src/events/execution.ts +57 -7
  464. package/src/events/types/datasets.ts +2 -6
  465. package/src/execution/agent.ts +1 -4
  466. package/src/execution/authorization.ts +470 -90
  467. package/src/execution/authorized-object-reader.ts +695 -0
  468. package/src/execution/durable.ts +10 -2
  469. package/src/execution/index.ts +1 -0
  470. package/src/execution/request.ts +63 -13
  471. package/src/execution/scopes.ts +36 -6
  472. package/src/execution/types.ts +8 -0
  473. package/src/http/api-routes.ts +45 -0
  474. package/src/index.ts +36 -15
  475. package/src/lake-storage/definition-updates.ts +9 -0
  476. package/src/lake-storage/errors.ts +6 -1
  477. package/src/lake-storage/in-memory.ts +53 -17
  478. package/src/lake-storage/index.ts +10 -1
  479. package/src/lake-storage/merge-validation.ts +12 -2
  480. package/src/lake-storage/merge.ts +40 -2
  481. package/src/lake-storage/source-ordering.ts +95 -0
  482. package/src/lake-storage/sql-transforms.ts +2 -1
  483. package/src/lake-storage/types.ts +10 -5
  484. package/src/lake-storage/version-inputs.ts +14 -0
  485. package/src/objects/authorized-ontology-view.ts +512 -0
  486. package/src/objects/execution.ts +98 -143
  487. package/src/objects/link/authorization.ts +3 -2
  488. package/src/objects/query/executor.ts +45 -34
  489. package/src/objects/query/links.ts +84 -25
  490. package/src/objects/query/selected-read-admission.ts +310 -0
  491. package/src/objects/query/validate.ts +353 -36
  492. package/src/objects/sdk/object-handle.ts +2 -8
  493. package/src/objects/sdk/object-set.ts +10 -11
  494. package/src/objects/sdk/runtime-query-executor.ts +8 -28
  495. package/src/objects/sdk/telemetry-channel.ts +11 -7
  496. package/src/objects/service/list-service.ts +15 -29
  497. package/src/objects/telemetry/history.ts +297 -17
  498. package/src/objects/telemetry/index.ts +2 -2
  499. package/src/objects/telemetry/workload.ts +79 -0
  500. package/src/ontology/index.ts +7 -1
  501. package/src/ontology/inference/index.ts +4 -1
  502. package/src/ontology/internal.ts +0 -1
  503. package/src/ontology/json-schema.ts +13 -12
  504. package/src/ontology/link-path-selection.ts +193 -0
  505. package/src/ontology/refs.ts +19 -0
  506. package/src/ontology/tokens.ts +15 -8
  507. package/src/pipelines/execution.ts +30 -7
  508. package/src/pipelines/request.ts +5 -0
  509. package/src/projections/execution.ts +72 -11
  510. package/src/projections/run-dispatch.ts +6 -12
  511. package/src/rules/execution.ts +20 -8
  512. package/src/runtime/create.ts +5 -1
  513. package/src/runtime/definitions.ts +2 -0
  514. package/src/runtime/host.ts +25 -6
  515. package/src/runtime/internal.ts +1 -0
  516. package/src/runtime/resolve-definitions.ts +9 -0
  517. package/src/runtime/sixb.ts +23 -2
  518. package/src/runtime/types.ts +3 -0
  519. package/src/schedules/execution.ts +24 -2
  520. package/src/security/every.ts +4 -0
  521. package/src/security/grants.ts +45 -3
  522. package/src/security/index.ts +1 -0
  523. package/src/security/registry.ts +3 -0
  524. package/src/security/types.ts +8 -0
  525. package/src/security/validation.ts +3 -0
  526. package/src/shares/access-plan.ts +225 -0
  527. package/src/shares/builders.ts +381 -0
  528. package/src/shares/compiler.ts +359 -0
  529. package/src/shares/errors.ts +3 -0
  530. package/src/shares/execution.ts +394 -0
  531. package/src/shares/index.ts +28 -0
  532. package/src/shares/internal.ts +9 -0
  533. package/src/shares/intersection.ts +178 -0
  534. package/src/shares/session-protocol.ts +258 -0
  535. package/src/shares/types.ts +76 -0
  536. package/src/shares/validation.ts +40 -0
  537. package/src/storage/executions/in-memory.ts +9 -1
  538. package/src/storage/executions/provider.ts +30 -1
  539. package/src/storage/executions/run-link.ts +29 -0
  540. package/src/storage/executions/validation.ts +46 -1
  541. package/src/storage/in-memory/index.ts +21 -2
  542. package/src/storage/index.ts +51 -0
  543. package/src/storage/objects/execution-limits.ts +283 -0
  544. package/src/storage/objects/guard.ts +55 -0
  545. package/src/storage/objects/in-memory/index.ts +2 -0
  546. package/src/storage/objects/in-memory/keys.ts +46 -0
  547. package/src/storage/objects/in-memory/query.ts +754 -0
  548. package/src/storage/objects/in-memory/read-scope.ts +211 -0
  549. package/src/storage/objects/in-memory/read-source.ts +10 -0
  550. package/src/storage/objects/in-memory/selected-reader.ts +252 -0
  551. package/src/storage/objects/in-memory/storage.ts +589 -0
  552. package/src/storage/objects/index.ts +21 -0
  553. package/src/storage/objects/keys.ts +1 -1
  554. package/src/storage/objects/read-scope.ts +672 -0
  555. package/src/storage/objects/types.ts +123 -19
  556. package/src/storage/operation-scope.ts +16 -0
  557. package/src/storage/share-grants/errors.ts +14 -0
  558. package/src/storage/share-grants/in-memory.ts +107 -0
  559. package/src/storage/share-grants/index.ts +14 -0
  560. package/src/storage/share-grants/provider.ts +11 -0
  561. package/src/storage/share-grants/record.ts +347 -0
  562. package/src/storage/share-grants/types.ts +112 -0
  563. package/src/storage/share-sessions/errors.ts +14 -0
  564. package/src/storage/share-sessions/in-memory.ts +105 -0
  565. package/src/storage/share-sessions/index.ts +11 -0
  566. package/src/storage/share-sessions/provider.ts +9 -0
  567. package/src/storage/share-sessions/record.ts +176 -0
  568. package/src/storage/share-sessions/types.ts +57 -0
  569. package/src/storage/transaction.ts +14 -2
  570. package/src/storage/types.ts +27 -0
  571. package/src/syncs/execution.ts +25 -5
  572. package/src/syncs/request.ts +5 -0
  573. package/src/testing/dataset-sequence-contract.ts +373 -0
  574. package/src/testing/effective-storage-contract.ts +34 -0
  575. package/src/testing/execution-storage-contract.ts +79 -0
  576. package/src/testing/index.ts +16 -0
  577. package/src/testing/lake-merge-storage-contract.ts +3 -0
  578. package/src/testing/lake-storage-contract.ts +58 -0
  579. package/src/testing/object-read-scope-contract.ts +939 -0
  580. package/src/testing/share-grant-storage-contract.ts +325 -0
  581. package/src/testing/share-session-storage-contract.ts +235 -0
  582. package/src/workflows/execution.ts +53 -14
  583. package/src/workflows/request.ts +5 -0
  584. package/dist/chunk-2b5qtban.js.map +0 -14
  585. package/dist/chunk-37wk412q.js.map +0 -23
  586. package/dist/chunk-3fqt22c4.js.map +0 -14
  587. package/dist/chunk-3kv70xwp.js.map +0 -10
  588. package/dist/chunk-64sr682n.js.map +0 -12
  589. package/dist/chunk-7ds9620f.js.map +0 -10
  590. package/dist/chunk-dqn23610.js +0 -72
  591. package/dist/chunk-dqn23610.js.map +0 -11
  592. package/dist/chunk-e4rvtvpw.js.map +0 -34
  593. package/dist/chunk-gbrpsx4m.js.map +0 -11
  594. package/dist/chunk-h0knpbz5.js.map +0 -38
  595. package/dist/chunk-hdz94br2.js.map +0 -10
  596. package/dist/chunk-n2arzn6e.js.map +0 -20
  597. package/dist/chunk-qjzp9xyb.js.map +0 -12
  598. package/dist/chunk-tn7xcs2n.js.map +0 -13
  599. package/dist/chunk-wjgm6jjt.js.map +0 -13
  600. package/dist/chunk-xc7hq65b.js.map +0 -10
  601. package/dist/chunk-y35ma3mj.js +0 -551
  602. package/dist/chunk-y35ma3mj.js.map +0 -15
  603. package/dist/chunk-z2sery1b.js.map +0 -11
  604. package/dist/storage/objects/in-memory.d.ts.map +0 -1
  605. package/src/storage/objects/in-memory.ts +0 -1241
  606. /package/dist/{chunk-5jcdmjam.js.map → chunk-4jjp5k14.js.map} +0 -0
  607. /package/dist/{chunk-agsvg9ar.js.map → chunk-5ntny1qx.js.map} +0 -0
  608. /package/dist/{chunk-9aehf39w.js.map → chunk-f26bck4t.js.map} +0 -0
  609. /package/dist/{chunk-08twe8m6.js.map → chunk-p1rzczbt.js.map} +0 -0
  610. /package/dist/{chunk-xdpwpkha.js.map → chunk-rv2hkwwa.js.map} +0 -0
  611. /package/dist/{chunk-1kamz6j0.js.map → chunk-w1tvjszy.js.map} +0 -0
  612. /package/dist/{chunk-4nxeacx7.js.map → chunk-wdage1eb.js.map} +0 -0
@@ -1,8 +1,13 @@
1
- import { assertAuthorized, isAllowed } from "../authorization"
1
+ import { shareSixbErrorReporter } from "../error-reporting/capability"
2
2
  import type { ExecutionContext } from "../execution"
3
+ import {
4
+ assertAuthorizedObjectReaderBinding,
5
+ getAuthorizedOntologyView,
6
+ } from "../execution/authorized-object-reader"
3
7
  import type { ValueType } from "../ontology"
4
8
  import { assertObjectTypeRegistered } from "../ontology"
5
9
  import type { ObjectTypeWithPropertyTokens } from "../ontology/tokens"
10
+ import { shareOntologyMutationRuntime } from "../runtime/ontology-mutations"
6
11
  import type {
7
12
  ListResult,
8
13
  ObjectByIdHandle,
@@ -20,27 +25,22 @@ import type {
20
25
  TimeseriesHistoryBatchResult,
21
26
  TimeseriesPoint,
22
27
  } from "../storage"
23
- import {
24
- countObjects,
25
- type ExecuteObjectCountInput,
26
- type ExecuteObjectCountResult,
27
- type ExecuteObjectExistsInput,
28
- type ExecuteObjectExistsResult,
29
- type ExecuteObjectFacetsInput,
30
- type ExecuteObjectFacetsResult,
31
- type ExecuteObjectQueryInput,
32
- type ExecuteObjectQueryLinksInput,
33
- type ExecuteObjectQueryLinksResult,
34
- type ExecuteObjectQueryResult,
35
- executeObjectQuery,
36
- executeObjectQueryLinks,
37
- existsObjects,
38
- facetObjects,
28
+ import type {
29
+ ExecuteObjectCountInput,
30
+ ExecuteObjectCountResult,
31
+ ExecuteObjectExistsInput,
32
+ ExecuteObjectExistsResult,
33
+ ExecuteObjectFacetsInput,
34
+ ExecuteObjectFacetsResult,
35
+ ExecuteObjectQueryInput,
36
+ ExecuteObjectQueryLinksInput,
37
+ ExecuteObjectQueryLinksResult,
38
+ ExecuteObjectQueryResult,
39
39
  } from "./query"
40
40
  import { createObjectSet } from "./sdk"
41
41
  import type { ListObjectsParams } from "./service"
42
42
  import * as objectService from "./service"
43
- import { getTelemetryHistoryBatch } from "./telemetry"
43
+ import { getLatestTelemetryPoint, getTelemetryHistoryBatch } from "./telemetry"
44
44
 
45
45
  export interface ExecutionObjectOperations {
46
46
  listTypes(): readonly ObjectTypeWithPropertyTokens[]
@@ -173,124 +173,69 @@ export function createObjectsRuntime<TOntologySources extends readonly OntologyS
173
173
  runtime: SixbRuntimeContext,
174
174
  execution: ExecutionContext
175
175
  ): ObjectsRuntime<TOntologySources> {
176
+ const runtimeAuthorization = runtime.runtimeAuthorization
177
+ const objectReader = runtime.objectReader
178
+ assertAuthorizedObjectReaderBinding({
179
+ reader: objectReader,
180
+ scope: { execution, authorization: runtimeAuthorization },
181
+ })
182
+ const authorization = runtime.authorization
183
+ const capturedRuntime: SixbRuntimeContext = {
184
+ projectId: runtime.projectId,
185
+ broker: runtime.broker,
186
+ ontology: runtime.ontology,
187
+ actionRegistry: runtime.actionRegistry,
188
+ events: runtime.events,
189
+ storage: runtime.storage,
190
+ queues: runtime.queues,
191
+ runtimeAuthorization,
192
+ objectReader,
193
+ ...(authorization === undefined ? {} : { authorization }),
194
+ }
195
+ shareOntologyMutationRuntime(runtime, capturedRuntime)
196
+ shareSixbErrorReporter(runtime, capturedRuntime)
197
+ Object.freeze(capturedRuntime)
198
+ const ontologyView = () => getAuthorizedOntologyView(objectReader)
176
199
  const objects = Object.assign(
177
200
  <TObjectType extends RegisteredObjectType<TOntologySources>>(objectType: TObjectType) => {
178
- assertObjectTypeRegistered(runtime.ontology.getObjectTypesById(), objectType)
201
+ assertObjectTypeRegistered(capturedRuntime.ontology.getObjectTypesById(), objectType)
179
202
  return createObjectSet<
180
203
  TObjectType,
181
204
  RegisteredObjectType<TOntologySources>,
182
205
  RegisteredValueTypes<TOntologySources>
183
- >({ ...runtime, execution, objectType }) as ExecutionObjectSet<
206
+ >({ ...capturedRuntime, execution, objectType }) as ExecutionObjectSet<
184
207
  TObjectType,
185
208
  RegisteredValueTypes<TOntologySources>,
186
209
  RegisteredObjectType<TOntologySources>
187
210
  >
188
211
  },
189
212
  {
190
- listTypes: () =>
191
- runtime.ontology.listObjectTypes().filter((objectType) =>
192
- isAllowed(runtime.authorization, {
193
- kind: "object.view",
194
- objectTypeId: objectType.id,
195
- })
196
- ),
197
- getTypeById: (objectTypeId: string) => {
198
- const objectType = runtime.ontology.getObjectTypeById(objectTypeId)
199
- return objectType && isAllowed(runtime.authorization, { kind: "object.view", objectTypeId })
200
- ? objectType
201
- : null
202
- },
203
- resolveType: (objectTypeId: string) => {
204
- assertAuthorized(runtime, { kind: "object.view", objectTypeId })
205
- return runtime.ontology.resolveObjectType(objectTypeId)
206
- },
207
- getValueTypesById: () => runtime.ontology.getValueTypesById(),
208
- listSubTypes: (objectTypeId: string) => runtime.ontology.listSubTypes(objectTypeId),
213
+ listTypes: () => ontologyView().listObjectTypes(),
214
+ getTypeById: (objectTypeId: string) => ontologyView().getObjectTypeById(objectTypeId),
215
+ resolveType: (objectTypeId: string) => ontologyView().resolveObjectType(objectTypeId),
216
+ getValueTypesById: () => ontologyView().getValueTypesById(),
217
+ listSubTypes: (objectTypeId: string) => ontologyView().listSubTypes(objectTypeId),
209
218
  isValidLinkTarget: (expected: string | string[], actual: string) =>
210
- runtime.ontology.isValidLinkTarget(expected, actual),
219
+ ontologyView().isValidLinkTarget(expected, actual),
211
220
  executeQuery: (input: Omit<ExecuteObjectQueryInput, "projectId">) =>
212
- executeObjectQuery(
213
- { projectId: runtime.projectId, ...input },
214
- {
215
- ontology: runtime.ontology,
216
- storage: runtime.storage.objects,
217
- runtimeAuthorization: runtime.runtimeAuthorization,
218
- authorization: runtime.authorization,
219
- }
220
- ),
221
- queryLinks: (input: ObjectQueryLinksInput) =>
222
- executeObjectQueryLinks(
223
- { projectId: runtime.projectId, ...input },
224
- {
225
- ontology: runtime.ontology,
226
- storage: runtime.storage.objects,
227
- runtimeAuthorization: runtime.runtimeAuthorization,
228
- authorization: runtime.authorization,
229
- }
230
- ),
231
- count: (input: Omit<ExecuteObjectCountInput, "projectId">) =>
232
- countObjects(
233
- { projectId: runtime.projectId, ...input },
234
- {
235
- ontology: runtime.ontology,
236
- storage: runtime.storage.objects,
237
- runtimeAuthorization: runtime.runtimeAuthorization,
238
- authorization: runtime.authorization,
239
- }
240
- ),
241
- exists: (input: Omit<ExecuteObjectExistsInput, "projectId">) =>
242
- existsObjects(
243
- { projectId: runtime.projectId, ...input },
244
- {
245
- ontology: runtime.ontology,
246
- storage: runtime.storage.objects,
247
- runtimeAuthorization: runtime.runtimeAuthorization,
248
- authorization: runtime.authorization,
249
- }
250
- ),
251
- facet: (input: Omit<ExecuteObjectFacetsInput, "projectId">) =>
252
- facetObjects(
253
- { projectId: runtime.projectId, ...input },
254
- {
255
- ontology: runtime.ontology,
256
- storage: runtime.storage.objects,
257
- runtimeAuthorization: runtime.runtimeAuthorization,
258
- authorization: runtime.authorization,
259
- }
260
- ),
221
+ objectReader.executeQuery(input),
222
+ queryLinks: (input: ObjectQueryLinksInput) => objectReader.queryLinks(input),
223
+ count: (input: Omit<ExecuteObjectCountInput, "projectId">) => objectReader.count(input),
224
+ exists: (input: Omit<ExecuteObjectExistsInput, "projectId">) => objectReader.exists(input),
225
+ facet: (input: Omit<ExecuteObjectFacetsInput, "projectId">) => objectReader.facet(input),
261
226
  listLinks: async (input: {
262
227
  objectTypeId: string
263
228
  objectId: string
264
229
  linkId?: string
265
230
  direction?: LinkDirection
266
231
  }) => {
267
- assertAuthorized(runtime, { kind: "object.view", objectTypeId: input.objectTypeId })
268
- const links = await runtime.storage.objects.listLinks({
269
- projectId: runtime.projectId,
270
- ...input,
271
- })
272
- return links.filter(
273
- (link) =>
274
- isAllowed(runtime.authorization, {
275
- kind: "object.view",
276
- objectTypeId: link.sourceTypeId,
277
- }) &&
278
- isAllowed(runtime.authorization, {
279
- kind: "object.view",
280
- objectTypeId: link.targetTypeId,
281
- })
282
- )
232
+ return objectReader.listLinks(input)
283
233
  },
284
- getTelemetryHistoryBatch: (input: Omit<TimeseriesHistoryBatchInput, "projectId">) =>
285
- getTelemetryHistoryBatch(
286
- { projectId: runtime.projectId, ...input },
287
- {
288
- storage: runtime.storage.timeseries,
289
- runtimeAuthorization: runtime.runtimeAuthorization,
290
- authorization: runtime.authorization,
291
- }
292
- ),
293
- getTelemetryHistory: (input: {
234
+ getTelemetryHistoryBatch: (input: Omit<TimeseriesHistoryBatchInput, "projectId">) => {
235
+ const timeseries = capturedRuntime.storage.timeseries
236
+ return getTelemetryHistoryBatch(input, { storage: timeseries, objectReader })
237
+ },
238
+ getTelemetryHistory: async (input: {
294
239
  objectTypeId: string
295
240
  objectId: string
296
241
  propertyId: string
@@ -299,48 +244,58 @@ export function createObjectsRuntime<TOntologySources extends readonly OntologyS
299
244
  limit?: number
300
245
  order?: "asc" | "desc"
301
246
  }) => {
302
- assertAuthorized(runtime, { kind: "object.view", objectTypeId: input.objectTypeId })
303
- return runtime.storage.timeseries.getHistory({
304
- projectId: runtime.projectId,
305
- ...input,
306
- })
247
+ const timeseries = capturedRuntime.storage.timeseries
248
+ const objectTypeId = input.objectTypeId
249
+ const objectId = input.objectId
250
+ const propertyId = input.propertyId
251
+ const from = input.from
252
+ const to = input.to
253
+ const limit = input.limit
254
+ const order = input.order
255
+ const [result] = await getTelemetryHistoryBatch(
256
+ {
257
+ series: [{ objectTypeId, objectId, propertyId }],
258
+ ...(from === undefined ? {} : { from }),
259
+ ...(to === undefined ? {} : { to }),
260
+ ...(limit === undefined ? {} : { limitPerSeries: limit }),
261
+ ...(order === undefined ? {} : { order }),
262
+ },
263
+ { storage: timeseries, objectReader }
264
+ )
265
+ return result?.points ?? []
307
266
  },
308
- getLatestTelemetry: (input: {
267
+ getLatestTelemetry: async (input: {
309
268
  objectTypeId: string
310
269
  objectId: string
311
270
  propertyId: string
312
271
  }) => {
313
- assertAuthorized(runtime, { kind: "object.view", objectTypeId: input.objectTypeId })
314
- return runtime.storage.timeseries.getLatest({
315
- projectId: runtime.projectId,
316
- ...input,
317
- })
318
- },
319
- list: (params: ListObjectsParams) => objectService.listObjects(runtime, params),
320
- get: async (objectTypeId: string, primaryId: string) => {
321
- assertAuthorized(runtime, { kind: "object.view", objectTypeId })
322
- return runtime.storage.objects.getByPrimaryId({
323
- projectId: runtime.projectId,
324
- objectTypeId,
325
- primaryId,
326
- })
272
+ const timeseries = capturedRuntime.storage.timeseries
273
+ const objectTypeId = input.objectTypeId
274
+ const objectId = input.objectId
275
+ const propertyId = input.propertyId
276
+ return getLatestTelemetryPoint(
277
+ { objectTypeId, objectId, propertyId },
278
+ { storage: timeseries, objectReader }
279
+ )
327
280
  },
281
+ list: (params: ListObjectsParams) => objectService.listObjects(capturedRuntime, params),
282
+ get: (objectTypeId: string, primaryId: string) =>
283
+ objectReader.getByPrimaryId({ objectTypeId, primaryId }),
328
284
  getPrimaryPropertyId: (objectTypeId: string) => {
329
- assertAuthorized(runtime, { kind: "object.view", objectTypeId })
330
- return runtime.ontology.getPrimaryPropertyId(objectTypeId)
285
+ return ontologyView().getPrimaryPropertyId(objectTypeId)
331
286
  },
332
287
  upsert: (objectTypeId: string, properties: Record<string, unknown>) =>
333
- objectService.upsertObject(runtime, objectTypeId, properties),
288
+ objectService.upsertObject(capturedRuntime, objectTypeId, properties),
334
289
  upsertBatch: (
335
290
  objectTypeId: string,
336
291
  items: readonly { properties: Record<string, unknown> }[]
337
- ) => objectService.upsertObjectBatch(runtime, objectTypeId, items),
292
+ ) => objectService.upsertObjectBatch(capturedRuntime, objectTypeId, items),
338
293
  upsertLink: (
339
294
  objectTypeId: string,
340
295
  sourceId: string,
341
296
  linkId: string,
342
297
  target: { targetTypeId: string; targetId: string; properties?: Record<string, unknown> }
343
- ) => objectService.upsertLink(runtime, objectTypeId, sourceId, linkId, target),
298
+ ) => objectService.upsertLink(capturedRuntime, objectTypeId, sourceId, linkId, target),
344
299
  upsertLinkBatch: (
345
300
  items: readonly {
346
301
  objectTypeId: string
@@ -348,17 +303,17 @@ export function createObjectsRuntime<TOntologySources extends readonly OntologyS
348
303
  linkId: string
349
304
  target: { targetTypeId: string; targetId: string; properties?: Record<string, unknown> }
350
305
  }[]
351
- ) => objectService.upsertLinkBatch(runtime, items),
306
+ ) => objectService.upsertLinkBatch(capturedRuntime, items),
352
307
  removeLink: (
353
308
  objectTypeId: string,
354
309
  sourceId: string,
355
310
  linkId: string,
356
311
  target: { targetTypeId: string; targetId: string }
357
- ) => objectService.removeLink(runtime, objectTypeId, sourceId, linkId, target),
312
+ ) => objectService.removeLink(capturedRuntime, objectTypeId, sourceId, linkId, target),
358
313
  appendTelemetry: (
359
314
  objectTypeId: string,
360
315
  items: readonly { id: string; properties: Record<string, unknown>; at?: Date }[]
361
- ) => objectService.appendTelemetry(runtime, objectTypeId, items),
316
+ ) => objectService.appendTelemetry(capturedRuntime, objectTypeId, items),
362
317
  }
363
318
  )
364
319
 
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * The authorization rule for writing a link, in one place because all three link leaves need it.
3
3
  */
4
- import { type AuthorizationContext, assertAuthorized, assertCanEdit } from "../../authorization"
4
+ import { assertAuthorized, assertCanEdit } from "../../authorization"
5
+ import type { SixbRuntimeContext } from "../../runtime/types"
5
6
 
6
7
  /**
7
8
  * Assert a principal may create or remove a link.
@@ -18,7 +19,7 @@ import { type AuthorizationContext, assertAuthorized, assertCanEdit } from "../.
18
19
  * Call this *before* any endpoint lookup, for that second reason.
19
20
  */
20
21
  export function assertCanWriteLink(
21
- ctx: { readonly authorization?: AuthorizationContext },
22
+ ctx: Pick<SixbRuntimeContext, "projectId" | "runtimeAuthorization" | "authorization">,
22
23
  endpoints: { readonly sourceTypeId: string; readonly targetTypeId: string }
23
24
  ): void {
24
25
  assertCanEdit(ctx, endpoints.sourceTypeId)
@@ -10,14 +10,13 @@ import type {
10
10
  ObjectBatchKey,
11
11
  ObjectFacetRequest,
12
12
  ObjectFacetResult,
13
- ObjectLinkRow,
14
13
  ObjectQueryCapabilities,
14
+ ObjectReadStorage,
15
15
  ObjectRow,
16
16
  ObjectRowLinks,
17
- ObjectStorage,
18
17
  QueryObjectsResult,
19
18
  } from "../../storage"
20
- import { linkBatchKey, objectBatchKey } from "../../storage"
19
+ import { linkBatchKey, MAX_OBJECT_READ_FACETS, objectBatchKey } from "../../storage"
21
20
  import {
22
21
  ObjectQueryExecutionError,
23
22
  ObjectQueryPlanningError,
@@ -51,7 +50,7 @@ export interface QueryExecutorOptions
51
50
  | "hasFacetObjects"
52
51
  > {
53
52
  ontology: OntologyRegistry
54
- storage: ObjectStorage
53
+ storage: ObjectReadStorage
55
54
  maxLimit?: number
56
55
  maxPageSize?: number
57
56
  maxRefs?: number
@@ -138,7 +137,7 @@ export async function executeObjectQuery(
138
137
  maxRefs: options.maxRefs,
139
138
  normalize: false,
140
139
  })
141
- assertQueryViewable(validated, options)
140
+ assertQueryViewable(input.projectId, validated, options)
142
141
  const capabilities = options.storage.queryCapabilities()
143
142
  const hasQueryObjects = typeof options.storage.queryObjects === "function"
144
143
  const hasCountObjects = typeof options.storage.countObjects === "function"
@@ -206,7 +205,7 @@ export async function countObjects(
206
205
  maxRefs: options.maxRefs,
207
206
  normalize: false,
208
207
  })
209
- assertQueryViewable(validated, options)
208
+ assertQueryViewable(input.projectId, validated, options)
210
209
  const capabilities = options.storage.queryCapabilities()
211
210
  const hasQueryObjects = typeof options.storage.queryObjects === "function"
212
211
  const hasCountObjects = typeof options.storage.countObjects === "function"
@@ -267,7 +266,7 @@ export async function existsObjects(
267
266
  maxRefs: options.maxRefs,
268
267
  normalize: false,
269
268
  })
270
- assertQueryViewable(validated, options)
269
+ assertQueryViewable(input.projectId, validated, options)
271
270
  const capabilities = options.storage.queryCapabilities()
272
271
  const hasQueryObjects = typeof options.storage.queryObjects === "function"
273
272
  const hasCountObjects = typeof options.storage.countObjects === "function"
@@ -328,8 +327,8 @@ export async function facetObjects(
328
327
  maxRefs: options.maxRefs,
329
328
  normalize: false,
330
329
  })
331
- assertQueryViewable(validated, options)
332
- const facets = validateFacetRequests(input.facets, validated.result.objectTypeIds, options)
330
+ assertQueryViewable(input.projectId, validated, options)
331
+ const facets = validateObjectFacetRequests(input.facets, validated.result.objectTypeIds, options)
333
332
  const aggregateQuery = stripOuterRowShape(validated.query)
334
333
  const capabilities = options.storage.queryCapabilities()
335
334
  const hasQueryObjects = typeof options.storage.queryObjects === "function"
@@ -388,16 +387,20 @@ export async function facetObjects(
388
387
  // Authorization happens at planning time: a scoped query must hold a view
389
388
  // grant for every object type it touches, before any storage call runs.
390
389
  function assertQueryViewable(
390
+ projectId: string,
391
391
  validated: ValidatedObjectQuery,
392
392
  authorization: Pick<QueryExecutorOptions, "authorization" | "runtimeAuthorization">
393
393
  ): void {
394
394
  // The query engine is also a storage-level utility. Authorization is activated by a runtime
395
395
  // context; execution SDKs always provide a registered capability, including auth-disabled ones.
396
396
  if (!authorization.runtimeAuthorization && !authorization.authorization) return
397
- assertAuthorized(authorization, {
398
- kind: "object.query",
399
- touchedObjectTypeIds: validated.touchedObjectTypeIds,
400
- })
397
+ assertAuthorized(
398
+ { projectId, ...authorization },
399
+ {
400
+ kind: "object.query",
401
+ touchedObjectTypeIds: validated.touchedObjectTypeIds,
402
+ }
403
+ )
401
404
  }
402
405
 
403
406
  interface ExpansionResolutionContext {
@@ -816,35 +819,32 @@ async function collectIncomingEdges(
816
819
  expansion: ObjectExpansion,
817
820
  options: QueryExecutorOptions
818
821
  ): Promise<ExpansionEdge[][]> {
819
- const incident = await options.storage.listIncidentLinksBatch({
822
+ const linksByKey = await options.storage.listLinksBatch({
820
823
  projectId,
824
+ direction: "incoming",
821
825
  items: parents.map((parent) => ({
822
826
  objectTypeId: parent.objectTypeId,
823
827
  objectId: parent.primaryId,
828
+ linkId: expansion.linkId,
824
829
  })),
825
830
  })
826
831
 
827
- // Index links that point AT a parent (incoming) by that parent. The incident
828
- // batch also returns outgoing links, so filter on the parent being the target.
829
- const byTarget = new Map<string, ObjectLinkRow[]>()
830
- for (const link of incident) {
831
- if (link.linkId !== expansion.linkId) continue
832
- if (expansion.sourceObjectTypeId && link.sourceTypeId !== expansion.sourceObjectTypeId) continue
833
- const key = targetKey(link.targetTypeId, link.targetId)
834
- const bucket = byTarget.get(key)
835
- if (bucket) bucket.push(link)
836
- else byTarget.set(key, [link])
837
- }
838
-
839
832
  return parents.map((parent) => {
840
- const links = byTarget.get(targetKey(parent.objectTypeId, parent.primaryId))
833
+ const links = linksByKey.get(
834
+ linkBatchKey(parent.objectTypeId, parent.primaryId, expansion.linkId)
835
+ )
841
836
  if (!links) return []
842
837
  // For an incoming expansion the hydrated object is the link's source.
843
- return links.map((link) => ({
844
- neighborTypeId: link.sourceTypeId,
845
- neighborId: link.sourceId,
846
- edgeProperties: link.properties,
847
- }))
838
+ return links
839
+ .filter(
840
+ (link) =>
841
+ !expansion.sourceObjectTypeId || link.sourceTypeId === expansion.sourceObjectTypeId
842
+ )
843
+ .map((link) => ({
844
+ neighborTypeId: link.sourceTypeId,
845
+ neighborId: link.sourceId,
846
+ edgeProperties: link.properties,
847
+ }))
848
848
  })
849
849
  }
850
850
 
@@ -1177,10 +1177,11 @@ function stripOuterRowShape(query: ObjectQuery): ObjectQuery {
1177
1177
  }
1178
1178
  }
1179
1179
 
1180
- function validateFacetRequests(
1180
+ /** @internal Shared pre-storage validation; intentionally absent from query barrels. */
1181
+ export function validateObjectFacetRequests(
1181
1182
  facets: readonly ObjectFacetRequest[],
1182
1183
  objectTypeIds: readonly string[],
1183
- options: QueryExecutorOptions
1184
+ options: Pick<QueryExecutorOptions, "ontology" | "maxFacetLimit">
1184
1185
  ): ObjectFacetRequest[] {
1185
1186
  const issues: ObjectQueryValidationIssue[] = []
1186
1187
  const maxLimit = options.maxFacetLimit ?? DEFAULT_MAX_FACET_LIMIT
@@ -1189,6 +1190,16 @@ function validateFacetRequests(
1189
1190
  addFacetIssue(issues, "$.facets", "empty_facets", "At least one facet is required")
1190
1191
  }
1191
1192
 
1193
+ if (facets.length > MAX_OBJECT_READ_FACETS) {
1194
+ throw new ObjectQueryValidationError([
1195
+ {
1196
+ path: "$.facets",
1197
+ code: "too_many_facets",
1198
+ message: `facets must include at most ${MAX_OBJECT_READ_FACETS} facet requests`,
1199
+ },
1200
+ ])
1201
+ }
1202
+
1192
1203
  if (!Number.isInteger(maxLimit) || maxLimit <= 0) {
1193
1204
  addFacetIssue(
1194
1205
  issues,