@sixb/core 0.1.19 → 0.1.21

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 (765) hide show
  1. package/dist/actions/execution.d.ts.map +1 -1
  2. package/dist/actions/index.js +54 -47
  3. package/dist/actions/index.js.map +1 -1
  4. package/dist/actions/request.d.ts.map +1 -1
  5. package/dist/actions/run-authorization.d.ts +9 -0
  6. package/dist/actions/run-authorization.d.ts.map +1 -1
  7. package/dist/activity/connection.d.ts +62 -0
  8. package/dist/activity/connection.d.ts.map +1 -0
  9. package/dist/activity/device.d.ts +8 -0
  10. package/dist/activity/device.d.ts.map +1 -0
  11. package/dist/activity/execution.d.ts +48 -0
  12. package/dist/activity/execution.d.ts.map +1 -0
  13. package/dist/activity/service.d.ts +79 -0
  14. package/dist/activity/service.d.ts.map +1 -0
  15. package/dist/activity/shares.d.ts +24 -0
  16. package/dist/activity/shares.d.ts.map +1 -0
  17. package/dist/activity/timeline.d.ts +96 -0
  18. package/dist/activity/timeline.d.ts.map +1 -0
  19. package/dist/agents/index.d.ts +2 -1
  20. package/dist/agents/index.d.ts.map +1 -1
  21. package/dist/agents/index.js +63 -50
  22. package/dist/agents/index.js.map +1 -1
  23. package/dist/agents/request.d.ts.map +1 -1
  24. package/dist/agents/skills.d.ts.map +1 -1
  25. package/dist/agents/streams/index.js +3 -3
  26. package/dist/agents/streams/internal.js +3 -3
  27. package/dist/agents/types.d.ts +8 -8
  28. package/dist/agents/types.d.ts.map +1 -1
  29. package/dist/agents/validation.d.ts +1 -1
  30. package/dist/agents/validation.d.ts.map +1 -1
  31. package/dist/artifacts/address.d.ts +48 -0
  32. package/dist/artifacts/address.d.ts.map +1 -0
  33. package/dist/artifacts/csv.d.ts +22 -0
  34. package/dist/artifacts/csv.d.ts.map +1 -0
  35. package/dist/artifacts/errors.d.ts +11 -0
  36. package/dist/artifacts/errors.d.ts.map +1 -0
  37. package/dist/artifacts/execution.d.ts +43 -0
  38. package/dist/artifacts/execution.d.ts.map +1 -0
  39. package/dist/artifacts/frames/assets.d.ts +28 -0
  40. package/dist/artifacts/frames/assets.d.ts.map +1 -0
  41. package/dist/artifacts/frames/grants.d.ts +37 -0
  42. package/dist/artifacts/frames/grants.d.ts.map +1 -0
  43. package/dist/artifacts/frames/index.d.ts +10 -0
  44. package/dist/artifacts/frames/index.d.ts.map +1 -0
  45. package/dist/artifacts/frames/index.js +892 -0
  46. package/dist/artifacts/frames/index.js.map +14 -0
  47. package/dist/artifacts/frames/kit.d.ts +66 -0
  48. package/dist/artifacts/frames/kit.d.ts.map +1 -0
  49. package/dist/artifacts/frames/probe.d.ts +41 -0
  50. package/dist/artifacts/frames/probe.d.ts.map +1 -0
  51. package/dist/artifacts/frames/protocol.d.ts +98 -0
  52. package/dist/artifacts/frames/protocol.d.ts.map +1 -0
  53. package/dist/artifacts/frames/runtime.d.ts +13 -0
  54. package/dist/artifacts/frames/runtime.d.ts.map +1 -0
  55. package/dist/artifacts/html.d.ts +6 -0
  56. package/dist/artifacts/html.d.ts.map +1 -0
  57. package/dist/artifacts/ids.d.ts +5 -0
  58. package/dist/artifacts/ids.d.ts.map +1 -0
  59. package/dist/artifacts/index.d.ts +16 -0
  60. package/dist/artifacts/index.d.ts.map +1 -0
  61. package/dist/artifacts/index.js +125 -0
  62. package/dist/artifacts/index.js.map +10 -0
  63. package/dist/artifacts/kinds.d.ts +5 -0
  64. package/dist/artifacts/kinds.d.ts.map +1 -0
  65. package/dist/artifacts/limits.d.ts +28 -0
  66. package/dist/artifacts/limits.d.ts.map +1 -0
  67. package/dist/artifacts/outline.d.ts +44 -0
  68. package/dist/artifacts/outline.d.ts.map +1 -0
  69. package/dist/artifacts/publish/files.d.ts +15 -0
  70. package/dist/artifacts/publish/files.d.ts.map +1 -0
  71. package/dist/artifacts/publish/index.d.ts +5 -0
  72. package/dist/artifacts/publish/index.d.ts.map +1 -0
  73. package/dist/artifacts/publish/index.js +36 -0
  74. package/dist/artifacts/publish/index.js.map +9 -0
  75. package/dist/artifacts/publish/publish.d.ts +52 -0
  76. package/dist/artifacts/publish/publish.d.ts.map +1 -0
  77. package/dist/artifacts/publish/references.d.ts +27 -0
  78. package/dist/artifacts/publish/references.d.ts.map +1 -0
  79. package/dist/artifacts/publish/validate/document.d.ts +17 -0
  80. package/dist/artifacts/publish/validate/document.d.ts.map +1 -0
  81. package/dist/artifacts/publish/validate/file.d.ts +8 -0
  82. package/dist/artifacts/publish/validate/file.d.ts.map +1 -0
  83. package/dist/artifacts/publish/validate/sheet.d.ts +15 -0
  84. package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -0
  85. package/dist/artifacts/publish/validate/slides.d.ts +21 -0
  86. package/dist/artifacts/publish/validate/slides.d.ts.map +1 -0
  87. package/dist/artifacts/references.d.ts +12 -0
  88. package/dist/artifacts/references.d.ts.map +1 -0
  89. package/dist/artifacts/resolve.d.ts +41 -0
  90. package/dist/artifacts/resolve.d.ts.map +1 -0
  91. package/dist/artifacts/theme.d.ts +19 -0
  92. package/dist/artifacts/theme.d.ts.map +1 -0
  93. package/dist/artifacts/warnings.d.ts +11 -0
  94. package/dist/artifacts/warnings.d.ts.map +1 -0
  95. package/dist/artifacts/workbook.d.ts +64 -0
  96. package/dist/artifacts/workbook.d.ts.map +1 -0
  97. package/dist/auth/cookies.d.ts +2 -4
  98. package/dist/auth/cookies.d.ts.map +1 -1
  99. package/dist/auth/index.d.ts +0 -2
  100. package/dist/auth/index.d.ts.map +1 -1
  101. package/dist/auth/index.js +14 -20
  102. package/dist/auth/index.js.map +1 -1
  103. package/dist/auth/runtime.d.ts +8 -10
  104. package/dist/auth/runtime.d.ts.map +1 -1
  105. package/dist/auth/session-cache.d.ts +1 -5
  106. package/dist/auth/session-cache.d.ts.map +1 -1
  107. package/dist/auth/strategy.js +1 -1
  108. package/dist/auth/types.d.ts +4 -8
  109. package/dist/auth/types.d.ts.map +1 -1
  110. package/dist/auth/validation.d.ts +0 -1
  111. package/dist/auth/validation.d.ts.map +1 -1
  112. package/dist/authorization/decision.d.ts +2 -4
  113. package/dist/authorization/decision.d.ts.map +1 -1
  114. package/dist/authorization/grant-kinds.d.ts +6 -8
  115. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  116. package/dist/authorization/index.d.ts +0 -1
  117. package/dist/authorization/index.d.ts.map +1 -1
  118. package/dist/authorization/index.js +7 -11
  119. package/dist/authorization/index.js.map +1 -1
  120. package/dist/authorization/resolve.d.ts +1 -1
  121. package/dist/authorization/resolve.d.ts.map +1 -1
  122. package/dist/blob-storage/browser.js +1 -1
  123. package/dist/blob-storage/index.js +2 -2
  124. package/dist/blob-storage/internal.d.ts +1 -1
  125. package/dist/blob-storage/internal.d.ts.map +1 -1
  126. package/dist/blob-storage/internal.js +11 -5
  127. package/dist/blob-storage/internal.js.map +1 -1
  128. package/dist/blob-storage/media-type.d.ts +12 -0
  129. package/dist/blob-storage/media-type.d.ts.map +1 -1
  130. package/dist/bootstrap/index.js +54 -48
  131. package/dist/bootstrap/index.js.map +2 -2
  132. package/dist/{chunk-t6vq7bff.js → chunk-0bphap9y.js} +5 -5
  133. package/dist/{chunk-7mbzgd9m.js → chunk-1cc1xaf3.js} +3 -3
  134. package/dist/chunk-3jms7je7.js +14 -0
  135. package/dist/chunk-3jms7je7.js.map +10 -0
  136. package/dist/{chunk-s54c868q.js → chunk-3qct2mdc.js} +3 -13
  137. package/dist/chunk-3qct2mdc.js.map +12 -0
  138. package/dist/{chunk-6gmfggss.js → chunk-431pyp2c.js} +3 -3
  139. package/dist/{chunk-c85m1hyj.js → chunk-447a5c0p.js} +2 -2
  140. package/dist/chunk-48qjhh6v.js +185 -0
  141. package/dist/chunk-48qjhh6v.js.map +13 -0
  142. package/dist/{chunk-80mc0971.js → chunk-561r0yc9.js} +8 -8
  143. package/dist/{chunk-5e43w60z.js → chunk-5948n82c.js} +2 -2
  144. package/dist/{chunk-yzwja0mj.js → chunk-5hx48dnn.js} +2 -2
  145. package/dist/{chunk-tjb1mk5t.js → chunk-5vems3nx.js} +5 -6
  146. package/dist/{chunk-tjb1mk5t.js.map → chunk-5vems3nx.js.map} +3 -3
  147. package/dist/{chunk-aff7cyea.js → chunk-61y5xs4p.js} +563 -167
  148. package/dist/{chunk-aff7cyea.js.map → chunk-61y5xs4p.js.map} +12 -9
  149. package/dist/chunk-65abf64x.js +13 -0
  150. package/dist/chunk-65abf64x.js.map +10 -0
  151. package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
  152. package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
  153. package/dist/chunk-6rqgmkde.js +2028 -0
  154. package/dist/chunk-6rqgmkde.js.map +29 -0
  155. package/dist/{chunk-y7rqfrgg.js → chunk-6vb4st8k.js} +29 -38
  156. package/dist/chunk-6vb4st8k.js.map +23 -0
  157. package/dist/chunk-7q8t23v4.js +467 -0
  158. package/dist/chunk-7q8t23v4.js.map +14 -0
  159. package/dist/{chunk-kyzq4wy9.js → chunk-858emn8m.js} +17 -17
  160. package/dist/chunk-858emn8m.js.map +18 -0
  161. package/dist/{chunk-hvsb78a1.js → chunk-8frc8a4j.js} +26 -26
  162. package/dist/{chunk-hvsb78a1.js.map → chunk-8frc8a4j.js.map} +2 -2
  163. package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
  164. package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
  165. package/dist/{chunk-j2bp5ryw.js → chunk-918wwnaa.js} +495 -28
  166. package/dist/{chunk-j2bp5ryw.js.map → chunk-918wwnaa.js.map} +14 -12
  167. package/dist/{chunk-1f7wpmyp.js → chunk-9j4jw7as.js} +103 -110
  168. package/dist/chunk-9j4jw7as.js.map +14 -0
  169. package/dist/chunk-9kgkfg6v.js +502 -0
  170. package/dist/chunk-9kgkfg6v.js.map +14 -0
  171. package/dist/chunk-a3faa34j.js +74 -0
  172. package/dist/chunk-a3faa34j.js.map +10 -0
  173. package/dist/{chunk-ey3pyej1.js → chunk-akzryx9h.js} +347 -1174
  174. package/dist/{chunk-ey3pyej1.js.map → chunk-akzryx9h.js.map} +19 -25
  175. package/dist/chunk-arns890k.js +10 -0
  176. package/dist/chunk-arns890k.js.map +10 -0
  177. package/dist/{chunk-zrmy8zvw.js → chunk-bk9svbcq.js} +11 -11
  178. package/dist/{chunk-zrmy8zvw.js.map → chunk-bk9svbcq.js.map} +2 -2
  179. package/dist/{chunk-hkc3jct7.js → chunk-c06hmxyy.js} +2 -10
  180. package/dist/chunk-c06hmxyy.js.map +10 -0
  181. package/dist/{chunk-q1vkr2ys.js → chunk-c1rxbz5y.js} +3 -3
  182. package/dist/chunk-cfj9dfbb.js +288 -0
  183. package/dist/chunk-cfj9dfbb.js.map +12 -0
  184. package/dist/{chunk-4tcx876c.js → chunk-cn0fwwhy.js} +19 -19
  185. package/dist/{chunk-4tcx876c.js.map → chunk-cn0fwwhy.js.map} +1 -1
  186. package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
  187. package/dist/{chunk-fa02jy15.js → chunk-cy4mbddw.js} +1 -1
  188. package/dist/{chunk-7kg3k1m9.js → chunk-d09e3rax.js} +1 -1
  189. package/dist/chunk-d5rjr8c0.js +176 -0
  190. package/dist/chunk-d5rjr8c0.js.map +12 -0
  191. package/dist/{chunk-rhg02hxq.js → chunk-d7dnxdep.js} +3 -3
  192. package/dist/{chunk-b38szspf.js → chunk-dhcv7yxc.js} +1 -1
  193. package/dist/{chunk-b38szspf.js.map → chunk-dhcv7yxc.js.map} +1 -1
  194. package/dist/{chunk-enpsx8k5.js → chunk-dhdha526.js} +23 -21
  195. package/dist/chunk-dhdha526.js.map +10 -0
  196. package/dist/{chunk-8mx7qw3y.js → chunk-dvd2fp9q.js} +2 -2
  197. package/dist/{chunk-8mx7qw3y.js.map → chunk-dvd2fp9q.js.map} +3 -3
  198. package/dist/{chunk-bwjcehza.js → chunk-e17zdm62.js} +6 -12
  199. package/dist/{chunk-bwjcehza.js.map → chunk-e17zdm62.js.map} +3 -4
  200. package/dist/{chunk-tpn40322.js → chunk-e6k4thh5.js} +11 -10
  201. package/dist/{chunk-tpn40322.js.map → chunk-e6k4thh5.js.map} +3 -3
  202. package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
  203. package/dist/chunk-eptrvnby.js.map +12 -0
  204. package/dist/{chunk-xt1zt7gv.js → chunk-f4pamkt9.js} +30 -23
  205. package/dist/chunk-f4pamkt9.js.map +12 -0
  206. package/dist/chunk-ff5xkv0p.js +211 -0
  207. package/dist/chunk-ff5xkv0p.js.map +10 -0
  208. package/dist/{chunk-bpgy64fw.js → chunk-g257jwnc.js} +10 -4
  209. package/dist/{chunk-bpgy64fw.js.map → chunk-g257jwnc.js.map} +3 -3
  210. package/dist/chunk-g5bvzyyr.js +32 -0
  211. package/dist/chunk-g5bvzyyr.js.map +10 -0
  212. package/dist/{chunk-2jntasmh.js → chunk-hcbyfxbe.js} +25 -49
  213. package/dist/chunk-hcbyfxbe.js.map +12 -0
  214. package/dist/chunk-hke9aeen.js +9 -0
  215. package/dist/chunk-hke9aeen.js.map +10 -0
  216. package/dist/{chunk-1sr8ryzk.js → chunk-hwksyjks.js} +122 -1
  217. package/dist/{chunk-1sr8ryzk.js.map → chunk-hwksyjks.js.map} +3 -3
  218. package/dist/chunk-jcfw4h7m.js +9 -0
  219. package/dist/chunk-jcfw4h7m.js.map +10 -0
  220. package/dist/{chunk-85yvv5n0.js → chunk-k43ct2ke.js} +20 -11
  221. package/dist/chunk-k43ct2ke.js.map +12 -0
  222. package/dist/{chunk-dnmadg9k.js → chunk-kge7k6ey.js} +40 -8
  223. package/dist/chunk-kge7k6ey.js.map +15 -0
  224. package/dist/{chunk-wz0xs816.js → chunk-ky3j490c.js} +2 -2
  225. package/dist/chunk-mjddfa7k.js +129 -0
  226. package/dist/chunk-mjddfa7k.js.map +12 -0
  227. package/dist/{chunk-3gnrh4ve.js → chunk-nn5xnx3s.js} +86 -111
  228. package/dist/chunk-nn5xnx3s.js.map +40 -0
  229. package/dist/{chunk-rz53yb4v.js → chunk-q5e5tv4b.js} +35 -7
  230. package/dist/{chunk-rz53yb4v.js.map → chunk-q5e5tv4b.js.map} +3 -3
  231. package/dist/{chunk-vyf9kfqf.js → chunk-q7gn29y3.js} +1 -1
  232. package/dist/{chunk-d2ync1v3.js → chunk-rmakanzx.js} +10 -12
  233. package/dist/{chunk-d2ync1v3.js.map → chunk-rmakanzx.js.map} +3 -4
  234. package/dist/{chunk-v9xd5wzd.js → chunk-s7jg7pmn.js} +1 -1
  235. package/dist/chunk-tbc1ngpd.js +642 -0
  236. package/dist/chunk-tbc1ngpd.js.map +18 -0
  237. package/dist/chunk-twe4dx8p.js +676 -0
  238. package/dist/chunk-twe4dx8p.js.map +15 -0
  239. package/dist/{chunk-nre82s12.js → chunk-vf57cr4t.js} +2 -2
  240. package/dist/{chunk-9ybhtmg4.js → chunk-vvxtn22d.js} +1 -1
  241. package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
  242. package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
  243. package/dist/chunk-x0v3jd47.js +124 -0
  244. package/dist/chunk-x0v3jd47.js.map +10 -0
  245. package/dist/{chunk-7t429e3f.js → chunk-xvsc5m8n.js} +1 -1
  246. package/dist/{chunk-kg5j6fct.js → chunk-y5tah2kf.js} +1 -1
  247. package/dist/{chunk-52bk93x8.js → chunk-z58tm0hm.js} +2 -2
  248. package/dist/datasets/builders.d.ts +15 -2
  249. package/dist/datasets/builders.d.ts.map +1 -1
  250. package/dist/datasets/column-index.d.ts +7 -0
  251. package/dist/datasets/column-index.d.ts.map +1 -0
  252. package/dist/datasets/execution.d.ts +3 -2
  253. package/dist/datasets/execution.d.ts.map +1 -1
  254. package/dist/datasets/write.js +8 -8
  255. package/dist/deploy/internal.js +4 -3
  256. package/dist/deploy/internal.js.map +4 -4
  257. package/dist/deploy/services.d.ts.map +1 -1
  258. package/dist/deploy/types.d.ts +1 -2
  259. package/dist/deploy/types.d.ts.map +1 -1
  260. package/dist/error-reporting/internal.js +4 -4
  261. package/dist/errors/internal.d.ts +1 -0
  262. package/dist/errors/internal.d.ts.map +1 -1
  263. package/dist/errors/internal.js +7 -4
  264. package/dist/errors/internal.js.map +1 -1
  265. package/dist/events/execution.d.ts +12 -2
  266. package/dist/events/execution.d.ts.map +1 -1
  267. package/dist/events/index.js +4 -4
  268. package/dist/execution/agent.js +56 -49
  269. package/dist/execution/agent.js.map +1 -1
  270. package/dist/execution/authorization.d.ts.map +1 -1
  271. package/dist/execution/authorized-object-reader.d.ts +52 -11
  272. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  273. package/dist/execution/object-reader-clearance.d.ts +41 -0
  274. package/dist/execution/object-reader-clearance.d.ts.map +1 -0
  275. package/dist/execution/object-reader-ontology.d.ts +12 -0
  276. package/dist/execution/object-reader-ontology.d.ts.map +1 -0
  277. package/dist/execution/object-reader-security.d.ts +45 -0
  278. package/dist/execution/object-reader-security.d.ts.map +1 -0
  279. package/dist/execution/primitive.js +54 -47
  280. package/dist/execution/primitive.js.map +1 -1
  281. package/dist/execution/request.js +49 -42
  282. package/dist/execution/request.js.map +2 -2
  283. package/dist/http/api-routes.d.ts.map +1 -1
  284. package/dist/http/index.js +1 -1
  285. package/dist/index.d.ts +23 -7
  286. package/dist/index.d.ts.map +1 -1
  287. package/dist/index.js +111 -109
  288. package/dist/index.js.map +1 -1
  289. package/dist/lake-storage/in-memory.d.ts +1 -0
  290. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  291. package/dist/lake-storage/index.d.ts +6 -3
  292. package/dist/lake-storage/index.d.ts.map +1 -1
  293. package/dist/lake-storage/index.js +21 -13
  294. package/dist/lake-storage/index.js.map +1 -1
  295. package/dist/lake-storage/lineage.d.ts +94 -0
  296. package/dist/lake-storage/lineage.d.ts.map +1 -0
  297. package/dist/lake-storage/sql-transforms.d.ts +45 -0
  298. package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
  299. package/dist/lake-storage/types.d.ts +55 -1
  300. package/dist/lake-storage/types.d.ts.map +1 -1
  301. package/dist/lake-storage/version-inputs.d.ts +14 -3
  302. package/dist/lake-storage/version-inputs.d.ts.map +1 -1
  303. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  304. package/dist/materializer/index.js +31 -30
  305. package/dist/materializer/index.js.map +1 -1
  306. package/dist/models/execution/index.js +26 -25
  307. package/dist/models/execution/index.js.map +1 -1
  308. package/dist/objects/clearance-redaction.d.ts +27 -0
  309. package/dist/objects/clearance-redaction.d.ts.map +1 -0
  310. package/dist/objects/index.js +54 -47
  311. package/dist/objects/index.js.map +1 -1
  312. package/dist/objects/link/authorization.d.ts +8 -5
  313. package/dist/objects/link/authorization.d.ts.map +1 -1
  314. package/dist/objects/link/upsert-batch.d.ts.map +1 -1
  315. package/dist/objects/object/delete.d.ts.map +1 -1
  316. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  317. package/dist/objects/object/upsert.d.ts.map +1 -1
  318. package/dist/objects/property-clearance.d.ts +47 -24
  319. package/dist/objects/property-clearance.d.ts.map +1 -1
  320. package/dist/objects/query/clearance-admission.d.ts +10 -0
  321. package/dist/objects/query/clearance-admission.d.ts.map +1 -0
  322. package/dist/objects/query/index.js +29 -28
  323. package/dist/objects/query/index.js.map +1 -1
  324. package/dist/objects/query/link-query-clearance.d.ts +21 -0
  325. package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
  326. package/dist/objects/vectors/handle.d.ts.map +1 -1
  327. package/dist/objects/vectors/profile.d.ts +5 -0
  328. package/dist/objects/vectors/profile.d.ts.map +1 -1
  329. package/dist/ontology/builders.d.ts.map +1 -1
  330. package/dist/ontology/docs-markdown.d.ts +1 -1
  331. package/dist/ontology/docs-markdown.d.ts.map +1 -1
  332. package/dist/ontology/index.js +7 -7
  333. package/dist/ontology/internal.js +4 -4
  334. package/dist/ontology/internal.js.map +1 -1
  335. package/dist/pipelines/index.d.ts +2 -0
  336. package/dist/pipelines/index.d.ts.map +1 -1
  337. package/dist/pipelines/index.js +47 -35
  338. package/dist/pipelines/index.js.map +1 -1
  339. package/dist/pipelines/lineage.d.ts +17 -0
  340. package/dist/pipelines/lineage.d.ts.map +1 -0
  341. package/dist/projections/internal.d.ts +2 -2
  342. package/dist/projections/internal.js +30 -29
  343. package/dist/projections/internal.js.map +1 -1
  344. package/dist/runtime/create.d.ts +3 -0
  345. package/dist/runtime/create.d.ts.map +1 -1
  346. package/dist/runtime/host.d.ts +6 -0
  347. package/dist/runtime/host.d.ts.map +1 -1
  348. package/dist/runtime/internal.d.ts +2 -0
  349. package/dist/runtime/internal.d.ts.map +1 -1
  350. package/dist/runtime/internal.js +46 -42
  351. package/dist/runtime/internal.js.map +1 -1
  352. package/dist/runtime/ontology-mutations.d.ts +2 -0
  353. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  354. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  355. package/dist/runtime/sixb.d.ts +8 -0
  356. package/dist/runtime/sixb.d.ts.map +1 -1
  357. package/dist/sandboxes/auth.d.ts +16 -0
  358. package/dist/sandboxes/auth.d.ts.map +1 -1
  359. package/dist/sandboxes/config.d.ts.map +1 -1
  360. package/dist/sandboxes/configuration.d.ts +26 -0
  361. package/dist/sandboxes/configuration.d.ts.map +1 -1
  362. package/dist/sandboxes/index.d.ts +1 -1
  363. package/dist/sandboxes/index.d.ts.map +1 -1
  364. package/dist/sandboxes/index.js +14 -13
  365. package/dist/sandboxes/index.js.map +1 -1
  366. package/dist/sandboxes/sandbox.d.ts +28 -5
  367. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  368. package/dist/security/applied-markings-contribution.d.ts +58 -0
  369. package/dist/security/applied-markings-contribution.d.ts.map +1 -0
  370. package/dist/security/applied-markings-host.d.ts +10 -0
  371. package/dist/security/applied-markings-host.d.ts.map +1 -0
  372. package/dist/security/applied-markings-snapshot.d.ts +67 -0
  373. package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
  374. package/dist/security/applied-markings.d.ts +73 -0
  375. package/dist/security/applied-markings.d.ts.map +1 -0
  376. package/dist/security/builders.d.ts.map +1 -1
  377. package/dist/security/dataset-version-markings.d.ts +47 -0
  378. package/dist/security/dataset-version-markings.d.ts.map +1 -0
  379. package/dist/security/every.d.ts +1 -4
  380. package/dist/security/every.d.ts.map +1 -1
  381. package/dist/security/grants.d.ts +4 -5
  382. package/dist/security/grants.d.ts.map +1 -1
  383. package/dist/security/index.d.ts +2 -2
  384. package/dist/security/index.d.ts.map +1 -1
  385. package/dist/security/internal.d.ts +15 -0
  386. package/dist/security/internal.d.ts.map +1 -0
  387. package/dist/security/internal.js +135 -0
  388. package/dist/security/internal.js.map +10 -0
  389. package/dist/security/marking-propagation.d.ts +62 -0
  390. package/dist/security/marking-propagation.d.ts.map +1 -0
  391. package/dist/security/marking-sets.d.ts +14 -0
  392. package/dist/security/marking-sets.d.ts.map +1 -0
  393. package/dist/security/markings.d.ts +6 -3
  394. package/dist/security/markings.d.ts.map +1 -1
  395. package/dist/security/membership-policies.d.ts.map +1 -1
  396. package/dist/security/pipeline-markings.d.ts +20 -0
  397. package/dist/security/pipeline-markings.d.ts.map +1 -0
  398. package/dist/security/project.d.ts +4 -0
  399. package/dist/security/project.d.ts.map +1 -0
  400. package/dist/security/projection-markings.d.ts +71 -0
  401. package/dist/security/projection-markings.d.ts.map +1 -0
  402. package/dist/security/public.d.ts +10 -0
  403. package/dist/security/public.d.ts.map +1 -0
  404. package/dist/security/public.js +10 -0
  405. package/dist/security/public.js.map +9 -0
  406. package/dist/security/redactions.d.ts +4 -1
  407. package/dist/security/redactions.d.ts.map +1 -1
  408. package/dist/security/registry.d.ts +0 -1
  409. package/dist/security/registry.d.ts.map +1 -1
  410. package/dist/security/types.d.ts +34 -19
  411. package/dist/security/types.d.ts.map +1 -1
  412. package/dist/security/validation.d.ts +0 -6
  413. package/dist/security/validation.d.ts.map +1 -1
  414. package/dist/shares/internal.js +25 -24
  415. package/dist/shares/internal.js.map +2 -2
  416. package/dist/storage/action-runs/failure.js +3 -3
  417. package/dist/storage/action-runs/in-memory.d.ts +4 -0
  418. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  419. package/dist/storage/action-runs/types.d.ts +8 -0
  420. package/dist/storage/action-runs/types.d.ts.map +1 -1
  421. package/dist/storage/activity/in-memory.d.ts +55 -0
  422. package/dist/storage/activity/in-memory.d.ts.map +1 -0
  423. package/dist/storage/activity/index.d.ts +3 -0
  424. package/dist/storage/activity/index.d.ts.map +1 -0
  425. package/dist/storage/activity/policy.d.ts +96 -0
  426. package/dist/storage/activity/policy.d.ts.map +1 -0
  427. package/dist/storage/activity/types.d.ts +191 -0
  428. package/dist/storage/activity/types.d.ts.map +1 -0
  429. package/dist/storage/agents/in-memory.d.ts +4 -0
  430. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  431. package/dist/storage/agents/provider.d.ts.map +1 -1
  432. package/dist/storage/agents/provider.js +2 -5
  433. package/dist/storage/agents/provider.js.map +1 -1
  434. package/dist/storage/agents/types.d.ts +10 -9
  435. package/dist/storage/agents/types.d.ts.map +1 -1
  436. package/dist/storage/ai-limits/enforcement.js +3 -3
  437. package/dist/storage/artifacts/errors.d.ts +8 -0
  438. package/dist/storage/artifacts/errors.d.ts.map +1 -0
  439. package/dist/storage/artifacts/in-memory.d.ts +34 -0
  440. package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
  441. package/dist/storage/artifacts/index.d.ts +5 -0
  442. package/dist/storage/artifacts/index.d.ts.map +1 -0
  443. package/dist/storage/artifacts/record.d.ts +17 -0
  444. package/dist/storage/artifacts/record.d.ts.map +1 -0
  445. package/dist/storage/artifacts/types.d.ts +184 -0
  446. package/dist/storage/artifacts/types.d.ts.map +1 -0
  447. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  448. package/dist/storage/auth/in-memory/magic-links.d.ts.map +1 -1
  449. package/dist/storage/auth/in-memory/oidc-attempts.d.ts.map +1 -1
  450. package/dist/storage/auth/in-memory/sessions.d.ts +2 -11
  451. package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
  452. package/dist/storage/auth/in-memory/shared.d.ts +1 -2
  453. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  454. package/dist/storage/auth/index.d.ts +1 -1
  455. package/dist/storage/auth/index.d.ts.map +1 -1
  456. package/dist/storage/auth/types.d.ts +20 -17
  457. package/dist/storage/auth/types.d.ts.map +1 -1
  458. package/dist/storage/connector-connections/provider.js +2 -2
  459. package/dist/storage/executions/in-memory.d.ts +2 -1
  460. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  461. package/dist/storage/executions/index.d.ts +1 -1
  462. package/dist/storage/executions/index.d.ts.map +1 -1
  463. package/dist/storage/executions/provider.d.ts +2 -0
  464. package/dist/storage/executions/provider.d.ts.map +1 -1
  465. package/dist/storage/executions/provider.js +9 -223
  466. package/dist/storage/executions/provider.js.map +3 -4
  467. package/dist/storage/executions/types.d.ts +31 -0
  468. package/dist/storage/executions/types.d.ts.map +1 -1
  469. package/dist/storage/file-upload-sessions/provider.js +12 -12
  470. package/dist/storage/in-memory/index.d.ts +8 -0
  471. package/dist/storage/in-memory/index.d.ts.map +1 -1
  472. package/dist/storage/index.d.ts +6 -4
  473. package/dist/storage/index.d.ts.map +1 -1
  474. package/dist/storage/index.js +47 -46
  475. package/dist/storage/index.js.map +1 -1
  476. package/dist/storage/internal.d.ts +3 -0
  477. package/dist/storage/internal.d.ts.map +1 -1
  478. package/dist/storage/internal.js +66 -16
  479. package/dist/storage/internal.js.map +1 -1
  480. package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
  481. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  482. package/dist/storage/ontology/index.d.ts +1 -1
  483. package/dist/storage/ontology/index.d.ts.map +1 -1
  484. package/dist/storage/ontology/sources.d.ts +15 -0
  485. package/dist/storage/ontology/sources.d.ts.map +1 -1
  486. package/dist/storage/projection-runs/provider.js +3 -3
  487. package/dist/storage/share-grants/in-memory.d.ts +2 -1
  488. package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
  489. package/dist/storage/share-grants/index.d.ts +1 -1
  490. package/dist/storage/share-grants/index.d.ts.map +1 -1
  491. package/dist/storage/share-grants/types.d.ts +6 -0
  492. package/dist/storage/share-grants/types.d.ts.map +1 -1
  493. package/dist/storage/types.d.ts +4 -0
  494. package/dist/storage/types.d.ts.map +1 -1
  495. package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
  496. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  497. package/dist/storage/workflow-runs/provider.js +14 -13
  498. package/dist/storage/workflow-runs/provider.js.map +1 -1
  499. package/dist/storage/workflow-runs/types.d.ts +5 -0
  500. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  501. package/dist/syncs/index.js +35 -34
  502. package/dist/syncs/index.js.map +1 -1
  503. package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
  504. package/dist/testing/activity-storage-contract.d.ts +14 -0
  505. package/dist/testing/activity-storage-contract.d.ts.map +1 -0
  506. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  507. package/dist/testing/artifact-storage-contract.d.ts +13 -0
  508. package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
  509. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  510. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  511. package/dist/testing/index.d.ts +2 -0
  512. package/dist/testing/index.d.ts.map +1 -1
  513. package/dist/testing/index.js +4493 -3225
  514. package/dist/testing/index.js.map +14 -12
  515. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
  516. package/dist/testing/lake-storage-contract.d.ts +2 -0
  517. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  518. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  519. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
  520. package/dist/webhooks/internal.js +28 -27
  521. package/dist/webhooks/internal.js.map +2 -2
  522. package/dist/workers/index.js +2 -2
  523. package/dist/workflows/builders.d.ts.map +1 -1
  524. package/dist/workflows/index.js +57 -51
  525. package/dist/workflows/index.js.map +1 -1
  526. package/dist/workflows/types.d.ts +9 -0
  527. package/dist/workflows/types.d.ts.map +1 -1
  528. package/dist/workflows/validation.d.ts +7 -0
  529. package/dist/workflows/validation.d.ts.map +1 -1
  530. package/package.json +32 -2
  531. package/src/actions/execution.ts +18 -13
  532. package/src/actions/request.ts +18 -3
  533. package/src/actions/run-authorization.ts +23 -0
  534. package/src/activity/README.md +155 -0
  535. package/src/activity/connection.ts +217 -0
  536. package/src/activity/device.ts +41 -0
  537. package/src/activity/execution.ts +210 -0
  538. package/src/activity/service.ts +274 -0
  539. package/src/activity/shares.ts +62 -0
  540. package/src/activity/timeline.ts +424 -0
  541. package/src/agents/index.ts +8 -3
  542. package/src/agents/request.ts +5 -0
  543. package/src/agents/skills.ts +6 -0
  544. package/src/agents/types.ts +8 -8
  545. package/src/agents/validation.ts +2 -0
  546. package/src/artifacts/address.ts +132 -0
  547. package/src/artifacts/csv.ts +108 -0
  548. package/src/artifacts/errors.ts +21 -0
  549. package/src/artifacts/execution.ts +153 -0
  550. package/src/artifacts/frames/assets.ts +88 -0
  551. package/src/artifacts/frames/grants.ts +124 -0
  552. package/src/artifacts/frames/index.ts +15 -0
  553. package/src/artifacts/frames/kit.ts +392 -0
  554. package/src/artifacts/frames/probe.ts +309 -0
  555. package/src/artifacts/frames/protocol.ts +174 -0
  556. package/src/artifacts/frames/runtime.ts +213 -0
  557. package/src/artifacts/html.ts +25 -0
  558. package/src/artifacts/ids.ts +18 -0
  559. package/src/artifacts/index.ts +61 -0
  560. package/src/artifacts/kinds.ts +8 -0
  561. package/src/artifacts/limits.ts +27 -0
  562. package/src/artifacts/outline.ts +62 -0
  563. package/src/artifacts/publish/files.ts +87 -0
  564. package/src/artifacts/publish/index.ts +12 -0
  565. package/src/artifacts/publish/publish.ts +250 -0
  566. package/src/artifacts/publish/references.ts +130 -0
  567. package/src/artifacts/publish/validate/document.ts +114 -0
  568. package/src/artifacts/publish/validate/file.ts +19 -0
  569. package/src/artifacts/publish/validate/sheet.ts +251 -0
  570. package/src/artifacts/publish/validate/slides.ts +134 -0
  571. package/src/artifacts/references.ts +11 -0
  572. package/src/artifacts/resolve.ts +97 -0
  573. package/src/artifacts/theme.ts +116 -0
  574. package/src/artifacts/warnings.ts +10 -0
  575. package/src/artifacts/workbook.ts +315 -0
  576. package/src/auth/cookies.ts +3 -20
  577. package/src/auth/index.ts +0 -6
  578. package/src/auth/runtime.ts +59 -76
  579. package/src/auth/session-cache.ts +2 -9
  580. package/src/auth/types.ts +4 -8
  581. package/src/auth/validation.ts +0 -2
  582. package/src/authorization/decision.ts +13 -23
  583. package/src/authorization/grant-kinds.ts +33 -28
  584. package/src/authorization/index.ts +0 -1
  585. package/src/authorization/resolve.ts +10 -6
  586. package/src/blob-storage/internal.ts +1 -1
  587. package/src/blob-storage/media-type.ts +69 -0
  588. package/src/datasets/builders.ts +66 -2
  589. package/src/datasets/column-index.ts +19 -0
  590. package/src/datasets/execution.ts +23 -9
  591. package/src/deploy/services.ts +0 -1
  592. package/src/deploy/types.ts +1 -2
  593. package/src/deploy/validation.ts +3 -1
  594. package/src/errors/internal.ts +1 -0
  595. package/src/events/execution.ts +134 -21
  596. package/src/execution/authorization.ts +11 -5
  597. package/src/execution/authorized-object-reader.ts +270 -256
  598. package/src/execution/object-reader-clearance.ts +91 -0
  599. package/src/execution/object-reader-ontology.ts +63 -0
  600. package/src/execution/object-reader-security.ts +146 -0
  601. package/src/http/api-routes.ts +125 -0
  602. package/src/index.ts +72 -17
  603. package/src/lake-storage/in-memory.ts +26 -3
  604. package/src/lake-storage/index.ts +13 -1
  605. package/src/lake-storage/lineage.ts +385 -0
  606. package/src/lake-storage/sql-transforms.ts +45 -0
  607. package/src/lake-storage/types.ts +59 -1
  608. package/src/lake-storage/version-inputs.ts +35 -6
  609. package/src/maintenance/ontology-maintenance.ts +15 -0
  610. package/src/models/execution/embedding.ts +6 -6
  611. package/src/objects/clearance-redaction.ts +138 -0
  612. package/src/objects/link/authorization.ts +27 -7
  613. package/src/objects/link/remove.ts +2 -2
  614. package/src/objects/link/upsert-batch.ts +7 -5
  615. package/src/objects/link/upsert.ts +2 -2
  616. package/src/objects/object/delete.ts +2 -0
  617. package/src/objects/object/upsert-batch.ts +2 -4
  618. package/src/objects/object/upsert.ts +2 -3
  619. package/src/objects/property-clearance.ts +171 -152
  620. package/src/objects/query/clearance-admission.ts +112 -0
  621. package/src/objects/query/link-query-clearance.ts +73 -0
  622. package/src/objects/vectors/README.md +4 -0
  623. package/src/objects/vectors/handle.ts +11 -2
  624. package/src/objects/vectors/indexing-generate.ts +2 -2
  625. package/src/objects/vectors/profile.ts +5 -0
  626. package/src/ontology/builders.ts +12 -1
  627. package/src/ontology/docs-markdown.ts +1 -1
  628. package/src/pipelines/index.ts +2 -0
  629. package/src/pipelines/lineage.ts +45 -0
  630. package/src/projections/internal.ts +2 -2
  631. package/src/runtime/create.ts +4 -0
  632. package/src/runtime/host.ts +55 -0
  633. package/src/runtime/internal.ts +2 -0
  634. package/src/runtime/ontology-mutations.ts +19 -4
  635. package/src/runtime/resolve-definitions.ts +66 -3
  636. package/src/runtime/sixb.ts +18 -1
  637. package/src/sandboxes/README.md +29 -7
  638. package/src/sandboxes/auth.ts +16 -0
  639. package/src/sandboxes/config.ts +2 -7
  640. package/src/sandboxes/configuration.ts +61 -7
  641. package/src/sandboxes/index.ts +1 -0
  642. package/src/sandboxes/sandbox.ts +27 -5
  643. package/src/security/applied-markings-contribution.ts +277 -0
  644. package/src/security/applied-markings-host.ts +41 -0
  645. package/src/security/applied-markings-snapshot.ts +235 -0
  646. package/src/security/applied-markings.ts +405 -0
  647. package/src/security/builders.ts +7 -2
  648. package/src/security/dataset-version-markings.ts +163 -0
  649. package/src/security/every.ts +0 -4
  650. package/src/security/grants.ts +42 -27
  651. package/src/security/index.ts +3 -3
  652. package/src/security/internal.ts +18 -0
  653. package/src/security/marking-propagation.ts +255 -0
  654. package/src/security/marking-sets.ts +42 -0
  655. package/src/security/markings.ts +29 -178
  656. package/src/security/membership-policies.ts +3 -1
  657. package/src/security/pipeline-markings.ts +175 -0
  658. package/src/security/project.ts +8 -0
  659. package/src/security/projection-markings.ts +421 -0
  660. package/src/security/public.ts +10 -0
  661. package/src/security/redactions.ts +7 -2
  662. package/src/security/registry.ts +0 -8
  663. package/src/security/types.ts +38 -26
  664. package/src/security/validation.ts +28 -19
  665. package/src/storage/action-runs/in-memory.ts +18 -0
  666. package/src/storage/action-runs/types.ts +8 -0
  667. package/src/storage/activity/in-memory.ts +374 -0
  668. package/src/storage/activity/index.ts +27 -0
  669. package/src/storage/activity/policy.ts +430 -0
  670. package/src/storage/activity/types.ts +211 -0
  671. package/src/storage/agents/in-memory.ts +10 -0
  672. package/src/storage/agents/provider.ts +2 -13
  673. package/src/storage/agents/types.ts +10 -17
  674. package/src/storage/artifacts/errors.ts +16 -0
  675. package/src/storage/artifacts/in-memory.ts +240 -0
  676. package/src/storage/artifacts/index.ts +30 -0
  677. package/src/storage/artifacts/record.ts +200 -0
  678. package/src/storage/artifacts/types.ts +209 -0
  679. package/src/storage/auth/in-memory/auth-storage.ts +0 -18
  680. package/src/storage/auth/in-memory/magic-links.ts +0 -3
  681. package/src/storage/auth/in-memory/oidc-attempts.ts +0 -3
  682. package/src/storage/auth/in-memory/sessions.ts +22 -25
  683. package/src/storage/auth/in-memory/shared.ts +1 -10
  684. package/src/storage/auth/index.ts +2 -0
  685. package/src/storage/auth/types.ts +20 -18
  686. package/src/storage/executions/in-memory.ts +61 -1
  687. package/src/storage/executions/index.ts +3 -0
  688. package/src/storage/executions/provider.ts +12 -0
  689. package/src/storage/executions/types.ts +30 -0
  690. package/src/storage/in-memory/index.ts +16 -0
  691. package/src/storage/index.ts +63 -0
  692. package/src/storage/internal.ts +30 -0
  693. package/src/storage/ontology/in-memory/sources.ts +23 -0
  694. package/src/storage/ontology/index.ts +2 -0
  695. package/src/storage/ontology/sources.ts +17 -0
  696. package/src/storage/share-grants/in-memory.ts +8 -0
  697. package/src/storage/share-grants/index.ts +1 -0
  698. package/src/storage/share-grants/types.ts +8 -0
  699. package/src/storage/types.ts +4 -0
  700. package/src/storage/workflow-runs/in-memory.ts +16 -0
  701. package/src/storage/workflow-runs/types.ts +5 -0
  702. package/src/testing/action-run-storage-contract.ts +25 -0
  703. package/src/testing/activity-storage-contract.ts +840 -0
  704. package/src/testing/agent-storage-contract.ts +22 -21
  705. package/src/testing/artifact-storage-contract.ts +517 -0
  706. package/src/testing/auth-storage-contract.ts +61 -107
  707. package/src/testing/execution-storage-contract.ts +147 -3
  708. package/src/testing/index.ts +9 -0
  709. package/src/testing/lake-merge-storage-contract.ts +38 -0
  710. package/src/testing/lake-storage-contract.ts +247 -2
  711. package/src/testing/materializer-storage-contract.ts +1 -0
  712. package/src/testing/ontology-storage-contract.ts +57 -2
  713. package/src/testing/share-grant-storage-contract.ts +15 -0
  714. package/src/workflows/builders.ts +14 -0
  715. package/src/workflows/types.ts +9 -0
  716. package/src/workflows/validation.ts +72 -0
  717. package/dist/auth/audience.d.ts +0 -8
  718. package/dist/auth/audience.d.ts.map +0 -1
  719. package/dist/authorization/application-access.d.ts +0 -18
  720. package/dist/authorization/application-access.d.ts.map +0 -1
  721. package/dist/chunk-1f7wpmyp.js.map +0 -14
  722. package/dist/chunk-1k89ecfr.js +0 -85
  723. package/dist/chunk-1k89ecfr.js.map +0 -10
  724. package/dist/chunk-2jntasmh.js.map +0 -13
  725. package/dist/chunk-3gnrh4ve.js.map +0 -40
  726. package/dist/chunk-85yvv5n0.js.map +0 -12
  727. package/dist/chunk-9gyp8hg1.js +0 -363
  728. package/dist/chunk-9gyp8hg1.js.map +0 -14
  729. package/dist/chunk-dnmadg9k.js.map +0 -15
  730. package/dist/chunk-enpsx8k5.js.map +0 -10
  731. package/dist/chunk-hkc3jct7.js.map +0 -10
  732. package/dist/chunk-kyzq4wy9.js.map +0 -18
  733. package/dist/chunk-s16apyk9.js +0 -256
  734. package/dist/chunk-s16apyk9.js.map +0 -16
  735. package/dist/chunk-s54c868q.js.map +0 -12
  736. package/dist/chunk-tw03bsmb.js.map +0 -11
  737. package/dist/chunk-wwdfe68s.js +0 -128
  738. package/dist/chunk-wwdfe68s.js.map +0 -11
  739. package/dist/chunk-xt1zt7gv.js.map +0 -13
  740. package/dist/chunk-y7rqfrgg.js.map +0 -24
  741. package/dist/security/applications.d.ts +0 -15
  742. package/dist/security/applications.d.ts.map +0 -1
  743. package/src/auth/audience.ts +0 -28
  744. package/src/authorization/application-access.ts +0 -34
  745. package/src/security/applications.ts +0 -11
  746. /package/dist/{chunk-t6vq7bff.js.map → chunk-0bphap9y.js.map} +0 -0
  747. /package/dist/{chunk-7mbzgd9m.js.map → chunk-1cc1xaf3.js.map} +0 -0
  748. /package/dist/{chunk-6gmfggss.js.map → chunk-431pyp2c.js.map} +0 -0
  749. /package/dist/{chunk-c85m1hyj.js.map → chunk-447a5c0p.js.map} +0 -0
  750. /package/dist/{chunk-80mc0971.js.map → chunk-561r0yc9.js.map} +0 -0
  751. /package/dist/{chunk-5e43w60z.js.map → chunk-5948n82c.js.map} +0 -0
  752. /package/dist/{chunk-yzwja0mj.js.map → chunk-5hx48dnn.js.map} +0 -0
  753. /package/dist/{chunk-q1vkr2ys.js.map → chunk-c1rxbz5y.js.map} +0 -0
  754. /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
  755. /package/dist/{chunk-fa02jy15.js.map → chunk-cy4mbddw.js.map} +0 -0
  756. /package/dist/{chunk-7kg3k1m9.js.map → chunk-d09e3rax.js.map} +0 -0
  757. /package/dist/{chunk-rhg02hxq.js.map → chunk-d7dnxdep.js.map} +0 -0
  758. /package/dist/{chunk-wz0xs816.js.map → chunk-ky3j490c.js.map} +0 -0
  759. /package/dist/{chunk-vyf9kfqf.js.map → chunk-q7gn29y3.js.map} +0 -0
  760. /package/dist/{chunk-v9xd5wzd.js.map → chunk-s7jg7pmn.js.map} +0 -0
  761. /package/dist/{chunk-nre82s12.js.map → chunk-vf57cr4t.js.map} +0 -0
  762. /package/dist/{chunk-9ybhtmg4.js.map → chunk-vvxtn22d.js.map} +0 -0
  763. /package/dist/{chunk-7t429e3f.js.map → chunk-xvsc5m8n.js.map} +0 -0
  764. /package/dist/{chunk-kg5j6fct.js.map → chunk-y5tah2kf.js.map} +0 -0
  765. /package/dist/{chunk-52bk93x8.js.map → chunk-z58tm0hm.js.map} +0 -0
