@sixb/core 0.1.21 → 0.1.22

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 (1263) hide show
  1. package/dist/actions/commit-edits.d.ts +3 -1
  2. package/dist/actions/commit-edits.d.ts.map +1 -1
  3. package/dist/actions/execution.d.ts.map +1 -1
  4. package/dist/actions/index.js +63 -59
  5. package/dist/actions/index.js.map +1 -1
  6. package/dist/actions/read-facade.d.ts +9 -1
  7. package/dist/actions/read-facade.d.ts.map +1 -1
  8. package/dist/actions/request.d.ts +15 -1
  9. package/dist/actions/request.d.ts.map +1 -1
  10. package/dist/actions/run/context.d.ts +1 -0
  11. package/dist/actions/run/context.d.ts.map +1 -1
  12. package/dist/actions/run/execute.d.ts +2 -3
  13. package/dist/actions/run/execute.d.ts.map +1 -1
  14. package/dist/actions/run/executor.d.ts +3 -0
  15. package/dist/actions/run/executor.d.ts.map +1 -1
  16. package/dist/actions/run/normalize.d.ts +2 -1
  17. package/dist/actions/run/normalize.d.ts.map +1 -1
  18. package/dist/actions/run/signals.d.ts +1 -3
  19. package/dist/actions/run/signals.d.ts.map +1 -1
  20. package/dist/actions/run/types.d.ts +16 -1
  21. package/dist/actions/run/types.d.ts.map +1 -1
  22. package/dist/actions/run-authorization.d.ts +14 -0
  23. package/dist/actions/run-authorization.d.ts.map +1 -1
  24. package/dist/actions/types/context.d.ts +17 -1
  25. package/dist/actions/types/context.d.ts.map +1 -1
  26. package/dist/actions/validators.d.ts.map +1 -1
  27. package/dist/activity/timeline.d.ts +8 -1
  28. package/dist/activity/timeline.d.ts.map +1 -1
  29. package/dist/agents/accounting.d.ts +15 -0
  30. package/dist/agents/accounting.d.ts.map +1 -0
  31. package/dist/agents/adapters.d.ts.map +1 -1
  32. package/dist/agents/agent-mail.d.ts +9 -0
  33. package/dist/agents/agent-mail.d.ts.map +1 -0
  34. package/dist/agents/api-gateway.d.ts +5 -0
  35. package/dist/agents/api-gateway.d.ts.map +1 -1
  36. package/dist/agents/approval-continuation.d.ts +23 -0
  37. package/dist/agents/approval-continuation.d.ts.map +1 -0
  38. package/dist/agents/approval-executor.d.ts +56 -0
  39. package/dist/agents/approval-executor.d.ts.map +1 -0
  40. package/dist/agents/approval-outcome.d.ts +8 -0
  41. package/dist/agents/approval-outcome.d.ts.map +1 -0
  42. package/dist/agents/approvals.d.ts +210 -0
  43. package/dist/agents/approvals.d.ts.map +1 -0
  44. package/dist/agents/authority.d.ts +10 -0
  45. package/dist/agents/authority.d.ts.map +1 -1
  46. package/dist/agents/builders.d.ts.map +1 -1
  47. package/dist/agents/cancel.d.ts +23 -0
  48. package/dist/agents/cancel.d.ts.map +1 -0
  49. package/dist/agents/child-question.d.ts +18 -0
  50. package/dist/agents/child-question.d.ts.map +1 -0
  51. package/dist/agents/children.d.ts +99 -0
  52. package/dist/agents/children.d.ts.map +1 -0
  53. package/dist/agents/context/index.js +1 -1
  54. package/dist/agents/context-compaction.d.ts.map +1 -1
  55. package/dist/agents/errors.d.ts +13 -1
  56. package/dist/agents/errors.d.ts.map +1 -1
  57. package/dist/agents/execution.d.ts +180 -14
  58. package/dist/agents/execution.d.ts.map +1 -1
  59. package/dist/agents/fork.d.ts +16 -0
  60. package/dist/agents/fork.d.ts.map +1 -0
  61. package/dist/agents/ids.d.ts +7 -0
  62. package/dist/agents/ids.d.ts.map +1 -1
  63. package/dist/agents/index.d.ts +19 -8
  64. package/dist/agents/index.d.ts.map +1 -1
  65. package/dist/agents/index.js +159 -86
  66. package/dist/agents/index.js.map +1 -1
  67. package/dist/agents/memory-execution.d.ts +57 -0
  68. package/dist/agents/memory-execution.d.ts.map +1 -0
  69. package/dist/agents/memory.d.ts +49 -0
  70. package/dist/agents/memory.d.ts.map +1 -0
  71. package/dist/agents/message.d.ts +50 -1
  72. package/dist/agents/message.d.ts.map +1 -1
  73. package/dist/agents/model-loop.d.ts +19 -0
  74. package/dist/agents/model-loop.d.ts.map +1 -1
  75. package/dist/agents/model-routing.d.ts +19 -0
  76. package/dist/agents/model-routing.d.ts.map +1 -0
  77. package/dist/agents/participants.d.ts +18 -0
  78. package/dist/agents/participants.d.ts.map +1 -0
  79. package/dist/agents/reference.d.ts.map +1 -1
  80. package/dist/agents/request.d.ts +36 -2
  81. package/dist/agents/request.d.ts.map +1 -1
  82. package/dist/agents/run-scope.d.ts +51 -0
  83. package/dist/agents/run-scope.d.ts.map +1 -0
  84. package/dist/agents/streams/index.d.ts +3 -2
  85. package/dist/agents/streams/index.d.ts.map +1 -1
  86. package/dist/agents/streams/index.js +7 -3
  87. package/dist/agents/streams/index.js.map +1 -1
  88. package/dist/agents/streams/internal.d.ts +1 -1
  89. package/dist/agents/streams/internal.d.ts.map +1 -1
  90. package/dist/agents/streams/internal.js +5 -3
  91. package/dist/agents/streams/internal.js.map +1 -1
  92. package/dist/agents/streams/protocol.d.ts +122 -3
  93. package/dist/agents/streams/protocol.d.ts.map +1 -1
  94. package/dist/agents/subagent-runs.d.ts +12 -0
  95. package/dist/agents/subagent-runs.d.ts.map +1 -0
  96. package/dist/agents/thread-access.d.ts +53 -0
  97. package/dist/agents/thread-access.d.ts.map +1 -0
  98. package/dist/agents/tool-definition.d.ts +5 -4
  99. package/dist/agents/tool-definition.d.ts.map +1 -1
  100. package/dist/agents/types.d.ts +23 -4
  101. package/dist/agents/types.d.ts.map +1 -1
  102. package/dist/agents/validation.d.ts +1 -1
  103. package/dist/agents/validation.d.ts.map +1 -1
  104. package/dist/artifacts/access.d.ts +52 -0
  105. package/dist/artifacts/access.d.ts.map +1 -0
  106. package/dist/artifacts/canvas.d.ts +92 -0
  107. package/dist/artifacts/canvas.d.ts.map +1 -0
  108. package/dist/artifacts/csv.d.ts +5 -0
  109. package/dist/artifacts/csv.d.ts.map +1 -1
  110. package/dist/artifacts/errors.d.ts +7 -2
  111. package/dist/artifacts/errors.d.ts.map +1 -1
  112. package/dist/artifacts/execution.d.ts +102 -7
  113. package/dist/artifacts/execution.d.ts.map +1 -1
  114. package/dist/artifacts/formula/check.d.ts +24 -0
  115. package/dist/artifacts/formula/check.d.ts.map +1 -0
  116. package/dist/artifacts/formula/evaluate.d.ts +32 -0
  117. package/dist/artifacts/formula/evaluate.d.ts.map +1 -0
  118. package/dist/artifacts/formula/index.d.ts +38 -0
  119. package/dist/artifacts/formula/index.d.ts.map +1 -0
  120. package/dist/artifacts/formula/parser.d.ts +67 -0
  121. package/dist/artifacts/formula/parser.d.ts.map +1 -0
  122. package/dist/artifacts/frames/assets.d.ts +11 -9
  123. package/dist/artifacts/frames/assets.d.ts.map +1 -1
  124. package/dist/artifacts/frames/entries.d.ts +19 -0
  125. package/dist/artifacts/frames/entries.d.ts.map +1 -0
  126. package/dist/artifacts/frames/grants.d.ts +6 -6
  127. package/dist/artifacts/frames/grants.d.ts.map +1 -1
  128. package/dist/artifacts/frames/index.d.ts +4 -2
  129. package/dist/artifacts/frames/index.d.ts.map +1 -1
  130. package/dist/artifacts/frames/index.js +444 -51
  131. package/dist/artifacts/frames/index.js.map +10 -8
  132. package/dist/artifacts/frames/kit.d.ts +10 -5
  133. package/dist/artifacts/frames/kit.d.ts.map +1 -1
  134. package/dist/artifacts/frames/probe.d.ts +16 -12
  135. package/dist/artifacts/frames/probe.d.ts.map +1 -1
  136. package/dist/artifacts/frames/protocol.d.ts +79 -10
  137. package/dist/artifacts/frames/protocol.d.ts.map +1 -1
  138. package/dist/artifacts/frames/runtime.d.ts +27 -9
  139. package/dist/artifacts/frames/runtime.d.ts.map +1 -1
  140. package/dist/artifacts/index.d.ts +11 -5
  141. package/dist/artifacts/index.d.ts.map +1 -1
  142. package/dist/artifacts/index.js +128 -6
  143. package/dist/artifacts/index.js.map +3 -3
  144. package/dist/artifacts/kinds.d.ts +1 -1
  145. package/dist/artifacts/kinds.d.ts.map +1 -1
  146. package/dist/artifacts/limits.d.ts +30 -0
  147. package/dist/artifacts/limits.d.ts.map +1 -1
  148. package/dist/artifacts/live-sheet.d.ts +65 -0
  149. package/dist/artifacts/live-sheet.d.ts.map +1 -0
  150. package/dist/artifacts/outline.d.ts +27 -1
  151. package/dist/artifacts/outline.d.ts.map +1 -1
  152. package/dist/artifacts/publish/index.d.ts +2 -0
  153. package/dist/artifacts/publish/index.d.ts.map +1 -1
  154. package/dist/artifacts/publish/index.js +59 -19
  155. package/dist/artifacts/publish/index.js.map +1 -1
  156. package/dist/artifacts/publish/publish.d.ts +43 -11
  157. package/dist/artifacts/publish/publish.d.ts.map +1 -1
  158. package/dist/artifacts/publish/queries.d.ts +33 -0
  159. package/dist/artifacts/publish/queries.d.ts.map +1 -0
  160. package/dist/artifacts/publish/references.d.ts +6 -3
  161. package/dist/artifacts/publish/references.d.ts.map +1 -1
  162. package/dist/artifacts/publish/validate/canvas.d.ts +18 -0
  163. package/dist/artifacts/publish/validate/canvas.d.ts.map +1 -0
  164. package/dist/artifacts/publish/validate/html.d.ts +20 -0
  165. package/dist/artifacts/publish/validate/html.d.ts.map +1 -0
  166. package/dist/artifacts/publish/validate/page.d.ts +15 -0
  167. package/dist/artifacts/publish/validate/page.d.ts.map +1 -0
  168. package/dist/artifacts/publish/validate/sheet.d.ts +11 -3
  169. package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -1
  170. package/dist/artifacts/publish/validate/slides.d.ts +1 -7
  171. package/dist/artifacts/publish/validate/slides.d.ts.map +1 -1
  172. package/dist/artifacts/queries.d.ts +95 -0
  173. package/dist/artifacts/queries.d.ts.map +1 -0
  174. package/dist/artifacts/resolve.d.ts +6 -0
  175. package/dist/artifacts/resolve.d.ts.map +1 -1
  176. package/dist/artifacts/run-query.d.ts +26 -0
  177. package/dist/artifacts/run-query.d.ts.map +1 -0
  178. package/dist/artifacts/serialize-query.d.ts +12 -0
  179. package/dist/artifacts/serialize-query.d.ts.map +1 -0
  180. package/dist/artifacts/sheet-rules.d.ts +26 -0
  181. package/dist/artifacts/sheet-rules.d.ts.map +1 -0
  182. package/dist/artifacts/tones.d.ts +8 -0
  183. package/dist/artifacts/tones.d.ts.map +1 -0
  184. package/dist/artifacts/workbook.d.ts +76 -5
  185. package/dist/artifacts/workbook.d.ts.map +1 -1
  186. package/dist/auth/index.d.ts +1 -1
  187. package/dist/auth/index.d.ts.map +1 -1
  188. package/dist/auth/index.js +14 -11
  189. package/dist/auth/index.js.map +1 -1
  190. package/dist/auth/member-events.d.ts +13 -0
  191. package/dist/auth/member-events.d.ts.map +1 -0
  192. package/dist/auth/profile.d.ts +11 -0
  193. package/dist/auth/profile.d.ts.map +1 -0
  194. package/dist/auth/runtime.d.ts +31 -3
  195. package/dist/auth/runtime.d.ts.map +1 -1
  196. package/dist/auth/strategy.d.ts +3 -1
  197. package/dist/auth/strategy.d.ts.map +1 -1
  198. package/dist/auth/strategy.js +7 -3
  199. package/dist/auth/strategy.js.map +1 -1
  200. package/dist/auth/types.d.ts +30 -1
  201. package/dist/auth/types.d.ts.map +1 -1
  202. package/dist/authorization/decision.d.ts +15 -0
  203. package/dist/authorization/decision.d.ts.map +1 -1
  204. package/dist/authorization/event-visibility.d.ts +5 -1
  205. package/dist/authorization/event-visibility.d.ts.map +1 -1
  206. package/dist/authorization/grant-kinds.d.ts +2 -2
  207. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  208. package/dist/authorization/index.d.ts +2 -2
  209. package/dist/authorization/index.d.ts.map +1 -1
  210. package/dist/authorization/index.js +12 -7
  211. package/dist/authorization/index.js.map +1 -1
  212. package/dist/authorization/resolve.d.ts +19 -1
  213. package/dist/authorization/resolve.d.ts.map +1 -1
  214. package/dist/authorization/run-visibility.d.ts +8 -1
  215. package/dist/authorization/run-visibility.d.ts.map +1 -1
  216. package/dist/authorization/types.d.ts +14 -0
  217. package/dist/authorization/types.d.ts.map +1 -1
  218. package/dist/bootstrap/index.js +69 -65
  219. package/dist/bootstrap/index.js.map +2 -2
  220. package/dist/{chunk-ky3j490c.js → chunk-02bzjgnt.js} +6 -6
  221. package/dist/{chunk-ky3j490c.js.map → chunk-02bzjgnt.js.map} +1 -1
  222. package/dist/{chunk-mfs23znk.js → chunk-07kkp2e1.js} +1 -1
  223. package/dist/{chunk-c1rxbz5y.js → chunk-098anw4f.js} +21 -19
  224. package/dist/chunk-098anw4f.js.map +12 -0
  225. package/dist/{chunk-z58tm0hm.js → chunk-0phpbbvm.js} +3 -3
  226. package/dist/{chunk-ere85b8y.js → chunk-0xmt5p5y.js} +116 -27
  227. package/dist/chunk-0xmt5p5y.js.map +14 -0
  228. package/dist/{chunk-t6f3tdnr.js → chunk-16a9dmfy.js} +33 -2
  229. package/dist/{chunk-t6f3tdnr.js.map → chunk-16a9dmfy.js.map} +5 -4
  230. package/dist/chunk-18sk89cg.js +47 -0
  231. package/dist/chunk-18sk89cg.js.map +10 -0
  232. package/dist/{chunk-e17zdm62.js → chunk-1t6k1avb.js} +1 -1
  233. package/dist/chunk-2626mh4m.js +693 -0
  234. package/dist/chunk-2626mh4m.js.map +19 -0
  235. package/dist/{chunk-qczk96d9.js → chunk-2adz0h75.js} +13 -4
  236. package/dist/chunk-2adz0h75.js.map +11 -0
  237. package/dist/{chunk-kge7k6ey.js → chunk-2fn60nvs.js} +2 -2
  238. package/dist/{chunk-99nd4rc1.js → chunk-2gjj5dx3.js} +5 -4
  239. package/dist/{chunk-99nd4rc1.js.map → chunk-2gjj5dx3.js.map} +3 -3
  240. package/dist/{chunk-mjddfa7k.js → chunk-3fqxbn31.js} +2 -24
  241. package/dist/{chunk-mjddfa7k.js.map → chunk-3fqxbn31.js.map} +3 -4
  242. package/dist/{chunk-y0c4e6ex.js → chunk-3gbefjg5.js} +1 -1
  243. package/dist/{chunk-5hx48dnn.js → chunk-45ngkxkp.js} +52 -31
  244. package/dist/chunk-45ngkxkp.js.map +13 -0
  245. package/dist/{chunk-cy4mbddw.js → chunk-48jezz3j.js} +1 -1
  246. package/dist/{chunk-561r0yc9.js → chunk-4b26qwbg.js} +13 -13
  247. package/dist/{chunk-561r0yc9.js.map → chunk-4b26qwbg.js.map} +1 -1
  248. package/dist/{chunk-9k93ah50.js → chunk-4f3ydv7t.js} +33 -69
  249. package/dist/chunk-4f3ydv7t.js.map +10 -0
  250. package/dist/chunk-4y26vs3v.js +97 -0
  251. package/dist/chunk-4y26vs3v.js.map +10 -0
  252. package/dist/{chunk-4as3wt1c.js → chunk-4ymrcdbm.js} +7 -3
  253. package/dist/chunk-4ymrcdbm.js.map +12 -0
  254. package/dist/{chunk-hcbyfxbe.js → chunk-5grk14e5.js} +76 -2
  255. package/dist/{chunk-hcbyfxbe.js.map → chunk-5grk14e5.js.map} +4 -3
  256. package/dist/{chunk-8frc8a4j.js → chunk-65pyhyas.js} +90 -83
  257. package/dist/chunk-65pyhyas.js.map +20 -0
  258. package/dist/{chunk-hwksyjks.js → chunk-661ezhks.js} +182 -6
  259. package/dist/chunk-661ezhks.js.map +11 -0
  260. package/dist/{chunk-447a5c0p.js → chunk-6n69k945.js} +2 -2
  261. package/dist/{chunk-0bphap9y.js → chunk-6p0pastb.js} +5 -5
  262. package/dist/{chunk-9j4jw7as.js → chunk-6rrtzea3.js} +18 -5
  263. package/dist/chunk-6rrtzea3.js.map +14 -0
  264. package/dist/{chunk-431pyp2c.js → chunk-6y0mkhex.js} +2 -2
  265. package/dist/{chunk-f4pamkt9.js → chunk-73v685wb.js} +10 -10
  266. package/dist/{chunk-f4pamkt9.js.map → chunk-73v685wb.js.map} +3 -3
  267. package/dist/{chunk-akzryx9h.js → chunk-7gr4j2eq.js} +7836 -5047
  268. package/dist/chunk-7gr4j2eq.js.map +120 -0
  269. package/dist/{chunk-bk9svbcq.js → chunk-7mc2wkre.js} +386 -86
  270. package/dist/chunk-7mc2wkre.js.map +50 -0
  271. package/dist/{chunk-6rqgmkde.js → chunk-7z5p905k.js} +335 -703
  272. package/dist/chunk-7z5p905k.js.map +22 -0
  273. package/dist/{chunk-yxd3nnqt.js → chunk-9mab3dvg.js} +26 -2
  274. package/dist/chunk-9mab3dvg.js.map +11 -0
  275. package/dist/chunk-9wr3yajk.js +42 -0
  276. package/dist/chunk-9wr3yajk.js.map +10 -0
  277. package/dist/chunk-az47zep4.js +41 -0
  278. package/dist/chunk-az47zep4.js.map +10 -0
  279. package/dist/{chunk-s7jg7pmn.js → chunk-bab05bhg.js} +1 -1
  280. package/dist/{chunk-858emn8m.js → chunk-bktev1ds.js} +14 -11
  281. package/dist/{chunk-858emn8m.js.map → chunk-bktev1ds.js.map} +3 -3
  282. package/dist/{chunk-dhcv7yxc.js → chunk-c0vk1djt.js} +5 -3
  283. package/dist/chunk-c0vk1djt.js.map +11 -0
  284. package/dist/chunk-c69nj7se.js +3 -0
  285. package/dist/{chunk-7n30ybym.js.map → chunk-c69nj7se.js.map} +1 -1
  286. package/dist/{chunk-q5e5tv4b.js → chunk-c844dkwd.js} +1 -1
  287. package/dist/{chunk-g257jwnc.js → chunk-cdk3egjj.js} +17 -4
  288. package/dist/chunk-cdk3egjj.js.map +12 -0
  289. package/dist/chunk-cswhawa2.js +113 -0
  290. package/dist/chunk-cswhawa2.js.map +10 -0
  291. package/dist/{chunk-cfj9dfbb.js → chunk-d2m879s4.js} +2 -2
  292. package/dist/{chunk-arns890k.js → chunk-d7vyc7k6.js} +2 -2
  293. package/dist/chunk-d7vyc7k6.js.map +10 -0
  294. package/dist/{chunk-q7gn29y3.js → chunk-dp0cdtj2.js} +2 -2
  295. package/dist/{chunk-6x0pqh32.js → chunk-e5wf5vz0.js} +3 -1
  296. package/dist/chunk-e5wf5vz0.js.map +10 -0
  297. package/dist/{chunk-cn0fwwhy.js → chunk-efmm01gj.js} +108 -1045
  298. package/dist/chunk-efmm01gj.js.map +18 -0
  299. package/dist/{chunk-918wwnaa.js → chunk-ezne9wc9.js} +1224 -430
  300. package/dist/chunk-ezne9wc9.js.map +71 -0
  301. package/dist/{chunk-tbc1ngpd.js → chunk-fe8zwt8b.js} +58 -12
  302. package/dist/{chunk-tbc1ngpd.js.map → chunk-fe8zwt8b.js.map} +5 -4
  303. package/dist/{chunk-br3k6qbf.js → chunk-fm62y49k.js} +1 -1
  304. package/dist/{chunk-nq6gpjt7.js → chunk-fntqb7qy.js} +30 -4
  305. package/dist/{chunk-nq6gpjt7.js.map → chunk-fntqb7qy.js.map} +5 -5
  306. package/dist/{chunk-1cc1xaf3.js → chunk-fp2kq35z.js} +26 -10
  307. package/dist/{chunk-1cc1xaf3.js.map → chunk-fp2kq35z.js.map} +5 -5
  308. package/dist/{chunk-vvxtn22d.js → chunk-g663fahq.js} +2 -2
  309. package/dist/{chunk-k43ct2ke.js → chunk-gvj5cd3b.js} +16 -9
  310. package/dist/chunk-gvj5cd3b.js.map +12 -0
  311. package/dist/{chunk-rmakanzx.js → chunk-h33shhq6.js} +5 -5
  312. package/dist/{chunk-nn5xnx3s.js → chunk-h3pbv7n8.js} +1738 -38
  313. package/dist/chunk-h3pbv7n8.js.map +48 -0
  314. package/dist/chunk-hn2r7z41.js.map +1 -1
  315. package/dist/{chunk-pbcbn83d.js → chunk-hqsp2sx4.js} +54 -8
  316. package/dist/chunk-hqsp2sx4.js.map +14 -0
  317. package/dist/{chunk-d09e3rax.js → chunk-hwarjrgf.js} +1 -1
  318. package/dist/{chunk-vf57cr4t.js → chunk-hyesv9dv.js} +1 -1
  319. package/dist/chunk-hz5d43gn.js +45 -0
  320. package/dist/chunk-hz5d43gn.js.map +10 -0
  321. package/dist/{chunk-91mg3nj9.js → chunk-j936th07.js} +86 -41
  322. package/dist/chunk-j936th07.js.map +12 -0
  323. package/dist/chunk-kcqpk9w1.js +75 -0
  324. package/dist/chunk-kcqpk9w1.js.map +10 -0
  325. package/dist/{chunk-5vems3nx.js → chunk-m2nevja0.js} +2 -2
  326. package/dist/{chunk-x9v4cx1d.js → chunk-m36fw8ft.js} +1 -1
  327. package/dist/{chunk-a40ad1ft.js → chunk-mbsbxarb.js} +1 -1
  328. package/dist/chunk-mzx71snp.js +129 -0
  329. package/dist/chunk-mzx71snp.js.map +10 -0
  330. package/dist/{chunk-6aawea28.js → chunk-n8q5j6y5.js} +1 -1
  331. package/dist/{chunk-d7dnxdep.js → chunk-n9zpx9c6.js} +4 -4
  332. package/dist/{chunk-xvsc5m8n.js → chunk-npcr0228.js} +1 -1
  333. package/dist/chunk-nydf3dbe.js +663 -0
  334. package/dist/chunk-nydf3dbe.js.map +13 -0
  335. package/dist/chunk-pdt5cw8z.js +233 -0
  336. package/dist/chunk-pdt5cw8z.js.map +11 -0
  337. package/dist/{chunk-rj69qcrd.js → chunk-pgrf64hp.js} +55 -7
  338. package/dist/chunk-pgrf64hp.js.map +12 -0
  339. package/dist/{chunk-y5tah2kf.js → chunk-q4pmvkg0.js} +1 -1
  340. package/dist/chunk-qhqgp4jf.js +1418 -0
  341. package/dist/chunk-qhqgp4jf.js.map +22 -0
  342. package/dist/{chunk-48qjhh6v.js → chunk-qx00vjrj.js} +19 -60
  343. package/dist/chunk-qx00vjrj.js.map +13 -0
  344. package/dist/{chunk-5948n82c.js → chunk-r6szek0x.js} +184 -7
  345. package/dist/chunk-r6szek0x.js.map +10 -0
  346. package/dist/{chunk-v4jbb3rs.js → chunk-rap5w0x0.js} +156 -2
  347. package/dist/chunk-rap5w0x0.js.map +10 -0
  348. package/dist/{chunk-pfp1txq2.js → chunk-sgx82nnt.js} +5 -31
  349. package/dist/{chunk-pfp1txq2.js.map → chunk-sgx82nnt.js.map} +3 -4
  350. package/dist/{chunk-bkpke1sg.js → chunk-t5608tkq.js} +3 -1
  351. package/dist/{chunk-bkpke1sg.js.map → chunk-t5608tkq.js.map} +3 -3
  352. package/dist/{chunk-29yx306f.js → chunk-tdxfsg1c.js} +507 -265
  353. package/dist/chunk-tdxfsg1c.js.map +23 -0
  354. package/dist/{chunk-d5rjr8c0.js → chunk-vabga7fk.js} +1 -1
  355. package/dist/{chunk-dhdha526.js → chunk-vhbw5sqm.js} +26 -2
  356. package/dist/chunk-vhbw5sqm.js.map +10 -0
  357. package/dist/{chunk-e6k4thh5.js → chunk-vpgwq5nf.js} +98 -12
  358. package/dist/chunk-vpgwq5nf.js.map +21 -0
  359. package/dist/{chunk-61y5xs4p.js → chunk-vyt322b6.js} +69 -50
  360. package/dist/{chunk-61y5xs4p.js.map → chunk-vyt322b6.js.map} +4 -4
  361. package/dist/chunk-waqk73p1.js +2380 -0
  362. package/dist/chunk-waqk73p1.js.map +23 -0
  363. package/dist/chunk-wsc1brye.js +27 -0
  364. package/dist/chunk-wsc1brye.js.map +10 -0
  365. package/dist/{chunk-96yw3pwd.js → chunk-y7dbmaqh.js} +28 -2
  366. package/dist/chunk-y7dbmaqh.js.map +10 -0
  367. package/dist/{chunk-6vb4st8k.js → chunk-yc9ners4.js} +120 -19
  368. package/dist/{chunk-6vb4st8k.js.map → chunk-yc9ners4.js.map} +8 -8
  369. package/dist/{chunk-dvd2fp9q.js → chunk-zbc929zg.js} +28 -4
  370. package/dist/chunk-zbc929zg.js.map +13 -0
  371. package/dist/chunk-zrvhsq7f.js +37 -0
  372. package/dist/chunk-zrvhsq7f.js.map +10 -0
  373. package/dist/datasets/write.js +5 -5
  374. package/dist/error-reporting/internal.js +3 -3
  375. package/dist/errors/catalog.d.ts +26 -0
  376. package/dist/errors/catalog.d.ts.map +1 -1
  377. package/dist/errors/internal.d.ts.map +1 -1
  378. package/dist/errors/internal.js +1 -1
  379. package/dist/events/definitions.d.ts +7 -0
  380. package/dist/events/definitions.d.ts.map +1 -1
  381. package/dist/events/execution.d.ts.map +1 -1
  382. package/dist/events/index.d.ts +2 -3
  383. package/dist/events/index.d.ts.map +1 -1
  384. package/dist/events/index.js +8 -10
  385. package/dist/events/index.js.map +1 -1
  386. package/dist/events/scope.d.ts.map +1 -1
  387. package/dist/events/scope.js +1 -1
  388. package/dist/events/selectors/builder.d.ts +12 -1
  389. package/dist/events/selectors/builder.d.ts.map +1 -1
  390. package/dist/events/selectors/index.d.ts +2 -2
  391. package/dist/events/selectors/index.d.ts.map +1 -1
  392. package/dist/events/selectors/index.js +2 -2
  393. package/dist/events/selectors/types.d.ts +19 -3
  394. package/dist/events/selectors/types.d.ts.map +1 -1
  395. package/dist/events/service.d.ts +17 -2
  396. package/dist/events/service.d.ts.map +1 -1
  397. package/dist/events/types/index.d.ts +3 -1
  398. package/dist/events/types/index.d.ts.map +1 -1
  399. package/dist/events/types/users.d.ts +63 -0
  400. package/dist/events/types/users.d.ts.map +1 -0
  401. package/dist/events/view-conditions.d.ts +34 -0
  402. package/dist/events/view-conditions.d.ts.map +1 -0
  403. package/dist/execution/agent.d.ts +15 -0
  404. package/dist/execution/agent.d.ts.map +1 -1
  405. package/dist/execution/agent.js +63 -57
  406. package/dist/execution/agent.js.map +1 -1
  407. package/dist/execution/authorization.d.ts.map +1 -1
  408. package/dist/execution/authorized-object-reader.d.ts +51 -2
  409. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  410. package/dist/execution/lineage.d.ts +7 -0
  411. package/dist/execution/lineage.d.ts.map +1 -0
  412. package/dist/execution/object-reader-ontology.d.ts +2 -2
  413. package/dist/execution/object-reader-ontology.d.ts.map +1 -1
  414. package/dist/execution/object-reader-security.d.ts +24 -3
  415. package/dist/execution/object-reader-security.d.ts.map +1 -1
  416. package/dist/execution/object-reader-users.d.ts +20 -0
  417. package/dist/execution/object-reader-users.d.ts.map +1 -0
  418. package/dist/execution/preparation.d.ts +23 -0
  419. package/dist/execution/preparation.d.ts.map +1 -0
  420. package/dist/execution/primitive.js +61 -57
  421. package/dist/execution/primitive.js.map +1 -1
  422. package/dist/execution/request.d.ts +2 -1
  423. package/dist/execution/request.d.ts.map +1 -1
  424. package/dist/execution/request.js +64 -56
  425. package/dist/execution/request.js.map +3 -3
  426. package/dist/execution/unique-lookup.d.ts +14 -0
  427. package/dist/execution/unique-lookup.d.ts.map +1 -0
  428. package/dist/execution/visible-objects.d.ts +12 -0
  429. package/dist/execution/visible-objects.d.ts.map +1 -0
  430. package/dist/http/api-routes.d.ts +17 -0
  431. package/dist/http/api-routes.d.ts.map +1 -1
  432. package/dist/http/index.js +1 -1
  433. package/dist/index.d.ts +32 -15
  434. package/dist/index.d.ts.map +1 -1
  435. package/dist/index.js +137 -126
  436. package/dist/index.js.map +1 -1
  437. package/dist/lake-storage/index.js +5 -5
  438. package/dist/materialization/errors.d.ts +25 -0
  439. package/dist/materialization/errors.d.ts.map +1 -1
  440. package/dist/materialization/event-envelopes.d.ts +5 -0
  441. package/dist/materialization/event-envelopes.d.ts.map +1 -1
  442. package/dist/materialization/index.d.ts +1 -1
  443. package/dist/materialization/index.d.ts.map +1 -1
  444. package/dist/materialization/index.js +14 -8
  445. package/dist/materialization/index.js.map +1 -1
  446. package/dist/materialization/model.d.ts +20 -2
  447. package/dist/materialization/model.d.ts.map +1 -1
  448. package/dist/materializer/edits/commit.d.ts.map +1 -1
  449. package/dist/materializer/edits/load-state.d.ts +5 -1
  450. package/dist/materializer/edits/load-state.d.ts.map +1 -1
  451. package/dist/materializer/edits/plan.d.ts.map +1 -1
  452. package/dist/materializer/edits/unique-values.d.ts +47 -0
  453. package/dist/materializer/edits/unique-values.d.ts.map +1 -0
  454. package/dist/materializer/edits/working-state.d.ts +6 -1
  455. package/dist/materializer/edits/working-state.d.ts.map +1 -1
  456. package/dist/materializer/execution/work-records.d.ts +7 -1
  457. package/dist/materializer/execution/work-records.d.ts.map +1 -1
  458. package/dist/materializer/index.js +45 -41
  459. package/dist/materializer/index.js.map +1 -1
  460. package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
  461. package/dist/materializer/projections/source-materialization.d.ts +1 -0
  462. package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
  463. package/dist/materializer/shared/normalize.d.ts.map +1 -1
  464. package/dist/materializer/shared/projection-run.d.ts +0 -1
  465. package/dist/materializer/shared/projection-run.d.ts.map +1 -1
  466. package/dist/materializer/telemetry/plan.d.ts.map +1 -1
  467. package/dist/models/audio/catalog.d.ts +13 -1
  468. package/dist/models/audio/catalog.d.ts.map +1 -1
  469. package/dist/models/audio/errors.d.ts +6 -1
  470. package/dist/models/audio/errors.d.ts.map +1 -1
  471. package/dist/models/audio/runtime.d.ts.map +1 -1
  472. package/dist/models/audio/speech.d.ts +8 -0
  473. package/dist/models/audio/speech.d.ts.map +1 -0
  474. package/dist/models/audio/types.d.ts +93 -0
  475. package/dist/models/audio/types.d.ts.map +1 -1
  476. package/dist/models/calls.d.ts +27 -0
  477. package/dist/models/calls.d.ts.map +1 -0
  478. package/dist/models/catalog-index.d.ts +7 -4
  479. package/dist/models/catalog-index.d.ts.map +1 -1
  480. package/dist/models/catalog.d.ts +55 -3
  481. package/dist/models/catalog.d.ts.map +1 -1
  482. package/dist/models/decision/runtime.d.ts +6 -1
  483. package/dist/models/decision/runtime.d.ts.map +1 -1
  484. package/dist/models/decision/validation.d.ts +4 -1
  485. package/dist/models/decision/validation.d.ts.map +1 -1
  486. package/dist/models/definitions.d.ts +23 -1
  487. package/dist/models/definitions.d.ts.map +1 -1
  488. package/dist/models/events.d.ts +12 -1
  489. package/dist/models/events.d.ts.map +1 -1
  490. package/dist/models/execution/binding.d.ts +3 -1
  491. package/dist/models/execution/binding.d.ts.map +1 -1
  492. package/dist/models/execution/index.d.ts +1 -0
  493. package/dist/models/execution/index.d.ts.map +1 -1
  494. package/dist/models/execution/index.js +44 -34
  495. package/dist/models/execution/index.js.map +1 -1
  496. package/dist/models/execution/model-call-accounting.d.ts.map +1 -1
  497. package/dist/models/execution/model-call-recorder.d.ts +3 -0
  498. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  499. package/dist/models/execution/usage.d.ts.map +1 -1
  500. package/dist/models/execution.d.ts +4 -2
  501. package/dist/models/execution.d.ts.map +1 -1
  502. package/dist/models/generation-types.d.ts +8 -1
  503. package/dist/models/generation-types.d.ts.map +1 -1
  504. package/dist/models/image/catalog.d.ts +13 -0
  505. package/dist/models/image/catalog.d.ts.map +1 -0
  506. package/dist/models/image/errors.d.ts +8 -0
  507. package/dist/models/image/errors.d.ts.map +1 -0
  508. package/dist/models/image/runtime.d.ts +8 -0
  509. package/dist/models/image/runtime.d.ts.map +1 -0
  510. package/dist/models/image/types.d.ts +103 -0
  511. package/dist/models/image/types.d.ts.map +1 -0
  512. package/dist/models/index.d.ts +12 -8
  513. package/dist/models/index.d.ts.map +1 -1
  514. package/dist/models/index.js +17 -7
  515. package/dist/models/index.js.map +1 -1
  516. package/dist/models/input-file.d.ts +9 -0
  517. package/dist/models/input-file.d.ts.map +1 -0
  518. package/dist/models/language-model.d.ts +13 -0
  519. package/dist/models/language-model.d.ts.map +1 -1
  520. package/dist/models/pricing.d.ts +25 -10
  521. package/dist/models/pricing.d.ts.map +1 -1
  522. package/dist/models/rate-card.d.ts +44 -6
  523. package/dist/models/rate-card.d.ts.map +1 -1
  524. package/dist/objects/conditional-writes.d.ts +37 -0
  525. package/dist/objects/conditional-writes.d.ts.map +1 -0
  526. package/dist/objects/execution.d.ts +2 -0
  527. package/dist/objects/execution.d.ts.map +1 -1
  528. package/dist/objects/index.d.ts +1 -0
  529. package/dist/objects/index.d.ts.map +1 -1
  530. package/dist/objects/index.js +68 -58
  531. package/dist/objects/index.js.map +1 -1
  532. package/dist/objects/link/authorization.d.ts +3 -0
  533. package/dist/objects/link/authorization.d.ts.map +1 -1
  534. package/dist/objects/link/endpoints.d.ts +21 -2
  535. package/dist/objects/link/endpoints.d.ts.map +1 -1
  536. package/dist/objects/link/remove.d.ts.map +1 -1
  537. package/dist/objects/link/upsert-batch.d.ts.map +1 -1
  538. package/dist/objects/link/upsert.d.ts.map +1 -1
  539. package/dist/objects/materializer-adapter.d.ts +13 -4
  540. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  541. package/dist/objects/object/delete.d.ts +3 -0
  542. package/dist/objects/object/delete.d.ts.map +1 -1
  543. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  544. package/dist/objects/object/upsert.d.ts.map +1 -1
  545. package/dist/objects/query/current-user.d.ts +17 -0
  546. package/dist/objects/query/current-user.d.ts.map +1 -0
  547. package/dist/objects/query/executor.d.ts +14 -0
  548. package/dist/objects/query/executor.d.ts.map +1 -1
  549. package/dist/objects/query/index.d.ts +2 -2
  550. package/dist/objects/query/index.d.ts.map +1 -1
  551. package/dist/objects/query/index.js +49 -44
  552. package/dist/objects/query/index.js.map +1 -1
  553. package/dist/objects/query/ir.d.ts +19 -1
  554. package/dist/objects/query/ir.d.ts.map +1 -1
  555. package/dist/objects/query/matches-predicate.d.ts +9 -0
  556. package/dist/objects/query/matches-predicate.d.ts.map +1 -0
  557. package/dist/objects/query/normalize.d.ts.map +1 -1
  558. package/dist/objects/query/user-expansions.d.ts +27 -0
  559. package/dist/objects/query/user-expansions.d.ts.map +1 -0
  560. package/dist/objects/query/validate.d.ts.map +1 -1
  561. package/dist/objects/runtime-batch.d.ts +3 -1
  562. package/dist/objects/runtime-batch.d.ts.map +1 -1
  563. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  564. package/dist/objects/sdk/query-executor.d.ts +6 -0
  565. package/dist/objects/sdk/query-executor.d.ts.map +1 -1
  566. package/dist/objects/serialize.d.ts +39 -0
  567. package/dist/objects/serialize.d.ts.map +1 -0
  568. package/dist/objects/unique-violation.d.ts +22 -0
  569. package/dist/objects/unique-violation.d.ts.map +1 -0
  570. package/dist/ontology/builders.d.ts +3 -1
  571. package/dist/ontology/builders.d.ts.map +1 -1
  572. package/dist/ontology/index.d.ts +2 -2
  573. package/dist/ontology/index.d.ts.map +1 -1
  574. package/dist/ontology/index.js +11 -7
  575. package/dist/ontology/index.js.map +1 -1
  576. package/dist/ontology/internal.js +7 -5
  577. package/dist/ontology/internal.js.map +3 -3
  578. package/dist/ontology/json-schema.d.ts.map +1 -1
  579. package/dist/ontology/primitives.d.ts +3 -0
  580. package/dist/ontology/primitives.d.ts.map +1 -1
  581. package/dist/ontology/registry.d.ts +6 -0
  582. package/dist/ontology/registry.d.ts.map +1 -1
  583. package/dist/ontology/types.d.ts +9 -0
  584. package/dist/ontology/types.d.ts.map +1 -1
  585. package/dist/ontology/unique-values.d.ts +26 -0
  586. package/dist/ontology/unique-values.d.ts.map +1 -0
  587. package/dist/ontology/user-ref.d.ts +23 -0
  588. package/dist/ontology/user-ref.d.ts.map +1 -1
  589. package/dist/ontology/validation/properties.d.ts.map +1 -1
  590. package/dist/ontology/validation/schema.d.ts.map +1 -1
  591. package/dist/pipelines/index.js +43 -40
  592. package/dist/pipelines/index.js.map +1 -1
  593. package/dist/projections/internal.js +36 -33
  594. package/dist/projections/internal.js.map +1 -1
  595. package/dist/projections/registry.d.ts +4 -0
  596. package/dist/projections/registry.d.ts.map +1 -1
  597. package/dist/projections/revision.d.ts +15 -0
  598. package/dist/projections/revision.d.ts.map +1 -1
  599. package/dist/projections/run-dispatch.d.ts.map +1 -1
  600. package/dist/projections/types.d.ts +2 -0
  601. package/dist/projections/types.d.ts.map +1 -1
  602. package/dist/query.d.ts +4 -2
  603. package/dist/query.d.ts.map +1 -1
  604. package/dist/query.js +2 -2
  605. package/dist/rules/execution.d.ts.map +1 -1
  606. package/dist/runtime/ai-cost.d.ts +2 -0
  607. package/dist/runtime/ai-cost.d.ts.map +1 -1
  608. package/dist/runtime/ai-usage.d.ts +7 -0
  609. package/dist/runtime/ai-usage.d.ts.map +1 -1
  610. package/dist/runtime/host.d.ts.map +1 -1
  611. package/dist/runtime/index.d.ts +1 -1
  612. package/dist/runtime/index.d.ts.map +1 -1
  613. package/dist/runtime/internal.js +42 -38
  614. package/dist/runtime/internal.js.map +1 -1
  615. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  616. package/dist/runtime/sixb.d.ts +2 -0
  617. package/dist/runtime/sixb.d.ts.map +1 -1
  618. package/dist/runtime/types.d.ts +66 -8
  619. package/dist/runtime/types.d.ts.map +1 -1
  620. package/dist/sandboxes/index.js +7 -6
  621. package/dist/sandboxes/index.js.map +1 -1
  622. package/dist/schedules/builders.d.ts.map +1 -1
  623. package/dist/schedules/index.js +3 -3
  624. package/dist/schedules/runtime.d.ts.map +1 -1
  625. package/dist/schedules/validation.d.ts.map +1 -1
  626. package/dist/security/grants.d.ts +12 -4
  627. package/dist/security/grants.d.ts.map +1 -1
  628. package/dist/security/index.d.ts +1 -1
  629. package/dist/security/index.d.ts.map +1 -1
  630. package/dist/security/internal.js +1 -1
  631. package/dist/security/project.d.ts +4 -1
  632. package/dist/security/project.d.ts.map +1 -1
  633. package/dist/security/public.js +2 -2
  634. package/dist/security/registry.d.ts +6 -0
  635. package/dist/security/registry.d.ts.map +1 -1
  636. package/dist/security/types.d.ts +47 -9
  637. package/dist/security/types.d.ts.map +1 -1
  638. package/dist/security/validation.d.ts.map +1 -1
  639. package/dist/security/view-conditions.d.ts +37 -0
  640. package/dist/security/view-conditions.d.ts.map +1 -0
  641. package/dist/shares/execution.d.ts.map +1 -1
  642. package/dist/shares/internal.js +34 -31
  643. package/dist/shares/internal.js.map +2 -2
  644. package/dist/storage/action-runs/failure.js +2 -2
  645. package/dist/storage/action-runs/provider.js +1 -1
  646. package/dist/storage/action-runs/types.d.ts +1 -1
  647. package/dist/storage/action-runs/types.d.ts.map +1 -1
  648. package/dist/storage/agents/errors.d.ts +3 -1
  649. package/dist/storage/agents/errors.d.ts.map +1 -1
  650. package/dist/storage/agents/in-memory.d.ts +120 -3
  651. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  652. package/dist/storage/agents/index.d.ts +2 -2
  653. package/dist/storage/agents/index.d.ts.map +1 -1
  654. package/dist/storage/agents/provider.d.ts +154 -4
  655. package/dist/storage/agents/provider.d.ts.map +1 -1
  656. package/dist/storage/agents/provider.js +60 -5
  657. package/dist/storage/agents/provider.js.map +1 -1
  658. package/dist/storage/agents/types.d.ts +565 -13
  659. package/dist/storage/agents/types.d.ts.map +1 -1
  660. package/dist/storage/ai-cost/analytics.d.ts +10 -1
  661. package/dist/storage/ai-cost/analytics.d.ts.map +1 -1
  662. package/dist/storage/ai-cost/groups.d.ts +9 -0
  663. package/dist/storage/ai-cost/groups.d.ts.map +1 -1
  664. package/dist/storage/ai-cost/index.d.ts +1 -1
  665. package/dist/storage/ai-cost/index.d.ts.map +1 -1
  666. package/dist/storage/ai-cost/provider.d.ts +2 -1
  667. package/dist/storage/ai-cost/provider.d.ts.map +1 -1
  668. package/dist/storage/ai-cost/provider.js +11 -5
  669. package/dist/storage/ai-cost/provider.js.map +1 -1
  670. package/dist/storage/ai-cost/types.d.ts +14 -2
  671. package/dist/storage/ai-cost/types.d.ts.map +1 -1
  672. package/dist/storage/ai-cost/validation.d.ts.map +1 -1
  673. package/dist/storage/ai-limits/enforcement.js +5 -4
  674. package/dist/storage/ai-limits/enforcement.js.map +1 -1
  675. package/dist/storage/ai-limits/provider.d.ts +1 -1
  676. package/dist/storage/ai-limits/provider.d.ts.map +1 -1
  677. package/dist/storage/ai-limits/provider.js +3 -2
  678. package/dist/storage/ai-limits/provider.js.map +1 -1
  679. package/dist/storage/ai-usage/in-memory.d.ts +5 -1
  680. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
  681. package/dist/storage/ai-usage/index.d.ts +2 -2
  682. package/dist/storage/ai-usage/index.d.ts.map +1 -1
  683. package/dist/storage/ai-usage/record.d.ts +5 -1
  684. package/dist/storage/ai-usage/record.d.ts.map +1 -1
  685. package/dist/storage/ai-usage/types.d.ts +33 -0
  686. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  687. package/dist/storage/ai-usage/usage.d.ts +2 -0
  688. package/dist/storage/ai-usage/usage.d.ts.map +1 -1
  689. package/dist/storage/artifacts/errors.d.ts +12 -2
  690. package/dist/storage/artifacts/errors.d.ts.map +1 -1
  691. package/dist/storage/artifacts/in-memory.d.ts +23 -2
  692. package/dist/storage/artifacts/in-memory.d.ts.map +1 -1
  693. package/dist/storage/artifacts/index.d.ts +2 -2
  694. package/dist/storage/artifacts/index.d.ts.map +1 -1
  695. package/dist/storage/artifacts/record.d.ts +19 -2
  696. package/dist/storage/artifacts/record.d.ts.map +1 -1
  697. package/dist/storage/artifacts/types.d.ts +87 -8
  698. package/dist/storage/artifacts/types.d.ts.map +1 -1
  699. package/dist/storage/auth/in-memory/auth-storage.d.ts +3 -2
  700. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  701. package/dist/storage/auth/in-memory/users.d.ts +7 -3
  702. package/dist/storage/auth/in-memory/users.d.ts.map +1 -1
  703. package/dist/storage/auth/index.d.ts +1 -1
  704. package/dist/storage/auth/index.d.ts.map +1 -1
  705. package/dist/storage/auth/types.d.ts +40 -9
  706. package/dist/storage/auth/types.d.ts.map +1 -1
  707. package/dist/storage/connector-connections/provider.js +1 -1
  708. package/dist/storage/executions/in-memory.d.ts +2 -1
  709. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  710. package/dist/storage/executions/index.d.ts +1 -1
  711. package/dist/storage/executions/index.d.ts.map +1 -1
  712. package/dist/storage/executions/types.d.ts +15 -0
  713. package/dist/storage/executions/types.d.ts.map +1 -1
  714. package/dist/storage/file-upload-sessions/provider.js +15 -12
  715. package/dist/storage/file-upload-sessions/provider.js.map +1 -1
  716. package/dist/storage/index.d.ts +13 -11
  717. package/dist/storage/index.d.ts.map +1 -1
  718. package/dist/storage/index.js +50 -39
  719. package/dist/storage/index.js.map +1 -1
  720. package/dist/storage/internal.d.ts +2 -2
  721. package/dist/storage/internal.d.ts.map +1 -1
  722. package/dist/storage/internal.js +19 -8
  723. package/dist/storage/internal.js.map +1 -1
  724. package/dist/storage/migrations/migrate-storage.d.ts +4 -1
  725. package/dist/storage/migrations/migrate-storage.d.ts.map +1 -1
  726. package/dist/storage/migrations/prepare-unique-properties.d.ts +18 -0
  727. package/dist/storage/migrations/prepare-unique-properties.d.ts.map +1 -0
  728. package/dist/storage/objects/guard.d.ts +1 -1
  729. package/dist/storage/objects/guard.d.ts.map +1 -1
  730. package/dist/storage/objects/in-memory/conditional-reader.d.ts +5 -0
  731. package/dist/storage/objects/in-memory/conditional-reader.d.ts.map +1 -0
  732. package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
  733. package/dist/storage/objects/in-memory/read-scope.d.ts +3 -9
  734. package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -1
  735. package/dist/storage/objects/in-memory/read-source.d.ts +10 -1
  736. package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -1
  737. package/dist/storage/objects/in-memory/scoped-reader.d.ts +14 -0
  738. package/dist/storage/objects/in-memory/scoped-reader.d.ts.map +1 -0
  739. package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -1
  740. package/dist/storage/objects/in-memory/storage.d.ts +36 -1
  741. package/dist/storage/objects/in-memory/storage.d.ts.map +1 -1
  742. package/dist/storage/objects/index.d.ts +2 -2
  743. package/dist/storage/objects/index.d.ts.map +1 -1
  744. package/dist/storage/objects/read-scope.d.ts +9 -1
  745. package/dist/storage/objects/read-scope.d.ts.map +1 -1
  746. package/dist/storage/objects/types.d.ts +64 -1
  747. package/dist/storage/objects/types.d.ts.map +1 -1
  748. package/dist/storage/ontology/in-memory/index.d.ts +2 -0
  749. package/dist/storage/ontology/in-memory/index.d.ts.map +1 -1
  750. package/dist/storage/ontology/in-memory/materializations.d.ts +1 -0
  751. package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
  752. package/dist/storage/ontology/in-memory/replacement-plans.d.ts.map +1 -1
  753. package/dist/storage/ontology/in-memory/unique-values.d.ts +32 -0
  754. package/dist/storage/ontology/in-memory/unique-values.d.ts.map +1 -0
  755. package/dist/storage/ontology/index.d.ts +4 -1
  756. package/dist/storage/ontology/index.d.ts.map +1 -1
  757. package/dist/storage/ontology/materializations.d.ts +34 -1
  758. package/dist/storage/ontology/materializations.d.ts.map +1 -1
  759. package/dist/storage/ontology/provider-work.d.ts +15 -2
  760. package/dist/storage/ontology/provider-work.d.ts.map +1 -1
  761. package/dist/storage/ontology/provider.d.ts +1 -1
  762. package/dist/storage/ontology/provider.d.ts.map +1 -1
  763. package/dist/storage/ontology/provider.js +9 -4
  764. package/dist/storage/ontology/provider.js.map +1 -1
  765. package/dist/storage/ontology/unique-values.d.ts +54 -0
  766. package/dist/storage/ontology/unique-values.d.ts.map +1 -0
  767. package/dist/storage/operation-scope.d.ts +1 -1
  768. package/dist/storage/operation-scope.d.ts.map +1 -1
  769. package/dist/storage/operation-scope.js +1 -1
  770. package/dist/storage/projection-runs/in-memory.d.ts +0 -6
  771. package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
  772. package/dist/storage/projection-runs/provider.js +2 -2
  773. package/dist/storage/share-grants/provider.js +4 -3
  774. package/dist/storage/share-grants/provider.js.map +1 -1
  775. package/dist/storage/types.d.ts +2 -2
  776. package/dist/storage/types.d.ts.map +1 -1
  777. package/dist/storage/workflow-runs/provider.js +15 -12
  778. package/dist/storage/workflow-runs/provider.js.map +1 -1
  779. package/dist/syncs/index.js +42 -39
  780. package/dist/syncs/index.js.map +1 -1
  781. package/dist/testing/agent-approval-storage-contract.d.ts +17 -0
  782. package/dist/testing/agent-approval-storage-contract.d.ts.map +1 -0
  783. package/dist/testing/agent-memory-storage-contract.d.ts +12 -0
  784. package/dist/testing/agent-memory-storage-contract.d.ts.map +1 -0
  785. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  786. package/dist/testing/ai-cost-storage-contract.d.ts.map +1 -1
  787. package/dist/testing/ai-limit-storage-contract.d.ts +0 -1
  788. package/dist/testing/ai-limit-storage-contract.d.ts.map +1 -1
  789. package/dist/testing/ai-model-call-groups-contract.d.ts.map +1 -1
  790. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  791. package/dist/testing/artifact-storage-contract.d.ts.map +1 -1
  792. package/dist/testing/auth-storage-contract.d.ts +13 -0
  793. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  794. package/dist/testing/broker-contract.d.ts +5 -0
  795. package/dist/testing/broker-contract.d.ts.map +1 -1
  796. package/dist/testing/effective-storage-contract.d.ts.map +1 -1
  797. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  798. package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -1
  799. package/dist/testing/index.d.ts +9 -5
  800. package/dist/testing/index.d.ts.map +1 -1
  801. package/dist/testing/index.js +7938 -3743
  802. package/dist/testing/index.js.map +29 -25
  803. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  804. package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
  805. package/dist/testing/object-conditional-read-scope-contract.d.ts +11 -0
  806. package/dist/testing/object-conditional-read-scope-contract.d.ts.map +1 -0
  807. package/dist/testing/object-query-contract.d.ts +0 -2
  808. package/dist/testing/object-query-contract.d.ts.map +1 -1
  809. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  810. package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
  811. package/dist/testing/queues-contract.d.ts +5 -0
  812. package/dist/testing/queues-contract.d.ts.map +1 -1
  813. package/dist/testing/sandboxes-contract.d.ts.map +1 -1
  814. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
  815. package/dist/testing/share-session-storage-contract.d.ts.map +1 -1
  816. package/dist/testing/unique-values-contract.d.ts +21 -0
  817. package/dist/testing/unique-values-contract.d.ts.map +1 -0
  818. package/dist/testing/webhook-execution.d.ts +0 -8
  819. package/dist/testing/webhook-execution.d.ts.map +1 -1
  820. package/dist/testing/webhook-run-storage-contract.d.ts.map +1 -1
  821. package/dist/users/execution.d.ts +40 -0
  822. package/dist/users/execution.d.ts.map +1 -0
  823. package/dist/users/index.d.ts +3 -0
  824. package/dist/users/index.d.ts.map +1 -0
  825. package/dist/webhooks/internal.js +34 -31
  826. package/dist/webhooks/internal.js.map +2 -2
  827. package/dist/workers/index.js +4 -6
  828. package/dist/workers/index.js.map +4 -4
  829. package/dist/workers/queue-worker.d.ts +0 -2
  830. package/dist/workers/queue-worker.d.ts.map +1 -1
  831. package/dist/workers/worker.d.ts +0 -2
  832. package/dist/workers/worker.d.ts.map +1 -1
  833. package/dist/workflows/builders.d.ts.map +1 -1
  834. package/dist/workflows/index.js +67 -63
  835. package/dist/workflows/index.js.map +1 -1
  836. package/dist/workflows/request.d.ts +12 -1
  837. package/dist/workflows/request.d.ts.map +1 -1
  838. package/dist/workflows/types.d.ts +6 -2
  839. package/dist/workflows/types.d.ts.map +1 -1
  840. package/dist/workflows/validation.d.ts.map +1 -1
  841. package/package.json +1 -1
  842. package/src/actions/commit-edits.ts +6 -1
  843. package/src/actions/execution.ts +42 -15
  844. package/src/actions/read-facade.ts +33 -0
  845. package/src/actions/request.ts +224 -71
  846. package/src/actions/run/context.ts +47 -1
  847. package/src/actions/run/execute.ts +13 -6
  848. package/src/actions/run/executor.ts +11 -2
  849. package/src/actions/run/normalize.ts +12 -2
  850. package/src/actions/run/phases.ts +2 -0
  851. package/src/actions/run/run-action.ts +12 -3
  852. package/src/actions/run/signals.ts +3 -9
  853. package/src/actions/run/types.ts +17 -1
  854. package/src/actions/run-authorization.ts +72 -0
  855. package/src/actions/types/context.ts +20 -3
  856. package/src/actions/validators.ts +19 -8
  857. package/src/activity/README.md +5 -2
  858. package/src/activity/timeline.ts +39 -78
  859. package/src/agents/accounting.ts +59 -0
  860. package/src/agents/adapters.ts +10 -0
  861. package/src/agents/agent-mail.ts +29 -0
  862. package/src/agents/api-gateway.ts +14 -3
  863. package/src/agents/approval-continuation.ts +48 -0
  864. package/src/agents/approval-executor.ts +318 -0
  865. package/src/agents/approval-outcome.ts +59 -0
  866. package/src/agents/approvals.ts +566 -0
  867. package/src/agents/authority.ts +24 -1
  868. package/src/agents/builders.ts +5 -3
  869. package/src/agents/cancel.ts +103 -0
  870. package/src/agents/child-question.ts +46 -0
  871. package/src/agents/children.ts +404 -0
  872. package/src/agents/context-compaction.ts +12 -0
  873. package/src/agents/errors.ts +31 -0
  874. package/src/agents/execution.ts +788 -90
  875. package/src/agents/fork.ts +158 -0
  876. package/src/agents/ids.ts +18 -6
  877. package/src/agents/index.ts +55 -0
  878. package/src/agents/memory-execution.ts +186 -0
  879. package/src/agents/memory.ts +178 -0
  880. package/src/agents/message.ts +57 -0
  881. package/src/agents/model-loop.ts +93 -6
  882. package/src/agents/model-routing.ts +193 -0
  883. package/src/agents/participants.ts +213 -0
  884. package/src/agents/reference.ts +2 -0
  885. package/src/agents/request.ts +398 -69
  886. package/src/agents/run-scope.ts +134 -0
  887. package/src/agents/streams/index.ts +5 -0
  888. package/src/agents/streams/internal.ts +1 -0
  889. package/src/agents/streams/protocol.ts +385 -7
  890. package/src/agents/subagent-runs.ts +41 -0
  891. package/src/agents/thread-access.ts +137 -0
  892. package/src/agents/tool-definition.ts +5 -3
  893. package/src/agents/types.ts +35 -10
  894. package/src/agents/validation.ts +2 -0
  895. package/src/artifacts/access.ts +125 -0
  896. package/src/artifacts/canvas.ts +369 -0
  897. package/src/artifacts/csv.ts +10 -0
  898. package/src/artifacts/errors.ts +12 -1
  899. package/src/artifacts/execution.ts +436 -36
  900. package/src/artifacts/formula/check.ts +171 -0
  901. package/src/artifacts/formula/evaluate.ts +288 -0
  902. package/src/artifacts/formula/index.ts +199 -0
  903. package/src/artifacts/formula/parser.ts +357 -0
  904. package/src/artifacts/frames/assets.ts +35 -19
  905. package/src/artifacts/frames/entries.ts +35 -0
  906. package/src/artifacts/frames/grants.ts +10 -9
  907. package/src/artifacts/frames/index.ts +8 -2
  908. package/src/artifacts/frames/kit.ts +191 -14
  909. package/src/artifacts/frames/probe.ts +66 -18
  910. package/src/artifacts/frames/protocol.ts +164 -10
  911. package/src/artifacts/frames/runtime.ts +273 -28
  912. package/src/artifacts/index.ts +66 -2
  913. package/src/artifacts/kinds.ts +1 -1
  914. package/src/artifacts/limits.ts +31 -0
  915. package/src/artifacts/live-sheet.ts +345 -0
  916. package/src/artifacts/outline.ts +34 -1
  917. package/src/artifacts/publish/index.ts +2 -0
  918. package/src/artifacts/publish/publish.ts +120 -34
  919. package/src/artifacts/publish/queries.ts +336 -0
  920. package/src/artifacts/publish/references.ts +18 -13
  921. package/src/artifacts/publish/validate/canvas.ts +118 -0
  922. package/src/artifacts/publish/validate/html.ts +78 -0
  923. package/src/artifacts/publish/validate/page.ts +65 -0
  924. package/src/artifacts/publish/validate/sheet.ts +115 -69
  925. package/src/artifacts/publish/validate/slides.ts +11 -63
  926. package/src/artifacts/queries.ts +512 -0
  927. package/src/artifacts/resolve.ts +20 -5
  928. package/src/artifacts/run-query.ts +212 -0
  929. package/src/artifacts/serialize-query.ts +25 -0
  930. package/src/artifacts/sheet-rules.ts +180 -0
  931. package/src/artifacts/tones.ts +20 -0
  932. package/src/artifacts/workbook.ts +374 -15
  933. package/src/auth/index.ts +4 -0
  934. package/src/auth/member-events.ts +114 -0
  935. package/src/auth/profile.ts +118 -0
  936. package/src/auth/runtime.ts +190 -9
  937. package/src/auth/strategy.ts +3 -0
  938. package/src/auth/types.ts +32 -0
  939. package/src/authorization/decision.ts +47 -0
  940. package/src/authorization/event-visibility.ts +17 -16
  941. package/src/authorization/grant-kinds.ts +32 -0
  942. package/src/authorization/index.ts +6 -1
  943. package/src/authorization/resolve.ts +58 -1
  944. package/src/authorization/run-visibility.ts +8 -1
  945. package/src/authorization/types.ts +14 -0
  946. package/src/errors/catalog.ts +26 -1
  947. package/src/errors/internal.ts +17 -8
  948. package/src/events/definitions.ts +26 -0
  949. package/src/events/execution.ts +43 -6
  950. package/src/events/index.ts +10 -1
  951. package/src/events/scope.ts +2 -0
  952. package/src/events/selectors/builder.ts +50 -0
  953. package/src/events/selectors/index.ts +4 -0
  954. package/src/events/selectors/types.ts +32 -1
  955. package/src/events/service.ts +55 -2
  956. package/src/events/types/index.ts +10 -0
  957. package/src/events/types/users.ts +73 -0
  958. package/src/events/view-conditions.ts +241 -0
  959. package/src/execution/agent.ts +25 -0
  960. package/src/execution/authorization.ts +70 -0
  961. package/src/execution/authorized-object-reader.ts +238 -32
  962. package/src/execution/lineage.ts +14 -0
  963. package/src/execution/object-reader-ontology.ts +11 -14
  964. package/src/execution/object-reader-security.ts +134 -10
  965. package/src/execution/object-reader-users.ts +122 -0
  966. package/src/execution/preparation.ts +78 -0
  967. package/src/execution/request.ts +2 -0
  968. package/src/execution/unique-lookup.ts +55 -0
  969. package/src/execution/visible-objects.ts +26 -0
  970. package/src/http/api-routes.ts +206 -7
  971. package/src/index.ts +99 -2
  972. package/src/materialization/errors.ts +37 -0
  973. package/src/materialization/event-envelopes.ts +11 -3
  974. package/src/materialization/index.ts +1 -0
  975. package/src/materialization/model.ts +24 -4
  976. package/src/materializer/README.md +7 -1
  977. package/src/materializer/edits/commit.ts +56 -12
  978. package/src/materializer/edits/load-state.ts +15 -7
  979. package/src/materializer/edits/operations.ts +12 -0
  980. package/src/materializer/edits/plan.ts +2 -0
  981. package/src/materializer/edits/unique-values.ts +255 -0
  982. package/src/materializer/edits/working-state.ts +8 -1
  983. package/src/materializer/execution/work-records.ts +47 -0
  984. package/src/materializer/projections/finish-run.ts +0 -1
  985. package/src/materializer/projections/replace.ts +1 -1
  986. package/src/materializer/projections/replacement-plan.ts +4 -1
  987. package/src/materializer/projections/source-materialization.ts +2 -1
  988. package/src/materializer/shared/normalize.ts +37 -6
  989. package/src/materializer/shared/projection-run.ts +1 -2
  990. package/src/materializer/telemetry/append.ts +14 -17
  991. package/src/materializer/telemetry/plan.ts +2 -0
  992. package/src/models/audio/catalog.ts +89 -10
  993. package/src/models/audio/errors.ts +18 -1
  994. package/src/models/audio/runtime.ts +10 -13
  995. package/src/models/audio/speech.ts +261 -0
  996. package/src/models/audio/types.ts +97 -0
  997. package/src/models/calls.ts +100 -0
  998. package/src/models/catalog-index.ts +21 -2
  999. package/src/models/catalog.ts +211 -35
  1000. package/src/models/decision/runtime.ts +21 -22
  1001. package/src/models/decision/validation.ts +4 -1
  1002. package/src/models/definitions.ts +57 -8
  1003. package/src/models/events.ts +72 -1
  1004. package/src/models/execution/README.md +34 -5
  1005. package/src/models/execution/binding.ts +3 -1
  1006. package/src/models/execution/embedding.ts +1 -0
  1007. package/src/models/execution/index.ts +5 -0
  1008. package/src/models/execution/model-call-accounting.ts +3 -1
  1009. package/src/models/execution/model-call-recorder.ts +29 -1
  1010. package/src/models/execution/usage.ts +8 -0
  1011. package/src/models/execution.ts +20 -22
  1012. package/src/models/generation-types.ts +8 -1
  1013. package/src/models/image/catalog.ts +89 -0
  1014. package/src/models/image/errors.ts +19 -0
  1015. package/src/models/image/runtime.ts +335 -0
  1016. package/src/models/image/types.ts +111 -0
  1017. package/src/models/index.ts +38 -4
  1018. package/src/models/{audio/file.ts → input-file.ts} +22 -13
  1019. package/src/models/language-model.ts +13 -0
  1020. package/src/models/pricing.ts +263 -42
  1021. package/src/models/rate-card.ts +161 -12
  1022. package/src/objects/authorized-ontology-view.ts +1 -0
  1023. package/src/objects/conditional-writes.ts +109 -0
  1024. package/src/objects/execution.ts +4 -0
  1025. package/src/objects/index.ts +8 -0
  1026. package/src/objects/link/authorization.ts +12 -3
  1027. package/src/objects/link/endpoints.ts +42 -11
  1028. package/src/objects/link/remove.ts +25 -10
  1029. package/src/objects/link/upsert-batch.ts +2 -0
  1030. package/src/objects/link/upsert.ts +18 -12
  1031. package/src/objects/materializer-adapter.ts +55 -18
  1032. package/src/objects/object/delete.ts +24 -7
  1033. package/src/objects/object/upsert-batch.ts +44 -14
  1034. package/src/objects/object/upsert.ts +23 -5
  1035. package/src/objects/query/current-user.ts +76 -0
  1036. package/src/objects/query/executor.ts +39 -103
  1037. package/src/objects/query/explain.ts +20 -7
  1038. package/src/objects/query/index.ts +2 -0
  1039. package/src/objects/query/ir.ts +20 -0
  1040. package/src/objects/query/links.ts +8 -0
  1041. package/src/objects/query/matches-predicate.ts +108 -0
  1042. package/src/objects/query/normalize.ts +50 -19
  1043. package/src/objects/query/scalar-values.ts +19 -3
  1044. package/src/objects/query/user-expansions.ts +65 -0
  1045. package/src/objects/query/validate.ts +248 -10
  1046. package/src/objects/runtime-batch.ts +8 -2
  1047. package/src/objects/sdk/object-set.ts +12 -1
  1048. package/src/objects/sdk/query-builder.ts +39 -8
  1049. package/src/objects/sdk/query-executor.ts +6 -0
  1050. package/src/objects/serialize.ts +79 -0
  1051. package/src/objects/unique-violation.ts +59 -0
  1052. package/src/objects/vectors/handle.ts +3 -3
  1053. package/src/ontology/builders.ts +3 -0
  1054. package/src/ontology/docs-markdown.ts +1 -0
  1055. package/src/ontology/index.ts +2 -2
  1056. package/src/ontology/json-schema.ts +4 -0
  1057. package/src/ontology/primitives.ts +21 -8
  1058. package/src/ontology/registry.ts +16 -0
  1059. package/src/ontology/types.ts +9 -0
  1060. package/src/ontology/unique-values.ts +84 -0
  1061. package/src/ontology/user-ref.ts +39 -0
  1062. package/src/ontology/validation/properties.ts +43 -0
  1063. package/src/ontology/validation/schema.ts +9 -1
  1064. package/src/projections/registry.ts +16 -10
  1065. package/src/projections/revision.ts +112 -45
  1066. package/src/projections/run-dispatch.ts +38 -25
  1067. package/src/projections/types.ts +2 -0
  1068. package/src/query.ts +5 -0
  1069. package/src/rules/execution.ts +43 -11
  1070. package/src/runtime/ai-cost.ts +30 -0
  1071. package/src/runtime/ai-usage.ts +32 -1
  1072. package/src/runtime/host.ts +18 -1
  1073. package/src/runtime/index.ts +2 -0
  1074. package/src/runtime/resolve-definitions.ts +3 -0
  1075. package/src/runtime/sixb.ts +35 -8
  1076. package/src/runtime/types.ts +99 -9
  1077. package/src/schedules/builders.ts +3 -1
  1078. package/src/schedules/runtime.ts +6 -0
  1079. package/src/schedules/validation.ts +23 -1
  1080. package/src/security/README.md +62 -0
  1081. package/src/security/grants.ts +155 -10
  1082. package/src/security/index.ts +3 -1
  1083. package/src/security/project.ts +6 -1
  1084. package/src/security/registry.ts +32 -7
  1085. package/src/security/types.ts +54 -9
  1086. package/src/security/validation.ts +27 -11
  1087. package/src/security/view-conditions.ts +215 -0
  1088. package/src/shares/execution.ts +43 -10
  1089. package/src/storage/action-runs/types.ts +2 -0
  1090. package/src/storage/agents/errors.ts +3 -0
  1091. package/src/storage/agents/in-memory.ts +779 -32
  1092. package/src/storage/agents/index.ts +42 -0
  1093. package/src/storage/agents/provider.ts +733 -8
  1094. package/src/storage/agents/types.ts +620 -12
  1095. package/src/storage/ai-cost/analytics.ts +60 -7
  1096. package/src/storage/ai-cost/codec.ts +6 -1
  1097. package/src/storage/ai-cost/groups.ts +44 -1
  1098. package/src/storage/ai-cost/index.ts +1 -0
  1099. package/src/storage/ai-cost/provider.ts +2 -0
  1100. package/src/storage/ai-cost/types.ts +18 -1
  1101. package/src/storage/ai-cost/validation.ts +39 -12
  1102. package/src/storage/ai-limits/provider.ts +4 -7
  1103. package/src/storage/ai-usage/in-memory.ts +28 -1
  1104. package/src/storage/ai-usage/index.ts +9 -1
  1105. package/src/storage/ai-usage/record.ts +44 -7
  1106. package/src/storage/ai-usage/types.ts +38 -0
  1107. package/src/storage/ai-usage/usage.ts +15 -1
  1108. package/src/storage/artifacts/errors.ts +13 -1
  1109. package/src/storage/artifacts/in-memory.ts +156 -8
  1110. package/src/storage/artifacts/index.ts +6 -1
  1111. package/src/storage/artifacts/record.ts +61 -1
  1112. package/src/storage/artifacts/types.ts +92 -8
  1113. package/src/storage/auth/in-memory/auth-storage.ts +27 -2
  1114. package/src/storage/auth/in-memory/users.ts +40 -6
  1115. package/src/storage/auth/index.ts +1 -0
  1116. package/src/storage/auth/types.ts +43 -7
  1117. package/src/storage/executions/in-memory.ts +32 -0
  1118. package/src/storage/executions/index.ts +2 -0
  1119. package/src/storage/executions/types.ts +17 -0
  1120. package/src/storage/index.ts +69 -1
  1121. package/src/storage/internal.ts +9 -1
  1122. package/src/storage/migrations/migrate-storage.ts +8 -1
  1123. package/src/storage/migrations/prepare-unique-properties.ts +161 -0
  1124. package/src/storage/objects/guard.ts +7 -3
  1125. package/src/storage/objects/in-memory/conditional-reader.ts +72 -0
  1126. package/src/storage/objects/in-memory/query.ts +4 -105
  1127. package/src/storage/objects/in-memory/read-scope.ts +15 -14
  1128. package/src/storage/objects/in-memory/read-source.ts +11 -1
  1129. package/src/storage/objects/in-memory/scoped-reader.ts +243 -0
  1130. package/src/storage/objects/in-memory/selected-reader.ts +6 -231
  1131. package/src/storage/objects/in-memory/storage.ts +183 -1
  1132. package/src/storage/objects/index.ts +9 -1
  1133. package/src/storage/objects/read-scope.ts +191 -0
  1134. package/src/storage/objects/types.ts +68 -1
  1135. package/src/storage/ontology/in-memory/index.ts +3 -0
  1136. package/src/storage/ontology/in-memory/materializations.ts +35 -0
  1137. package/src/storage/ontology/in-memory/replacement-plans.ts +4 -0
  1138. package/src/storage/ontology/in-memory/unique-values.ts +62 -0
  1139. package/src/storage/ontology/index.ts +10 -0
  1140. package/src/storage/ontology/materializations.ts +35 -1
  1141. package/src/storage/ontology/provider-work.ts +76 -0
  1142. package/src/storage/ontology/provider.ts +3 -0
  1143. package/src/storage/ontology/unique-values.ts +56 -0
  1144. package/src/storage/operation-scope.ts +9 -1
  1145. package/src/storage/projection-runs/in-memory.ts +3 -35
  1146. package/src/storage/types.ts +2 -0
  1147. package/src/testing/agent-approval-storage-contract.ts +1117 -0
  1148. package/src/testing/agent-memory-storage-contract.ts +400 -0
  1149. package/src/testing/agent-storage-contract.ts +1188 -33
  1150. package/src/testing/ai-cost-storage-contract.ts +31 -1
  1151. package/src/testing/ai-limit-storage-contract.ts +9 -7
  1152. package/src/testing/ai-model-call-groups-contract.ts +76 -0
  1153. package/src/testing/ai-usage-storage-contract.ts +120 -13
  1154. package/src/testing/artifact-storage-contract.ts +338 -4
  1155. package/src/testing/auth-storage-contract.ts +550 -73
  1156. package/src/testing/broker-contract.ts +28 -23
  1157. package/src/testing/effective-storage-contract.ts +3 -8
  1158. package/src/testing/execution-storage-contract.ts +53 -0
  1159. package/src/testing/file-upload-session-storage-contract.ts +12 -24
  1160. package/src/testing/index.ts +17 -4
  1161. package/src/testing/lake-storage-contract.ts +22 -28
  1162. package/src/testing/materializer-storage-contract.ts +36 -9
  1163. package/src/testing/object-conditional-read-scope-contract.ts +634 -0
  1164. package/src/testing/object-query-contract.ts +386 -186
  1165. package/src/testing/ontology-storage-contract.ts +230 -21
  1166. package/src/testing/projection-run-storage-contract.ts +8 -18
  1167. package/src/testing/queues-contract.ts +39 -70
  1168. package/src/testing/sandboxes-contract.ts +3 -14
  1169. package/src/testing/share-grant-storage-contract.ts +13 -16
  1170. package/src/testing/share-session-storage-contract.ts +4 -14
  1171. package/src/testing/unique-values-contract.ts +907 -0
  1172. package/src/testing/webhook-execution.ts +1 -1
  1173. package/src/testing/webhook-run-storage-contract.ts +6 -9
  1174. package/src/users/execution.ts +131 -0
  1175. package/src/users/index.ts +2 -0
  1176. package/src/workers/queue-worker.ts +1 -3
  1177. package/src/workers/worker.ts +1 -3
  1178. package/src/workflows/builders.ts +6 -0
  1179. package/src/workflows/request.ts +46 -8
  1180. package/src/workflows/types.ts +6 -2
  1181. package/src/workflows/validation.ts +23 -9
  1182. package/dist/chunk-29yx306f.js.map +0 -22
  1183. package/dist/chunk-3jms7je7.js +0 -14
  1184. package/dist/chunk-3jms7je7.js.map +0 -10
  1185. package/dist/chunk-3qct2mdc.js +0 -297
  1186. package/dist/chunk-3qct2mdc.js.map +0 -12
  1187. package/dist/chunk-48qjhh6v.js.map +0 -13
  1188. package/dist/chunk-4as3wt1c.js.map +0 -12
  1189. package/dist/chunk-5948n82c.js.map +0 -10
  1190. package/dist/chunk-5hx48dnn.js.map +0 -14
  1191. package/dist/chunk-6rqgmkde.js.map +0 -29
  1192. package/dist/chunk-6x0pqh32.js.map +0 -10
  1193. package/dist/chunk-7n30ybym.js +0 -3
  1194. package/dist/chunk-7n440zgt.js +0 -261
  1195. package/dist/chunk-7n440zgt.js.map +0 -12
  1196. package/dist/chunk-7q8t23v4.js +0 -467
  1197. package/dist/chunk-7q8t23v4.js.map +0 -14
  1198. package/dist/chunk-8frc8a4j.js.map +0 -20
  1199. package/dist/chunk-918wwnaa.js.map +0 -68
  1200. package/dist/chunk-91mg3nj9.js.map +0 -12
  1201. package/dist/chunk-96yw3pwd.js.map +0 -10
  1202. package/dist/chunk-9j4jw7as.js.map +0 -14
  1203. package/dist/chunk-9k93ah50.js.map +0 -11
  1204. package/dist/chunk-9kgkfg6v.js +0 -502
  1205. package/dist/chunk-9kgkfg6v.js.map +0 -14
  1206. package/dist/chunk-akzryx9h.js.map +0 -100
  1207. package/dist/chunk-arns890k.js.map +0 -10
  1208. package/dist/chunk-bk9svbcq.js.map +0 -49
  1209. package/dist/chunk-c06hmxyy.js +0 -31
  1210. package/dist/chunk-c06hmxyy.js.map +0 -10
  1211. package/dist/chunk-c1rxbz5y.js.map +0 -12
  1212. package/dist/chunk-cn0fwwhy.js.map +0 -19
  1213. package/dist/chunk-dhcv7yxc.js.map +0 -11
  1214. package/dist/chunk-dhdha526.js.map +0 -10
  1215. package/dist/chunk-dvd2fp9q.js.map +0 -13
  1216. package/dist/chunk-e6k4thh5.js.map +0 -19
  1217. package/dist/chunk-ere85b8y.js.map +0 -15
  1218. package/dist/chunk-g257jwnc.js.map +0 -12
  1219. package/dist/chunk-hwksyjks.js.map +0 -11
  1220. package/dist/chunk-k43ct2ke.js.map +0 -12
  1221. package/dist/chunk-nn5xnx3s.js.map +0 -40
  1222. package/dist/chunk-pbcbn83d.js.map +0 -14
  1223. package/dist/chunk-pqajwytd.js +0 -68
  1224. package/dist/chunk-pqajwytd.js.map +0 -11
  1225. package/dist/chunk-qczk96d9.js.map +0 -11
  1226. package/dist/chunk-rdghfsss.js +0 -39
  1227. package/dist/chunk-rdghfsss.js.map +0 -10
  1228. package/dist/chunk-rj69qcrd.js.map +0 -11
  1229. package/dist/chunk-v4jbb3rs.js.map +0 -10
  1230. package/dist/chunk-yxd3nnqt.js.map +0 -11
  1231. package/dist/events/toStoredEvent.d.ts +0 -9
  1232. package/dist/events/toStoredEvent.d.ts.map +0 -1
  1233. package/dist/models/audio/file.d.ts +0 -9
  1234. package/dist/models/audio/file.d.ts.map +0 -1
  1235. package/src/events/toStoredEvent.ts +0 -33
  1236. /package/dist/{chunk-mfs23znk.js.map → chunk-07kkp2e1.js.map} +0 -0
  1237. /package/dist/{chunk-z58tm0hm.js.map → chunk-0phpbbvm.js.map} +0 -0
  1238. /package/dist/{chunk-e17zdm62.js.map → chunk-1t6k1avb.js.map} +0 -0
  1239. /package/dist/{chunk-kge7k6ey.js.map → chunk-2fn60nvs.js.map} +0 -0
  1240. /package/dist/{chunk-y0c4e6ex.js.map → chunk-3gbefjg5.js.map} +0 -0
  1241. /package/dist/{chunk-cy4mbddw.js.map → chunk-48jezz3j.js.map} +0 -0
  1242. /package/dist/{chunk-twe4dx8p.js → chunk-5tfev0fv.js} +0 -0
  1243. /package/dist/{chunk-twe4dx8p.js.map → chunk-5tfev0fv.js.map} +0 -0
  1244. /package/dist/{chunk-447a5c0p.js.map → chunk-6n69k945.js.map} +0 -0
  1245. /package/dist/{chunk-0bphap9y.js.map → chunk-6p0pastb.js.map} +0 -0
  1246. /package/dist/{chunk-431pyp2c.js.map → chunk-6y0mkhex.js.map} +0 -0
  1247. /package/dist/{chunk-s7jg7pmn.js.map → chunk-bab05bhg.js.map} +0 -0
  1248. /package/dist/{chunk-q5e5tv4b.js.map → chunk-c844dkwd.js.map} +0 -0
  1249. /package/dist/{chunk-cfj9dfbb.js.map → chunk-d2m879s4.js.map} +0 -0
  1250. /package/dist/{chunk-q7gn29y3.js.map → chunk-dp0cdtj2.js.map} +0 -0
  1251. /package/dist/{chunk-br3k6qbf.js.map → chunk-fm62y49k.js.map} +0 -0
  1252. /package/dist/{chunk-vvxtn22d.js.map → chunk-g663fahq.js.map} +0 -0
  1253. /package/dist/{chunk-rmakanzx.js.map → chunk-h33shhq6.js.map} +0 -0
  1254. /package/dist/{chunk-d09e3rax.js.map → chunk-hwarjrgf.js.map} +0 -0
  1255. /package/dist/{chunk-vf57cr4t.js.map → chunk-hyesv9dv.js.map} +0 -0
  1256. /package/dist/{chunk-5vems3nx.js.map → chunk-m2nevja0.js.map} +0 -0
  1257. /package/dist/{chunk-x9v4cx1d.js.map → chunk-m36fw8ft.js.map} +0 -0
  1258. /package/dist/{chunk-a40ad1ft.js.map → chunk-mbsbxarb.js.map} +0 -0
  1259. /package/dist/{chunk-6aawea28.js.map → chunk-n8q5j6y5.js.map} +0 -0
  1260. /package/dist/{chunk-d7dnxdep.js.map → chunk-n9zpx9c6.js.map} +0 -0
  1261. /package/dist/{chunk-xvsc5m8n.js.map → chunk-npcr0228.js.map} +0 -0
  1262. /package/dist/{chunk-y5tah2kf.js.map → chunk-q4pmvkg0.js.map} +0 -0
  1263. /package/dist/{chunk-d5rjr8c0.js.map → chunk-vabga7fk.js.map} +0 -0
