@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
@@ -1,7 +1,12 @@
1
- import { type Principal, principalsEqual, SYSTEM_PRINCIPAL } from "../auth"
1
+ import { createAgentThreadAccessRule } from "../agents/thread-access"
2
+ import { type Principal, SYSTEM_PRINCIPAL } from "../auth"
3
+ import { isRuntimeAllowed } from "../authorization"
2
4
  import type { BlobStorage } from "../blob-storage/types"
3
5
  import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
6
+ import type { ObjectQuery } from "../objects/query/ir"
7
+ import type { PropertyToken } from "../ontology/tokens"
4
8
  import type { SixbRuntimeContext } from "../runtime/types"
9
+ import { ArtifactStorageError } from "../storage/artifacts/errors"
5
10
  import type {
6
11
  ArtifactFile,
7
12
  ArtifactRecord,
@@ -10,9 +15,34 @@ import type {
10
15
  ListArtifactsResult,
11
16
  ListArtifactVersionsResult,
12
17
  } from "../storage/artifacts/types"
18
+ import type { Storage } from "../storage/types"
19
+ import {
20
+ type ArtifactAccess,
21
+ type ArtifactAccessRule,
22
+ assertUpdatable,
23
+ createArtifactAccessRule,
24
+ } from "./access"
13
25
  import { ArtifactRequestError } from "./errors"
14
26
  import type { ArtifactKind } from "./kinds"
15
- import { type PublishedArtifact, publishArtifact } from "./publish/publish"
27
+ import { ARTIFACT_LIMITS, ARTIFACT_STATE_LIMITS } from "./limits"
28
+ import { invalidArtifact, readArtifactText } from "./publish/files"
29
+ import {
30
+ artifactVersionWarnings,
31
+ type PreparedArtifactVersion,
32
+ type PublishedArtifact,
33
+ prepareArtifactVersion,
34
+ publishArtifact,
35
+ storeArtifactVersion,
36
+ } from "./publish/publish"
37
+ import { type ArtifactQueryChecker, createArtifactQueryChecker } from "./publish/queries"
38
+ import {
39
+ ARTIFACT_QUERY_KINDS,
40
+ type ArtifactQueryResult,
41
+ artifactQueryPath,
42
+ isArtifactQueryName,
43
+ parseArtifactQuery,
44
+ } from "./queries"
45
+ import { runArtifactQuery } from "./run-query"
16
46
 
17
47
  /** A version's content: what its kind renders from, and what it is called. */
18
48
  export interface ArtifactContentInput {
@@ -20,10 +50,38 @@ export interface ArtifactContentInput {
20
50
  readonly title: string
21
51
  /** Files stored with `sixb.blobs.put()` or `POST /api/files`, at their paths in the artifact. */
22
52
  readonly files: readonly ArtifactFile[]
53
+ /**
54
+ * Queries the version holds, by name, each stored as `queries/<name>.json` beside `files` and
55
+ * checked as those files are. Each reader runs them with their own rights.
56
+ */
57
+ readonly queries?: Readonly<Record<string, ArtifactQueryInput>>
58
+ }
59
+
60
+ /**
61
+ * A query a version holds, from the query builders: `sixb.objects(Invoice).where(...)` for rows,
62
+ * or such a query with the properties to facet its rows by. Any builder fits: its `ir` is what
63
+ * the version keeps.
64
+ */
65
+ export type ArtifactQueryInput =
66
+ | { readonly ir: ObjectQuery }
67
+ | {
68
+ readonly query: { readonly ir: ObjectQuery }
69
+ readonly facets: readonly { readonly property: PropertyToken; readonly limit: number }[]
70
+ }
71
+
72
+ export interface PublishArtifactRuntimeInput extends ArtifactContentInput {
73
+ /**
74
+ * The version this one was made from, such as the one a person edited. When another version was
75
+ * published since, publishing fails with `artifact_moved`, naming the latest and its author.
76
+ */
77
+ readonly baseVersion?: number
23
78
  }
24
79
 
25
80
  export interface ListArtifactsRuntimeInput {
26
- /** Only artifacts with a version the Agent published in this thread. */
81
+ /**
82
+ * Only the artifacts a conversation shares: every one of them, whoever owns it, for whoever reads
83
+ * the conversation; otherwise the caller's own among them.
84
+ */
27
85
  readonly threadId?: string
28
86
  /** Only artifacts of this kind. */
29
87
  readonly kind?: ArtifactKind
@@ -32,25 +90,147 @@ export interface ListArtifactsRuntimeInput {
32
90
  }
33
91
 
34
92
  /**
35
- * Artifacts the caller owns: create one, publish its next version, read it back. A user or service
36
- * account reaches only its own artifacts; system code reaches every artifact in the project.
93
+ * The artifacts the caller reaches: its own, and those shared in a conversation it reads, as
94
+ * {@link ArtifactAccess} says. System code reaches every artifact in the project, and an access
95
+ * token only its own.
37
96
  */
38
97
  export interface ArtifactsRuntime {
39
98
  /** Creates an artifact owned by the caller, with its first version. */
40
99
  create(input: ArtifactContentInput): Promise<PublishedArtifact>
41
- /** Publishes the next version. The kind must be the artifact's. */
42
- publish(artifactId: string, input: ArtifactContentInput): Promise<PublishedArtifact>
100
+ /**
101
+ * Publishes the next version, authored by the caller; the artifact keeps its owner. The kind must
102
+ * be the artifact's. Throws `not_shared` or `read_only` when the caller may not update it.
103
+ */
104
+ publish(artifactId: string, input: PublishArtifactRuntimeInput): Promise<PublishedArtifact>
105
+ /** What the caller may do with the artifact; `null` when there is no such artifact. */
106
+ access(artifactId: string): Promise<ArtifactAccess | null>
107
+ /** `null` when the caller cannot read it. */
43
108
  get(artifactId: string): Promise<ArtifactRecord | null>
44
109
  /** Most recently updated first. */
45
110
  list(input?: ListArtifactsRuntimeInput): Promise<ListArtifactsResult>
46
111
  getVersion(artifactId: string, version: number | "latest"): Promise<ArtifactVersionRecord | null>
47
- /** Newest first; `null` when the artifact is not the caller's. */
112
+ /**
113
+ * Runs the version's query `queries/<name>.json` as the caller, with their rights: a type they
114
+ * cannot view refuses it, and a marked property they are not cleared for is left out of each
115
+ * row. Whoever reads the artifact runs its queries, an observer too. `null` when the caller
116
+ * cannot read the artifact or it has no such version. Throws `query_not_found`, and
117
+ * `query_invalid` for a query the ontology no longer admits.
118
+ */
119
+ query(
120
+ artifactId: string,
121
+ name: string,
122
+ options?: { readonly version?: number | "latest" }
123
+ ): Promise<ArtifactQueryResult | null>
124
+ /** Newest first; `null` when the caller cannot read the artifact. */
48
125
  listVersions(
49
126
  artifactId: string,
50
127
  input?: { readonly limit?: number; readonly offset?: number }
51
128
  ): Promise<ListArtifactVersionsResult | null>
52
- /** Deletes the artifact with every version. `false` when it is not the caller's. */
129
+ /**
130
+ * Deletes the artifact with every version, from every conversation that shares it; only its
131
+ * owner can. `false` when the caller does not own it.
132
+ */
53
133
  delete(artifactId: string): Promise<boolean>
134
+ /**
135
+ * What the artifact keeps for the caller as its reader, as a page keeps it with `sixb.state`:
136
+ * JSON values by key, across its versions. Each reader who may update the artifact keeps their
137
+ * own. Each call throws `artifact_not_found`, `not_shared`, or `read_only` for an observer.
138
+ */
139
+ state(artifactId: string): ArtifactStateRuntime
140
+ }
141
+
142
+ /** One reader's values, kept by one artifact. */
143
+ export interface ArtifactStateRuntime {
144
+ /** The value under the key, or undefined when there is none. */
145
+ get(key: string): Promise<unknown>
146
+ /**
147
+ * Keeps a JSON value under the key, replacing one there. Throws `invalid_state` for a key or a
148
+ * value that is not one, and `state_full` past `ARTIFACT_STATE_LIMITS`. Returns what it kept.
149
+ */
150
+ set(key: string, value: unknown): Promise<ArtifactStateValue>
151
+ /** `false` when there was no value under the key. */
152
+ delete(key: string): Promise<boolean>
153
+ /** Every value, by key in order. */
154
+ entries(): Promise<ArtifactStateValue[]>
155
+ /** Deletes every value, and returns how many. */
156
+ clear(): Promise<number>
157
+ }
158
+
159
+ export interface ArtifactStateValue {
160
+ readonly key: string
161
+ readonly value: unknown
162
+ readonly updatedAt: Date
163
+ }
164
+
165
+ /** Where an access rule reads: the project's storage, or a transaction's to decide inside it. */
166
+ export type ArtifactAccessStorage = Pick<Storage, "artifacts" | "agents">
167
+
168
+ /**
169
+ * What each runtime's caller publishes by, for this repo's packages: an Agent turn publishes with
170
+ * the access rule and the query checker of whoever asked for it.
171
+ */
172
+ const publishers = new WeakMap<
173
+ object,
174
+ {
175
+ readonly rule: (storage?: ArtifactAccessStorage) => ArtifactAccessRule
176
+ readonly checkQuery: ArtifactQueryChecker
177
+ }
178
+ >()
179
+
180
+ function publisherOf(artifacts: Partial<ArtifactsRuntime>) {
181
+ const publisher = publishers.get(artifacts)
182
+ if (!publisher) throw new Error("[Sixb] These artifacts are not a Sixb runtime's.")
183
+ return publisher
184
+ }
185
+
186
+ /**
187
+ * The access rule of the caller `artifacts` acts for, reading from `storage`: a transaction's, to
188
+ * check inside it. Each call returns a rule of its own.
189
+ */
190
+ export function artifactAccessRule(
191
+ artifacts: Partial<ArtifactsRuntime>,
192
+ storage: ArtifactAccessStorage
193
+ ): ArtifactAccessRule {
194
+ return publisherOf(artifacts).rule(storage)
195
+ }
196
+
197
+ /** What checks a version's queries as the caller `artifacts` acts for. */
198
+ export function artifactQueryChecker(artifacts: Partial<ArtifactsRuntime>): ArtifactQueryChecker {
199
+ return publisherOf(artifacts).checkQuery
200
+ }
201
+
202
+ /** The access rule for the runtime's caller, reading from `storage`. */
203
+ export function createRuntimeArtifactAccessRule(
204
+ runtime: SixbRuntimeContext,
205
+ storage: ArtifactAccessStorage = runtime.storage
206
+ ): ArtifactAccessRule {
207
+ const artifacts = storage.artifacts
208
+ if (!artifacts) {
209
+ throw new ArtifactRequestError(
210
+ "storage_unavailable",
211
+ "[Sixb] Artifacts need storage that supports them."
212
+ )
213
+ }
214
+
215
+ const authority = resolveRuntimeAuthorizationForProject(runtime)
216
+ const threads = createAgentThreadAccessRule(runtime, authority, storage.agents)
217
+
218
+ return createArtifactAccessRule({
219
+ storage: artifacts,
220
+ projectId: runtime.projectId,
221
+ // Shared-link sessions and unresolved authority reach no artifact.
222
+ caller:
223
+ authority.type === "unrestricted"
224
+ ? "system"
225
+ : authority.type === "principal"
226
+ ? authority.context.principal
227
+ : null,
228
+ sharing: authority.type === "principal" && authority.ref.credential?.type === "session",
229
+ conversation: async (threadId) => {
230
+ if (await threads.read(threadId)) return "update"
231
+ return isRuntimeAllowed(runtime, { kind: "agentThreads.observe" }) ? "read" : null
232
+ },
233
+ })
54
234
  }
55
235
 
56
236
  export function createArtifactsRuntime(
@@ -65,7 +245,6 @@ export function createArtifactsRuntime(
65
245
  : authority.type === "unrestricted"
66
246
  ? SYSTEM_PRINCIPAL
67
247
  : null
68
- const ownerFilter = authority.type === "principal" ? caller : null
69
248
 
70
249
  const requireStorage = (): ArtifactStorage => {
71
250
  const storage = runtime.storage.artifacts
@@ -83,40 +262,146 @@ export function createArtifactsRuntime(
83
262
  }
84
263
  return caller
85
264
  }
86
- const visible = (artifact: ArtifactRecord | null): ArtifactRecord | null =>
87
- artifact && caller && (!ownerFilter || principalsEqual(ownerFilter, artifact.owner))
88
- ? artifact
89
- : null
90
- const getVisible = async (artifactId: string): Promise<ArtifactRecord | null> =>
91
- caller
92
- ? visible(await requireStorage().get({ projectId: runtime.projectId, id: artifactId }))
93
- : null
94
265
 
95
- return {
266
+ const rule = (storage?: ArtifactAccessStorage): ArtifactAccessRule =>
267
+ createRuntimeArtifactAccessRule(runtime, storage)
268
+ const checkQuery = createArtifactQueryChecker(runtime)
269
+
270
+ /** The artifact with what the caller may do with it; `null` when there is none. */
271
+ const reach = async (
272
+ artifactId: string
273
+ ): Promise<{ readonly artifact: ArtifactRecord; readonly access: ArtifactAccess } | null> => {
274
+ const artifact = await requireStorage().get({ projectId: runtime.projectId, id: artifactId })
275
+ return artifact ? { artifact, access: await rule().accessTo(artifact) } : null
276
+ }
277
+ const getReadable = async (artifactId: string): Promise<ArtifactRecord | null> => {
278
+ const reached = await reach(artifactId)
279
+ return reached && reached.access !== "none" ? reached.artifact : null
280
+ }
281
+
282
+ /** The version with its artifact; `null` when the caller cannot read it or there is none. */
283
+ const readVersion = async (artifactId: string, number: number | "latest") => {
284
+ const artifact = await getReadable(artifactId)
285
+ if (!artifact) return null
286
+
287
+ const version = await requireStorage().getVersion({
288
+ projectId: runtime.projectId,
289
+ artifactId,
290
+ version: number === "latest" ? artifact.latestVersion : number,
291
+ })
292
+ return version ? { artifact, version } : null
293
+ }
294
+
295
+ /** What an address in a version may name: one artifact the caller reads, by one rule. */
296
+ const readableBy = (access: ArtifactAccessRule) => async (artifact: ArtifactRecord) =>
297
+ (await access.accessTo(artifact)) !== "none"
298
+
299
+ /** The artifact, refused unless the caller may update it. */
300
+ const requireUpdatable = async (artifactId: string): Promise<ArtifactRecord> => {
301
+ const reached = await reach(artifactId)
302
+ if (!reached) throw notFound(artifactId)
303
+ assertUpdatable(artifactId, reached.access)
304
+ return reached.artifact
305
+ }
306
+
307
+ /**
308
+ * Stores in one transaction, which checks again what the caller may do: a participant removed
309
+ * while the files were checked publishes nothing.
310
+ */
311
+ const store = (prepared: PreparedArtifactVersion) =>
312
+ runtime.storage.transaction(async (tx) => {
313
+ const storage = tx.artifacts
314
+ if (!storage) throw new Error("[Sixb] Storage transactions hold no artifacts.")
315
+
316
+ return storeArtifactVersion(
317
+ { projectId: runtime.projectId, storage, blobStorage },
318
+ prepared,
319
+ (artifact) => rule(tx).publishAccess(artifact)
320
+ )
321
+ })
322
+
323
+ /**
324
+ * The version's files with its `queries` stored among them. Publishing then checks each one as
325
+ * it checks a query file.
326
+ */
327
+ const contentFiles = async (input: ArtifactContentInput): Promise<readonly ArtifactFile[]> => {
328
+ if (!input.queries) return input.files
329
+
330
+ const files = [...input.files]
331
+ for (const [name, query] of Object.entries(input.queries)) {
332
+ const path = artifactQueryPath(name)
333
+ if (input.files.some((file) => file.path === path)) {
334
+ throw invalidArtifact(`'${path}' is both a file and a query; give it once.`)
335
+ }
336
+
337
+ const body = new TextEncoder().encode(JSON.stringify(queryFile(query)))
338
+ const file = await blobStorage.put({
339
+ body,
340
+ expectedSizeBytes: body.byteLength,
341
+ fileName: `${name}.json`,
342
+ mediaType: "application/json",
343
+ })
344
+ files.push({ path, file })
345
+ }
346
+ return files
347
+ }
348
+
349
+ const artifacts: ArtifactsRuntime = {
96
350
  async create(input) {
351
+ const author = requireCaller()
352
+
97
353
  return publishArtifact(
98
354
  { projectId: runtime.projectId, storage: requireStorage(), blobStorage },
99
- { ...input, author: requireCaller() }
355
+ {
356
+ kind: input.kind,
357
+ title: input.title,
358
+ files: await contentFiles(input),
359
+ author,
360
+ readable: readableBy(rule()),
361
+ checkQuery,
362
+ },
363
+ (artifact) => rule().publishAccess(artifact)
100
364
  )
101
365
  },
102
366
 
103
367
  async publish(artifactId, input) {
104
368
  const author = requireCaller()
105
- if (!(await getVisible(artifactId))) throw notFound(artifactId)
106
- return publishArtifact(
107
- { projectId: runtime.projectId, storage: requireStorage(), blobStorage },
108
- { ...input, artifactId, author }
109
- )
369
+ await requireUpdatable(artifactId)
370
+
371
+ const context = { projectId: runtime.projectId, storage: requireStorage(), blobStorage }
372
+ const prepared = await prepareArtifactVersion(context, {
373
+ artifactId,
374
+ kind: input.kind,
375
+ title: input.title,
376
+ files: await contentFiles(input),
377
+ ...(input.baseVersion === undefined ? {} : { baseVersion: input.baseVersion }),
378
+ author,
379
+ readable: readableBy(rule()),
380
+ checkQuery,
381
+ })
382
+ const stored = await store(prepared)
383
+
384
+ return { ...stored, warnings: await artifactVersionWarnings(context, prepared, stored) }
385
+ },
386
+
387
+ async access(artifactId) {
388
+ return (await reach(artifactId))?.access ?? null
110
389
  },
111
390
 
112
- get: getVisible,
391
+ get: getReadable,
113
392
 
114
393
  async list(input = {}) {
115
394
  if (!caller) return { artifacts: [], hasMore: false, total: 0 }
395
+
396
+ // Whoever reads a conversation reads every artifact it shares; anyone else, their own in it.
397
+ const everyShared =
398
+ input.threadId !== undefined && (await rule().conversation(input.threadId)) !== null
399
+ const ownerFilter = authority.type === "principal" && !everyShared ? caller : null
400
+
116
401
  return requireStorage().list({
117
402
  projectId: runtime.projectId,
118
403
  ...(ownerFilter ? { owner: ownerFilter } : {}),
119
- ...(input.threadId === undefined ? {} : { originThreadId: input.threadId }),
404
+ ...(input.threadId === undefined ? {} : { threadId: input.threadId }),
120
405
  ...(input.kind === undefined ? {} : { kind: input.kind }),
121
406
  ...(input.limit === undefined ? {} : { limit: input.limit }),
122
407
  ...(input.offset === undefined ? {} : { offset: input.offset }),
@@ -124,24 +409,139 @@ export function createArtifactsRuntime(
124
409
  },
125
410
 
126
411
  async getVersion(artifactId, version) {
127
- const artifact = await getVisible(artifactId)
128
- if (!artifact) return null
129
- return requireStorage().getVersion({
130
- projectId: runtime.projectId,
131
- artifactId,
132
- version: version === "latest" ? artifact.latestVersion : version,
133
- })
412
+ return (await readVersion(artifactId, version))?.version ?? null
413
+ },
414
+
415
+ async query(artifactId, name, options = {}) {
416
+ const read = await readVersion(artifactId, options.version ?? "latest")
417
+ if (!read) return null
418
+
419
+ // A file artifact is delivered as it is: its one file is never run.
420
+ const { artifact, version } = read
421
+ const file =
422
+ ARTIFACT_QUERY_KINDS.includes(artifact.kind) && isArtifactQueryName(name)
423
+ ? version.files.find((candidate) => candidate.path === artifactQueryPath(name))
424
+ : undefined
425
+ if (!file) {
426
+ throw new ArtifactRequestError(
427
+ "query_not_found",
428
+ `[Sixb] Version ${version.version} of artifact '${artifactId}' has no query '${name}'.`
429
+ )
430
+ }
431
+
432
+ const text = await readArtifactText(blobStorage, file, ARTIFACT_LIMITS.maxQueryBytes)
433
+ const parsed = parseArtifactQuery(file.path, text)
434
+ if ("error" in parsed) {
435
+ throw new ArtifactRequestError("query_invalid", `[Sixb] ${parsed.error}`)
436
+ }
437
+
438
+ return runArtifactQuery(runtime, name, parsed.query)
134
439
  },
135
440
 
136
441
  async listVersions(artifactId, input = {}) {
137
- if (!(await getVisible(artifactId))) return null
442
+ if (!(await getReadable(artifactId))) return null
138
443
  return requireStorage().listVersions({ projectId: runtime.projectId, artifactId, ...input })
139
444
  },
140
445
 
141
446
  async delete(artifactId) {
142
- if (!(await getVisible(artifactId))) return false
447
+ if ((await reach(artifactId))?.access !== "owner") return false
143
448
  return requireStorage().delete({ projectId: runtime.projectId, id: artifactId })
144
449
  },
450
+
451
+ state(artifactId) {
452
+ // The reader is the caller; an observer reads the page but keeps nothing in it.
453
+ const scope = async () => {
454
+ const principal = requireCaller()
455
+ await requireUpdatable(artifactId)
456
+ return { projectId: runtime.projectId, artifactId, principal }
457
+ }
458
+ return {
459
+ async get(key) {
460
+ const entry = await requireStorage().getState({ ...(await scope()), key: stateKey(key) })
461
+ return entry ? JSON.parse(entry.value) : undefined
462
+ },
463
+ async set(key, value) {
464
+ const at = { ...(await scope()), key: stateKey(key) }
465
+ const text = stateValue(value)
466
+ const updatedAt = new Date()
467
+ try {
468
+ await requireStorage().setState({ ...at, value: text, updatedAt })
469
+ } catch (error) {
470
+ if (error instanceof ArtifactStorageError && error.code === "artifact_state_full") {
471
+ throw new ArtifactRequestError("state_full", error.message)
472
+ }
473
+ throw error
474
+ }
475
+ // As read back: what JSON keeps of it.
476
+ return { key: at.key, value: JSON.parse(text), updatedAt }
477
+ },
478
+ async delete(key) {
479
+ return requireStorage().deleteState({ ...(await scope()), key: stateKey(key) })
480
+ },
481
+ async entries() {
482
+ const entries = await requireStorage().listState(await scope())
483
+ return entries.map((entry) => ({
484
+ key: entry.key,
485
+ value: JSON.parse(entry.value),
486
+ updatedAt: entry.updatedAt,
487
+ }))
488
+ },
489
+ async clear() {
490
+ return requireStorage().clearState(await scope())
491
+ },
492
+ }
493
+ },
494
+ }
495
+
496
+ publishers.set(artifacts, { rule, checkQuery })
497
+ return artifacts
498
+ }
499
+
500
+ /**
501
+ * A key a page names a value by: a short line of text. Not `.` or `..`, which a page could never
502
+ * reach: the API takes the key in its path, where those name another route.
503
+ */
504
+ function stateKey(key: string): string {
505
+ if (
506
+ typeof key !== "string" ||
507
+ key.length === 0 ||
508
+ key.length > ARTIFACT_STATE_LIMITS.maxKeyLength ||
509
+ /\p{Cc}/u.test(key) ||
510
+ key === "." ||
511
+ key === ".."
512
+ ) {
513
+ throw new ArtifactRequestError(
514
+ "invalid_state",
515
+ `[Sixb] A key is 1 to ${ARTIFACT_STATE_LIMITS.maxKeyLength} characters on one line, such as "filters".`
516
+ )
517
+ }
518
+ return key
519
+ }
520
+
521
+ /** A value as JSON text, refused when JSON has no way to write it. */
522
+ function stateValue(value: unknown): string {
523
+ let text: string | undefined
524
+ try {
525
+ text = JSON.stringify(value)
526
+ } catch {
527
+ text = undefined
528
+ }
529
+ if (text === undefined) {
530
+ throw new ArtifactRequestError(
531
+ "invalid_state",
532
+ "[Sixb] A page keeps JSON values: text, numbers, true and false, null, lists, and objects of them."
533
+ )
534
+ }
535
+ return text
536
+ }
537
+
538
+ /** What a query file holds for a query from the builders: its IR, with any facets by id. */
539
+ function queryFile(query: ArtifactQueryInput): unknown {
540
+ if ("ir" in query) return query.ir
541
+
542
+ return {
543
+ query: query.query.ir,
544
+ facets: query.facets.map((facet) => ({ propertyId: facet.property.id, limit: facet.limit })),
145
545
  }
146
546
  }
147
547