@@ -1,19 +1,12 @@
1
1
  import { assertNever } from "../assert-never"
2
- import { assertAuthorized, isAllowed } from "../authorization"
3
- import { AuthorizationError } from "../authorization/errors"
4
- import type { AuthorizationContext } from "../authorization/types"
5
2
  import type { EmbeddingModelCatalog, RerankingModelCatalog } from "../models/catalog"
3
+ import type { AuthorizedOntologyView } from "../objects/authorized-ontology-view"
6
4
  import {
7
- type AuthorizedOntologySelection,
8
- type AuthorizedOntologyView,
9
- createAuthorizedOntologyView,
10
- } from "../objects/authorized-ontology-view"
11
- import {
12
- createClearanceQueryAdmission,
13
- type PropertyClearance,
5
+ attachRedactions,
6
+ omitHiddenProperties,
14
7
  redactObjectRow,
15
- resolvePropertyClearance,
16
- } from "../objects/property-clearance"
8
+ } from "../objects/clearance-redaction"
9
+ import { unreadableError } from "../objects/property-clearance"
17
10
  import {
18
11
  countObjects,
19
12
  type ExecuteObjectCountInput,
@@ -31,14 +24,12 @@ import {
31
24
  existsObjects,
32
25
  facetObjects,
33
26
  } from "../objects/query"
27
+ import { createClearanceQueryAdmission } from "../objects/query/clearance-admission"
34
28
  import { ObjectQueryValidationError } from "../objects/query/errors"
35
29
  import { validateObjectFacetRequests } from "../objects/query/executor"
36
30
  import type { ObjectQuery } from "../objects/query/ir"
31
+ import { assertLinkQueryReadable } from "../objects/query/link-query-clearance"
37
32
  import { preflightObjectQueryLinks } from "../objects/query/links"
38
- import {
39
- createSelectedObjectQueryAdmission,
40
- type SelectedObjectQueryAdmission,
41
- } from "../objects/query/selected-read-admission"
42
33
  import {
43
34
  type AdmittedObjectQuery,
44
35
  composeObjectQueryAdmissions,
@@ -52,8 +43,8 @@ import {
52
43
  type TelemetryHistoryReadWorkloadInput,
53
44
  } from "../objects/telemetry/workload"
54
45
  import type { OntologyRegistry } from "../ontology"
46
+ import type { AppliedMarkings } from "../security/applied-markings"
55
47
  import type {
56
- CompiledObjectReadStep,
57
48
  LinkBatchKey,
58
49
  ObjectFacetRequest,
59
50
  ObjectLinkRow,
@@ -63,15 +54,11 @@ import type {
63
54
  } from "../storage"
64
55
  import { assertObjectReadOutputWithinLimit, MAX_OBJECT_READ_FACETS } from "../storage"
65
56
  import { captureExecutionScope, resolveExecutionScopeAuthorization } from "./authorization"
66
- import type { ExecutionScope, RuntimeAuthorization } from "./types"
67
-
68
- type RuntimeReadAuthorization = {
69
- readonly projectId: string
70
- readonly runtimeAuthorization: RuntimeAuthorization
71
- readonly authorization?: AuthorizationContext
72
- }
57
+ import type { Clearance, EventSources } from "./object-reader-clearance"
58
+ import { ObjectReaderOntology } from "./object-reader-ontology"
59
+ import { ObjectReaderSecurity, type ResolvedExecutionAuthority } from "./object-reader-security"
60
+ import type { ExecutionScope } from "./types"
73
61
 
74
- type ResolvedExecutionAuthority = ReturnType<typeof resolveExecutionScopeAuthorization>
75
62
  type GetObjectInput = Omit<Parameters<ObjectReadStorage["getByPrimaryId"]>[0], "projectId">
76
63
  type GetObjectsInput = Omit<Parameters<ObjectReadStorage["getByPrimaryIdBatch"]>[0], "projectId">
77
64
  type SelectObjectPropertiesInput = Parameters<ObjectReadStorage["selectsObjectProperties"]>[0]
@@ -81,6 +68,12 @@ type ListObjectsInput = Omit<Parameters<ObjectReadStorage["list"]>[0], "projectI
81
68
  type ListLinksInput = Omit<Parameters<ObjectReadStorage["listLinks"]>[0], "projectId">
82
69
  type ListLinksBatchInput = Omit<Parameters<ObjectReadStorage["listLinksBatch"]>[0], "projectId">
83
70
 
71
+ /** The model catalogs semantic and reranked search use. */
72
+ interface ObjectReaderModels {
73
+ readonly embedding?: EmbeddingModelCatalog
74
+ readonly reranking?: RerankingModelCatalog
75
+ }
76
+
84
77
  const readerConstructionKey = Object.freeze({})
85
78
 
86
79
  /**
@@ -89,91 +82,65 @@ const readerConstructionKey = Object.freeze({})
89
82
  * The implementation class is intentionally private to this module. Its private fields make the
90
83
  * exported instance type nominal, while the construction key prevents code that discovers the
91
84
  * JavaScript constructor through an instance from manufacturing another reader.
85
+ *
86
+ * Its state is grouped as a project is: the ontology it resolves against, the security of the
87
+ * authority (its delegation and clearance included), the model catalogs search uses, and the
88
+ * storage it reads. Each group decides what belongs to it; the reader composes them.
92
89
  */
93
90
  class AuthorizedObjectReaderImpl {
94
- readonly #authorization: RuntimeAuthorization
95
- readonly #authority: ResolvedExecutionAuthority
96
- readonly #runtime: RuntimeReadAuthorization
97
- readonly #ontology: OntologyRegistry
98
- readonly #embeddingModels?: EmbeddingModelCatalog
99
- readonly #rerankingModels?: RerankingModelCatalog
100
- #ontologyView?: AuthorizedOntologyView
91
+ readonly #ontology: ObjectReaderOntology
92
+ readonly #security: ObjectReaderSecurity
93
+ readonly #models: ObjectReaderModels
101
94
  readonly #storage: ObjectReadStorage
102
- readonly #delegatedObjectTypeIds?: ReadonlySet<string>
103
- readonly #delegatedLinkDefinitions?: ReadonlySet<string>
104
- readonly #delegatedQueryAdmission?: SelectedObjectQueryAdmission
105
- /** Marked properties this authority cannot read; absent when it reads every property. */
106
- readonly #clearance?: PropertyClearance
107
95
 
108
96
  constructor(
109
97
  key: typeof readerConstructionKey,
110
98
  input: {
111
- readonly scope: ExecutionScope
112
- readonly ontology: OntologyRegistry
113
- readonly embeddingModels?: EmbeddingModelCatalog
114
- readonly rerankingModels?: RerankingModelCatalog
99
+ readonly ontology: ObjectReaderOntology
100
+ readonly security: ObjectReaderSecurity
101
+ readonly models: ObjectReaderModels
115
102
  readonly storage: ObjectReadStorage
116
- readonly authority: ResolvedExecutionAuthority
117
103
  }
118
104
  ) {
119
105
  if (key !== readerConstructionKey) {
120
106
  throw new Error("[Sixb] AuthorizedObjectReader can only be created by Core.")
121
107
  }
122
-
123
- this.#authorization = input.scope.authorization
124
- this.#authority = input.authority
125
108
  this.#ontology = input.ontology
126
- this.#embeddingModels = input.embeddingModels
127
- this.#rerankingModels = input.rerankingModels
109
+ this.#security = input.security
110
+ this.#models = input.models
128
111
  this.#storage = input.storage
129
- this.#delegatedObjectTypeIds =
130
- input.authority.type === "delegated"
131
- ? new Set(input.authority.objectRead.scope.objects.map((object) => object.objectTypeId))
132
- : undefined
133
- this.#delegatedLinkDefinitions =
134
- input.authority.type === "delegated"
135
- ? new Set(input.authority.objectRead.scope.steps.map(delegatedLinkDefinitionKey))
136
- : undefined
137
- this.#delegatedQueryAdmission =
138
- input.authority.type === "delegated"
139
- ? createSelectedObjectQueryAdmission(input.authority.objectRead.scope)
140
- : undefined
141
- this.#clearance = clearanceForAuthority(input.authority, input.ontology)
142
- this.#runtime = Object.freeze({
143
- projectId: input.scope.execution.projectId,
144
- runtimeAuthorization: input.scope.authorization,
145
- ...(input.authority.type === "principal" ? { authorization: input.authority.context } : {}),
146
- })
147
112
  }
148
113
 
149
114
  static assertBound(reader: AuthorizedObjectReaderImpl, scope: ExecutionScope): void {
150
115
  const capturedScope = captureExecutionScope(scope)
151
- resolveExecutionScopeAuthorization(reader.#runtime.projectId, capturedScope)
152
- if (capturedScope.authorization !== reader.#authorization) {
116
+ resolveExecutionScopeAuthorization(reader.#security.runtime.projectId, capturedScope)
117
+ if (capturedScope.authorization !== reader.#security.authorization) {
153
118
  throw new Error(
154
119
  "[Sixb] AuthorizedObjectReader is not bound to this exact execution authority."
155
120
  )
156
121
  }
157
122
  }
158
123
 
124
+ /** What the reader cannot read now, for surfaces such as events that redact on their own. */
125
+ static async clearance(reader: AuthorizedObjectReaderImpl): Promise<Clearance> {
126
+ return reader.#security.clearance.current()
127
+ }
128
+
129
+ /** What the reader cannot read in an object event. */
130
+ static eventClearance(
131
+ reader: AuthorizedObjectReaderImpl,
132
+ sources: EventSources
133
+ ): Clearance | Promise<Clearance> {
134
+ return reader.#security.clearance.forEvent(sources)
135
+ }
136
+
159
137
  static ontologyView(reader: AuthorizedObjectReaderImpl): AuthorizedOntologyView {
160
- const authority = reader.#authority
161
- reader.#ontologyView ??= createAuthorizedOntologyView({
162
- ontology: reader.#ontology,
163
- selection: ontologySelectionForAuthority(authority, reader.#ontology),
164
- ...(authority.type === "delegated"
165
- ? {
166
- assertOutputWithinLimit: (value: unknown) =>
167
- assertObjectReadOutputWithinLimit(value, authority.objectRead.limits),
168
- }
169
- : {}),
170
- })
171
- return reader.#ontologyView
138
+ return reader.#ontology.view()
172
139
  }
173
140
 
174
141
  /** Project identity carried by this nominal reader capability. */
175
142
  get projectId(): string {
176
- return this.#runtime.projectId
143
+ return this.#security.runtime.projectId
177
144
  }
178
145
 
179
146
  async getByPrimaryId(input: GetObjectInput): ReturnType<ObjectReadStorage["getByPrimaryId"]> {
@@ -181,12 +148,17 @@ class AuthorizedObjectReaderImpl {
181
148
  objectTypeId: input.objectTypeId,
182
149
  primaryId: input.primaryId,
183
150
  })
184
- this.#assertObjectTypesViewable([request.objectTypeId])
151
+ const clearance = await this.#security.clearance.current()
152
+ this.#security.assertObjectTypesViewable([request.objectTypeId], clearance)
185
153
  const row = await this.#storage.getByPrimaryId({
186
154
  ...request,
187
- projectId: this.#runtime.projectId,
155
+ projectId: this.#security.runtime.projectId,
188
156
  })
189
- return detachReadResult(row && this.#redact(row))
157
+ return this.#detachRows(
158
+ row && this.#omitHidden(row, clearance),
159
+ (detached) => [detached],
160
+ clearance
161
+ )
190
162
  }
191
163
 
192
164
  async getByPrimaryIdBatch(
@@ -198,13 +170,19 @@ class AuthorizedObjectReaderImpl {
198
170
  primaryId: item.primaryId,
199
171
  })),