@@ -2,33 +2,43 @@
2
2
  import {
3
3
  MAX_OBJECT_READ_FACETS2,
4
4
  assertObjectReadOutputWithinLimit2,
5
- getAuthorizationRef,
6
5
  captureExecutionScope,
7
6
  resolveExecutionScopeAuthorization,
8
7
  AuthorizationError2,
9
8
  isAllowed2,
10
9
  assertAuthorized2,
11
- canViewActionRun2,
12
- canViewWorkflowRun2
13
- } from "./chunk-6vb4st8k.js";
10
+ isRuntimeAllowed2,
11
+ assertRuntimeAuthorizationBound2
12
+ } from "./chunk-yc9ners4.js";
14
13
  import {
15
- unreadableError,
16
- resolvePropertyClearance
17
- } from "./chunk-9j4jw7as.js";
14
+ isUserRef,
15
+ isUserRefPropertySchema
16
+ } from "./chunk-4y26vs3v.js";
18
17
  import {
19
- objectBatchKey2
20
- } from "./chunk-918wwnaa.js";
18
+ compileConditionalObjectReadScope2
19
+ } from "./chunk-rap5w0x0.js";
21
20
  import {
22
- ACTIVITY_MIN_IDLE_TIMEOUT_MS,
23
- ACTIVITY_MAX_VISIT_MS2
24
- } from "./chunk-tbc1ngpd.js";
21
+ validateSchemaValue2,
22
+ normalizeSchemaValue2,
23
+ uniqueValueKind,
24
+ uniqueValueKey
25
+ } from "./chunk-65pyhyas.js";
25
26
  import {
26
- snapshotVectorProfiles
27
- } from "./chunk-g257jwnc.js";
27
+ unreadableError,
28
+ resolvePropertyClearance
29
+ } from "./chunk-6rrtzea3.js";
28
30
  import {
31
+ bindCurrentUserPredicate,
29
32
  composeObjectQueryAdmissions,
30
33
  validateObjectQuery2,
31
34
  validateObjectQueryWithAdmission,
35
+ toUserProfile
36
+ } from "./chunk-h3pbv7n8.js";
37
+ import {
38
+ snapshotVectorProfiles
39
+ } from "./chunk-cdk3egjj.js";
40
+ import {
41
+ userExpansionPlan,
32
42
  executeObjectQuery2,
33
43
  countObjects2,
34
44
  existsObjects2,
@@ -36,241 +46,21 @@ import {
36
46
  validateObjectFacetRequests,
37
47
  preflightObjectQueryLinks,
38
48
  executeObjectQueryLinks2
39
- } from "./chunk-cn0fwwhy.js";
40
- import {
41
- executionRecordInputFromRuntime,
42
- ensureExecutionRecord2
43
- } from "./chunk-vf57cr4t.js";
44
- import {
45
- requireAccountingCapabilities,
46
- createAiModelCallLimitController2,
47
- AiModelCallRecorder2,
48
- enqueueAiModelCallRecovery2
49
- } from "./chunk-1cc1xaf3.js";
50
- import {
51
- ObjectQueryValidationError2
52
- } from "./chunk-91mg3nj9.js";
53
- import {
54
- findPrimitiveParentRequestExecution
55
- } from "./chunk-ey1nk510.js";
49
+ } from "./chunk-efmm01gj.js";
56
50
  import {
57
51
  createPropertyTokenMap2,
58
52
  createLinkTokenMap2
59
- } from "./chunk-rdghfsss.js";
53
+ } from "./chunk-16a9dmfy.js";
54
+ import {
55
+ ObjectQueryValidationError2,
56
+ normalizeObjectQuery2
57
+ } from "./chunk-j936th07.js";
60
58
  import {
61
59
  OntologyValidationError2,
62
60
  OntologyNotFoundError2,
63
61
  formatUnknownObjectTypeMessage
64
62
  } from "./chunk-cqr3acm1.js";
