@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,502 +0,0 @@
1
- // @bun
2
- import {
3
- createArtifactId,
4
- ARTIFACT_LIMITS2,
5
- isArtifactAddress2,
6
- parseArtifactAddress2
7
- } from "./chunk-mjddfa7k.js";
8
- import {
9
- ARTIFACT_THEME_FILE2,
10
- parseArtifactTheme2,
11
- resolveArtifactAddress2,
12
- createHeadingSlugger2,
13
- CsvParseError2,
14
- parseCsv2,
15
- WORKBOOK_FILE2,
16
- NUMERIC_COLUMN_TYPES2,
17
- sheetFilePath2,
18
- parseWorkbook2,
19
- parseSheetNumber2,
20
- parseSheetDate2
21
- } from "./chunk-7q8t23v4.js";
22
- import {
23
- inferFileMediaType2
24
- } from "./chunk-wkv3h3q7.js";
25
- import {
26
- principalsEqual2
27
- } from "./chunk-nn5xnx3s.js";
28
- import {
29
- ArtifactRequestError2,
30
- checkArtifactFiles,
31
- readArtifactText,
32
- invalidArtifact,
33
- decodeHtmlEntities,
34
- validateSlides
35
- } from "./chunk-48qjhh6v.js";
36
- import {
37
- ArtifactStorageError
38
- } from "./chunk-3jms7je7.js";
39
-
40
- // src/artifacts/publish/references.ts
41
- async function resolveReferences(context, found) {
42
- if (found.length > ARTIFACT_LIMITS2.maxReferences) {
43
- throw invalidArtifact(`A version may refer to at most ${ARTIFACT_LIMITS2.maxReferences} artifacts; this one has ${found.length} addresses.`);
44
- }
45
- const artifacts = new Map;
46
- const versions = new Map;
47
- const resolved = [];
48
- for (const reference of found) {
49
- const where = reference.at ? `In '${reference.at}', '${reference.address}'` : `'${reference.address}'`;
50
- const address = parseArtifactAddress2(reference.address);
51
- if (!address) {
52
- throw invalidArtifact(`${where} is not an artifact address: write artifact:<id>[@<version>][/<file>][#<part>], such as artifact:art_k3m9q2x7tp#chart=revenue.`);
53
- }
54
- if (address.artifactId === context.artifactId) {
55
- throw invalidArtifact(`${where} names the artifact being published. Link to one of its sections with #<slug> instead.`);
56
- }
57
- let artifact = artifacts.get(address.artifactId);
58
- if (!artifact) {
59
- artifact = context.storage.get({ projectId: context.projectId, id: address.artifactId }).then((record) => record && readable(context.author, record) ? record : null);
60
- artifacts.set(address.artifactId, artifact);
61
- }
62
- const record = await artifact;
63
- if (!record) {
64
- throw invalidArtifact(`${where} names no artifact you can read.`);
65
- }
66
- const number = address.version ?? record.latestVersion;
67
- const key = `${record.id}@${number}`;
68
- let version = versions.get(key);
69
- if (!version) {
70
- version = context.storage.getVersion({
71
- projectId: context.projectId,
72
- artifactId: record.id,
73
- version: number
74
- });
75
- versions.set(key, version);
76
- }
77
- const target = await version;
78
- if (!target)
79
- throw invalidArtifact(`${where}: \u201C${record.title}\u201D has no version ${number}.`);
80
- const result = resolveArtifactAddress2(address, { kind: record.kind, ...target });
81
- if ("problem" in result) {
82
- throw invalidArtifact(`${where}: \u201C${target.title}\u201D ${result.problem}.`);
83
- }
84
- resolved.push({ ...reference, resolvedVersion: target.version });
85
- }
86
- return resolved;
87
- }
88
- async function brokenDependents(context, artifact, version) {
89
- const dependents = await context.storage.listReferencingVersions({
90
- projectId: context.projectId,
91
- artifactId: artifact.id
92
- });
93
- const warnings = [];
94
- for (const dependent of dependents) {
95
- if (dependent.artifactId === artifact.id)
96
- continue;
97
- const owner = await context.storage.get({
98
- projectId: context.projectId,
99
- id: dependent.artifactId
100
- });
101
- if (!owner || !readable(context.author, owner))
102
- continue;
103
- for (const reference of dependent.references) {
104
- const address = parseArtifactAddress2(reference.address);
105
- if (address?.artifactId !== artifact.id || address.version !== undefined)
106
- continue;
107
- const result = resolveArtifactAddress2(address, { kind: artifact.kind, ...version });
108
- if (!("problem" in result))
109
- continue;
110
- warnings.push({
111
- code: "reference_broken",
112
- message: `\u201C${dependent.title}\u201D (${dependent.artifactId}) ${reference.as === "embed" ? "shows" : "links to"} ${reference.address}, but version ${version.version} ${result.problem}. Publish its next version with an address that resolves, or restore what it names.`
113
- });
114
- }
115
- }
116
- return warnings;
117
- }
118
- function readable(reader, artifact) {
119
- return reader.type === "system" || principalsEqual2(reader, artifact.owner);
120
- }
121
-
122
- // src/artifacts/publish/validate/document.ts
123
- import { posix } from "path";
124
- var DOCUMENT_ENTRY = "document.md";
125
- async function validateDocument(blobStorage, files) {
126
- const entry = files.find((file) => file.path === DOCUMENT_ENTRY);
127
- if (!entry)
128
- throw invalidArtifact(`A document needs its Markdown in '${DOCUMENT_ENTRY}'.`);
129
- const markdown = await readArtifactText(blobStorage, entry, ARTIFACT_LIMITS2.maxDocumentBytes);
130
- const html = Bun.markdown.html(markdown, {
131
- tables: true,
132
- strikethrough: true,
133
- tasklists: true,
134
- autolinks: true
135
- });
136
- const headings = [];
137
- const images = [];
138
- const addresses = [];
139
- let heading = null;
140
- new HTMLRewriter().on("h1, h2, h3, h4, h5, h6", {
141
- element(element) {
142
- heading = { depth: Number(element.tagName.slice(1)), text: "" };
143
- headings.push(heading);
144
- element.onEndTag(() => {
145
- heading = null;
146
- });
147
- },
148
- text(chunk) {
149
- if (heading)
150
- heading.text += chunk.text;
151
- }
152
- }).on("img", {
153
- element(element) {
154
- const source = decodeHtmlEntities(element.getAttribute("src") ?? "");
155
- if (isArtifactAddress2(source)) {
156
- addresses.push({ address: source.trim(), as: "embed", heading: headings.length - 1 });
157
- } else {
158
- images.push(source);
159
- }
160
- }
161
- }).on("a", {
162
- element(element) {
163
- const href = decodeHtmlEntities(element.getAttribute("href") ?? "");
164
- if (isArtifactAddress2(href)) {
165
- addresses.push({ address: href.trim(), as: "link", heading: headings.length - 1 });
166
- }
167
- }
168
- }).transform(html);
169
- const paths = new Set(files.map((file) => file.path));
170
- for (const source of images)
171
- checkImage(source, paths);
172
- const slug = createHeadingSlugger2();
173
- const outlined = headings.map(({ depth, text }) => {
174
- const plain = decodeHtmlEntities(text).replace(/\s+/g, " ").trim();
175
- return { depth, text: plain, slug: slug(plain) };
176
- });
177
- return {
178
- entry: DOCUMENT_ENTRY,
179
- outline: { kind: "document", headings: outlined },
180
- references: addresses.map(({ address, as, heading: index }) => ({
181
- address,
182
- as,
183
- at: outlined[index]?.slug ?? ""
184
- }))
185
- };
186
- }
187
- function checkImage(source, paths) {
188
- if (source === "" || source.startsWith("//") || /^[a-z][a-z\d+.-]*:/i.test(source)) {
189
- throw invalidArtifact(`${DOCUMENT_ENTRY} shows the image '${source}'. Images must be files in the artifact, by their relative path, or another artifact's address, such as artifact:art_k3m9q2x7tp#chart=revenue.`);
190
- }
191
- const path = posix.normalize(safeDecodeUri(source.split(/[?#]/)[0] ?? ""));
192
- if (!paths.has(path)) {
193
- throw invalidArtifact(`${DOCUMENT_ENTRY} shows the image '${source}', which is not one of the artifact's files.`);
194
- }
195
- }
196
- function safeDecodeUri(value) {
197
- try {
198
- return decodeURI(value);
199
- } catch {
200
- return value;
201
- }
202
- }
203
-
204
- // src/artifacts/publish/validate/file.ts
205
- function validateFileArtifact(files) {
206
- const [file] = files;
207
- if (!file || files.length > 1) {
208
- throw invalidArtifact(`A file artifact holds exactly one file; this one has ${files.length}.`);
209
- }
210
- return {
211
- entry: file.path,
212
- outline: { kind: "file", mediaType: file.file.mediaType ?? inferFileMediaType2(file.path) }
213
- };
214
- }
215
-
216
- // src/artifacts/publish/validate/sheet.ts
217
- import { posix as posix2 } from "path";
218
- async function validateSheet(blobStorage, files) {
219
- const byPath = new Map(files.map((file) => [file.path, file]));
220
- const workbookFile = byPath.get(WORKBOOK_FILE2);
221
- if (!workbookFile) {
222
- throw invalidArtifact(`A sheet is a directory: '${WORKBOOK_FILE2}' listing its sheets, and one CSV per sheet under sheets/. A single CSV publishes as a file.`);
223
- }
224
- const parsed = parseWorkbook2(await readArtifactText(blobStorage, workbookFile, ARTIFACT_LIMITS2.maxWorkbookBytes));
225
- if ("error" in parsed)
226
- throw invalidArtifact(parsed.error);
227
- const { workbook } = parsed;
228
- const declared = new Set(workbook.sheets.map((sheet) => sheetFilePath2(sheet.name)));
229
- const stray = files.find((file) => file.path.startsWith("sheets/") && !declared.has(file.path));
230
- if (stray) {
231
- throw invalidArtifact(`'${stray.path}' is not a sheet in ${WORKBOOK_FILE2}: list it in "sheets", or move it out of sheets/.`);
232
- }
233
- const tables = new Map;
234
- const references = [];
235
- for (const sheet of workbook.sheets) {
236
- tables.set(sheet.name, await readSheet(blobStorage, byPath, sheet, references));
237
- }
238
- checkCharts(workbook, tables);
239
- return {
240
- entry: WORKBOOK_FILE2,
241
- outline: {
242
- kind: "sheet",
243
- sheets: workbook.sheets.map((sheet) => {
244
- const table = tables.get(sheet.name);
245
- return {
246
- name: sheet.name,
247
- rows: table?.rows.length ?? 0,
248
- columns: [...table?.header ?? []]
249
- };
250
- }),
251
- charts: workbook.charts.map((chart) => chart.name)
252
- },
253
- references
254
- };
255
- }
256
- async function readSheet(blobStorage, byPath, sheet, references) {
257
- const path = sheetFilePath2(sheet.name);
258
- const file = byPath.get(path);
259
- if (!file)
260
- throw invalidArtifact(`Sheet '${sheet.name}' needs its values in '${path}'.`);
261
- if (file.file.sizeBytes > ARTIFACT_LIMITS2.maxSheetFileBytes) {
262
- throw invalidArtifact(`'${path}' is ${megabytes(file.file.sizeBytes)} MB; a sheet's values may be at most ${megabytes(ARTIFACT_LIMITS2.maxSheetFileBytes)} MB, which is what the viewer reads. Split it into several sheets, or publish the CSV as a file.`);
263
- }
264
- let table;
265
- try {
266
- table = parseCsv2(await readArtifactText(blobStorage, file, ARTIFACT_LIMITS2.maxSheetFileBytes));
267
- } catch (error) {
268
- if (error instanceof CsvParseError2)
269
- throw invalidArtifact(`'${path}': ${error.message}`);
270
- throw error;
271
- }
272
- const { header, rows } = table;
273
- if (header.length === 0)
274
- throw invalidArtifact(`'${path}' is empty: its first line names the columns.`);
275
- if (header.length > ARTIFACT_LIMITS2.maxSheetColumns) {
276
- throw invalidArtifact(`'${path}' has ${header.length} columns; a sheet holds at most ${ARTIFACT_LIMITS2.maxSheetColumns}.`);
277
- }
278
- const seen = new Set;
279
- for (const [index, name] of header.entries()) {
280
- if (!name.trim()) {
281
- throw invalidArtifact(`'${path}' column ${index + 1} has no name in the header row.`);
282
- }
283
- if (seen.has(name))
284
- throw invalidArtifact(`'${path}' has two columns named '${name}'.`);
285
- seen.add(name);
286
- }
287
- if (rows.length > ARTIFACT_LIMITS2.maxSheetRows) {
288
- throw invalidArtifact(`'${path}' has ${rows.length} rows; a sheet holds at most ${ARTIFACT_LIMITS2.maxSheetRows}.`);
289
- }
290
- for (const [index, row] of rows.entries()) {
291
- if (row.length > header.length) {
292
- throw invalidArtifact(`'${path}' row ${index + 2} has ${row.length} fields; the header names ${header.length} columns.`);
293
- }
294
- }
295
- for (const column of [...Object.keys(sheet.columns), ...Object.keys(sheet.widths)]) {
296
- if (!seen.has(column)) {
297
- throw invalidArtifact(`${WORKBOOK_FILE2} sheet '${sheet.name}' names column '${column}', which '${path}' does not have.`);
298
- }
299
- }
300
- for (const [column, format] of Object.entries(sheet.columns)) {
301
- const index = header.indexOf(column);
302
- if (format.type === "link" || format.type === "image") {
303
- for (const [rowIndex, row] of table.rows.entries()) {
304
- const value = row[index]?.trim() ?? "";
305
- if (!isArtifactAddress2(value))
306
- continue;
307
- references.push({
308
- address: value,
309
- as: format.type === "image" ? "embed" : "link",
310
- at: `${sheet.name}!${columnLetter(index)}${rowIndex + 2}`
311
- });
312
- }
313
- }
314
- checkColumn(path, table, index, column, format, byPath);
315
- }
316
- return table;
317
- }
318
- function checkColumn(path, table, index, column, format, byPath) {
319
- for (const [rowIndex, row] of table.rows.entries()) {
320
- const value = row[index] ?? "";
321
- if (!value.trim() || isArtifactAddress2(value))
322
- continue;
323
- const problem = cellProblem(value, format, byPath);
324
- if (problem) {
325
- throw invalidArtifact(`'${path}' row ${rowIndex + 2}, column '${column}': ${JSON.stringify(value)} ${problem}`);
326
- }
327
- }
328
- }
329
- function cellProblem(value, format, byPath) {
330
- switch (format.type) {
331
- case "number":
332
- case "currency":
333
- return parseSheetNumber2(value) === undefined ? "is not a number: write plain digits, such as 4120000 or -3.5, with no symbols or separators." : undefined;
334
- case "percent":
335
- return parseSheetNumber2(value) === undefined ? "is not a number: write a percent as a fraction, such as 0.351 for 35.1%." : undefined;
336
- case "date":
337
- return parseSheetDate2(value) === undefined ? "is not a date: write YYYY-MM-DD, or an ISO 8601 date and time." : undefined;
338
- case "link":
339
- return /^https?:\/\/[^\s]+$/i.test(value.trim()) ? undefined : "is not a link: write a full https:// address, or another artifact's address.";
340
- case "image": {
341
- const imagePath = posix2.normalize(value.trim());
342
- return byPath.has(imagePath) ? undefined : "is not one of the artifact's files: add the image to the artifact and give its relative path, or give another artifact's address.";
343
- }
344
- case "text":
345
- return;
346
- }
347
- }
348
- function checkCharts(workbook, tables) {
349
- for (const chart of workbook.charts) {
350
- const sheet = workbook.sheets.find((candidate) => candidate.name === chart.sheet);
351
- const table = tables.get(chart.sheet);
352
- if (!sheet || !table)
353
- continue;
354
- for (const column of [chart.x, ...chart.y]) {
355
- if (!table.header.includes(column)) {
356
- throw invalidArtifact(`${WORKBOOK_FILE2} chart '${chart.name}' plots column '${column}', which sheet '${chart.sheet}' does not have.`);
357
- }
358
- }
359
- for (const column of chart.y) {
360
- const type = sheet.columns[column]?.type ?? "text";
361
- if (!NUMERIC_COLUMN_TYPES2.includes(type)) {
362
- throw invalidArtifact(`${WORKBOOK_FILE2} chart '${chart.name}' plots column '${column}', which is ${type}; give it a number, currency, or percent type in "columns".`);
363
- }
364
- }
365
- if (chart.type === "pie" && table.rows.length > ARTIFACT_LIMITS2.maxPieSlices) {
366
- throw invalidArtifact(`${WORKBOOK_FILE2} chart '${chart.name}' is a pie with ${table.rows.length} slices; a pie reads well with at most ${ARTIFACT_LIMITS2.maxPieSlices}. Use a bar chart instead.`);
367
- }
368
- }
369
- }
370
- function columnLetter(index) {
371
- let letters = "";
372
- for (let rest = index + 1;rest > 0; rest = Math.floor((rest - 1) / 26)) {
373
- letters = String.fromCharCode(65 + (rest - 1) % 26) + letters;
374
- }
375
- return letters;
376
- }
377
- function megabytes(bytes) {
378
- return (bytes / (1024 * 1024)).toFixed(1).replace(/\.0$/, "");
379
- }
380
-
381
- // src/artifacts/publish/publish.ts
382
- var CREATE_ATTEMPTS = 3;
383
- async function publishArtifact2(context, input) {
384
- const prepared = await prepareArtifactVersion2(context, input);
385
- const stored = await storeArtifactVersion2(context, prepared);
386
- return { ...stored, warnings: await artifactVersionWarnings2(context, prepared, stored) };
387
- }
388
- async function prepareArtifactVersion2(context, input) {
389
- const title = checkTitle(input.title);
390
- await checkArtifactFiles(context.blobStorage, input.files);
391
- if (input.kind !== "file")
392
- await checkTheme(context.blobStorage, input.files);
393
- const validated = await validateKind(context.blobStorage, input.kind, input.files);
394
- const references = await resolveReferences(referenceContext(context, input), validated.references ?? []);
395
- return {
396
- ...input.artifactId ? { artifactId: input.artifactId } : {},
397
- kind: input.kind,
398
- author: input.author,
399
- version: {
400
- title,
401
- entry: validated.entry,
402
- files: input.files.map(({ path, file }) => ({ path, file: { ...file } })),
403
- outline: validated.outline,
404
- references,
405
- author: input.author,
406
- ...input.origin ? { origin: input.origin } : {},
407
- createdAt: new Date
408
- }
409
- };
410
- }
411
- async function storeArtifactVersion2(context, prepared) {
412
- return prepared.artifactId ? publishVersion(context, prepared.artifactId, prepared.kind, prepared.version) : createArtifact(context, prepared.kind, prepared.author, prepared.version);
413
- }
414
- async function artifactVersionWarnings2(context, prepared, stored) {
415
- if (!prepared.artifactId)
416
- return [];
417
- try {
418
- return await brokenDependents(referenceContext(context, prepared), stored.artifact, stored.version);
419
- } catch (error) {
420
- console.warn(`[Sixb] Could not check which artifacts version ${stored.version.version} of '${stored.artifact.id}' breaks:`, error);
421
- return [];
422
- }
423
- }
424
- function referenceContext(context, input) {
425
- return {
426
- projectId: context.projectId,
427
- storage: context.storage,
428
- author: input.author,
429
- ...input.artifactId ? { artifactId: input.artifactId } : {}
430
- };
431
- }
432
- async function validateKind(blobStorage, kind, files) {
433
- switch (kind) {
434
- case "document":
435
- return validateDocument(blobStorage, files);
436
- case "file":
437
- return validateFileArtifact(files);
438
- case "sheet":
439
- return validateSheet(blobStorage, files);
440
- case "slides":
441
- return validateSlides(blobStorage, files);
442
- default:
443
- throw invalidArtifact(`'${kind}' is not a kind of artifact.`);
444
- }
445
- }
446
- async function checkTheme(blobStorage, files) {
447
- const themeFile = files.find((file) => file.path === ARTIFACT_THEME_FILE2);
448
- if (!themeFile)
449
- return;
450
- const parsed = parseArtifactTheme2(await readArtifactText(blobStorage, themeFile, ARTIFACT_LIMITS2.maxThemeBytes));
451
- if ("error" in parsed)
452
- throw invalidArtifact(parsed.error);
453
- }
454
- function checkTitle(value) {
455
- const title = typeof value === "string" ? value.trim() : "";
456
- if (title.length === 0 || /[\u0000-\u001f\u007f]/.test(title)) {
457
- throw invalidArtifact("An artifact needs a title of plain text.");
458
- }
459
- if (title.length > ARTIFACT_LIMITS2.maxTitleLength) {
460
- throw invalidArtifact(`A title may be at most ${ARTIFACT_LIMITS2.maxTitleLength} characters.`);
461
- }
462
- return title;
463
- }
464
- async function publishVersion(context, artifactId, kind, version) {
465
- try {
466
- return await context.storage.publish({
467
- projectId: context.projectId,
468
- artifactId,
469
- kind,
470
- version
471
- });
472
- } catch (error) {
473
- if (error instanceof ArtifactStorageError && error.code === "artifact_not_found") {
474
- throw new ArtifactRequestError2("artifact_not_found", error.message);
475
- }
476
- if (error instanceof ArtifactStorageError && error.code === "artifact_kind_mismatch") {
477
- throw new ArtifactRequestError2("artifact_kind_mismatch", error.message);
478
- }
479
- throw error;
480
- }
481
- }
482
- async function createArtifact(context, kind, owner, version) {
483
- for (let attempt = 1;; attempt += 1) {
484
- try {
485
- return await context.storage.create({
486
- projectId: context.projectId,
487
- id: createArtifactId(),
488
- kind,
489
- owner,
490
- version
491
- });
492
- } catch (error) {
493
- const collided = error instanceof ArtifactStorageError && error.code === "artifact_exists";
494
- if (!collided || attempt === CREATE_ATTEMPTS)
495
- throw error;
496
- }
497
- }
498
- }
499
-
500
- export { publishArtifact2, prepareArtifactVersion2, storeArtifactVersion2, artifactVersionWarnings2 };
501
-
502
- //# debugId=888103C0848E526564756E2164756E21
@@ -1,14 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/artifacts/publish/references.ts", "../src/artifacts/publish/validate/document.ts", "../src/artifacts/publish/validate/file.ts", "../src/artifacts/publish/validate/sheet.ts", "../src/artifacts/publish/publish.ts"],
4
- "sourcesContent": [
5
- "import { type Principal, principalsEqual } from \"../../auth\"\nimport type {\n ArtifactRecord,\n ArtifactStorage,\n ArtifactVersionRecord,\n} from \"../../storage/artifacts/types\"\nimport { parseArtifactAddress } from \"../address\"\nimport { ARTIFACT_LIMITS } from \"../limits\"\nimport type { ArtifactReference } from \"../references\"\nimport { resolveArtifactAddress } from \"../resolve\"\nimport type { ArtifactWarning } from \"../warnings\"\nimport { invalidArtifact } from \"./files\"\n\n/** An address a validator found in a version, before it is resolved. */\nexport type FoundReference = Omit<ArtifactReference, \"resolvedVersion\">\n\ninterface ReferenceContext {\n readonly projectId: string\n readonly storage: ArtifactStorage\n /** Who publishes: an address resolves only to artifacts they can read. */\n readonly author: Principal\n /** The artifact being published, which an address may not name. */\n readonly artifactId?: string\n}\n\n/**\n * Resolves every address a version uses against what its author can read, recording the version\n * each one resolved to. An address that resolves to nothing refuses the version, saying where it\n * is and what the target has instead.\n */\nexport async function resolveReferences(\n context: ReferenceContext,\n found: readonly FoundReference[]\n): Promise<ArtifactReference[]> {\n if (found.length > ARTIFACT_LIMITS.maxReferences) {\n throw invalidArtifact(\n `A version may refer to at most ${ARTIFACT_LIMITS.maxReferences} artifacts; this one has ${found.length} addresses.`\n )\n }\n const artifacts = new Map<string, Promise<ArtifactRecord | null>>()\n const versions = new Map<string, Promise<ArtifactVersionRecord | null>>()\n const resolved: ArtifactReference[] = []\n for (const reference of found) {\n const where = reference.at\n ? `In '${reference.at}', '${reference.address}'`\n : `'${reference.address}'`\n const address = parseArtifactAddress(reference.address)\n if (!address) {\n throw invalidArtifact(\n `${where} is not an artifact address: write artifact:<id>[@<version>][/<file>][#<part>], such as artifact:art_k3m9q2x7tp#chart=revenue.`\n )\n }\n if (address.artifactId === context.artifactId) {\n throw invalidArtifact(\n `${where} names the artifact being published. Link to one of its sections with #<slug> instead.`\n )\n }\n let artifact = artifacts.get(address.artifactId)\n if (!artifact) {\n artifact = context.storage\n .get({ projectId: context.projectId, id: address.artifactId })\n .then((record) => (record && readable(context.author, record) ? record : null))\n artifacts.set(address.artifactId, artifact)\n }\n const record = await artifact\n if (!record) {\n throw invalidArtifact(`${where} names no artifact you can read.`)\n }\n const number = address.version ?? record.latestVersion\n const key = `${record.id}@${number}`\n let version = versions.get(key)\n if (!version) {\n version = context.storage.getVersion({\n projectId: context.projectId,\n artifactId: record.id,\n version: number,\n })\n versions.set(key, version)\n }\n const target = await version\n if (!target) throw invalidArtifact(`${where}: “${record.title}” has no version ${number}.`)\n const result = resolveArtifactAddress(address, { kind: record.kind, ...target })\n if (\"problem\" in result) {\n throw invalidArtifact(`${where}: “${target.title}” ${result.problem}.`)\n }\n resolved.push({ ...reference, resolvedVersion: target.version })\n }\n return resolved\n}\n\n/**\n * The artifacts a new version breaks: each one whose latest version follows this artifact's latest\n * and names something this version no longer has. Only artifacts the author can read are named.\n */\nexport async function brokenDependents(\n context: ReferenceContext,\n artifact: ArtifactRecord,\n version: ArtifactVersionRecord\n): Promise<ArtifactWarning[]> {\n const dependents = await context.storage.listReferencingVersions({\n projectId: context.projectId,\n artifactId: artifact.id,\n })\n const warnings: ArtifactWarning[] = []\n for (const dependent of dependents) {\n if (dependent.artifactId === artifact.id) continue\n const owner = await context.storage.get({\n projectId: context.projectId,\n id: dependent.artifactId,\n })\n if (!owner || !readable(context.author, owner)) continue\n for (const reference of dependent.references) {\n const address = parseArtifactAddress(reference.address)\n // A pinned address keeps showing the version it names.\n if (address?.artifactId !== artifact.id || address.version !== undefined) continue\n const result = resolveArtifactAddress(address, { kind: artifact.kind, ...version })\n if (!(\"problem\" in result)) continue\n warnings.push({\n code: \"reference_broken\",\n message: `“${dependent.title}” (${dependent.artifactId}) ${reference.as === \"embed\" ? \"shows\" : \"links to\"} ${reference.address}, but version ${version.version} ${result.problem}. Publish its next version with an address that resolves, or restore what it names.`,\n })\n }\n }\n return warnings\n}\n\n/** Owner-only, as reading is: system code reads every artifact in the project. */\nfunction readable(reader: Principal, artifact: ArtifactRecord): boolean {\n return reader.type === \"system\" || principalsEqual(reader, artifact.owner)\n}\n",
6
- "import { posix } from \"node:path\"\nimport type { ArtifactFile } from \"../../../storage/artifacts/types\"\nimport { isArtifactAddress } from \"../../address\"\nimport { decodeHtmlEntities } from \"../../html\"\nimport { ARTIFACT_LIMITS } from \"../../limits\"\nimport { createHeadingSlugger, type DocumentHeading, type DocumentOutline } from \"../../outline\"\nimport { type ArtifactBlobStorage, invalidArtifact, readArtifactText } from \"../files\"\nimport type { FoundReference } from \"../references\"\n\n/** The file a document renders from. */\nexport const DOCUMENT_ENTRY = \"document.md\"\n\n/**\n * Reads a document's Markdown: its headings become the outline, and every image must be a file in\n * the version or an `artifact:` address, so the document renders the same wherever it is opened.\n * The addresses it shows and links to are returned with the section each sits in, to resolve.\n */\nexport async function validateDocument(\n blobStorage: ArtifactBlobStorage,\n files: readonly ArtifactFile[]\n): Promise<{\n readonly entry: string\n readonly outline: DocumentOutline\n readonly references: readonly FoundReference[]\n}> {\n const entry = files.find((file) => file.path === DOCUMENT_ENTRY)\n if (!entry) throw invalidArtifact(`A document needs its Markdown in '${DOCUMENT_ENTRY}'.`)\n const markdown = await readArtifactText(blobStorage, entry, ARTIFACT_LIMITS.maxDocumentBytes)\n\n // The same options the docs site renders with, so headings and images read the same way.\n const html = Bun.markdown.html(markdown, {\n tables: true,\n strikethrough: true,\n tasklists: true,\n autolinks: true,\n })\n const headings: { depth: number; text: string }[] = []\n const images: string[] = []\n // Each address with the index of the heading it follows, -1 before the first.\n const addresses: { address: string; as: \"embed\" | \"link\"; heading: number }[] = []\n let heading: { depth: number; text: string } | null = null\n new HTMLRewriter()\n .on(\"h1, h2, h3, h4, h5, h6\", {\n element(element) {\n heading = { depth: Number(element.tagName.slice(1)), text: \"\" }\n headings.push(heading)\n element.onEndTag(() => {\n heading = null\n })\n },\n text(chunk) {\n if (heading) heading.text += chunk.text\n },\n })\n .on(\"img\", {\n element(element) {\n const source = decodeHtmlEntities(element.getAttribute(\"src\") ?? \"\")\n if (isArtifactAddress(source)) {\n addresses.push({ address: source.trim(), as: \"embed\", heading: headings.length - 1 })\n } else {\n images.push(source)\n }\n },\n })\n .on(\"a\", {\n element(element) {\n const href = decodeHtmlEntities(element.getAttribute(\"href\") ?? \"\")\n if (isArtifactAddress(href)) {\n addresses.push({ address: href.trim(), as: \"link\", heading: headings.length - 1 })\n }\n },\n })\n .transform(html)\n\n const paths = new Set(files.map((file) => file.path))\n for (const source of images) checkImage(source, paths)\n\n const slug = createHeadingSlugger()\n const outlined = headings.map(({ depth, text }): DocumentHeading => {\n const plain = decodeHtmlEntities(text).replace(/\\s+/g, \" \").trim()\n return { depth, text: plain, slug: slug(plain) }\n })\n return {\n entry: DOCUMENT_ENTRY,\n outline: { kind: \"document\", headings: outlined },\n references: addresses.map(({ address, as, heading: index }) => ({\n address,\n as,\n at: outlined[index]?.slug ?? \"\",\n })),\n }\n}\n\nfunction checkImage(source: string, paths: ReadonlySet<string>): void {\n if (source === \"\" || source.startsWith(\"//\") || /^[a-z][a-z\\d+.-]*:/i.test(source)) {\n throw invalidArtifact(\n `${DOCUMENT_ENTRY} shows the image '${source}'. Images must be files in the artifact, by their relative path, or another artifact's address, such as artifact:art_k3m9q2x7tp#chart=revenue.`\n )\n }\n const path = posix.normalize(safeDecodeUri(source.split(/[?#]/)[0] ?? \"\"))\n if (!paths.has(path)) {\n throw invalidArtifact(\n `${DOCUMENT_ENTRY} shows the image '${source}', which is not one of the artifact's files.`\n )\n }\n}\n\nfunction safeDecodeUri(value: string): string {\n try {\n return decodeURI(value)\n } catch {\n return value\n }\n}\n",
7
- "import { inferFileMediaType } from \"../../../blob-storage/media-type\"\nimport type { ArtifactFile } from \"../../../storage/artifacts/types\"\nimport type { FileOutline } from \"../../outline\"\nimport { invalidArtifact } from \"../files\"\n\n/** A file artifact is one file of any type, delivered as it is. */\nexport function validateFileArtifact(files: readonly ArtifactFile[]): {\n readonly entry: string\n readonly outline: FileOutline\n} {\n const [file] = files\n if (!file || files.length > 1) {\n throw invalidArtifact(`A file artifact holds exactly one file; this one has ${files.length}.`)\n }\n return {\n entry: file.path,\n outline: { kind: \"file\", mediaType: file.file.mediaType ?? inferFileMediaType(file.path) },\n }\n}\n",
8
- "import { posix } from \"node:path\"\nimport type { ArtifactFile } from \"../../../storage/artifacts/types\"\nimport { isArtifactAddress } from \"../../address\"\nimport { CsvParseError, type CsvTable, parseCsv } from \"../../csv\"\nimport { ARTIFACT_LIMITS } from \"../../limits\"\nimport type { SheetOutline } from \"../../outline\"\nimport {\n NUMERIC_COLUMN_TYPES,\n parseSheetDate,\n parseSheetNumber,\n parseWorkbook,\n type SheetColumnFormat,\n sheetFilePath,\n WORKBOOK_FILE,\n type Workbook,\n type WorkbookSheet,\n} from \"../../workbook\"\nimport { type ArtifactBlobStorage, invalidArtifact, readArtifactText } from \"../files\"\nimport type { FoundReference } from \"../references\"\n\n/**\n * Reads a sheet: `workbook.json`, then each sheet's CSV against it. Every cell of a typed column\n * must read as its type and every chart must name columns its sheet has, so the grid formats and\n * the charts draw the same wherever the sheet is opened.\n */\nexport async function validateSheet(\n blobStorage: ArtifactBlobStorage,\n files: readonly ArtifactFile[]\n): Promise<{\n readonly entry: string\n readonly outline: SheetOutline\n readonly references: readonly FoundReference[]\n}> {\n const byPath = new Map(files.map((file) => [file.path, file]))\n const workbookFile = byPath.get(WORKBOOK_FILE)\n if (!workbookFile) {\n throw invalidArtifact(\n `A sheet is a directory: '${WORKBOOK_FILE}' listing its sheets, and one CSV per sheet under sheets/. A single CSV publishes as a file.`\n )\n }\n const parsed = parseWorkbook(\n await readArtifactText(blobStorage, workbookFile, ARTIFACT_LIMITS.maxWorkbookBytes)\n )\n if (\"error\" in parsed) throw invalidArtifact(parsed.error)\n const { workbook } = parsed\n\n const declared = new Set(workbook.sheets.map((sheet) => sheetFilePath(sheet.name)))\n const stray = files.find((file) => file.path.startsWith(\"sheets/\") && !declared.has(file.path))\n if (stray) {\n throw invalidArtifact(\n `'${stray.path}' is not a sheet in ${WORKBOOK_FILE}: list it in \"sheets\", or move it out of sheets/.`\n )\n }\n\n const tables = new Map<string, CsvTable>()\n const references: FoundReference[] = []\n for (const sheet of workbook.sheets) {\n tables.set(sheet.name, await readSheet(blobStorage, byPath, sheet, references))\n }\n checkCharts(workbook, tables)\n\n return {\n entry: WORKBOOK_FILE,\n outline: {\n kind: \"sheet\",\n sheets: workbook.sheets.map((sheet) => {\n const table = tables.get(sheet.name)\n return {\n name: sheet.name,\n rows: table?.rows.length ?? 0,\n columns: [...(table?.header ?? [])],\n }\n }),\n charts: workbook.charts.map((chart) => chart.name),\n },\n references,\n }\n}\n\nasync function readSheet(\n blobStorage: ArtifactBlobStorage,\n byPath: ReadonlyMap<string, ArtifactFile>,\n sheet: WorkbookSheet,\n references: FoundReference[]\n): Promise<CsvTable> {\n const path = sheetFilePath(sheet.name)\n const file = byPath.get(path)\n if (!file) throw invalidArtifact(`Sheet '${sheet.name}' needs its values in '${path}'.`)\n\n if (file.file.sizeBytes > ARTIFACT_LIMITS.maxSheetFileBytes) {\n throw invalidArtifact(\n `'${path}' is ${megabytes(file.file.sizeBytes)} MB; a sheet's values may be at most ${megabytes(ARTIFACT_LIMITS.maxSheetFileBytes)} MB, which is what the viewer reads. Split it into several sheets, or publish the CSV as a file.`\n )\n }\n let table: CsvTable\n try {\n table = parseCsv(await readArtifactText(blobStorage, file, ARTIFACT_LIMITS.maxSheetFileBytes))\n } catch (error) {\n if (error instanceof CsvParseError) throw invalidArtifact(`'${path}': ${error.message}`)\n throw error\n }\n\n const { header, rows } = table\n if (header.length === 0)\n throw invalidArtifact(`'${path}' is empty: its first line names the columns.`)\n if (header.length > ARTIFACT_LIMITS.maxSheetColumns) {\n throw invalidArtifact(\n `'${path}' has ${header.length} columns; a sheet holds at most ${ARTIFACT_LIMITS.maxSheetColumns}.`\n )\n }\n const seen = new Set<string>()\n for (const [index, name] of header.entries()) {\n if (!name.trim()) {\n throw invalidArtifact(`'${path}' column ${index + 1} has no name in the header row.`)\n }\n if (seen.has(name)) throw invalidArtifact(`'${path}' has two columns named '${name}'.`)\n seen.add(name)\n }\n if (rows.length > ARTIFACT_LIMITS.maxSheetRows) {\n throw invalidArtifact(\n `'${path}' has ${rows.length} rows; a sheet holds at most ${ARTIFACT_LIMITS.maxSheetRows}.`\n )\n }\n for (const [index, row] of rows.entries()) {\n if (row.length > header.length) {\n throw invalidArtifact(\n `'${path}' row ${index + 2} has ${row.length} fields; the header names ${header.length} columns.`\n )\n }\n }\n\n for (const column of [...Object.keys(sheet.columns), ...Object.keys(sheet.widths)]) {\n if (!seen.has(column)) {\n throw invalidArtifact(\n `${WORKBOOK_FILE} sheet '${sheet.name}' names column '${column}', which '${path}' does not have.`\n )\n }\n }\n for (const [column, format] of Object.entries(sheet.columns)) {\n const index = header.indexOf(column)\n if (format.type === \"link\" || format.type === \"image\") {\n // A link or image may be another artifact's address, resolved with the rest.\n for (const [rowIndex, row] of table.rows.entries()) {\n const value = row[index]?.trim() ?? \"\"\n if (!isArtifactAddress(value)) continue\n references.push({\n address: value,\n as: format.type === \"image\" ? \"embed\" : \"link\",\n at: `${sheet.name}!${columnLetter(index)}${rowIndex + 2}`,\n })\n }\n }\n checkColumn(path, table, index, column, format, byPath)\n }\n return table\n}\n\nfunction checkColumn(\n path: string,\n table: CsvTable,\n index: number,\n column: string,\n format: SheetColumnFormat,\n byPath: ReadonlyMap<string, ArtifactFile>\n): void {\n for (const [rowIndex, row] of table.rows.entries()) {\n const value = row[index] ?? \"\"\n if (!value.trim() || isArtifactAddress(value)) continue\n const problem = cellProblem(value, format, byPath)\n if (problem) {\n throw invalidArtifact(\n `'${path}' row ${rowIndex + 2}, column '${column}': ${JSON.stringify(value)} ${problem}`\n )\n }\n }\n}\n\nfunction cellProblem(\n value: string,\n format: SheetColumnFormat,\n byPath: ReadonlyMap<string, ArtifactFile>\n): string | undefined {\n switch (format.type) {\n case \"number\":\n case \"currency\":\n return parseSheetNumber(value) === undefined\n ? \"is not a number: write plain digits, such as 4120000 or -3.5, with no symbols or separators.\"\n : undefined\n case \"percent\":\n return parseSheetNumber(value) === undefined\n ? \"is not a number: write a percent as a fraction, such as 0.351 for 35.1%.\"\n : undefined\n case \"date\":\n return parseSheetDate(value) === undefined\n ? \"is not a date: write YYYY-MM-DD, or an ISO 8601 date and time.\"\n : undefined\n case \"link\":\n return /^https?:\\/\\/[^\\s]+$/i.test(value.trim())\n ? undefined\n : \"is not a link: write a full https:// address, or another artifact's address.\"\n case \"image\": {\n const imagePath = posix.normalize(value.trim())\n return byPath.has(imagePath)\n ? undefined\n : \"is not one of the artifact's files: add the image to the artifact and give its relative path, or give another artifact's address.\"\n }\n case \"text\":\n return undefined\n }\n}\n\nfunction checkCharts(workbook: Workbook, tables: ReadonlyMap<string, CsvTable>): void {\n for (const chart of workbook.charts) {\n const sheet = workbook.sheets.find((candidate) => candidate.name === chart.sheet)\n const table = tables.get(chart.sheet)\n if (!sheet || !table) continue\n for (const column of [chart.x, ...chart.y]) {\n if (!table.header.includes(column)) {\n throw invalidArtifact(\n `${WORKBOOK_FILE} chart '${chart.name}' plots column '${column}', which sheet '${chart.sheet}' does not have.`\n )\n }\n }\n for (const column of chart.y) {\n const type = sheet.columns[column]?.type ?? \"text\"\n if (!NUMERIC_COLUMN_TYPES.includes(type)) {\n throw invalidArtifact(\n `${WORKBOOK_FILE} chart '${chart.name}' plots column '${column}', which is ${type}; give it a number, currency, or percent type in \"columns\".`\n )\n }\n }\n if (chart.type === \"pie\" && table.rows.length > ARTIFACT_LIMITS.maxPieSlices) {\n throw invalidArtifact(\n `${WORKBOOK_FILE} chart '${chart.name}' is a pie with ${table.rows.length} slices; a pie reads well with at most ${ARTIFACT_LIMITS.maxPieSlices}. Use a bar chart instead.`\n )\n }\n }\n}\n\n/** A column's letter as a spreadsheet shows it: A, Z, AA. */\nfunction columnLetter(index: number): string {\n let letters = \"\"\n for (let rest = index + 1; rest > 0; rest = Math.floor((rest - 1) / 26)) {\n letters = String.fromCharCode(65 + ((rest - 1) % 26)) + letters\n }\n return letters\n}\n\nfunction megabytes(bytes: number): string {\n return (bytes / (1024 * 1024)).toFixed(1).replace(/\\.0$/, \"\")\n}\n",
9
- "import type { Principal } from \"../../auth\"\nimport { ArtifactStorageError } from \"../../storage/artifacts/errors\"\nimport type {\n ArtifactFile,\n ArtifactOrigin,\n ArtifactRecord,\n ArtifactStorage,\n ArtifactVersionInput,\n ArtifactVersionRecord,\n PublishedArtifactVersion,\n} from \"../../storage/artifacts/types\"\nimport { ArtifactRequestError } from \"../errors\"\nimport { createArtifactId } from \"../ids\"\nimport type { ArtifactKind } from \"../kinds\"\nimport { ARTIFACT_LIMITS } from \"../limits\"\nimport type { ArtifactOutline } from \"../outline\"\nimport { ARTIFACT_THEME_FILE, parseArtifactTheme } from \"../theme\"\nimport type { ArtifactWarning } from \"../warnings\"\nimport {\n type ArtifactBlobStorage,\n checkArtifactFiles,\n invalidArtifact,\n readArtifactText,\n} from \"./files\"\nimport { brokenDependents, type FoundReference, resolveReferences } from \"./references\"\nimport { validateDocument } from \"./validate/document\"\nimport { validateFileArtifact } from \"./validate/file\"\nimport { validateSheet } from \"./validate/sheet\"\nimport { validateSlides } from \"./validate/slides\"\n\nexport interface PublishArtifactContext {\n readonly projectId: string\n readonly storage: ArtifactStorage\n readonly blobStorage: ArtifactBlobStorage\n}\n\nexport interface PublishArtifactInput {\n /** Publishes the next version of this artifact; without it, a new artifact is created. */\n readonly artifactId?: string\n readonly kind: ArtifactKind\n readonly title: string\n readonly files: readonly ArtifactFile[]\n /** Publishes the version, and owns the artifact when this creates it. */\n readonly author: Principal\n readonly origin?: ArtifactOrigin\n}\n\nexport interface PublishedArtifact {\n readonly artifact: ArtifactRecord\n readonly version: ArtifactVersionRecord\n readonly warnings: readonly ArtifactWarning[]\n}\n\nconst CREATE_ATTEMPTS = 3\n\n/** A version checked against its kind and with its addresses resolved, ready to store. */\nexport interface PreparedArtifactVersion {\n readonly artifactId?: string\n readonly kind: ArtifactKind\n readonly author: Principal\n readonly version: ArtifactVersionInput\n}\n\n/**\n * Validates a version against its kind and stores it. Who may publish is the caller's decision:\n * this checks only what the version holds.\n */\nexport async function publishArtifact(\n context: PublishArtifactContext,\n input: PublishArtifactInput\n): Promise<PublishedArtifact> {\n const prepared = await prepareArtifactVersion(context, input)\n const stored = await storeArtifactVersion(context, prepared)\n return { ...stored, warnings: await artifactVersionWarnings(context, prepared, stored) }\n}\n\n/**\n * Everything publishing checks before it stores: the title, the files, the theme, the kind's own\n * format, and every address, resolved against what the author can read. It reads the files back\n * and parses them, so a caller that stores inside a transaction prepares outside it.\n */\nexport async function prepareArtifactVersion(\n context: PublishArtifactContext,\n input: PublishArtifactInput\n): Promise<PreparedArtifactVersion> {\n const title = checkTitle(input.title)\n await checkArtifactFiles(context.blobStorage, input.files)\n if (input.kind !== \"file\") await checkTheme(context.blobStorage, input.files)\n const validated = await validateKind(context.blobStorage, input.kind, input.files)\n const references = await resolveReferences(\n referenceContext(context, input),\n validated.references ?? []\n )\n return {\n ...(input.artifactId ? { artifactId: input.artifactId } : {}),\n kind: input.kind,\n author: input.author,\n version: {\n title,\n entry: validated.entry,\n files: input.files.map(({ path, file }) => ({ path, file: { ...file } })),\n outline: validated.outline,\n references,\n author: input.author,\n ...(input.origin ? { origin: input.origin } : {}),\n createdAt: new Date(),\n },\n }\n}\n\n/** Stores a prepared version: the next one of its artifact, or the first of a new one. */\nexport async function storeArtifactVersion(\n context: PublishArtifactContext,\n prepared: PreparedArtifactVersion\n): Promise<PublishedArtifactVersion> {\n return prepared.artifactId\n ? publishVersion(context, prepared.artifactId, prepared.kind, prepared.version)\n : createArtifact(context, prepared.kind, prepared.author, prepared.version)\n}\n\n/**\n * What a stored version breaks in other artifacts that show it. A first version breaks nothing:\n * no other artifact could name it yet. The version is stored by now, so a failed check only loses\n * the warnings.\n */\nexport async function artifactVersionWarnings(\n context: PublishArtifactContext,\n prepared: PreparedArtifactVersion,\n stored: PublishedArtifactVersion\n): Promise<readonly ArtifactWarning[]> {\n if (!prepared.artifactId) return []\n try {\n return await brokenDependents(\n referenceContext(context, prepared),\n stored.artifact,\n stored.version\n )\n } catch (error) {\n console.warn(\n `[Sixb] Could not check which artifacts version ${stored.version.version} of '${stored.artifact.id}' breaks:`,\n error\n )\n return []\n }\n}\n\nfunction referenceContext(\n context: PublishArtifactContext,\n input: { readonly author: Principal; readonly artifactId?: string }\n) {\n return {\n projectId: context.projectId,\n storage: context.storage,\n author: input.author,\n ...(input.artifactId ? { artifactId: input.artifactId } : {}),\n }\n}\n\nasync function validateKind(\n blobStorage: ArtifactBlobStorage,\n kind: ArtifactKind,\n files: readonly ArtifactFile[]\n): Promise<{\n readonly entry: string\n readonly outline: ArtifactOutline\n readonly references?: readonly FoundReference[]\n}> {\n switch (kind) {\n case \"document\":\n return validateDocument(blobStorage, files)\n case \"file\":\n return validateFileArtifact(files)\n case \"sheet\":\n return validateSheet(blobStorage, files)\n case \"slides\":\n return validateSlides(blobStorage, files)\n default:\n // A caller past the API's schema, such as a script on the SDK, can name any kind.\n throw invalidArtifact(`'${kind satisfies never}' is not a kind of artifact.`)\n }\n}\n\nasync function checkTheme(\n blobStorage: ArtifactBlobStorage,\n files: readonly ArtifactFile[]\n): Promise<void> {\n const themeFile = files.find((file) => file.path === ARTIFACT_THEME_FILE)\n if (!themeFile) return\n const parsed = parseArtifactTheme(\n await readArtifactText(blobStorage, themeFile, ARTIFACT_LIMITS.maxThemeBytes)\n )\n if (\"error\" in parsed) throw invalidArtifact(parsed.error)\n}\n\nfunction checkTitle(value: string): string {\n const title = typeof value === \"string\" ? value.trim() : \"\"\n if (title.length === 0 || /[\\u0000-\\u001f\\u007f]/.test(title)) {\n throw invalidArtifact(\"An artifact needs a title of plain text.\")\n }\n if (title.length > ARTIFACT_LIMITS.maxTitleLength) {\n throw invalidArtifact(`A title may be at most ${ARTIFACT_LIMITS.maxTitleLength} characters.`)\n }\n return title\n}\n\nasync function publishVersion(\n context: PublishArtifactContext,\n artifactId: string,\n kind: ArtifactKind,\n version: ArtifactVersionInput\n): Promise<PublishedArtifactVersion> {\n try {\n return await context.storage.publish({\n projectId: context.projectId,\n artifactId,\n kind,\n version,\n })\n } catch (error) {\n if (error instanceof ArtifactStorageError && error.code === \"artifact_not_found\") {\n throw new ArtifactRequestError(\"artifact_not_found\", error.message)\n }\n if (error instanceof ArtifactStorageError && error.code === \"artifact_kind_mismatch\") {\n throw new ArtifactRequestError(\"artifact_kind_mismatch\", error.message)\n }\n throw error\n }\n}\n\nasync function createArtifact(\n context: PublishArtifactContext,\n kind: ArtifactKind,\n owner: Principal,\n version: ArtifactVersionInput\n): Promise<PublishedArtifactVersion> {\n for (let attempt = 1; ; attempt += 1) {\n try {\n return await context.storage.create({\n projectId: context.projectId,\n id: createArtifactId(),\n kind,\n owner,\n version,\n })\n } catch (error) {\n const collided = error instanceof ArtifactStorageError && error.code === \"artifact_exists\"\n if (!collided || attempt === CREATE_ATTEMPTS) throw error\n }\n }\n}\n"
10
- ],
11
- "mappings": "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",
12
- "debugId": "888103C0848E526564756E2164756E21",
13
- "names": []
14
- }