200
172
  })
201
- this.#assertObjectTypesViewable(request.items.map((item) => item.objectTypeId))
173
+ const clearance = await this.#security.clearance.current()
174
+ this.#security.assertObjectTypesViewable(
175
+ request.items.map((item) => item.objectTypeId),
176
+ clearance
177
+ )
202
178
  const rows = await this.#storage.getByPrimaryIdBatch({
203
179
  ...request,
204
- projectId: this.#runtime.projectId,
180
+ projectId: this.#security.runtime.projectId,
205
181
  })
206
- return detachReadResult(
207
- new Map([...rows].map(([key, row]) => [key, this.#redact(row)] as const))
182
+ return this.#detachRows(
183
+ new Map([...rows].map(([key, row]) => [key, this.#omitHidden(row, clearance)] as const)),
184
+ (detached) => detached.values(),
185
+ clearance
208
186
  )
209
187
  }
210
188
 
@@ -214,11 +192,13 @@ class AuthorizedObjectReaderImpl {
214
192
  primaryId: input.primaryId,
215
193
  propertyId: input.propertyId,
216
194
  })
217
- this.#assertObjectTypesViewable([request.objectTypeId])
218
- if (this.#hidesProperty(request)) return false
219
- if (this.#authority.type !== "delegated") return true
195
+ const clearance = await this.#security.clearance.current()
196
+ this.#security.assertObjectTypesViewable([request.objectTypeId], clearance)
197
+
198
+ if (hidesProperty(request, clearance)) return false
199
+ if (this.#security.authority.type !== "delegated") return true
220
200
  const [readable] = await this.#storage.selectsObjectProperties({
221
- projectId: this.#runtime.projectId,
201
+ projectId: this.#security.runtime.projectId,
222
202
  items: [request],
223
203
  })
224
204
  return readable ?? false
@@ -234,16 +214,20 @@ class AuthorizedObjectReaderImpl {
234
214
  propertyId: item.propertyId,
235
215
  })),
236
216
  })
237
- this.#assertObjectTypesViewable(request.items.map((item) => item.objectTypeId))
217
+ const clearance = await this.#security.clearance.current()
218
+ this.#security.assertObjectTypesViewable(
219
+ request.items.map((item) => item.objectTypeId),
220
+ clearance
221
+ )
238
222
  const selected =