65
63
 
66
- // src/runtime/ontology-mutations.ts
67
- var ontologyMutationRuntimeKey = Symbol("sixb.ontologyMutationRuntime");
68
- function registerOntologyMutationRuntime2(owner, runtime) {
69
- const registered = owner[ontologyMutationRuntimeKey];
70
- if (registered && registered !== runtime) {
71
- throw new Error("[Sixb] Ontology mutation runtime is already registered for this owner.");
72
- }
73
- Object.defineProperty(owner, ontologyMutationRuntimeKey, {
74
- configurable: false,
75
- enumerable: true,
76
- value: runtime,
77
- writable: false
78
- });
79
- }
80
- function getOntologyMutationRuntime2(owner) {
81
- const runtime = owner[ontologyMutationRuntimeKey];
82
- if (runtime)
83
- return runtime;
84
- throw new Error("[Sixb] Ontology mutation runtime is not registered for this runtime context.");
85
- }
86
- function shareOntologyMutationRuntime2(source, target) {
87
- registerOntologyMutationRuntime2(target, getOntologyMutationRuntime2(source));
88
- }
89
- function createOntologyMutationRuntime2(input) {
90
- const applied = (work) => work.finally(() => notifyWithoutAffecting(input.onProjectionApplied));
91
- const runtime = {
92
- getProjectionSource: (source) => input.materializer.projections.getActive(source),
93
- commitEdits: (command) => commitAndNotify(() => input.materializer.edits.commit(command), input.notifyCommittedFacts),
94
- replaceProjection: (command) => applied(commitAndNotify(() => input.materializer.projections.replace(command), input.notifyCommittedFacts)),
95
- finishProjection: (command) => applied(input.materializer.projections.finishRun(command)),
96
- appendTelemetry: (command) => commitAndNotify(() => input.materializer.telemetry.append(command), input.notifyCommittedFacts)
97
- };
98
- return Object.freeze(runtime);
99
- }
100
- async function commitAndNotify(commit, notify) {
101
- const result = await commit();
102
- if (result.eventCount > 0)
103
- notifyWithoutAffectingCommit(notify);
104
- return result;
105
- }
106
- function notifyWithoutAffectingCommit(notify) {
107
- try {
108
- notify();
109
- } catch (error) {
110
- console.error("[Sixb] Failed to wake the ontology outbox dispatcher:", error);
111
- }
112
- }
113
- function notifyWithoutAffecting(notify) {
114
- try {
115
- notify?.();
116
- } catch (error) {
117
- console.error("[Sixb] Failed to report an applied projection:", error);
118
- }
119
- }
120
-
121
- // src/activity/device.ts
122
- var BROWSERS = [
123
- [/\bEdg(?:e|A|iOS)?\//, "Edge"],
124
- [/\b(?:OPR|Opera)\//, "Opera"],
125
- [/\bSamsungBrowser\//, "Samsung Internet"],
126
- [/\b(?:Firefox|FxiOS)\//, "Firefox"],
127
- [/\b(?:Chrome|Chromium|CriOS|HeadlessChrome)\//, "Chrome"],
128
- [/\bVersion\/[\d.]+.*\bSafari\//, "Safari"]
129
- ];
130
- var SYSTEMS = [
131
- [/\bWindows\b/, "Windows"],
132
- [/\biPad\b/, "iPadOS"],
133
- [/\b(?:iPhone|iPod)\b/, "iOS"],
134
- [/\bAndroid\b/, "Android"],
135
- [/\bCrOS\b/, "ChromeOS"],
136
- [/\bMac OS X\b|\bMacintosh\b/, "macOS"],
137
- [/\bLinux\b/, "Linux"]
138
- ];
139
- function describeUserAgent(userAgent) {
140
- if (!userAgent) {
141
- return {};
142
- }
143
- const browser = BROWSERS.find(([pattern]) => pattern.test(userAgent))?.[1];
144
- const os = SYSTEMS.find(([pattern]) => pattern.test(userAgent))?.[1];
145
- return {
146
- ...browser === undefined ? {} : { browser },
147
- ...os === undefined ? {} : { os }
148
- };
149
- }
150
-
151
- // src/activity/connection.ts
152
- async function readActivityConnections(runtime, service, query, now) {
153
- const { userId, limit, before } = service.connectionsQuery(query);
154
- const sessions = runtime.storage.auth?.sessions;
155
- if (!sessions) {
156
- return { connections: [] };
157
- }
158
- const page = await sessions.listByUserId({
159
- projectId: runtime.projectId,
160
- userId,
161
- limit,
162
- ...before === undefined ? {} : { before }
163
- });
164
- const visits = await service.sessionVisits({
165
- userId,
166
- sessionIds: page.sessions.map((session) => session.id)
167
- });
168
- const bySession = new Map(visits.map((entry) => [entry.sessionId, entry]));
169
- const connections = page.sessions.map((session) => ({
170
- ...sessionConnection(session, now),
171
- visits: bySession.get(session.id)?.visits ?? 0,
172
- latestVisits: bySession.get(session.id)?.latest ?? []
173
- }));
174
- const last = page.sessions.at(-1);
175
- return {
176
- connections,
177
- ...page.hasMore && last ? { nextCursor: nextConnectionsCursor(page.sessions, last, before) } : {}
178
- };
179
- }
180
- function nextConnectionsCursor(sessions, last, before) {
181
- const { createdAt } = last;
182
- const tied = sessions.filter((session) => session.createdAt.getTime() === createdAt.getTime());
183
- const earlier = before && before.createdAt.getTime() === createdAt.getTime() ? before.skip : 0;
184
- return encodeActivityConnectionsCursor({ createdAt, skip: earlier + tied.length });
185
- }
186
- function encodeActivityConnectionsCursor(cursor) {
187
- return Buffer.from(JSON.stringify([cursor.createdAt.toISOString(), cursor.skip])).toString("base64url");
188
- }
189
- function decodeActivityConnectionsCursor(value) {
190
- try {
191
- const parsed = JSON.parse(Buffer.from(value, "base64url").toString("utf8"));
192
- if (Array.isArray(parsed) && parsed.length === 2) {
193
- const [at, skip] = parsed;
194
- const createdAt = new Date(typeof at === "string" ? at : Number.NaN);
195
- if (Number.isFinite(createdAt.getTime()) && Number.isSafeInteger(skip) && skip >= 0) {
196
- return { createdAt, skip };
197
- }
198
- }
199
- } catch {}
200
- throw new Error("[Sixb] Invalid activity connections cursor.");
201
- }
202
- async function readActivityConnection(runtime, page, grant, now) {
203
- const { storage, projectId } = runtime;
204
- const { actor } = page.visit;
205
- if (actor.type === "user") {
206
- const session = await storage.auth?.sessions.getById({ projectId, id: page.sessionId });
207
- return session ? sessionConnection(session, now) : undefined;
208
- }
209
- const session = await storage.shareSessions?.getById({ projectId, id: page.sessionId });
210
- if (!session) {
211
- return;
212
- }
213
- const revokedAt = [session.revokedAt, grant?.revokedAt].flatMap((at) => at === undefined ? [] : [at.getTime()]).sort((left, right) => left - right)[0];
214
- const statuses = [
215
- connectionStatus(session, now),
216
- ...grant ? [connectionStatus(grant, now)] : []
217
- ];
218
- const status = statuses.includes("revoked") ? "revoked" : statuses.includes("expired") ? "expired" : "active";
219
- return {
220
- type: "share",
221
- grantId: actor.grantId,
222
- ...grant ? { definitionId: grant.definitionId } : {},
223
- status,
224
- createdAt: new Date(session.createdAt),
225
- ...revokedAt === undefined ? {} : { revokedAt: new Date(revokedAt) }
226
- };
227
- }
228
- function connectionStatus(session, now) {
229
- if (session.revokedAt) {
230
- return "revoked";
231
- }
232
- const expired = session.expiresAt <= now || session.absoluteExpiresAt !== undefined && session.absoluteExpiresAt <= now;
233
- return expired ? "expired" : "active";
234
- }
235
- function sessionConnection(session, now) {
236
- return {
237
- type: "session",
238
- device: describeUserAgent(session.userAgent),
239
- ...session.bearer === undefined ? {} : { clientName: session.bearer.clientName },
240
- status: connectionStatus(session, now),
241
- createdAt: new Date(session.createdAt),
242
- ...session.lastSeenAt === undefined ? {} : { lastSeenAt: new Date(session.lastSeenAt) },
243
- ...session.revokedAt === undefined ? {} : { revokedAt: new Date(session.revokedAt) }
244
- };
245
- }
246
-
247
- // src/activity/shares.ts
248
- async function nameSharedVisits(runtime, visits) {
249
- const grants = await readGrants(runtime, visits);
250
- return visits.map((visit) => withShare(visit, grants));
251
- }
252
- async function nameSharedVisit(runtime, visit) {
253
- const grants = await readGrants(runtime, [visit]);
254
- const grant = visit.actor.type === "share" ? grants.get(visit.actor.grantId) : undefined;
255
- return { visit: withShare(visit, grants), ...grant === undefined ? {} : { grant } };
256
- }
257
- async function readGrants(runtime, visits) {
258
- const ids = visits.flatMap((visit) => visit.actor.type === "share" ? [visit.actor.grantId] : []);
259
- if (ids.length === 0 || !runtime.storage.shareGrants) {
260
- return new Map;
261
- }
262
- const grants = await runtime.storage.shareGrants.getByIds({ projectId: runtime.projectId, ids });
263
- return new Map(grants.map((grant) => [grant.id, grant]));
264
- }
265
- function withShare(visit, grants) {
266
- const { actor } = visit;
267
- const grant = actor.type === "share" ? grants.get(actor.grantId) : undefined;
268
- if (actor.type !== "share" || grant === undefined) {
269
- return visit;
270
- }
271
- return { ...visit, actor: { ...actor, definitionId: grant.definitionId } };
272
- }
273
-
274
64
  // src/assert-never.ts
275
65
  function assertNever(_value, message) {
276
66
  throw new Error(message);
@@ -732,6 +522,7 @@ function snapshotProperty(property) {
732
522
  required: property.required,
733
523
  nullable: property.nullable,
734
524
  primary: property.primary,
525
+ unique: property.unique,
735
526
  mode: property.mode,
736
527
  semanticType: property.semanticType,
737
528
  query: snapshotPropertyQuery(property.query)
@@ -843,18 +634,18 @@ function unknownObjectType(objectTypeId) {
843
634
  // src/execution/object-reader-ontology.ts
844
635
  class ObjectReaderOntology {
845
636
  registry;
846
- #authority;
637
+ #security;
847
638
  #view;
848
- constructor(registry, authority) {
639
+ constructor(registry, security) {
849
640
  this.registry = registry;
850
- this.#authority = authority;
641
+ this.#security = security;
851
642
  Object.freeze(this);
852
643
  }
853
644
  view() {
854
- const authority = this.#authority;
645
+ const authority = this.#security.authority;
855
646
  this.#view ??= createAuthorizedOntologyView({
856
647
  ontology: this.registry,
857
- selection: selectionForAuthority(authority, this.registry),
648
+ selection: selectionForAuthority(this.#security, this.registry),
858
649
  ...authority.type === "delegated" ? {
859
650
  assertOutputWithinLimit: (value) => assertObjectReadOutputWithinLimit2(value, authority.objectRead.limits)
860
651
  } : {}
@@ -862,17 +653,15 @@ class ObjectReaderOntology {
862
653
  return this.#view;
863
654
  }
864
655
  }
865
- function selectionForAuthority(authority, ontology) {
656
+ function selectionForAuthority(security, ontology) {
657
+ const authority = security.authority;
866
658
  switch (authority.type) {
867
659
  case "unrestricted":
868
660
  return { kind: "all" };
869
661
  case "principal":
870
662
  return {
871
663
  kind: "types",
872
- objectTypeIds: ontology.listObjectTypes().filter((objectType) => isAllowed2(authority.context, {
873
- kind: "object.view",
874
- objectTypeId: objectType.id
875
- })).map((objectType) => objectType.id)
664
+ objectTypeIds: ontology.listObjectTypes().filter((objectType) => security.isObjectTypeGranted(objectType.id, undefined)).map((objectType) => objectType.id)
876
665
  };
877
666
  case "delegated":
878
667
  return { kind: "selected", scope: authority.objectRead.scope };
@@ -1062,10 +851,16 @@ class ObjectReaderSecurity {
1062
851
  runtime;
1063
852
  delegation;
1064
853
  clearance;
854
+ requestingUser;
855
+ conditionalScope;
856
+ #conditionProperties;
1065
857
  constructor(input) {
1066
858
  const authority = input.authority;
1067
859
  this.authorization = input.authorization;
1068
860
  this.authority = authority;
861
+ if (input.requestedBy?.type === "user") {
862
+ this.requestingUser = Object.freeze({ type: "user", id: input.requestedBy.id });
863
+ }
1069
864
  this.runtime = Object.freeze({
1070
865
  projectId: input.projectId,
1071
866
  runtimeAuthorization: input.authorization,
@@ -1079,6 +874,22 @@ class ObjectReaderSecurity {
1079
874
  queryAdmission: createSelectedObjectQueryAdmission(scope)
1080
875
  });
1081
876
  }
877
+ const conditions = authority.type === "principal" ? authority.context.viewConditions : undefined;
878
+ this.#conditionProperties = new Map([...conditions ?? []].map(([objectTypeId, predicates]) => [
879
+ objectTypeId,
880
+ [...new Set(predicates.flatMap(propertiesReadBy))]
881
+ ]));
882
+ if (authority.type === "principal" && conditions && conditions.size > 0) {
883
+ const principal = authority.context.principal;
884
+ const grantee = principal.type === "user" ? { type: "user", id: principal.id } : undefined;
885
+ this.conditionalScope = compileConditionalObjectReadScope2({
886
+ kind: "conditional",
887
+ conditions: [...conditions].map(([objectTypeId, predicates]) => ({
888
+ objectTypeId,
889
+ predicate: bindCurrentUserPredicate(anyOf(predicates), grantee)
890
+ }))
891
+ });
892
+ }
1082
893
  this.clearance = new ObjectReaderClearance({
1083
894
  ontology: input.ontology,
1084
895
  clearances: clearancesForAuthority(authority),
@@ -1094,9 +905,7 @@ class ObjectReaderSecurity {
1094
905
  throw new AuthorizationError2(`delegated:object.view:${objectTypeId}`, `[Sixb] Delegated authorization does not select object type '${objectTypeId}'.`);
1095
906
  }
1096
907
  } else {
1097
- for (const objectTypeId of new Set(objectTypeIds)) {
1098
- assertAuthorized2(this.runtime, { kind: "object.view", objectTypeId });
1099
- }
908
+ this.assertObjectTypesGranted(objectTypeIds, clearance);
1100
909
  }
1101
910
  if (!clearance)
1102
911
  return;
@@ -1106,19 +915,72 @@ class ObjectReaderSecurity {
1106
915
  throw unreadableError(unreadable);
1107
916
  }
1108
917
  }
1109
- isObjectTypeViewable(objectTypeId, clearance) {
1110
- if (clearance?.unreadableType(objectTypeId))
1111
- return false;
918
+ assertObjectTypesGranted(objectTypeIds, clearance) {
919
+ for (const objectTypeId of new Set(objectTypeIds)) {
920
+ if (!this.#conditionProperties.has(objectTypeId)) {
921
+ assertAuthorized2(this.runtime, { kind: "object.view", objectTypeId });
922
+ continue;
923
+ }
924
+ assertRuntimeAuthorizationBound2(this.runtime);
925
+ const unreadable = this.#unreadableCondition(objectTypeId, clearance);
926
+ if (unreadable)
927
+ throw unreadableError(unreadable);
928
+ }
929
+ }
930
+ viewsThroughCondition(objectTypeId) {
931
+ return this.#conditionProperties.has(objectTypeId);
932
+ }
933
+ isObjectTypeGranted(objectTypeId, clearance) {
1112
934
  if (this.delegation)
1113
935
  return this.delegation.objectTypeIds.has(objectTypeId);
936
+ if (this.#conditionProperties.has(objectTypeId)) {
937
+ return this.#unreadableCondition(objectTypeId, clearance) === undefined;
938
+ }
1114
939
  return isAllowed2(this.runtime.authorization, { kind: "object.view", objectTypeId });
1115
940
  }
941
+ isObjectTypeViewable(objectTypeId, clearance) {
942
+ if (clearance?.unreadableType(objectTypeId))
943
+ return false;
944
+ return this.isObjectTypeGranted(objectTypeId, clearance);
945
+ }
1116
946
  isLinkViewable(link, clearance) {
1117
947
  if (!this.isObjectTypeViewable(link.sourceTypeId, clearance) || !this.isObjectTypeViewable(link.targetTypeId, clearance) || clearance?.unreadableLink(link.sourceTypeId, link.linkId)) {
1118
948
  return false;
1119
949
  }
1120
950
  return this.delegation?.linkDefinitions.has(delegatedLinkDefinitionKey(link)) ?? true;
1121
951
  }
952
+ #unreadableCondition(objectTypeId, clearance) {
953
+ const propertyIds = this.#conditionProperties.get(objectTypeId);
954
+ return propertyIds && unreadableConditionOf(objectTypeId, propertyIds, clearance);
955
+ }
956
+ }
957
+ function unreadableConditionOf(objectTypeId, propertyIds, clearance) {
958
+ for (const propertyId of propertyIds) {
959
+ const marking = clearance?.missingMarking(objectTypeId, propertyId);
960
+ if (marking === undefined)
961
+ continue;
962
+ return {
963
+ marking,
964
+ message: `[Sixb] Cannot read '${objectTypeId}': the condition it is viewed through reads '${objectTypeId}.${propertyId}', which requires clearance for marking '${marking}'.`
965
+ };
966
+ }
967
+ return;
968
+ }
969
+ function propertiesReadBy(predicate) {
970
+ switch (predicate.op) {
971
+ case "and":
972
+ case "or":
973
+ return predicate.items.flatMap(propertiesReadBy);
974
+ case "not":
975
+ return propertiesReadBy(predicate.item);
976
+ case "constant":
977
+ return [];
978
+ default:
979
+ return [predicate.propertyId];
980
+ }
981
+ }
982
+ function anyOf(predicates) {
983
+ return predicates.length === 1 ? predicates[0] : { op: "or", items: predicates };
1122
984
  }
1123
985
  function clearancesForAuthority(authority) {
1124
986
  switch (authority.type) {
@@ -1134,6 +996,97 @@ function delegatedLinkDefinitionKey(input) {
1134
996
  return "sourceObjectTypeId" in input ? JSON.stringify([input.sourceObjectTypeId, input.linkId, input.targetObjectTypeId]) : JSON.stringify([input.sourceTypeId, input.linkId, input.targetTypeId]);
1135
997
  }
1136
998
 
999
+ // src/execution/object-reader-users.ts
1000
+ var LOOKUP_BATCH_SIZE = 500;
1001
+ async function attachUserProfiles(input) {
1002
+ const slots = [];
1003
+ collectSlots(input.rows, input.plan, input.ontology, slots);
1004
+ if (!input.canViewUsers)
1005
+ return;
1006
+ const records = await readUsers(input, slots);
1007
+ for (const slot of slots) {
1008
+ slot.users[slot.propertyId] = expandedValue(slot, records);
1009
+ }
1010
+ }
1011
+ function expandedValue(slot, records) {
1012
+ const profiles = slot.ids.flatMap((id) => {
1013
+ const record = records.get(id);
1014
+ return record ? [toUserProfile(record)] : [];
1015
+ });
1016
+ return slot.many ? profiles : profiles[0] ?? null;
1017
+ }
1018
+ function collectSlots(rows, plan, ontology, into) {
1019
+ for (const row of rows) {
1020
+ const properties = ontology.getObjectTypeById(row.objectTypeId)?.properties ?? [];
1021
+ for (const propertyId of plan.users) {
1022
+ const property = properties.find((candidate) => candidate.id === propertyId);
1023
+ if (!property || !isUserRefPropertySchema(property.schema))
1024
+ continue;
1025
+ row.users ??= {};
1026
+ if (row.redactions?.[propertyId])
1027
+ continue;
1028
+ into.push({
1029
+ users: row.users,
1030
+ propertyId,
1031
+ many: property.schema !== "userRef",
1032
+ ids: userIdsOf(row.properties[propertyId])
1033
+ });
1034
+ }
1035
+ for (const link of plan.links) {
1036
+ collectSlots(linkedRows(row.links?.[link.linkId]), link.plan, ontology, into);
1037
+ }
1038
+ }
1039
+ }
1040
+ async function readUsers(input, slots) {
1041
+ const records = new Map;
1042
+ const ids = [...new Set(slots.flatMap((slot) => slot.ids))];
1043
+ if (!input.users || ids.length === 0)
1044
+ return records;
1045
+ for (let start = 0;start < ids.length; start += LOOKUP_BATCH_SIZE) {
1046
+ const batch = ids.slice(start, start + LOOKUP_BATCH_SIZE);
1047
+ for (const record of await input.users.getByIds({ projectId: input.projectId, ids: batch })) {
1048
+ records.set(record.id, record);
1049
+ }
1050
+ }
1051
+ return records;
1052
+ }
1053
+ function userIdsOf(value) {
1054
+ if (isUserRef(value))
1055
+ return [value.id];
1056
+ if (!Array.isArray(value))
1057
+ return [];
1058
+ return value.filter(isUserRef).map((ref) => ref.id);
1059
+ }
1060
+ function linkedRows(value) {
1061
+ if (value === undefined || value === null)
1062
+ return [];
1063
+ if (Array.isArray(value))
1064
+ return value;
1065
+ return [value];
1066
+ }
1067
+
1068
+ // src/execution/unique-lookup.ts
1069
+ function uniqueLookupKey(ontology, input) {
1070
+ return uniqueLookupKeyOf(ontology.resolveObjectType(input.objectTypeId), input.propertyId, input.value, ontology.getValueTypesById());
1071
+ }
1072
+ function uniqueLookupKeyOf(objectType, propertyId, value, valueTypesById) {
1073
+ const path = `${objectType.id}.${propertyId}`;
1074
+ const property = objectType.properties.find((candidate) => candidate.id === propertyId);
1075
+ const kind = property?.unique ? uniqueValueKind(property.schema, valueTypesById) : undefined;
1076
+ if (!property || !kind) {
1077
+ throw new OntologyValidationError2(`[Sixb] Cannot look up '${path}' by value: getBy needs a property declared with unique: true.`);
1078
+ }
1079
+ if (value === null || value === undefined) {
1080
+ throw new OntologyValidationError2(`[Sixb] Cannot look up '${path}' by ${String(value)}: no object holds a null or missing value.`);
1081
+ }
1082
+ validateSchemaValue2(property.schema, value, path, valueTypesById);
1083
+ const key = uniqueValueKey(kind, normalizeSchemaValue2(property.schema, value, path, valueTypesById));
1084
+ if (key === null) {
1085
+ throw new OntologyValidationError2(`[Sixb] Cannot look up '${path}' by this value.`);
1086
+ }
1087
+ return key;
1088
+ }
1089
+
1137
1090
  // src/execution/authorized-object-reader.ts
1138
1091
  var readerConstructionKey = Object.freeze({});
1139
1092
 
@@ -1142,6 +1095,7 @@ class AuthorizedObjectReaderImpl {
1142
1095
  #security;
1143
1096
  #models;
1144
1097
  #storage;
1098
+ #users;
1145
1099
  constructor(key, input) {
1146
1100
  if (key !== readerConstructionKey) {
1147
1101
  throw new Error("[Sixb] AuthorizedObjectReader can only be created by Core.");
@@ -1150,6 +1104,7 @@ class AuthorizedObjectReaderImpl {
1150
1104
  this.#security = input.security;
1151
1105
  this.#models = input.models;
1152
1106
  this.#storage = input.storage;
1107
+ this.#users = input.users;
1153
1108
  }
1154
1109
  static assertBound(reader, scope) {
1155
1110
  const capturedScope = captureExecutionScope(scope);
@@ -1164,6 +1119,17 @@ class AuthorizedObjectReaderImpl {
1164
1119
  static eventClearance(reader, sources) {
1165
1120
  return reader.#security.clearance.forEvent(sources);
1166
1121
  }
1122
+ static viewConditions(reader) {
1123
+ const security = reader.#security;
1124
+ const conditions = security.conditionalScope?.conditions ?? [];
1125
+ return new Map(conditions.map(({ objectTypeId, predicate }) => [
1126
+ objectTypeId,
1127
+ {
1128
+ predicate,
1129
+ hiddenBy: (clearance) => !security.isObjectTypeViewable(objectTypeId, clearance)
1130
+ }
1131
+ ]));
1132
+ }
1167
1133
  static ontologyView(reader) {
1168
1134
  return reader.#ontology.view();
1169
1135
  }
@@ -1183,6 +1149,27 @@ class AuthorizedObjectReaderImpl {
1183
1149
  });
1184
1150
  return this.#detachRows(row && this.#omitHidden(row, clearance), (detached) => [detached], clearance);
1185
1151
  }
1152
+ async getByUniqueValue(input) {
1153
+ const request = snapshotReadValue({
1154
+ objectTypeId: input.objectTypeId,
1155
+ propertyId: input.propertyId,
1156
+ value: input.value
1157
+ });
1158
+ const clearance = await this.#security.clearance.current();
1159
+ this.#security.assertObjectTypesViewable([request.objectTypeId], clearance);
1160
+ const valueKey = uniqueLookupKey(this.#ontology.registry, request);
1161
+ const marking = clearance?.missingMarking(request.objectTypeId, request.propertyId);
1162
+ if (marking !== undefined) {
1163
+ throw new AuthorizationError2(`clearance:marking:${marking}`, `[Sixb] Cannot look up '${request.objectTypeId}.${request.propertyId}' by value: it requires clearance for marking '${marking}'.`);
1164
+ }
1165
+ const row = await this.#storage.getByUniqueValue({
1166
+ objectTypeId: request.objectTypeId,
1167
+ propertyId: request.propertyId,
1168
+ valueKey,
1169
+ projectId: this.#security.runtime.projectId
1170
+ });
1171
+ return this.#detachRows(row && this.#omitHidden(row, clearance), (detached) => [detached], clearance);
1172
+ }
1186
1173
  async getByPrimaryIdBatch(input) {
1187
1174
  const request = snapshotReadValue({
1188
1175
  items: input.items.map((item) => ({
@@ -1208,13 +1195,8 @@ class AuthorizedObjectReaderImpl {
1208
1195
  this.#security.assertObjectTypesViewable([request.objectTypeId], clearance);
1209
1196
  if (hidesProperty(request, clearance))
1210
1197
  return false;
1211
- if (this.#security.authority.type !== "delegated")
1212
- return true;
1213
- const [readable] = await this.#storage.selectsObjectProperties({
1214
- projectId: this.#security.runtime.projectId,
1215
- items: [request]
1216
- });
1217
- return readable ?? false;
1198
+ const [selected] = await this.#selectsObjectProperties([request]);
1199
+ return selected ?? false;
1218
1200
  }
1219
1201
  async canReadObjectPropertiesBatch(input) {
1220
1202
  const request = snapshotReadValue({
@@ -1226,10 +1208,7 @@ class AuthorizedObjectReaderImpl {
1226
1208
  });
1227
1209
  const clearance = await this.#security.clearance.current();
1228
1210
  this.#security.assertObjectTypesViewable(request.items.map((item) => item.objectTypeId), clearance);
1229
- const selected = this.#security.authority.type === "delegated" ? await this.#storage.selectsObjectProperties({
1230
- ...request,
1231
- projectId: this.#security.runtime.projectId
1232
- }) : request.items.map(() => true);
1211
+ const selected = await this.#selectsObjectProperties(request.items);
1233
1212
  return request.items.map((item, index) => !hidesProperty(item, clearance) && selected[index] === true);
1234
1213
  }
1235
1214
  async list(input) {
@@ -1305,7 +1284,9 @@ class AuthorizedObjectReaderImpl {
1305
1284
  projectId: this.#security.runtime.projectId,
1306
1285
  signal: input.signal
1307
1286
  }, this.#queryExecutorOptions(clearance));
1308
- return this.#detachRows({ ...result, objects: result.objects.map((row) => this.#omitHidden(row, clearance)) }, (detached) => detached.objects, clearance);
1287
+ const detached = this.#detachRows({ ...result, objects: result.objects.map((row) => this.#omitHidden(row, clearance)) }, (detached) => detached.objects, clearance);
1288
+ await this.#attachUsers(detached.objects, query);
1289
+ return detached;
1309
1290
  }
1310
1291
  async queryLinks(input) {
1311
1292
  const query = snapshotAuthoredQuery(input.query);
@@ -1395,9 +1376,30 @@ class AuthorizedObjectReaderImpl {
1395
1376
  assertTargetsReadable(clearance, { objectTypeIds: [objectTypeId] });
1396
1377
  return (row) => clearance ? redactObjectRow(row, clearance) : row;
1397
1378
  }
1379
+ async uniqueValueWriteCheck(objectTypeId) {
1380
+ const clearance = await this.#security.clearance.current();
1381
+ const marked = this.#ontology.registry.listUniqueProperties(objectTypeId).flatMap((property) => {
1382
+ const marking = clearance?.missingMarking(objectTypeId, property.propertyId);
1383
+ return marking === undefined ? [] : [{ propertyId: property.propertyId, marking }];
1384
+ });
1385
+ return (properties) => {
1386
+ for (const { propertyId, marking } of marked) {
1387
+ if (properties[propertyId] === undefined || properties[propertyId] === null)
1388
+ continue;
1389
+ throw new AuthorizationError2(`clearance:marking:${marking}`, `[Sixb] Cannot write a value to '${objectTypeId}.${propertyId}': it is unique and requires clearance for marking '${marking}'.`);
1390
+ }
1391
+ };
1392
+ }
1398
1393
  async assertReadable(targets) {
1399
1394
  assertTargetsReadable(await this.#security.clearance.current(), targets);
1400
1395
  }
1396
+ viewsThroughCondition(objectTypeId) {
1397
+ return this.#security.viewsThroughCondition(objectTypeId);
1398
+ }
1399
+ async assertViewable(objectTypeIds) {
1400
+ const clearance = await this.#security.clearance.current();
1401
+ this.#security.assertObjectTypesViewable(objectTypeIds, clearance);
1402
+ }
1401
1403
  assertVisibleOutputWithinLimit(value) {
1402
1404
  if (this.#security.authority.type !== "delegated")
1403
1405
  return;
@@ -1414,7 +1416,8 @@ class AuthorizedObjectReaderImpl {
1414
1416
  storage: this.#storage,
1415
1417
  embeddingModels: this.#models.embedding,
1416
1418
  rerankingModels: this.#models.reranking,
1417
- ...admission === undefined ? {} : { admission }
1419
+ ...admission === undefined ? {} : { admission },
1420
+ requestingUser: this.#security.requestingUser
1418
1421
  };
1419
1422
  }
1420
1423
  return {
@@ -1422,9 +1425,22 @@ class AuthorizedObjectReaderImpl {
1422
1425
  embeddingModels: this.#models.embedding,
1423
1426
  rerankingModels: this.#models.reranking,
1424
1427
  storage: this.#storage,
1425
- runtimeAuthorization: this.#security.runtime.runtimeAuthorization,
1426
- ...this.#security.runtime.authorization === undefined ? {} : { authorization: this.#security.runtime.authorization },
1427
- ...admission === undefined ? {} : { admission }
1428
+ ...this.#queryAuthorization(clearance),
1429
+ ...admission === undefined ? {} : { admission },
1430
+ requestingUser: this.#security.requestingUser
1431
+ };
1432
+ }
1433
+ #queryAuthorization(clearance) {
1434
+ const runtimeAuthorization = this.#security.runtime.runtimeAuthorization;
1435
+ if (this.#security.authority.type !== "principal")
1436
+ return { runtimeAuthorization };
1437
+ const security = this.#security;
1438
+ return {
1439
+ runtimeAuthorization,
1440
+ readableObjectTypes: Object.freeze({
1441
+ assert: (objectTypeIds) => security.assertObjectTypesGranted(objectTypeIds, clearance),
1442
+ has: (objectTypeId) => security.isObjectTypeGranted(objectTypeId, clearance)
1443
+ })
1428
1444
  };
1429
1445
  }
1430
1446
  #executorAdmission(clearance) {
@@ -1434,6 +1450,29 @@ class AuthorizedObjectReaderImpl {
1434
1450
  return composeObjectQueryAdmissions(selected, admission);
1435
1451
  return selected ?? admission;
1436
1452
  }
1453
+ async#attachUsers(rows, query) {
1454
+ const plan = userExpansionPlan(normalizeObjectQuery2(query));
1455
+ if (!plan)
1456
+ return;
1457
+ await attachUserProfiles({
1458
+ rows,
1459
+ plan,
1460
+ ontology: this.#ontology.registry,
1461
+ projectId: this.#security.runtime.projectId,
1462
+ canViewUsers: isRuntimeAllowed2(this.#security.runtime, { kind: "users.view" }),
1463
+ users: this.#users
1464
+ });
1465
+ }
1466
+ async#selectsObjectProperties(items) {
1467
+ const readsByObject = (item) => this.#security.authority.type === "delegated" || this.#security.viewsThroughCondition(item.objectTypeId);
1468
+ const checked = items.filter(readsByObject);
1469
+ const selected = checked.length === 0 ? [] : await this.#storage.selectsObjectProperties({
1470
+ projectId: this.#security.runtime.projectId,
1471
+ items: checked
1472
+ });
1473
+ let next = 0;
1474
+ return items.map((item) => !readsByObject(item) || selected[next++] === true);
1475
+ }
1437
1476
  #omitHidden(row, clearance) {
1438
1477
  return clearance ? omitHiddenProperties(row, clearance) : row;
1439
1478
  }
@@ -1472,21 +1511,24 @@ function createAuthorizedObjectReader(input) {
1472
1511
  const scope = captureExecutionScope(input.scope);
1473
1512
  const projectId = scope.execution.projectId;
1474
1513
  const authority = resolveExecutionScopeAuthorization(projectId, scope);
1475
- const storage = objectStorageForAuthority(authority, input.objectStorage);
1514
+ const security = new ObjectReaderSecurity({
1515
+ authorization: scope.authorization,
1516
+ authority,
1517
+ projectId,
1518
+ ontology: input.ontology,
1519
+ ...input.appliedMarkings === undefined ? {} : { appliedMarkings: input.appliedMarkings },
1520
+ requestedBy: scope.execution.requestedBy
1521
+ });
1522
+ const storage = objectStorageForAuthority(security, input.objectStorage);
1476
1523
  const reader = new AuthorizedObjectReaderImpl(readerConstructionKey, {
1477
- ontology: new ObjectReaderOntology(input.ontology, authority),
1478
- security: new ObjectReaderSecurity({
1479
- authorization: scope.authorization,
1480
- authority,
1481
- projectId,
1482
- ontology: input.ontology,
1483
- ...input.appliedMarkings === undefined ? {} : { appliedMarkings: input.appliedMarkings }
1484
- }),
1524
+ ontology: new ObjectReaderOntology(input.ontology, security),
1525
+ security,
1485
1526
  models: Object.freeze({
1486
1527
  ...input.embeddingModels === undefined ? {} : { embedding: input.embeddingModels },
1487
1528
  ...input.rerankingModels === undefined ? {} : { reranking: input.rerankingModels }
1488
1529
  }),
1489
- storage
1530
+ storage,
1531
+ ...input.users === undefined ? {} : { users: input.users }
1490
1532
  });
1491
1533
  Object.freeze(reader);
1492
1534
  return reader;
@@ -1503,6 +1545,9 @@ function readerClearance(reader) {
1503
1545
  function readerEventClearance(reader, sources) {
1504
1546
  return AuthorizedObjectReaderImpl.eventClearance(reader, sources);
1505
1547
  }
1548
+ function readerViewConditions(reader) {
1549
+ return AuthorizedObjectReaderImpl.viewConditions(reader);
1550
+ }
1506
1551
  function assertTargetsReadable(clearance, targets) {
1507
1552
  if (!clearance)
1508
1553
  return;
@@ -1520,9 +1565,14 @@ function assertTargetsReadable(clearance, targets) {
1520
1565
  function hidesProperty(item, clearance) {
1521
1566
  return clearance?.missingMarking(item.objectTypeId, item.propertyId) !== undefined;
1522
1567
  }
1523
- function objectStorageForAuthority(authority, objectStorage) {
1568
+ function objectStorageForAuthority(security, objectStorage) {
1569
+ const authority = security.authority;
1524
1570
  switch (authority.type) {
1525
1571
  case "principal":
1572
+ return security.conditionalScope ? objectStorage.createConditionalReadScope({
1573
+ projectId: authority.projectId,
1574
+ scope: security.conditionalScope
1575
+ }) : objectStorage;
1526
1576
  case "unrestricted":
1527
1577
  return objectStorage;
1528
1578
  case "delegated":
@@ -1605,424 +1655,6 @@ function snapshotAuthoredQuery(query) {
1605
1655
  }
1606
1656
  }
1607
1657
 
1608
- // src/actions/run-authorization.ts
1609
- async function canReadActionRunSubject(objectReader, run) {
1610
- if (run.subject.kind !== "object")
1611
- return true;
1612
- const clearance = await readerClearance(objectReader);
1613
- return clearance?.unreadableType(run.subject.objectTypeId) === undefined;
1614
- }
1615
- async function unreadableActionRunTypes(objectReader) {
1616
- const clearance = await readerClearance(objectReader);
1617
- return new Set(clearance?.unreadable().types.keys());
1618
- }
1619
- async function canDelegationAccessActionRun(input) {
1620
- const subject = input.run.subject;
1621
- if (!input.authority.delegation || subject.kind !== "object" || !input.authority.actionApply.some((target) => target.actionId === input.run.actionId && target.subject.objectTypeId === subject.objectTypeId && target.subject.primaryId === subject.primaryId)) {
1622
- return false;
1623
- }
1624
- return actionRunBelongsToShareGrant({
1625
- storage: input.storage,
1626
- projectId: input.projectId,
1627
- run: input.run,
1628
- grantId: input.authority.delegation.grantId
1629
- });
1630
- }
1631
- async function actionRunBelongsToShareGrant(input) {
1632
- const parent = await findPrimitiveParentRequestExecution({
1633
- executions: input.storage.executions,
1634
- projectId: input.projectId,
1635
- executionId: input.run.executionId,
1636
- primitive: { kind: "action", id: input.run.actionId, runId: input.run.id }
1637
- });
1638
- const authorization = parent?.authorizationRef;
1639
- return authorization?.type === "delegated" && authorization.delegation.kind === "share" && authorization.delegation.grantId === input.grantId;
1640
- }
1641
-
1642
- // src/runtime/ai-cost.ts
1643
- async function resolveExecutionCosts(input) {
1644
- if (input.executionIds.length === 0)
1645
- return [];
1646
- if (!input.storage)
1647
- return input.executionIds.map(() => {
1648
- return;
1649
- });
1650
- return input.storage.summarizeExecutions({
1651
- projectId: input.projectId,
1652
- executionIds: input.executionIds
1653
- });
1654
- }
1655
-
1656
- // src/activity/timeline.ts
1657
- var ACTIVITY_TIMELINE_LIMIT = 200;
1658
- var SESSION_GRACE_MS = ACTIVITY_MIN_IDLE_TIMEOUT_MS / 2;
1659
- async function composeActivityTimeline(runtime, input, now) {
1660
- const { page, visit } = input;
1661
- const { storage, projectId } = runtime;
1662
- const [ledger, connection] = await Promise.all([
1663
- storage.executions.listBySession({
1664
- projectId,
1665
- session: { type: visit.actor.type, id: page.sessionId },
1666
- ...sessionWindow(visit),
1667
- limit: ACTIVITY_TIMELINE_LIMIT
1668
- }),
1669
- readActivityConnection(runtime, page, input.grant, now)
1670
- ]);
1671
- const executions = ledger.executions;
1672
- const ofKind = (kind) => executions.flatMap((execution) => execution.executor.type === "primitive" && execution.executor.kind === kind ? [execution.id] : []);
1673
- const agentRunIds = executions.flatMap((execution) => execution.executor.type === "agent" ? [execution.executor.runId] : []);
1674
- const byId = new Map(executions.map((execution) => [execution.id, execution]));
1675
- const withAgent = executions.filter((execution) => lineage(execution, byId).some((ancestor) => ancestor.executor.type === "agent"));
1676
- const [actionRuns, workflowRuns, agentRuns, costs] = await Promise.all([
1677
- storage.actionRuns?.getByExecutionIds({ projectId, executionIds: ofKind("action") }) ?? [],
1678
- storage.workflowRuns?.getByExecutionIds({ projectId, executionIds: ofKind("workflow") }) ?? [],
1679
- storage.agents?.runs.getByIds({ projectId, ids: agentRunIds }) ?? [],
1680
- resolveExecutionCosts({
1681
- storage: storage.aiCosts,
1682
- projectId,
1683
- executionIds: withAgent.map((execution) => execution.id)
1684
- })
1685
- ]);
1686
- const conversations = new Map(agentRuns.flatMap((run) => run.kind === "conversation" ? [[run.executionId, run]] : []));
1687
- const subjects = actionRuns.flatMap((run) => run.subject.kind === "object" ? [run.subject] : []);
1688
- const [threads, readable, unreadableRunTypes] = await Promise.all([
1689
- storage.agents?.threads.getByIds({
1690
- projectId,
1691
- ids: [...conversations.values()].map((run) => run.threadId)
1692
- }) ?? [],
1693
- readableObjects(runtime, subjects),
1694
- subjects.length > 0 ? unreadableActionRunTypes(runtime.objectReader) : new Set
1695
- ]);
1696
- const actionRunByExecution = new Map(actionRuns.map((run) => [run.executionId, run]));
1697
- const workflowRunByExecution = new Map(workflowRuns.map((run) => [run.executionId, run]));
1698
- const messagesByThread = new Map(threads.map((thread) => [thread.id, thread.messageCount]));
1699
- const costByAgent = rollUpCosts(byId, conversations, withAgent, costs);
1700
- const executionEntries = executions.flatMap((execution) => {
1701
- const at = new Date(execution.createdAt);
1702
- const executor = execution.executor;
1703
- const authority = execution.authorizationRef;
1704
- if (executor.type === "primitive" && authority.type === "trustedPrimitive") {
1705
- if (executor.kind === "action") {
1706
- const run = actionRunByExecution.get(execution.id);
1707
- const subject = run?.subject.kind === "object" ? run.subject : undefined;
1708
- const object = subject && readable.has(objectBatchKey2(subject.objectTypeId, subject.primaryId)) ? { objectTypeId: subject.objectTypeId, primaryId: subject.primaryId } : undefined;
1709
- const runVisible = run !== undefined && canViewActionRun2(runtime.authorization, run) && (subject === undefined || !unreadableRunTypes.has(subject.objectTypeId));
1710
- return [
1711
- {
1712
- kind: "action",
1713
- at,
1714
- executionId: execution.id,
1715
- actionId: authority.primitive.id,
1716
- runId: executor.runId,
1717
- status: run?.status ?? "incomplete",
1718
- runVisible,
1719
- ...object === undefined ? {} : { object }
1720
- }
1721
- ];
1722
- }
1723
- if (executor.kind === "workflow") {
1724
- const run = workflowRunByExecution.get(execution.id);
1725
- return [
1726
- {
1727
- kind: "workflow",
1728
- at,
1729
- executionId: execution.id,
1730
- workflowId: authority.primitive.id,
1731
- runId: executor.runId,
1732
- status: run?.status ?? "incomplete",
1733
- runVisible: run !== undefined && canViewWorkflowRun2(runtime.authorization, run)
1734
- }
1735
- ];
1736
- }
1737
- }
1738
- const conversation = conversations.get(execution.id);
1739
- if (conversation) {
1740
- const cost = costByAgent.get(execution.id);
1741
- return [
1742
- {
1743
- kind: "agent",
1744
- at,
1745
- executionId: execution.id,
1746
- runId: conversation.id,
1747
- threadId: conversation.threadId,
1748
- status: conversation.status,
1749
- messages: messagesByThread.get(conversation.threadId) ?? 0,
1750
- ...cost === undefined ? {} : { cost }
1751
- }
1752
- ];
1753
- }
1754
- return [];
1755
- });
1756
- const recorded = [
1757
- ...page.pageViews.map((pageView) => ({
1758
- kind: "page",
1759
- at: new Date(pageView.receivedAt),
1760
- sequence: pageView.sequence,
1761
- route: pageView.route
1762
- })),
1763
- ...page.interactions.map((interaction) => ({
1764
- kind: "interaction",
1765
- at: new Date(interaction.receivedAt),
1766
- sequence: interaction.sequence,
1767
- name: interaction.name,
1768
- route: interaction.route
1769
- }))
1770
- ].sort((left, right) => left.sequence - right.sequence);
1771
- const cutoffs = [
1772
- page.hasMore ? recorded.at(-1)?.at : undefined,
1773
- ledger.truncated ? executions.filter((execution) => execution.source.type !== "execution").at(-1)?.createdAt : undefined
1774
- ].flatMap((at) => at === undefined ? [] : [at.getTime()]);
1775
- const cutoff = cutoffs.length > 0 ? Math.min(...cutoffs) : Number.POSITIVE_INFINITY;
1776
- const entries = [...recorded, ...executionEntries].filter((entry) => entry.at.getTime() <= cutoff).sort((left, right) => left.at.getTime() - right.at.getTime());
1777
- return {
1778
- visit,
1779
- ...connection === undefined ? {} : { connection },
1780
- entries,
1781
- truncated: page.hasMore || ledger.truncated
1782
- };
1783
- }
1784
- function sessionWindow(visit) {
1785
- const startedAt = visit.startedAt.getTime();
1786
- return {
1787
- from: new Date(startedAt - SESSION_GRACE_MS),
1788
- to: new Date(Math.min(visit.lastSeenAt.getTime() + SESSION_GRACE_MS, startedAt + ACTIVITY_MAX_VISIT_MS2 - SESSION_GRACE_MS))
1789
- };
1790
- }
1791
- function lineage(execution, byId) {
1792
- const chain = [];
1793
- let current = execution;
1794
- while (current) {
1795
- chain.push(current);
1796
- current = current.source.type === "execution" ? byId.get(current.source.executionId) : undefined;
1797
- }
1798
- return chain;
1799
- }
1800
- function rollUpCosts(byId, conversations, withAgent, costs) {
1801
- const grouped = new Map;
1802
- withAgent.forEach((execution, index) => {
1803
- const cost = costs[index];
1804
- const owner = lineage(execution, byId).find((ancestor) => conversations.has(ancestor.id));
1805
- if (!cost || !owner) {
1806
- return;
1807
- }
1808
- const summaries = grouped.get(owner.id) ?? [];
1809
- summaries.push(cost);
1810
- grouped.set(owner.id, summaries);
1811
- });
1812
- return new Map([...grouped].flatMap(([owner, summaries]) => {
1813
- const total = addCosts(summaries);
1814
- return total ? [[owner, total]] : [];
1815
- }));
1816
- }
1817
- function addCosts(summaries) {
1818
- const amounts = new Map;
1819
- let ratedCallCount = 0;
1820
- let unpriceableCallCount = 0;
1821
- let unvaluedCallCount = 0;
1822
- for (const summary of summaries) {
1823
- for (const money of summary.amounts) {
1824
- amounts.set(money.currency, (amounts.get(money.currency) ?? 0n) + BigInt(money.amountNanos));
1825
- }
1826
- ratedCallCount += summary.ratedCallCount;
1827
- unpriceableCallCount += summary.unpriceableCallCount;
1828
- unvaluedCallCount += summary.unvaluedCallCount;
1829
- }
1830
- if (ratedCallCount + unpriceableCallCount + unvaluedCallCount === 0) {
1831
- return;
1832
- }
1833
- return {
1834
- amounts: [...amounts].sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([currency, amount]) => ({ currency, amountNanos: amount.toString() })),
1835
- ratedCallCount,
1836
- unpriceableCallCount,
1837
- unvaluedCallCount
1838
- };
1839
- }
1840
- async function readableObjects(runtime, subjects) {
1841
- const byType = new Map;
1842
- for (const subject of subjects) {
1843
- const items = byType.get(subject.objectTypeId) ?? new Map;
1844
- items.set(subject.primaryId, subject);
1845
- byType.set(subject.objectTypeId, items);
1846
- }
1847
- const readable = new Set;
1848
- await Promise.all([...byType.values()].map(async (items) => {
1849
- try {
1850
- const rows = await runtime.objectReader.getByPrimaryIdBatch({ items: [...items.values()] });
1851
- for (const key of rows.keys()) {
1852
- readable.add(key);
1853
- }
1854
- } catch (error) {
1855
- if (!(error instanceof AuthorizationError2)) {
1856
- throw error;
1857
- }
1858
- }
1859
- }));
1860
- return readable;
1861
- }
1862
-
1863
- // src/activity/execution.ts
1864
- var PROFILE_READ_CONCURRENCY = 8;
1865
- function createActivityRuntime(runtime, service) {
1866
- const assertObservable = () => assertAuthorized2(runtime, { kind: "activity.observe" });
1867
- return {
1868
- async list(query) {
1869
- assertObservable();
1870
- const page = await service.list(query);
1871
- return { ...page, visits: await nameSharedVisits(runtime, page.visits) };
1872
- },
1873
- async users(query) {
1874
- assertObservable();
1875
- const page = await service.users(query);
1876
- const users = await mapInChunks(page.users, PROFILE_READ_CONCURRENCY, async (user) => {
1877
- const profile = await runtime.storage.auth?.users.getById({
1878
- projectId: runtime.projectId,
1879
- id: user.userId
1880
- });
1881
- return profile?.displayName ? { ...user, displayName: profile.displayName } : user;
1882
- });
1883
- return { users, hasMore: page.hasMore };
1884
- },
1885
- async summarize(query) {
1886
- assertObservable();
1887
- return service.summarize(query);
1888
- },
1889
- async calendar(query) {
1890
- assertObservable();
1891
- return service.calendar(query);
1892
- },
1893
- async timeline(visitId) {
1894
- assertObservable();
1895
- const page = await service.readWithSession({ id: visitId, limit: ACTIVITY_TIMELINE_LIMIT });
1896
- if (!page) {
1897
- return null;
1898
- }
1899
- const shared = await nameSharedVisit(runtime, page.visit);
1900
- return composeActivityTimeline(runtime, { ...shared, page }, new Date);
1901
- },
1902
- async connections(query) {
1903
- assertObservable();
1904
- return readActivityConnections(runtime, service, query, new Date);
1905
- }
1906
- };
1907
- }
1908
- function createActivityCaptureRuntime(runtime, service) {
1909
- return {
1910
- captureOptions() {
1911
- captureSource(runtime);
1912
- return service.captureOptions;
1913
- },
1914
- async capture(events) {
1915
- return service.capture(captureSource(runtime), events);
1916
- }
1917
- };
1918
- }
1919
- var activityCaptureKey = Symbol("sixb.activityCapture");
1920
- function registerActivityCaptureRuntime(owner, capture) {
1921
- Object.defineProperty(owner, activityCaptureKey, {
1922
- configurable: false,
1923
- enumerable: false,
1924
- value: capture,
1925
- writable: false
1926
- });
1927
- }
1928
- function getActivityCaptureRuntime2(owner) {
1929
- const capture = owner[activityCaptureKey];
1930
- if (!capture) {
1931
- throw new Error("[Sixb] Activity capture is not registered for this execution.");
1932
- }
1933
- return capture;
1934
- }
1935
- function captureSource(runtime) {
1936
- const ref = getAuthorizationRef(runtime.runtimeAuthorization);
1937
- if (ref.type === "principal" && ref.principal.type === "user" && ref.credential?.type === "session") {
1938
- return {
1939
- actor: { type: "user", userId: ref.principal.id },
1940
- sessionId: ref.credential.id
1941
- };
1942
- }
1943
- if (ref.type === "delegated") {
1944
- return {
1945
- actor: { type: "share", grantId: ref.delegation.grantId },
1946
- sessionId: ref.delegation.sessionId
1947
- };
1948
- }
1949
- throw new AuthorizationError2("activity.capture", "[Sixb] Activity is recorded only for a signed-in user's session or a shared link's session.");
1950
- }
1951
- async function mapInChunks(items, size, map) {
1952
- const results = [];
1953
- for (let start = 0;start < items.length; start += size) {
1954
- const chunk = await Promise.all(items.slice(start, start + size).map(map));
1955
- results.push(...chunk);
1956
- }
1957
- return results;
1958
- }
1959
-
1960
- // src/models/execution/session.ts
1961
- class ModelExecutionSession {
1962
- runtime;
1963
- execution;
1964
- binding;
1965
- recorder;
1966
- constructor(runtime, execution) {
1967
- this.runtime = runtime;
1968
- this.execution = execution;
1969
- }
1970
- bind(input) {
1971
- if (this.binding)
1972
- throw new Error("[SixbModels] Execution attempt is already bound.");
1973
- this.binding = { ...input };
1974
- }
1975
- signal(signal) {
1976
- const binding = this.requireBinding();
1977
- return signal ? AbortSignal.any([binding.signal, signal]) : binding.signal;
1978
- }
1979
- async admitEmbeddingCall(admit) {
1980
- const admission = this.requireBinding().embeddingAdmission;
1981
- if (admission)
1982
- await admission(admit);
1983
- else
1984
- await admit();
1985
- }
1986
- accounting() {
1987
- const { accounting } = this.requireBinding();
1988
- this.recorder ??= accounting ? Promise.resolve(accounting) : this.createRecorder();
1989
- return this.recorder;
1990
- }
1991
- requireBinding() {
1992
- if (!this.binding) {
1993
- throw new Error("[SixbModels] Model calls require a bound request or worker execution attempt.");
1994
- }
1995
- return this.binding;
1996
- }
1997
- async createRecorder() {
1998
- const runtime = this.runtime;
1999
- const execution = this.execution;
2000
- const { attempt } = this.requireBinding();
2001
- const storage = {
2002
- ...requireAccountingCapabilities(runtime.storage),
2003
- transaction: runtime.storage.transaction.bind(runtime.storage)
2004
- };
2005
- const { requesterGroupIds } = await ensureExecutionRecord2(runtime.storage.executions, executionRecordInputFromRuntime({
2006
- execution,
2007
- runtimeAuthorization: runtime.runtimeAuthorization
2008
- }));
2009
- return new AiModelCallRecorder2({
2010
- storage,
2011
- projectId: runtime.projectId,
2012
- executionId: execution.id,
2013
- attempt,
2014
- requesterGroupIds,
2015
- limits: createAiModelCallLimitController2({
2016
- storage,
2017
- projectId: runtime.projectId,
2018
- requestedBy: execution.requestedBy,
2019
- requesterGroupIds
2020
- }),
2021
- recoverAiModelCall: (input) => enqueueAiModelCallRecovery2(runtime.queues.agents, input)
2022
- });
2023
- }
2024
- }
2025
-
2026
- export { redactDomainEvent, createAuthorizedObjectReader, assertAuthorizedObjectReaderBinding, getAuthorizedOntologyView, readerClearance, readerEventClearance, registerOntologyMutationRuntime2, getOntologyMutationRuntime2, shareOntologyMutationRuntime2, createOntologyMutationRuntime2, canReadActionRunSubject, unreadableActionRunTypes, canDelegationAccessActionRun, actionRunBelongsToShareGrant, decodeActivityConnectionsCursor, resolveExecutionCosts, createActivityRuntime, createActivityCaptureRuntime, registerActivityCaptureRuntime, getActivityCaptureRuntime2, ModelExecutionSession };
1658
+ export { redactDomainEvent, uniqueLookupKeyOf, createAuthorizedObjectReader, assertAuthorizedObjectReaderBinding, getAuthorizedOntologyView, readerClearance, readerEventClearance, readerViewConditions };
2027
1659
 
2028
- //# debugId=84DA6826BB3C05B764756E2164756E21
1660
+ //# debugId=2DBF13BEAC1BA51864756E2164756E21