239
- this.#authority.type === "delegated"
223
+ this.#security.authority.type === "delegated"
240
224
  ? await this.#storage.selectsObjectProperties({
241
225
  ...request,
242
- projectId: this.#runtime.projectId,
226
+ projectId: this.#security.runtime.projectId,
243
227
  })
244
228
  : request.items.map(() => true)
245
229
  return request.items.map(
246
- (item, index) => !this.#hidesProperty(item) && selected[index] === true
230
+ (item, index) => !hidesProperty(item, clearance) && selected[index] === true
247
231
  )
248
232
  }
249
233
 
@@ -266,7 +250,8 @@ class AuthorizedObjectReaderImpl {
266
250
  orderBy: input.orderBy,
267
251
  order: input.order,
268
252
  })
269
- const objectTypeId = this.#resolveListObjectTypes(request.objectTypeId)
253
+ const clearance = await this.#security.clearance.current()
254
+ const objectTypeId = this.#resolveListObjectTypes(request.objectTypeId, clearance)
270
255
 
271
256
  // An empty type selection means "none", never "all". Short-circuiting here prevents a
272
257
  // provider with different empty-array semantics from turning a principal read into a broad one.
@@ -277,9 +262,13 @@ class AuthorizedObjectReaderImpl {
277
262
  const page = await this.#storage.list({
278
263
  ...request,
279
264
  ...(objectTypeId === undefined ? {} : { objectTypeId }),
280
- projectId: this.#runtime.projectId,
265
+ projectId: this.#security.runtime.projectId,
281
266
  })
282
- return detachReadResult({ ...page, objects: page.objects.map((row) => this.#redact(row)) })
267
+ return this.#detachRows(
268
+ { ...page, objects: page.objects.map((row) => this.#omitHidden(row, clearance)) },
269
+ (detached) => detached.objects,
270
+ clearance
271
+ )
283
272
  }
284
273
 
285
274
  async listLinks(input: ListLinksInput): ReturnType<ObjectReadStorage["listLinks"]> {
@@ -289,14 +278,15 @@ class AuthorizedObjectReaderImpl {
289
278
  linkId: input.linkId,
290
279
  direction: input.direction,
291
280
  })
292
- this.#assertObjectTypesViewable([request.objectTypeId])
281
+ const clearance = await this.#security.clearance.current()
282
+ this.#security.assertObjectTypesViewable([request.objectTypeId], clearance)
293
283
  const links = detachReadResult(
294
284
  await this.#storage.listLinks({
295
285
  ...request,
296
- projectId: this.#runtime.projectId,
286
+ projectId: this.#security.runtime.projectId,
297
287
  })
298
288
  )
299
- return links.filter((link) => this.#isLinkViewable(link))
289
+ return links.filter((link) => this.#security.isLinkViewable(link, clearance))
300
290
  }
301
291
 
302
292
  async listLinksBatch(
@@ -310,18 +300,22 @@ class AuthorizedObjectReaderImpl {
310
300
  linkId: item.linkId,
311
301
  })),
312
302
  })
313
- this.#assertObjectTypesViewable(request.items.map((item) => item.objectTypeId))
303
+ const clearance = await this.#security.clearance.current()
304
+ this.#security.assertObjectTypesViewable(
305
+ request.items.map((item) => item.objectTypeId),
306
+ clearance
307
+ )
314
308
  const pages = detachReadResult(
315
309
  await this.#storage.listLinksBatch({
316
310
  ...request,
317
- projectId: this.#runtime.projectId,
311
+ projectId: this.#security.runtime.projectId,
318
312
  })
319
313
  )
320
314
  const filtered = new Map<LinkBatchKey, ObjectLinkRow[]>()
321
315
  for (const [key, links] of pages) {
322
316
  filtered.set(
323
317
  key,
324
- links.filter((link) => this.#isLinkViewable(link))
318
+ links.filter((link) => this.#security.isLinkViewable(link, clearance))
325
319
  )
326
320
  }
327
321
  return filtered
@@ -333,16 +327,21 @@ class AuthorizedObjectReaderImpl {
333
327
  const query = snapshotAuthoredQuery(input.query)
334
328
  const includeTotal = snapshotReadValue(input.includeTotal)
335
329
  const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query
330
+ const clearance = await this.#security.clearance.current()
336
331
  const result = await executeObjectQuery(
337
332
  {
338
333
  query: executionQuery,
339
334
  ...(includeTotal === undefined ? {} : { includeTotal }),
340
- projectId: this.#runtime.projectId,
335
+ projectId: this.#security.runtime.projectId,
341
336
  signal: input.signal,
342
337
  },
343
- this.#queryExecutorOptions()
338
+ this.#queryExecutorOptions(clearance)
339
+ )
340
+ return this.#detachRows(
341
+ { ...result, objects: result.objects.map((row) => this.#omitHidden(row, clearance)) },
342
+ (detached) => detached.objects,
343
+ clearance
344
344
  )
345
- return detachReadResult({ ...result, objects: result.objects.map((row) => this.#redact(row)) })
346
345
  }
347
346
 
348
347
  async queryLinks(
@@ -357,15 +356,15 @@ class AuthorizedObjectReaderImpl {
357
356
  pageToken: input.pageToken,
358
357
  })
359
358
  let executionQuery = query
360
- const admission = this.#delegatedQueryAdmission
359
+ const admission = this.#security.delegation?.queryAdmission
361
360
  if (admission) {
362
361
  const preflight = preflightObjectQueryLinks(
363
- { query, ...request, projectId: this.#runtime.projectId },
364
- { ontology: this.#ontology }
362
+ { query, ...request, projectId: this.#security.runtime.projectId },
363
+ { ontology: this.#ontology.registry }
365
364
  )
366
365
  const admitted = validateObjectQueryWithAdmission(
367
366
  preflight.validated.query,
368
- { ontology: this.#ontology, normalize: false },
367
+ { ontology: this.#ontology.registry, normalize: false },
369
368
  admission
370
369
  )
371
370
  admission.assertIncidentEdgeSelected({
@@ -376,10 +375,23 @@ class AuthorizedObjectReaderImpl {
376
375
  })
377
376
  executionQuery = admitted.query
378
377
  }
378
+
379
+ const clearance = await this.#security.clearance.current()
380
+ if (clearance) {
381
+ assertLinkQueryReadable({
382
+ ontology: this.#ontology.registry,
383
+ clearance,
384
+ query,
385
+ request: { ...request, projectId: this.#security.runtime.projectId },
386
+ viewableByGrants: (objectTypeId) =>
387
+ this.#security.isObjectTypeViewable(objectTypeId, undefined),
388
+ })
389
+ }
390
+
379
391
  const result = detachReadResult(
380
392
  await executeObjectQueryLinks(
381
- { query: executionQuery, ...request, projectId: this.#runtime.projectId },
382
- this.#queryExecutorOptions()
393
+ { query: executionQuery, ...request, projectId: this.#security.runtime.projectId },
394
+ this.#queryExecutorOptions(clearance)
383
395
  )
384
396
  )
385
397
 
@@ -387,12 +399,18 @@ class AuthorizedObjectReaderImpl {
387
399
  // its cursor and hasMore metadata describe hidden rows, so a provider contract violation must
388
400
  // fail closed instead of returning a partially filtered page.
389
401
  if (
390
- result.objects.some((row) => !this.#isObjectTypeViewable(row.objectTypeId)) ||
391
- result.links.some((link) => !this.#isLinkViewable(link))
402
+ result.objects.some(
403
+ (row) => !this.#security.isObjectTypeViewable(row.objectTypeId, clearance)
404
+ ) ||
405
+ result.links.some((link) => !this.#security.isLinkViewable(link, clearance))
392
406
  ) {
393
407
  throw new Error("[Sixb] Object storage returned a link page outside its authorized scope.")
394
408
  }
395
- return { ...result, objects: result.objects.map((row) => this.#redact(row)) }
409
+
410
+ return {
411
+ ...result,
412
+ objects: result.objects.map((row) => (clearance ? redactObjectRow(row, clearance) : row)),
413
+ }
396
414
  }
397
415
 
398
416
  async count(
@@ -400,10 +418,11 @@ class AuthorizedObjectReaderImpl {
400
418
  ): Promise<ExecuteObjectCountResult> {
401
419
  const query = snapshotAuthoredQuery(input.query)
402
420
  const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query
421
+ const clearance = await this.#security.clearance.current()
403
422
  return detachReadResult(
404
423
  await countObjects(
405
- { query: executionQuery, projectId: this.#runtime.projectId },
406
- this.#queryExecutorOptions()
424
+ { query: executionQuery, projectId: this.#security.runtime.projectId },
425
+ this.#queryExecutorOptions(clearance)
407
426
  )
408
427
  )
409
428
  }
@@ -413,10 +432,11 @@ class AuthorizedObjectReaderImpl {
413
432
  ): Promise<ExecuteObjectExistsResult> {
414
433
  const query = snapshotAuthoredQuery(input.query)
415
434
  const executionQuery = this.#admitDelegatedQuery(query)?.query ?? query
435
+ const clearance = await this.#security.clearance.current()
416
436
  return detachReadResult(
417
437
  await existsObjects(
418
- { query: executionQuery, projectId: this.#runtime.projectId },
419
- this.#queryExecutorOptions()
438
+ { query: executionQuery, projectId: this.#security.runtime.projectId },
439
+ this.#queryExecutorOptions(clearance)
420
440
  )
421
441
  )
422
442
  }
@@ -428,17 +448,17 @@ class AuthorizedObjectReaderImpl {
428
448
  const facets = snapshotFacetRequests(input.facets)
429
449
  let executionQuery = query
430
450
  let executionFacets = facets
431
- const admission = this.#delegatedQueryAdmission
451
+ const admission = this.#security.delegation?.queryAdmission
432
452
  if (admission) {
433
453
  // Terminal arguments are ordinary validation errors, not an authorization oracle. Validate
434
454
  // them against the canonical result shape before raising any delegated-scope denial.
435
- const validated = validateObjectQuery(query, { ontology: this.#ontology })
455
+ const validated = validateObjectQuery(query, { ontology: this.#ontology.registry })
436
456
  const normalizedFacets = validateObjectFacetRequests(facets, validated.result.objectTypeIds, {
437
- ontology: this.#ontology,
457
+ ontology: this.#ontology.registry,
438
458
  })
439
459
  const admitted = validateObjectQueryWithAdmission(
440
460
  validated.query,
441
- { ontology: this.#ontology, normalize: false },
461
+ { ontology: this.#ontology.registry, normalize: false },
442
462
  admission
443
463
  )
444
464
  normalizedFacets.forEach((facet, index) => {
@@ -452,62 +472,78 @@ class AuthorizedObjectReaderImpl {
452
472
  executionQuery = admitted.query
453
473
  executionFacets = normalizedFacets
454
474
  }
475
+ const clearance = await this.#security.clearance.current()
455
476
  return detachReadResult(
456
477
  await facetObjects(
457
478
  {
458
479
  query: executionQuery,
459
480
  facets: executionFacets,
460
- projectId: this.#runtime.projectId,
481
+ projectId: this.#security.runtime.projectId,
461
482
  },
462
- this.#queryExecutorOptions()
483
+ this.#queryExecutorOptions(clearance)
463
484
  )
464
485
  )
465
486
  }
466
487
 
467
488
  /**
468
- * Redact a row returned by a write. An upsert returns the merged effective row, which may hold
469
- * marked values the writer never sent and cannot read.
489
+ * Redact the rows a write of this object type returns. An upsert returns the merged effective
490
+ * row, which may hold marked values the writer never sent and cannot read. Resolved before the
491
+ * write, which it refuses when the writer cannot read the type at all.
492
+ */
493
+ async writtenRowRedactor(
494
+ objectTypeId: string
495
+ ): Promise<<TRow extends ObjectRow>(row: TRow) => TRow> {
496
+ const clearance = await this.#security.clearance.current()
497
+ assertTargetsReadable(clearance, { objectTypeIds: [objectTypeId] })
498
+ return (row) => (clearance ? redactObjectRow(row, clearance) : row)
499
+ }
500
+
501
+ /**
502
+ * Refuse a write or a request that names an object type or link this authority cannot read,
503
+ * before any lookup: it would answer whether what it names exists, and land where the reader
504
+ * cannot see.
470
505
  */
471
- redactWrittenRow<TRow extends ObjectRow>(row: TRow): TRow {
472
- return this.#redact(row)
506
+ async assertReadable(targets: ReadTargets): Promise<void> {
507
+ assertTargetsReadable(await this.#security.clearance.current(), targets)
473
508
  }
474
509
 
475
510
  /** Enforce the delegated response budget without exposing or recombining its limits. */
476
511
  assertVisibleOutputWithinLimit(value: unknown): void {
477
- if (this.#authority.type !== "delegated") return
478
- assertObjectReadOutputWithinLimit(value, this.#authority.objectRead.limits)
512
+ if (this.#security.authority.type !== "delegated") return
513
+ assertObjectReadOutputWithinLimit(value, this.#security.authority.objectRead.limits)
479
514
  }
480
515
 
481
516
  /** Admit adjacent telemetry work without exposing which authority policy was selected. */
482
517
  admitTelemetryHistoryRead(
483
518
  input: TelemetryHistoryReadWorkloadInput
484
519
  ): TelemetryHistoryReadAdmission {
485
- return admitTelemetryHistoryReadWorkload(input, this.#authority.type === "delegated")
520
+ return admitTelemetryHistoryReadWorkload(input, this.#security.authority.type === "delegated")
486
521
  }
487
522
 
488
- #queryExecutorOptions() {
489
- const admission = this.#executorAdmission()
490
- if (this.#authority.type === "delegated") {
523
+ #queryExecutorOptions(clearance: Clearance) {
524
+ const admission = this.#executorAdmission(clearance)
525
+
526
+ if (this.#security.authority.type === "delegated") {
491
527
  // The selected storage instance is the private execution capability. Passing the delegated
492
528
  // runtime token into the generic executor would either reject this admitted query or tempt a
493
529
  // forgeable bypass flag; neither is needed at this nominal boundary.
494
530
  return {
495
- ontology: this.#ontology,
531
+ ontology: this.#ontology.registry,
496
532
  storage: this.#storage,
497
- embeddingModels: this.#embeddingModels,
498
- rerankingModels: this.#rerankingModels,
533
+ embeddingModels: this.#models.embedding,
534
+ rerankingModels: this.#models.reranking,
499
535
  ...(admission === undefined ? {} : { admission }),
500
536
  }
501
537
  }
502
538
  return {
503
- ontology: this.#ontology,
504
- embeddingModels: this.#embeddingModels,
505
- rerankingModels: this.#rerankingModels,
539
+ ontology: this.#ontology.registry,
540
+ embeddingModels: this.#models.embedding,
541
+ rerankingModels: this.#models.reranking,
506
542
  storage: this.#storage,
507
- runtimeAuthorization: this.#runtime.runtimeAuthorization,
508
- ...(this.#runtime.authorization === undefined
543
+ runtimeAuthorization: this.#security.runtime.runtimeAuthorization,
544
+ ...(this.#security.runtime.authorization === undefined
509
545
  ? {}
510
- : { authorization: this.#runtime.authorization }),
546
+ : { authorization: this.#security.runtime.authorization }),
511
547
  ...(admission === undefined ? {} : { admission }),
512
548
  }
513
549
  }
@@ -516,84 +552,59 @@ class AuthorizedObjectReaderImpl {
516
552
  * The executor validates the query it runs, and that validation resolves default text fields.
517
553
  * Every admission that narrows those fields must therefore apply there, not only beforehand.
518
554
  */
519
- #executorAdmission(): ObjectQuerySemanticAdmission | undefined {
520
- const clearance = this.#clearance && createClearanceQueryAdmission(this.#clearance)
521
- const selected = this.#delegatedQueryAdmission
522
- if (selected && clearance) return composeObjectQueryAdmissions(selected, clearance)
523
- return selected ?? clearance
524
- }
555
+ #executorAdmission(clearance: Clearance): ObjectQuerySemanticAdmission | undefined {
556
+ const admission = clearance && createClearanceQueryAdmission(clearance)
557
+ const selected = this.#security.delegation?.queryAdmission
525
558
 
526
- #redact<TRow extends ObjectRow>(row: TRow): TRow {
527
- return this.#clearance ? redactObjectRow(row, this.#clearance) : row
559
+ if (selected && admission) return composeObjectQueryAdmissions(selected, admission)
560
+ return selected ?? admission
528
561
  }
529
562
 
530
- #hidesProperty(item: { readonly objectTypeId: string; readonly propertyId: string }): boolean {
531
- return this.#clearance?.hiddenPropertyIds(item.objectTypeId).has(item.propertyId) ?? false
532
- }
533
-
534
- #admitDelegatedQuery(query: ObjectQuery): AdmittedObjectQuery | undefined {
535
- if (!this.#delegatedQueryAdmission) return undefined
536
- return validateObjectQueryWithAdmission(
537
- query,
538
- { ontology: this.#ontology },
539
- this.#delegatedQueryAdmission
540
- )
563
+ #omitHidden<TRow extends ObjectRow>(row: TRow, clearance: Clearance): TRow {
564
+ return clearance ? omitHiddenProperties(row, clearance) : row
541
565
  }
542
566
 
543
- #assertObjectTypesViewable(objectTypeIds: readonly string[]): void {
544
- if (this.#authority.type === "delegated") {
545
- for (const objectTypeId of new Set(objectTypeIds)) {
546
- if (this.#delegatedObjectTypeIds?.has(objectTypeId)) continue
547
- throw new AuthorizationError(
548
- `delegated:object.view:${objectTypeId}`,
549
- `[Sixb] Delegated authorization does not select object type '${objectTypeId}'.`
550
- )
551
- }
552
- return
567
+ /**
568
+ * Detach a result whose rows went through {@link #omitHidden}, then list their redactions on
569
+ * the copy. Each row is deep-copied once, and never with a hidden value.
570
+ */
571
+ #detachRows<TResult>(
572
+ result: TResult,
573
+ rows: (detached: TResult) => Iterable<ObjectRow | null>,
574
+ clearance: Clearance
575
+ ): TResult {
576
+ const detached = detachReadResult(result)
577
+ if (clearance) {
578
+ for (const row of rows(detached)) if (row) attachRedactions(row, clearance)
553
579
  }
554
580
 
555
- for (const objectTypeId of new Set(objectTypeIds)) {
556
- assertAuthorized(this.#runtime, { kind: "object.view", objectTypeId })
557
- }
581
+ return detached
582
+ }
583
+
584
+ #admitDelegatedQuery(query: ObjectQuery): AdmittedObjectQuery | undefined {
585
+ const admission = this.#security.delegation?.queryAdmission
586
+ if (!admission) return undefined
587
+ return validateObjectQueryWithAdmission(query, { ontology: this.#ontology.registry }, admission)
558
588
  }
559
589
 
560
590
  #resolveListObjectTypes(
561
- requested: ListObjectsInput["objectTypeId"]
591
+ requested: ListObjectsInput["objectTypeId"],
592
+ clearance: Clearance
562
593
  ): ListObjectsInput["objectTypeId"] {
563
594
  if (requested !== undefined) {
564
595
  const objectTypeIds = typeof requested === "string" ? [requested] : [...new Set(requested)]
565
596
  for (const objectTypeId of objectTypeIds) {
566
- this.#ontology.resolveObjectType(objectTypeId)
597
+ this.#ontology.registry.resolveObjectType(objectTypeId)
567
598
  }
568
- this.#assertObjectTypesViewable(objectTypeIds)
599
+ this.#security.assertObjectTypesViewable(objectTypeIds, clearance)
569
600
  return typeof requested === "string" ? requested : objectTypeIds
570
601
  }
571
602
 
572
- if (this.#authority.type === "unrestricted") return undefined
573
- return this.#ontology
603
+ if (this.#security.authority.type === "unrestricted") return undefined
604
+ return this.#ontology.registry
574
605
  .listObjectTypes()
575
606
  .map((objectType) => objectType.id)
576
- .filter((objectTypeId) => this.#isObjectTypeViewable(objectTypeId))
577
- }
578
-
579
- #isObjectTypeViewable(objectTypeId: string): boolean {
580
- if (this.#authority.type === "delegated") {
581
- return this.#delegatedObjectTypeIds?.has(objectTypeId) ?? false
582
- }
583
- return isAllowed(this.#runtime.authorization, { kind: "object.view", objectTypeId })
584
- }
585
-
586
- #isLinkViewable(link: ObjectLinkRow): boolean {
587
- if (
588
- !this.#isObjectTypeViewable(link.sourceTypeId) ||
589
- !this.#isObjectTypeViewable(link.targetTypeId)
590
- ) {
591
- return false
592
- }
593
- return (
594
- this.#delegatedLinkDefinitions?.has(delegatedLinkDefinitionKey(link)) ??
595
- this.#authority.type !== "delegated"
596
- )
607
+ .filter((objectTypeId) => this.#security.isObjectTypeViewable(objectTypeId, clearance))
597
608
  }
598
609
  }
599
610
 
@@ -609,18 +620,27 @@ export function createAuthorizedObjectReader(input: {
609
620
  readonly embeddingModels?: EmbeddingModelCatalog
610
621
  readonly rerankingModels?: RerankingModelCatalog
611
622
  readonly objectStorage: ObjectStorage
623
+ /** Markings of the dataset versions projections applied; the code's markings alone without. */
624
+ readonly appliedMarkings?: AppliedMarkings
612
625
  }): AuthorizedObjectReader {
613
626
  const scope = captureExecutionScope(input.scope)
614
627
  const projectId = scope.execution.projectId
615
628
  const authority = resolveExecutionScopeAuthorization(projectId, scope)
616
629
  const storage = objectStorageForAuthority(authority, input.objectStorage)
617
630
  const reader = new AuthorizedObjectReaderImpl(readerConstructionKey, {
618
- scope,
619
- ontology: input.ontology,
620
- embeddingModels: input.embeddingModels,
621
- rerankingModels: input.rerankingModels,
631
+ ontology: new ObjectReaderOntology(input.ontology, authority),
632
+ security: new ObjectReaderSecurity({
633
+ authorization: scope.authorization,
634
+ authority,
635
+ projectId,
636
+ ontology: input.ontology,
637
+ ...(input.appliedMarkings === undefined ? {} : { appliedMarkings: input.appliedMarkings }),
638
+ }),
639
+ models: Object.freeze({
640
+ ...(input.embeddingModels === undefined ? {} : { embedding: input.embeddingModels }),
641
+ ...(input.rerankingModels === undefined ? {} : { reranking: input.rerankingModels }),
642
+ }),
622
643
  storage,
623
- authority,
624
644
  })
625
645
  Object.freeze(reader)
626
646
  return reader
@@ -640,21 +660,50 @@ export function getAuthorizedOntologyView(reader: AuthorizedObjectReader): Autho
640
660
  }
641
661
 
642
662
  /**
643
- * Unrestricted authority reads every property. A principal reads what its roles clear; delegated
644
- * shared access carries no clearance, so no share can expose a marked property.
663
+ * What a reader resolved for this authority cannot read now. Events redact with it: an event of an
664
+ * object type the reader cannot read is not delivered, and the others are redacted like rows.
645
665
  */
646
- function clearanceForAuthority(
647
- authority: ResolvedExecutionAuthority,
648
- ontology: OntologyRegistry
649
- ): PropertyClearance | undefined {
650
- switch (authority.type) {
651
- case "unrestricted":
652
- return undefined
653
- case "principal":
654
- return resolvePropertyClearance(ontology, authority.context.clearances ?? new Set())
655
- case "delegated":
656
- return resolvePropertyClearance(ontology, new Set())
666
+ export function readerClearance(reader: AuthorizedObjectReader): Promise<Clearance> {
667
+ return AuthorizedObjectReaderImpl.clearance(reader)
668
+ }
669
+
670
+ /**
671
+ * What a reader cannot read in an object event: the current markings, with those of the versions
672
+ * its values came from. A plain value for a reader those markings cannot affect, which reads no
673
+ * version.
674
+ */
675
+ export function readerEventClearance(
676
+ reader: AuthorizedObjectReader,
677
+ sources: EventSources
678
+ ): Clearance | Promise<Clearance> {
679
+ return AuthorizedObjectReaderImpl.eventClearance(reader, sources)
680
+ }
681
+
682
+ /** What a write or a request names: object types, and links by their source type. */
683
+ interface ReadTargets {
684
+ readonly objectTypeIds: readonly string[]
685
+ readonly links?: readonly { readonly objectTypeId: string; readonly linkId: string }[]
686
+ }
687
+
688
+ function assertTargetsReadable(clearance: Clearance, targets: ReadTargets): void {
689
+ if (!clearance) return
690
+
691
+ for (const objectTypeId of targets.objectTypeIds) {
692
+ const unreadable = clearance.unreadableType(objectTypeId)
693
+ if (unreadable) throw unreadableError(unreadable)
657
694
  }
695
+
696
+ for (const link of targets.links ?? []) {
697
+ const unreadable = clearance.unreadableLink(link.objectTypeId, link.linkId)
698
+ if (unreadable) throw unreadableError(unreadable)
699
+ }
700
+ }
701
+
702
+ function hidesProperty(
703
+ item: { readonly objectTypeId: string; readonly propertyId: string },
704
+ clearance: Clearance
705
+ ): boolean {
706
+ return clearance?.missingMarking(item.objectTypeId, item.propertyId) !== undefined
658
707
  }
659
708
 
660
709
  function objectStorageForAuthority(
@@ -679,41 +728,6 @@ function objectStorageForAuthority(
679
728
  }
680
729
  }
681
730
 
682
- function ontologySelectionForAuthority(
683
- authority: ResolvedExecutionAuthority,
684
- ontology: OntologyRegistry
685
- ): AuthorizedOntologySelection {
686
- switch (authority.type) {
687
- case "unrestricted":
688
- return { kind: "all" }
689
- case "principal":
690
- return {
691
- kind: "types",
692
- objectTypeIds: ontology
693
- .listObjectTypes()
694
- .filter((objectType) =>
695
- isAllowed(authority.context, {
696
- kind: "object.view",
697
- objectTypeId: objectType.id,
698
- })
699
- )
700
- .map((objectType) => objectType.id),
701
- }
702
- case "delegated":
703
- return { kind: "selected", scope: authority.objectRead.scope }
704
- }
705
- }
706
-
707
- function delegatedLinkDefinitionKey(
708
- input:
709
- | Pick<CompiledObjectReadStep, "sourceObjectTypeId" | "linkId" | "targetObjectTypeId">
710
- | Pick<ObjectLinkRow, "sourceTypeId" | "linkId" | "targetTypeId">
711
- ): string {
712
- return "sourceObjectTypeId" in input
713
- ? JSON.stringify([input.sourceObjectTypeId, input.linkId, input.targetObjectTypeId])
714
- : JSON.stringify([input.sourceTypeId, input.linkId, input.targetTypeId])
715
- }
716
-
717
731
  /**
718
732
  * Storage providers may optimize trusted reads with live references. Values crossing the
719
733
  * application-facing authorization boundary must not retain them.