@sixb/core 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/dist/actions/execution.d.ts.map +1 -1
  2. package/dist/actions/index.js +54 -47
  3. package/dist/actions/index.js.map +1 -1
  4. package/dist/actions/request.d.ts.map +1 -1
  5. package/dist/actions/run-authorization.d.ts +9 -0
  6. package/dist/actions/run-authorization.d.ts.map +1 -1
  7. package/dist/activity/connection.d.ts +62 -0
  8. package/dist/activity/connection.d.ts.map +1 -0
  9. package/dist/activity/device.d.ts +8 -0
  10. package/dist/activity/device.d.ts.map +1 -0
  11. package/dist/activity/execution.d.ts +48 -0
  12. package/dist/activity/execution.d.ts.map +1 -0
  13. package/dist/activity/service.d.ts +79 -0
  14. package/dist/activity/service.d.ts.map +1 -0
  15. package/dist/activity/shares.d.ts +24 -0
  16. package/dist/activity/shares.d.ts.map +1 -0
  17. package/dist/activity/timeline.d.ts +96 -0
  18. package/dist/activity/timeline.d.ts.map +1 -0
  19. package/dist/agents/index.d.ts +2 -1
  20. package/dist/agents/index.d.ts.map +1 -1
  21. package/dist/agents/index.js +63 -50
  22. package/dist/agents/index.js.map +1 -1
  23. package/dist/agents/request.d.ts.map +1 -1
  24. package/dist/agents/skills.d.ts.map +1 -1
  25. package/dist/agents/streams/index.js +3 -3
  26. package/dist/agents/streams/internal.js +3 -3
  27. package/dist/agents/types.d.ts +8 -8
  28. package/dist/agents/types.d.ts.map +1 -1
  29. package/dist/agents/validation.d.ts +1 -1
  30. package/dist/agents/validation.d.ts.map +1 -1
  31. package/dist/artifacts/address.d.ts +48 -0
  32. package/dist/artifacts/address.d.ts.map +1 -0
  33. package/dist/artifacts/csv.d.ts +22 -0
  34. package/dist/artifacts/csv.d.ts.map +1 -0
  35. package/dist/artifacts/errors.d.ts +11 -0
  36. package/dist/artifacts/errors.d.ts.map +1 -0
  37. package/dist/artifacts/execution.d.ts +43 -0
  38. package/dist/artifacts/execution.d.ts.map +1 -0
  39. package/dist/artifacts/frames/assets.d.ts +28 -0
  40. package/dist/artifacts/frames/assets.d.ts.map +1 -0
  41. package/dist/artifacts/frames/grants.d.ts +37 -0
  42. package/dist/artifacts/frames/grants.d.ts.map +1 -0
  43. package/dist/artifacts/frames/index.d.ts +10 -0
  44. package/dist/artifacts/frames/index.d.ts.map +1 -0
  45. package/dist/artifacts/frames/index.js +892 -0
  46. package/dist/artifacts/frames/index.js.map +14 -0
  47. package/dist/artifacts/frames/kit.d.ts +66 -0
  48. package/dist/artifacts/frames/kit.d.ts.map +1 -0
  49. package/dist/artifacts/frames/probe.d.ts +41 -0
  50. package/dist/artifacts/frames/probe.d.ts.map +1 -0
  51. package/dist/artifacts/frames/protocol.d.ts +98 -0
  52. package/dist/artifacts/frames/protocol.d.ts.map +1 -0
  53. package/dist/artifacts/frames/runtime.d.ts +13 -0
  54. package/dist/artifacts/frames/runtime.d.ts.map +1 -0
  55. package/dist/artifacts/html.d.ts +6 -0
  56. package/dist/artifacts/html.d.ts.map +1 -0
  57. package/dist/artifacts/ids.d.ts +5 -0
  58. package/dist/artifacts/ids.d.ts.map +1 -0
  59. package/dist/artifacts/index.d.ts +16 -0
  60. package/dist/artifacts/index.d.ts.map +1 -0
  61. package/dist/artifacts/index.js +125 -0
  62. package/dist/artifacts/index.js.map +10 -0
  63. package/dist/artifacts/kinds.d.ts +5 -0
  64. package/dist/artifacts/kinds.d.ts.map +1 -0
  65. package/dist/artifacts/limits.d.ts +28 -0
  66. package/dist/artifacts/limits.d.ts.map +1 -0
  67. package/dist/artifacts/outline.d.ts +44 -0
  68. package/dist/artifacts/outline.d.ts.map +1 -0
  69. package/dist/artifacts/publish/files.d.ts +15 -0
  70. package/dist/artifacts/publish/files.d.ts.map +1 -0
  71. package/dist/artifacts/publish/index.d.ts +5 -0
  72. package/dist/artifacts/publish/index.d.ts.map +1 -0
  73. package/dist/artifacts/publish/index.js +36 -0
  74. package/dist/artifacts/publish/index.js.map +9 -0
  75. package/dist/artifacts/publish/publish.d.ts +52 -0
  76. package/dist/artifacts/publish/publish.d.ts.map +1 -0
  77. package/dist/artifacts/publish/references.d.ts +27 -0
  78. package/dist/artifacts/publish/references.d.ts.map +1 -0
  79. package/dist/artifacts/publish/validate/document.d.ts +17 -0
  80. package/dist/artifacts/publish/validate/document.d.ts.map +1 -0
  81. package/dist/artifacts/publish/validate/file.d.ts +8 -0
  82. package/dist/artifacts/publish/validate/file.d.ts.map +1 -0
  83. package/dist/artifacts/publish/validate/sheet.d.ts +15 -0
  84. package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -0
  85. package/dist/artifacts/publish/validate/slides.d.ts +21 -0
  86. package/dist/artifacts/publish/validate/slides.d.ts.map +1 -0
  87. package/dist/artifacts/references.d.ts +12 -0
  88. package/dist/artifacts/references.d.ts.map +1 -0
  89. package/dist/artifacts/resolve.d.ts +41 -0
  90. package/dist/artifacts/resolve.d.ts.map +1 -0
  91. package/dist/artifacts/theme.d.ts +19 -0
  92. package/dist/artifacts/theme.d.ts.map +1 -0
  93. package/dist/artifacts/warnings.d.ts +11 -0
  94. package/dist/artifacts/warnings.d.ts.map +1 -0
  95. package/dist/artifacts/workbook.d.ts +64 -0
  96. package/dist/artifacts/workbook.d.ts.map +1 -0
  97. package/dist/auth/index.js +10 -10
  98. package/dist/authorization/decision.d.ts +2 -0
  99. package/dist/authorization/decision.d.ts.map +1 -1
  100. package/dist/authorization/grant-kinds.d.ts +2 -2
  101. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  102. package/dist/authorization/index.js +6 -6
  103. package/dist/blob-storage/browser.js +1 -1
  104. package/dist/blob-storage/index.js +2 -2
  105. package/dist/blob-storage/internal.d.ts +1 -1
  106. package/dist/blob-storage/internal.d.ts.map +1 -1
  107. package/dist/blob-storage/internal.js +11 -5
  108. package/dist/blob-storage/internal.js.map +1 -1
  109. package/dist/blob-storage/media-type.d.ts +12 -0
  110. package/dist/blob-storage/media-type.d.ts.map +1 -1
  111. package/dist/bootstrap/index.js +53 -47
  112. package/dist/bootstrap/index.js.map +2 -2
  113. package/dist/{chunk-xfs8x8m9.js → chunk-0bphap9y.js} +5 -5
  114. package/dist/{chunk-1zq2p6g0.js → chunk-1cc1xaf3.js} +3 -3
  115. package/dist/chunk-3jms7je7.js +14 -0
  116. package/dist/chunk-3jms7je7.js.map +10 -0
  117. package/dist/{chunk-s54c868q.js → chunk-3qct2mdc.js} +3 -13
  118. package/dist/chunk-3qct2mdc.js.map +12 -0
  119. package/dist/{chunk-t7x8dmn0.js → chunk-431pyp2c.js} +3 -3
  120. package/dist/{chunk-c85m1hyj.js → chunk-447a5c0p.js} +2 -2
  121. package/dist/chunk-48qjhh6v.js +185 -0
  122. package/dist/chunk-48qjhh6v.js.map +13 -0
  123. package/dist/{chunk-ren4kg2j.js → chunk-561r0yc9.js} +8 -8
  124. package/dist/{chunk-5e43w60z.js → chunk-5948n82c.js} +2 -2
  125. package/dist/{chunk-yzwja0mj.js → chunk-5hx48dnn.js} +2 -2
  126. package/dist/{chunk-x6m907x7.js → chunk-5vems3nx.js} +5 -6
  127. package/dist/{chunk-x6m907x7.js.map → chunk-5vems3nx.js.map} +3 -3
  128. package/dist/{chunk-0rbyz4qy.js → chunk-61y5xs4p.js} +560 -164
  129. package/dist/{chunk-0rbyz4qy.js.map → chunk-61y5xs4p.js.map} +12 -9
  130. package/dist/chunk-65abf64x.js +13 -0
  131. package/dist/chunk-65abf64x.js.map +10 -0
  132. package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
  133. package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
  134. package/dist/chunk-6rqgmkde.js +2028 -0
  135. package/dist/chunk-6rqgmkde.js.map +29 -0
  136. package/dist/{chunk-d0bqz29d.js → chunk-6vb4st8k.js} +8 -4
  137. package/dist/{chunk-d0bqz29d.js.map → chunk-6vb4st8k.js.map} +3 -3
  138. package/dist/chunk-7q8t23v4.js +467 -0
  139. package/dist/chunk-7q8t23v4.js.map +14 -0
  140. package/dist/{chunk-5j58wjct.js → chunk-858emn8m.js} +6 -6
  141. package/dist/{chunk-hvsb78a1.js → chunk-8frc8a4j.js} +26 -26
  142. package/dist/{chunk-hvsb78a1.js.map → chunk-8frc8a4j.js.map} +2 -2
  143. package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
  144. package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
  145. package/dist/{chunk-n33z5bjw.js → chunk-918wwnaa.js} +490 -24
  146. package/dist/{chunk-n33z5bjw.js.map → chunk-918wwnaa.js.map} +13 -11
  147. package/dist/{chunk-rrzt8jdy.js → chunk-9j4jw7as.js} +103 -110
  148. package/dist/chunk-9j4jw7as.js.map +14 -0
  149. package/dist/chunk-9kgkfg6v.js +502 -0
  150. package/dist/chunk-9kgkfg6v.js.map +14 -0
  151. package/dist/chunk-a3faa34j.js +74 -0
  152. package/dist/chunk-a3faa34j.js.map +10 -0
  153. package/dist/{chunk-6c6sn0bh.js → chunk-akzryx9h.js} +335 -1167
  154. package/dist/{chunk-6c6sn0bh.js.map → chunk-akzryx9h.js.map} +18 -24
  155. package/dist/chunk-arns890k.js +10 -0
  156. package/dist/chunk-arns890k.js.map +10 -0
  157. package/dist/{chunk-hjzdd750.js → chunk-bk9svbcq.js} +11 -11
  158. package/dist/{chunk-hjzdd750.js.map → chunk-bk9svbcq.js.map} +2 -2
  159. package/dist/{chunk-hkc3jct7.js → chunk-c06hmxyy.js} +2 -10
  160. package/dist/chunk-c06hmxyy.js.map +10 -0
  161. package/dist/{chunk-6p49a5cq.js → chunk-c1rxbz5y.js} +3 -3
  162. package/dist/chunk-cfj9dfbb.js +288 -0
  163. package/dist/chunk-cfj9dfbb.js.map +12 -0
  164. package/dist/{chunk-bx9q3cwv.js → chunk-cn0fwwhy.js} +7 -7
  165. package/dist/{chunk-bx9q3cwv.js.map → chunk-cn0fwwhy.js.map} +1 -1
  166. package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
  167. package/dist/{chunk-fa02jy15.js → chunk-cy4mbddw.js} +1 -1
  168. package/dist/{chunk-9w055r5b.js → chunk-d09e3rax.js} +1 -1
  169. package/dist/chunk-d5rjr8c0.js +176 -0
  170. package/dist/chunk-d5rjr8c0.js.map +12 -0
  171. package/dist/{chunk-dk8tkk5f.js → chunk-d7dnxdep.js} +3 -3
  172. package/dist/{chunk-b38szspf.js → chunk-dhcv7yxc.js} +1 -1
  173. package/dist/{chunk-b38szspf.js.map → chunk-dhcv7yxc.js.map} +1 -1
  174. package/dist/{chunk-gsjm1wms.js → chunk-dhdha526.js} +8 -2
  175. package/dist/chunk-dhdha526.js.map +10 -0
  176. package/dist/{chunk-8mx7qw3y.js → chunk-dvd2fp9q.js} +2 -2
  177. package/dist/{chunk-8mx7qw3y.js.map → chunk-dvd2fp9q.js.map} +3 -3
  178. package/dist/{chunk-way52z4h.js → chunk-e17zdm62.js} +6 -12
  179. package/dist/{chunk-way52z4h.js.map → chunk-e17zdm62.js.map} +3 -4
  180. package/dist/{chunk-tpn40322.js → chunk-e6k4thh5.js} +11 -10
  181. package/dist/{chunk-tpn40322.js.map → chunk-e6k4thh5.js.map} +3 -3
  182. package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
  183. package/dist/chunk-eptrvnby.js.map +12 -0
  184. package/dist/{chunk-es1gxsbf.js → chunk-f4pamkt9.js} +8 -10
  185. package/dist/chunk-f4pamkt9.js.map +12 -0
  186. package/dist/chunk-ff5xkv0p.js +211 -0
  187. package/dist/chunk-ff5xkv0p.js.map +10 -0
  188. package/dist/{chunk-d09tj99x.js → chunk-g257jwnc.js} +10 -4
  189. package/dist/{chunk-d09tj99x.js.map → chunk-g257jwnc.js.map} +3 -3
  190. package/dist/chunk-g5bvzyyr.js +32 -0
  191. package/dist/chunk-g5bvzyyr.js.map +10 -0
  192. package/dist/chunk-hke9aeen.js +9 -0
  193. package/dist/chunk-hke9aeen.js.map +10 -0
  194. package/dist/{chunk-1sr8ryzk.js → chunk-hwksyjks.js} +122 -1
  195. package/dist/{chunk-1sr8ryzk.js.map → chunk-hwksyjks.js.map} +3 -3
  196. package/dist/chunk-jcfw4h7m.js +9 -0
  197. package/dist/chunk-jcfw4h7m.js.map +10 -0
  198. package/dist/{chunk-k6q3n2sc.js → chunk-k43ct2ke.js} +20 -11
  199. package/dist/chunk-k43ct2ke.js.map +12 -0
  200. package/dist/{chunk-3t2hgbgd.js → chunk-kge7k6ey.js} +40 -8
  201. package/dist/chunk-kge7k6ey.js.map +15 -0
  202. package/dist/{chunk-tg2cw67r.js → chunk-ky3j490c.js} +2 -2
  203. package/dist/chunk-mjddfa7k.js +129 -0
  204. package/dist/chunk-mjddfa7k.js.map +12 -0
  205. package/dist/{chunk-vpq4shxz.js → chunk-nn5xnx3s.js} +45 -10
  206. package/dist/{chunk-vpq4shxz.js.map → chunk-nn5xnx3s.js.map} +7 -6
  207. package/dist/{chunk-0yh890a4.js → chunk-q5e5tv4b.js} +35 -7
  208. package/dist/{chunk-0yh890a4.js.map → chunk-q5e5tv4b.js.map} +3 -3
  209. package/dist/{chunk-vyf9kfqf.js → chunk-q7gn29y3.js} +1 -1
  210. package/dist/{chunk-yevzdx4y.js → chunk-rmakanzx.js} +10 -12
  211. package/dist/{chunk-yevzdx4y.js.map → chunk-rmakanzx.js.map} +3 -4
  212. package/dist/{chunk-v9xd5wzd.js → chunk-s7jg7pmn.js} +1 -1
  213. package/dist/chunk-tbc1ngpd.js +642 -0
  214. package/dist/chunk-tbc1ngpd.js.map +18 -0
  215. package/dist/chunk-twe4dx8p.js +676 -0
  216. package/dist/chunk-twe4dx8p.js.map +15 -0
  217. package/dist/{chunk-9dmt152s.js → chunk-vf57cr4t.js} +2 -2
  218. package/dist/{chunk-9ybhtmg4.js → chunk-vvxtn22d.js} +1 -1
  219. package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
  220. package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
  221. package/dist/chunk-x0v3jd47.js +124 -0
  222. package/dist/chunk-x0v3jd47.js.map +10 -0
  223. package/dist/{chunk-7t429e3f.js → chunk-xvsc5m8n.js} +1 -1
  224. package/dist/{chunk-z4m0yz8c.js → chunk-y5tah2kf.js} +1 -1
  225. package/dist/{chunk-fkgc1wt8.js → chunk-z58tm0hm.js} +2 -2
  226. package/dist/datasets/builders.d.ts +15 -2
  227. package/dist/datasets/builders.d.ts.map +1 -1
  228. package/dist/datasets/column-index.d.ts +7 -0
  229. package/dist/datasets/column-index.d.ts.map +1 -0
  230. package/dist/datasets/execution.d.ts +3 -2
  231. package/dist/datasets/execution.d.ts.map +1 -1
  232. package/dist/datasets/write.js +8 -8
  233. package/dist/error-reporting/internal.js +4 -4
  234. package/dist/errors/internal.d.ts +1 -0
  235. package/dist/errors/internal.d.ts.map +1 -1
  236. package/dist/errors/internal.js +7 -4
  237. package/dist/errors/internal.js.map +1 -1
  238. package/dist/events/execution.d.ts +12 -2
  239. package/dist/events/execution.d.ts.map +1 -1
  240. package/dist/events/index.js +4 -4
  241. package/dist/execution/agent.js +56 -49
  242. package/dist/execution/agent.js.map +1 -1
  243. package/dist/execution/authorized-object-reader.d.ts +52 -11
  244. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  245. package/dist/execution/object-reader-clearance.d.ts +41 -0
  246. package/dist/execution/object-reader-clearance.d.ts.map +1 -0
  247. package/dist/execution/object-reader-ontology.d.ts +12 -0
  248. package/dist/execution/object-reader-ontology.d.ts.map +1 -0
  249. package/dist/execution/object-reader-security.d.ts +45 -0
  250. package/dist/execution/object-reader-security.d.ts.map +1 -0
  251. package/dist/execution/primitive.js +54 -47
  252. package/dist/execution/primitive.js.map +1 -1
  253. package/dist/execution/request.js +48 -41
  254. package/dist/execution/request.js.map +2 -2
  255. package/dist/http/api-routes.d.ts.map +1 -1
  256. package/dist/http/index.js +1 -1
  257. package/dist/index.d.ts +20 -4
  258. package/dist/index.d.ts.map +1 -1
  259. package/dist/index.js +112 -97
  260. package/dist/index.js.map +1 -1
  261. package/dist/lake-storage/in-memory.d.ts +1 -0
  262. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  263. package/dist/lake-storage/index.d.ts +6 -3
  264. package/dist/lake-storage/index.d.ts.map +1 -1
  265. package/dist/lake-storage/index.js +21 -13
  266. package/dist/lake-storage/index.js.map +1 -1
  267. package/dist/lake-storage/lineage.d.ts +94 -0
  268. package/dist/lake-storage/lineage.d.ts.map +1 -0
  269. package/dist/lake-storage/sql-transforms.d.ts +45 -0
  270. package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
  271. package/dist/lake-storage/types.d.ts +55 -1
  272. package/dist/lake-storage/types.d.ts.map +1 -1
  273. package/dist/lake-storage/version-inputs.d.ts +14 -3
  274. package/dist/lake-storage/version-inputs.d.ts.map +1 -1
  275. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  276. package/dist/materializer/index.js +31 -30
  277. package/dist/materializer/index.js.map +1 -1
  278. package/dist/models/execution/index.js +25 -24
  279. package/dist/models/execution/index.js.map +1 -1
  280. package/dist/objects/clearance-redaction.d.ts +27 -0
  281. package/dist/objects/clearance-redaction.d.ts.map +1 -0
  282. package/dist/objects/index.js +54 -47
  283. package/dist/objects/index.js.map +1 -1
  284. package/dist/objects/link/authorization.d.ts +8 -5
  285. package/dist/objects/link/authorization.d.ts.map +1 -1
  286. package/dist/objects/link/upsert-batch.d.ts.map +1 -1
  287. package/dist/objects/object/delete.d.ts.map +1 -1
  288. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  289. package/dist/objects/object/upsert.d.ts.map +1 -1
  290. package/dist/objects/property-clearance.d.ts +47 -24
  291. package/dist/objects/property-clearance.d.ts.map +1 -1
  292. package/dist/objects/query/clearance-admission.d.ts +10 -0
  293. package/dist/objects/query/clearance-admission.d.ts.map +1 -0
  294. package/dist/objects/query/index.js +29 -28
  295. package/dist/objects/query/index.js.map +1 -1
  296. package/dist/objects/query/link-query-clearance.d.ts +21 -0
  297. package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
  298. package/dist/ontology/builders.d.ts.map +1 -1
  299. package/dist/ontology/docs-markdown.d.ts +1 -1
  300. package/dist/ontology/docs-markdown.d.ts.map +1 -1
  301. package/dist/ontology/index.js +7 -7
  302. package/dist/ontology/internal.js +4 -4
  303. package/dist/ontology/internal.js.map +1 -1
  304. package/dist/pipelines/index.d.ts +2 -0
  305. package/dist/pipelines/index.d.ts.map +1 -1
  306. package/dist/pipelines/index.js +47 -35
  307. package/dist/pipelines/index.js.map +1 -1
  308. package/dist/pipelines/lineage.d.ts +17 -0
  309. package/dist/pipelines/lineage.d.ts.map +1 -0
  310. package/dist/projections/internal.d.ts +2 -2
  311. package/dist/projections/internal.js +30 -29
  312. package/dist/projections/internal.js.map +1 -1
  313. package/dist/runtime/create.d.ts +3 -0
  314. package/dist/runtime/create.d.ts.map +1 -1
  315. package/dist/runtime/host.d.ts +6 -0
  316. package/dist/runtime/host.d.ts.map +1 -1
  317. package/dist/runtime/internal.d.ts +2 -0
  318. package/dist/runtime/internal.d.ts.map +1 -1
  319. package/dist/runtime/internal.js +46 -42
  320. package/dist/runtime/internal.js.map +1 -1
  321. package/dist/runtime/ontology-mutations.d.ts +2 -0
  322. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  323. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  324. package/dist/runtime/sixb.d.ts +8 -0
  325. package/dist/runtime/sixb.d.ts.map +1 -1
  326. package/dist/sandboxes/auth.d.ts +16 -0
  327. package/dist/sandboxes/auth.d.ts.map +1 -1
  328. package/dist/sandboxes/config.d.ts.map +1 -1
  329. package/dist/sandboxes/configuration.d.ts +26 -0
  330. package/dist/sandboxes/configuration.d.ts.map +1 -1
  331. package/dist/sandboxes/index.d.ts +1 -1
  332. package/dist/sandboxes/index.d.ts.map +1 -1
  333. package/dist/sandboxes/index.js +14 -13
  334. package/dist/sandboxes/index.js.map +1 -1
  335. package/dist/sandboxes/sandbox.d.ts +28 -5
  336. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  337. package/dist/security/applied-markings-contribution.d.ts +58 -0
  338. package/dist/security/applied-markings-contribution.d.ts.map +1 -0
  339. package/dist/security/applied-markings-host.d.ts +10 -0
  340. package/dist/security/applied-markings-host.d.ts.map +1 -0
  341. package/dist/security/applied-markings-snapshot.d.ts +67 -0
  342. package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
  343. package/dist/security/applied-markings.d.ts +73 -0
  344. package/dist/security/applied-markings.d.ts.map +1 -0
  345. package/dist/security/dataset-version-markings.d.ts +47 -0
  346. package/dist/security/dataset-version-markings.d.ts.map +1 -0
  347. package/dist/security/grants.d.ts +3 -2
  348. package/dist/security/grants.d.ts.map +1 -1
  349. package/dist/security/index.d.ts +2 -1
  350. package/dist/security/index.d.ts.map +1 -1
  351. package/dist/security/internal.d.ts +15 -0
  352. package/dist/security/internal.d.ts.map +1 -0
  353. package/dist/security/internal.js +135 -0
  354. package/dist/security/internal.js.map +10 -0
  355. package/dist/security/marking-propagation.d.ts +62 -0
  356. package/dist/security/marking-propagation.d.ts.map +1 -0
  357. package/dist/security/marking-sets.d.ts +14 -0
  358. package/dist/security/marking-sets.d.ts.map +1 -0
  359. package/dist/security/markings.d.ts +6 -3
  360. package/dist/security/markings.d.ts.map +1 -1
  361. package/dist/security/pipeline-markings.d.ts +20 -0
  362. package/dist/security/pipeline-markings.d.ts.map +1 -0
  363. package/dist/security/project.d.ts +4 -0
  364. package/dist/security/project.d.ts.map +1 -0
  365. package/dist/security/projection-markings.d.ts +71 -0
  366. package/dist/security/projection-markings.d.ts.map +1 -0
  367. package/dist/security/public.js +2 -2
  368. package/dist/security/redactions.d.ts +4 -1
  369. package/dist/security/redactions.d.ts.map +1 -1
  370. package/dist/security/types.d.ts +22 -2
  371. package/dist/security/types.d.ts.map +1 -1
  372. package/dist/security/validation.d.ts.map +1 -1
  373. package/dist/shares/internal.js +24 -23
  374. package/dist/shares/internal.js.map +2 -2
  375. package/dist/storage/action-runs/failure.js +3 -3
  376. package/dist/storage/action-runs/in-memory.d.ts +4 -0
  377. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  378. package/dist/storage/action-runs/types.d.ts +8 -0
  379. package/dist/storage/action-runs/types.d.ts.map +1 -1
  380. package/dist/storage/activity/in-memory.d.ts +55 -0
  381. package/dist/storage/activity/in-memory.d.ts.map +1 -0
  382. package/dist/storage/activity/index.d.ts +3 -0
  383. package/dist/storage/activity/index.d.ts.map +1 -0
  384. package/dist/storage/activity/policy.d.ts +96 -0
  385. package/dist/storage/activity/policy.d.ts.map +1 -0
  386. package/dist/storage/activity/types.d.ts +191 -0
  387. package/dist/storage/activity/types.d.ts.map +1 -0
  388. package/dist/storage/agents/in-memory.d.ts +4 -0
  389. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  390. package/dist/storage/agents/provider.d.ts.map +1 -1
  391. package/dist/storage/agents/provider.js +2 -5
  392. package/dist/storage/agents/provider.js.map +1 -1
  393. package/dist/storage/agents/types.d.ts +9 -8
  394. package/dist/storage/agents/types.d.ts.map +1 -1
  395. package/dist/storage/ai-limits/enforcement.js +3 -3
  396. package/dist/storage/artifacts/errors.d.ts +8 -0
  397. package/dist/storage/artifacts/errors.d.ts.map +1 -0
  398. package/dist/storage/artifacts/in-memory.d.ts +34 -0
  399. package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
  400. package/dist/storage/artifacts/index.d.ts +5 -0
  401. package/dist/storage/artifacts/index.d.ts.map +1 -0
  402. package/dist/storage/artifacts/record.d.ts +17 -0
  403. package/dist/storage/artifacts/record.d.ts.map +1 -0
  404. package/dist/storage/artifacts/types.d.ts +184 -0
  405. package/dist/storage/artifacts/types.d.ts.map +1 -0
  406. package/dist/storage/auth/in-memory/sessions.d.ts +2 -1
  407. package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
  408. package/dist/storage/auth/index.d.ts +1 -1
  409. package/dist/storage/auth/index.d.ts.map +1 -1
  410. package/dist/storage/auth/types.d.ts +19 -0
  411. package/dist/storage/auth/types.d.ts.map +1 -1
  412. package/dist/storage/connector-connections/provider.js +2 -2
  413. package/dist/storage/executions/in-memory.d.ts +2 -1
  414. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  415. package/dist/storage/executions/index.d.ts +1 -1
  416. package/dist/storage/executions/index.d.ts.map +1 -1
  417. package/dist/storage/executions/provider.d.ts +2 -0
  418. package/dist/storage/executions/provider.d.ts.map +1 -1
  419. package/dist/storage/executions/provider.js +9 -223
  420. package/dist/storage/executions/provider.js.map +3 -4
  421. package/dist/storage/executions/types.d.ts +31 -0
  422. package/dist/storage/executions/types.d.ts.map +1 -1
  423. package/dist/storage/file-upload-sessions/provider.js +11 -11
  424. package/dist/storage/in-memory/index.d.ts +8 -0
  425. package/dist/storage/in-memory/index.d.ts.map +1 -1
  426. package/dist/storage/index.d.ts +6 -4
  427. package/dist/storage/index.d.ts.map +1 -1
  428. package/dist/storage/index.js +54 -53
  429. package/dist/storage/index.js.map +1 -1
  430. package/dist/storage/internal.d.ts +3 -0
  431. package/dist/storage/internal.d.ts.map +1 -1
  432. package/dist/storage/internal.js +66 -16
  433. package/dist/storage/internal.js.map +1 -1
  434. package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
  435. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  436. package/dist/storage/ontology/index.d.ts +1 -1
  437. package/dist/storage/ontology/index.d.ts.map +1 -1
  438. package/dist/storage/ontology/sources.d.ts +15 -0
  439. package/dist/storage/ontology/sources.d.ts.map +1 -1
  440. package/dist/storage/projection-runs/provider.js +3 -3
  441. package/dist/storage/share-grants/in-memory.d.ts +2 -1
  442. package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
  443. package/dist/storage/share-grants/index.d.ts +1 -1
  444. package/dist/storage/share-grants/index.d.ts.map +1 -1
  445. package/dist/storage/share-grants/types.d.ts +6 -0
  446. package/dist/storage/share-grants/types.d.ts.map +1 -1
  447. package/dist/storage/types.d.ts +4 -0
  448. package/dist/storage/types.d.ts.map +1 -1
  449. package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
  450. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  451. package/dist/storage/workflow-runs/provider.js +13 -12
  452. package/dist/storage/workflow-runs/provider.js.map +1 -1
  453. package/dist/storage/workflow-runs/types.d.ts +5 -0
  454. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  455. package/dist/syncs/index.js +35 -34
  456. package/dist/syncs/index.js.map +1 -1
  457. package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
  458. package/dist/testing/activity-storage-contract.d.ts +14 -0
  459. package/dist/testing/activity-storage-contract.d.ts.map +1 -0
  460. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  461. package/dist/testing/artifact-storage-contract.d.ts +13 -0
  462. package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
  463. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  464. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  465. package/dist/testing/index.d.ts +2 -0
  466. package/dist/testing/index.d.ts.map +1 -1
  467. package/dist/testing/index.js +4488 -3137
  468. package/dist/testing/index.js.map +14 -12
  469. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
  470. package/dist/testing/lake-storage-contract.d.ts +2 -0
  471. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  472. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  473. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
  474. package/dist/webhooks/internal.js +27 -26
  475. package/dist/webhooks/internal.js.map +2 -2
  476. package/dist/workers/index.js +2 -2
  477. package/dist/workflows/builders.d.ts.map +1 -1
  478. package/dist/workflows/index.js +57 -51
  479. package/dist/workflows/index.js.map +1 -1
  480. package/dist/workflows/types.d.ts +9 -0
  481. package/dist/workflows/types.d.ts.map +1 -1
  482. package/dist/workflows/validation.d.ts +7 -0
  483. package/dist/workflows/validation.d.ts.map +1 -1
  484. package/package.json +25 -1
  485. package/src/actions/execution.ts +18 -13
  486. package/src/actions/request.ts +18 -3
  487. package/src/actions/run-authorization.ts +23 -0
  488. package/src/activity/README.md +155 -0
  489. package/src/activity/connection.ts +217 -0
  490. package/src/activity/device.ts +41 -0
  491. package/src/activity/execution.ts +210 -0
  492. package/src/activity/service.ts +274 -0
  493. package/src/activity/shares.ts +62 -0
  494. package/src/activity/timeline.ts +424 -0
  495. package/src/agents/index.ts +8 -3
  496. package/src/agents/request.ts +5 -0
  497. package/src/agents/skills.ts +6 -0
  498. package/src/agents/types.ts +8 -8
  499. package/src/agents/validation.ts +2 -0
  500. package/src/artifacts/address.ts +132 -0
  501. package/src/artifacts/csv.ts +108 -0
  502. package/src/artifacts/errors.ts +21 -0
  503. package/src/artifacts/execution.ts +153 -0
  504. package/src/artifacts/frames/assets.ts +88 -0
  505. package/src/artifacts/frames/grants.ts +124 -0
  506. package/src/artifacts/frames/index.ts +15 -0
  507. package/src/artifacts/frames/kit.ts +392 -0
  508. package/src/artifacts/frames/probe.ts +309 -0
  509. package/src/artifacts/frames/protocol.ts +174 -0
  510. package/src/artifacts/frames/runtime.ts +213 -0
  511. package/src/artifacts/html.ts +25 -0
  512. package/src/artifacts/ids.ts +18 -0
  513. package/src/artifacts/index.ts +61 -0
  514. package/src/artifacts/kinds.ts +8 -0
  515. package/src/artifacts/limits.ts +27 -0
  516. package/src/artifacts/outline.ts +62 -0
  517. package/src/artifacts/publish/files.ts +87 -0
  518. package/src/artifacts/publish/index.ts +12 -0
  519. package/src/artifacts/publish/publish.ts +250 -0
  520. package/src/artifacts/publish/references.ts +130 -0
  521. package/src/artifacts/publish/validate/document.ts +114 -0
  522. package/src/artifacts/publish/validate/file.ts +19 -0
  523. package/src/artifacts/publish/validate/sheet.ts +251 -0
  524. package/src/artifacts/publish/validate/slides.ts +134 -0
  525. package/src/artifacts/references.ts +11 -0
  526. package/src/artifacts/resolve.ts +97 -0
  527. package/src/artifacts/theme.ts +116 -0
  528. package/src/artifacts/warnings.ts +10 -0
  529. package/src/artifacts/workbook.ts +315 -0
  530. package/src/authorization/decision.ts +5 -0
  531. package/src/authorization/grant-kinds.ts +14 -2
  532. package/src/blob-storage/internal.ts +1 -1
  533. package/src/blob-storage/media-type.ts +69 -0
  534. package/src/datasets/builders.ts +66 -2
  535. package/src/datasets/column-index.ts +19 -0
  536. package/src/datasets/execution.ts +23 -9
  537. package/src/errors/internal.ts +1 -0
  538. package/src/events/execution.ts +134 -21
  539. package/src/execution/authorized-object-reader.ts +270 -256
  540. package/src/execution/object-reader-clearance.ts +91 -0
  541. package/src/execution/object-reader-ontology.ts +63 -0
  542. package/src/execution/object-reader-security.ts +146 -0
  543. package/src/http/api-routes.ts +125 -0
  544. package/src/index.ts +71 -3
  545. package/src/lake-storage/in-memory.ts +26 -3
  546. package/src/lake-storage/index.ts +13 -1
  547. package/src/lake-storage/lineage.ts +385 -0
  548. package/src/lake-storage/sql-transforms.ts +45 -0
  549. package/src/lake-storage/types.ts +59 -1
  550. package/src/lake-storage/version-inputs.ts +35 -6
  551. package/src/maintenance/ontology-maintenance.ts +15 -0
  552. package/src/objects/clearance-redaction.ts +138 -0
  553. package/src/objects/link/authorization.ts +27 -7
  554. package/src/objects/link/remove.ts +2 -2
  555. package/src/objects/link/upsert-batch.ts +7 -5
  556. package/src/objects/link/upsert.ts +2 -2
  557. package/src/objects/object/delete.ts +2 -0
  558. package/src/objects/object/upsert-batch.ts +2 -4
  559. package/src/objects/object/upsert.ts +2 -3
  560. package/src/objects/property-clearance.ts +171 -152
  561. package/src/objects/query/clearance-admission.ts +112 -0
  562. package/src/objects/query/link-query-clearance.ts +73 -0
  563. package/src/ontology/builders.ts +12 -1
  564. package/src/ontology/docs-markdown.ts +1 -1
  565. package/src/pipelines/index.ts +2 -0
  566. package/src/pipelines/lineage.ts +45 -0
  567. package/src/projections/internal.ts +2 -2
  568. package/src/runtime/create.ts +4 -0
  569. package/src/runtime/host.ts +55 -0
  570. package/src/runtime/internal.ts +2 -0
  571. package/src/runtime/ontology-mutations.ts +19 -4
  572. package/src/runtime/resolve-definitions.ts +66 -3
  573. package/src/runtime/sixb.ts +18 -1
  574. package/src/sandboxes/README.md +29 -7
  575. package/src/sandboxes/auth.ts +16 -0
  576. package/src/sandboxes/config.ts +2 -7
  577. package/src/sandboxes/configuration.ts +61 -7
  578. package/src/sandboxes/index.ts +1 -0
  579. package/src/sandboxes/sandbox.ts +27 -5
  580. package/src/security/applied-markings-contribution.ts +277 -0
  581. package/src/security/applied-markings-host.ts +41 -0
  582. package/src/security/applied-markings-snapshot.ts +235 -0
  583. package/src/security/applied-markings.ts +405 -0
  584. package/src/security/dataset-version-markings.ts +163 -0
  585. package/src/security/grants.ts +39 -4
  586. package/src/security/index.ts +3 -0
  587. package/src/security/internal.ts +18 -0
  588. package/src/security/marking-propagation.ts +255 -0
  589. package/src/security/marking-sets.ts +42 -0
  590. package/src/security/markings.ts +29 -178
  591. package/src/security/pipeline-markings.ts +175 -0
  592. package/src/security/project.ts +8 -0
  593. package/src/security/projection-markings.ts +421 -0
  594. package/src/security/redactions.ts +7 -2
  595. package/src/security/types.ts +20 -2
  596. package/src/security/validation.ts +11 -4
  597. package/src/storage/action-runs/in-memory.ts +18 -0
  598. package/src/storage/action-runs/types.ts +8 -0
  599. package/src/storage/activity/in-memory.ts +374 -0
  600. package/src/storage/activity/index.ts +27 -0
  601. package/src/storage/activity/policy.ts +430 -0
  602. package/src/storage/activity/types.ts +211 -0
  603. package/src/storage/agents/in-memory.ts +10 -0
  604. package/src/storage/agents/provider.ts +2 -13
  605. package/src/storage/agents/types.ts +9 -16
  606. package/src/storage/artifacts/errors.ts +16 -0
  607. package/src/storage/artifacts/in-memory.ts +240 -0
  608. package/src/storage/artifacts/index.ts +30 -0
  609. package/src/storage/artifacts/record.ts +200 -0
  610. package/src/storage/artifacts/types.ts +209 -0
  611. package/src/storage/auth/in-memory/sessions.ts +21 -0
  612. package/src/storage/auth/index.ts +2 -0
  613. package/src/storage/auth/types.ts +18 -0
  614. package/src/storage/executions/in-memory.ts +61 -1
  615. package/src/storage/executions/index.ts +3 -0
  616. package/src/storage/executions/provider.ts +12 -0
  617. package/src/storage/executions/types.ts +30 -0
  618. package/src/storage/in-memory/index.ts +16 -0
  619. package/src/storage/index.ts +63 -0
  620. package/src/storage/internal.ts +30 -0
  621. package/src/storage/ontology/in-memory/sources.ts +23 -0
  622. package/src/storage/ontology/index.ts +2 -0
  623. package/src/storage/ontology/sources.ts +17 -0
  624. package/src/storage/share-grants/in-memory.ts +8 -0
  625. package/src/storage/share-grants/index.ts +1 -0
  626. package/src/storage/share-grants/types.ts +8 -0
  627. package/src/storage/types.ts +4 -0
  628. package/src/storage/workflow-runs/in-memory.ts +16 -0
  629. package/src/storage/workflow-runs/types.ts +5 -0
  630. package/src/testing/action-run-storage-contract.ts +25 -0
  631. package/src/testing/activity-storage-contract.ts +840 -0
  632. package/src/testing/agent-storage-contract.ts +22 -21
  633. package/src/testing/artifact-storage-contract.ts +517 -0
  634. package/src/testing/auth-storage-contract.ts +47 -0
  635. package/src/testing/execution-storage-contract.ts +147 -1
  636. package/src/testing/index.ts +9 -0
  637. package/src/testing/lake-merge-storage-contract.ts +38 -0
  638. package/src/testing/lake-storage-contract.ts +247 -2
  639. package/src/testing/materializer-storage-contract.ts +1 -0
  640. package/src/testing/ontology-storage-contract.ts +57 -2
  641. package/src/testing/share-grant-storage-contract.ts +15 -0
  642. package/src/workflows/builders.ts +14 -0
  643. package/src/workflows/types.ts +9 -0
  644. package/src/workflows/validation.ts +72 -0
  645. package/dist/chunk-1k89ecfr.js +0 -85
  646. package/dist/chunk-1k89ecfr.js.map +0 -10
  647. package/dist/chunk-3t2hgbgd.js.map +0 -15
  648. package/dist/chunk-4vyr1j8f.js +0 -128
  649. package/dist/chunk-4vyr1j8f.js.map +0 -11
  650. package/dist/chunk-9gyp8hg1.js +0 -363
  651. package/dist/chunk-9gyp8hg1.js.map +0 -14
  652. package/dist/chunk-es1gxsbf.js.map +0 -13
  653. package/dist/chunk-gsjm1wms.js.map +0 -10
  654. package/dist/chunk-hkc3jct7.js.map +0 -10
  655. package/dist/chunk-k6q3n2sc.js.map +0 -12
  656. package/dist/chunk-rrzt8jdy.js.map +0 -14
  657. package/dist/chunk-s16apyk9.js +0 -256
  658. package/dist/chunk-s16apyk9.js.map +0 -16
  659. package/dist/chunk-s54c868q.js.map +0 -12
  660. package/dist/chunk-tw03bsmb.js.map +0 -11
  661. /package/dist/{chunk-xfs8x8m9.js.map → chunk-0bphap9y.js.map} +0 -0
  662. /package/dist/{chunk-1zq2p6g0.js.map → chunk-1cc1xaf3.js.map} +0 -0
  663. /package/dist/{chunk-t7x8dmn0.js.map → chunk-431pyp2c.js.map} +0 -0
  664. /package/dist/{chunk-c85m1hyj.js.map → chunk-447a5c0p.js.map} +0 -0
  665. /package/dist/{chunk-ren4kg2j.js.map → chunk-561r0yc9.js.map} +0 -0
  666. /package/dist/{chunk-5e43w60z.js.map → chunk-5948n82c.js.map} +0 -0
  667. /package/dist/{chunk-yzwja0mj.js.map → chunk-5hx48dnn.js.map} +0 -0
  668. /package/dist/{chunk-5j58wjct.js.map → chunk-858emn8m.js.map} +0 -0
  669. /package/dist/{chunk-6p49a5cq.js.map → chunk-c1rxbz5y.js.map} +0 -0
  670. /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
  671. /package/dist/{chunk-fa02jy15.js.map → chunk-cy4mbddw.js.map} +0 -0
  672. /package/dist/{chunk-9w055r5b.js.map → chunk-d09e3rax.js.map} +0 -0
  673. /package/dist/{chunk-dk8tkk5f.js.map → chunk-d7dnxdep.js.map} +0 -0
  674. /package/dist/{chunk-tg2cw67r.js.map → chunk-ky3j490c.js.map} +0 -0
  675. /package/dist/{chunk-vyf9kfqf.js.map → chunk-q7gn29y3.js.map} +0 -0
  676. /package/dist/{chunk-v9xd5wzd.js.map → chunk-s7jg7pmn.js.map} +0 -0
  677. /package/dist/{chunk-9dmt152s.js.map → chunk-vf57cr4t.js.map} +0 -0
  678. /package/dist/{chunk-9ybhtmg4.js.map → chunk-vvxtn22d.js.map} +0 -0
  679. /package/dist/{chunk-7t429e3f.js.map → chunk-xvsc5m8n.js.map} +0 -0
  680. /package/dist/{chunk-z4m0yz8c.js.map → chunk-y5tah2kf.js.map} +0 -0
  681. /package/dist/{chunk-fkgc1wt8.js.map → chunk-z58tm0hm.js.map} +0 -0
@@ -0,0 +1,18 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/storage/action-runs/idempotency.ts", "../src/storage/action-runs/record.ts", "../src/storage/errors.ts", "../src/storage/activity/policy.ts", "../src/storage/artifacts/record.ts", "../src/storage/file-download-grants/record.ts", "../src/storage/pipeline-runs/idempotency.ts", "../src/storage/sync-runs/idempotency.ts", "../src/storage/transaction.ts"],
4
+ "sourcesContent": [
5
+ "import type { ActionSubject } from \"../../actions\"\nimport { stableJsonStringify } from \"../../json\"\nimport type { ActionRunEffectsRecord, ActionRunRecord, ActionRunWritebackRecord } from \"./types\"\n\nexport function actionSubjectsEqual(left: ActionSubject, right: ActionSubject): boolean {\n if (left.kind !== right.kind) return false\n if (left.kind === \"none\") return true\n if (right.kind === \"none\") return false\n return left.objectTypeId === right.objectTypeId && left.primaryId === right.primaryId\n}\n\nexport function actionRunParamsEqual(left: unknown, right: unknown): boolean {\n return stableJsonStringify(left) === stableJsonStringify(right)\n}\n\n/** Whether two runs carry the same request: the same Action, subject, and params. */\nexport function actionRunRequestsEqual(\n left: Pick<ActionRunRecord, \"actionId\" | \"subject\" | \"params\">,\n right: Pick<ActionRunRecord, \"actionId\" | \"subject\" | \"params\">\n): boolean {\n return (\n left.actionId === right.actionId &&\n actionSubjectsEqual(left.subject, right.subject) &&\n actionRunParamsEqual(left.params, right.params)\n )\n}\n\nexport type ActionRunPhaseRecord = ActionRunWritebackRecord | ActionRunEffectsRecord\n\nexport function actionRunPhaseRecordsEqual(\n left: ActionRunPhaseRecord,\n right: ActionRunPhaseRecord\n): boolean {\n return actionRunParamsEqual(stripPhaseRecordCompletedAt(left), stripPhaseRecordCompletedAt(right))\n}\n\nfunction stripPhaseRecordCompletedAt(\n record: ActionRunPhaseRecord\n): Omit<ActionRunPhaseRecord, \"completedAt\"> {\n const { completedAt: _completedAt, ...stableRecord } = record\n return stableRecord\n}\n",
6
+ "import { assertJsonValue, cloneJsonValue } from \"../../json\"\nimport { ActionRunError } from \"./errors\"\nimport { parseActionRunFailure } from \"./failure\"\nimport { actionRunPhaseRecordsEqual } from \"./idempotency\"\nimport type {\n ActionRunEffectsRecord,\n ActionRunRecord,\n ActionRunWritebackRecord,\n RecordActionEffectsInput,\n RecordActionRunInput,\n} from \"./types\"\nimport { ACTION_RUN_PHASES } from \"./types\"\n\n/**\n * Validate a terminal run record before a provider inserts it, and detach it from the caller.\n *\n * Every provider records through this, so a stored run always reads back as the record that was\n * written: a failed run carries the failure of the phase it ended in, and a succeeded one none. A\n * run is recorded before its effects run, so no record starts in the `effects` phase.\n */\nexport function normalizeRecordActionRunInput(input: RecordActionRunInput): RecordActionRunInput {\n const label = `[Sixb] Action run '${input.id}'`\n for (const field of [\"id\", \"projectId\", \"executionId\", \"actionId\", \"idempotencyKey\"] as const) {\n if (typeof input[field] !== \"string\" || input[field].trim().length === 0) {\n throw new ActionRunError(`${label} must have a nonblank ${field}.`)\n }\n }\n const status: string = input.status\n if (status !== \"succeeded\" && status !== \"failed\") {\n throw new ActionRunError(`${label} has unknown status '${status}'.`)\n }\n if (!(ACTION_RUN_PHASES as readonly string[]).includes(input.phase)) {\n throw new ActionRunError(`${label} has unknown phase '${input.phase}'.`)\n }\n if (input.phase === \"effects\") {\n throw new ActionRunError(`${label} is recorded before its effects run.`)\n }\n const startedAt = requireDate(input.startedAt, `${label} startedAt`)\n const finishedAt = requireDate(input.finishedAt, `${label} finishedAt`)\n if (finishedAt < startedAt) {\n throw new ActionRunError(`${label} cannot finish before it started.`)\n }\n assertJsonValue(input.params, `${label} params`)\n\n const fields = {\n id: input.id,\n projectId: input.projectId,\n executionId: input.executionId,\n actionId: input.actionId,\n subject: structuredClone(input.subject),\n phase: input.phase,\n startedAt,\n finishedAt,\n params: structuredClone(input.params),\n idempotencyKey: input.idempotencyKey,\n ...(input.writeback === undefined\n ? {}\n : { writeback: normalizeWriteback(input.writeback, label) }),\n }\n\n if (input.status === \"succeeded\") {\n if (input.error !== undefined) {\n throw new ActionRunError(`${label} succeeded, so it cannot record a failure.`)\n }\n return { ...fields, status: \"succeeded\" }\n }\n const error = parseActionRunFailure(input.error, input.phase)\n if (error.details.runId !== input.id || error.details.actionId !== input.actionId) {\n throw new ActionRunError(`${label} records the failure of another run.`)\n }\n return { ...fields, status: \"failed\", error }\n}\n\n/**\n * Resolve what recording effects does to the stored run: write `effects`, or nothing (`null`) when\n * an equal outcome is already recorded.\n *\n * Effects run only after a succeeded run committed its edits, and their outcome is recorded once.\n */\nexport function resolveActionRunEffects(\n existing: ActionRunRecord | null,\n input: RecordActionEffectsInput\n): { readonly run: ActionRunRecord; readonly effects: ActionRunEffectsRecord | null } {\n const label = `[Sixb] Action run '${input.id}'`\n if (!existing) {\n throw new ActionRunError(`${label} not found for project '${input.projectId}'.`)\n }\n const completedAt = requireDate(input.completedAt ?? new Date(), `${label} effects`)\n const effects: ActionRunEffectsRecord =\n input.status === \"succeeded\"\n ? { status: \"succeeded\", completedAt }\n : { status: \"failed\", completedAt, error: parseActionRunFailure(input.error, \"effects\") }\n\n if (existing.effects) {\n if (actionRunPhaseRecordsEqual(existing.effects, effects))\n return { run: existing, effects: null }\n throw new ActionRunError(`${label} already has a different effects record.`)\n }\n if (existing.status !== \"succeeded\" || existing.phase !== \"commit\") {\n throw new ActionRunError(\n `${label} cannot record effects: it ended '${existing.status}' in phase '${existing.phase}'.`\n )\n }\n return { run: existing, effects }\n}\n\nfunction normalizeWriteback(\n writeback: ActionRunWritebackRecord,\n label: string\n): ActionRunWritebackRecord {\n const completedAt = requireDate(writeback.completedAt, `${label} writeback`)\n if (writeback.status === \"succeeded\") {\n assertJsonValue(writeback.result, `${label} writeback result`)\n return { status: \"succeeded\", completedAt, result: cloneJsonValue(writeback.result) }\n }\n return {\n status: \"failed\",\n completedAt,\n error: parseActionRunFailure(writeback.error, \"writeback\"),\n }\n}\n\n/** A detached copy of `value`, which must be a valid date. */\nfunction requireDate(value: Date, label: string): Date {\n const date = value instanceof Date ? new Date(value) : new Date(Number.NaN)\n if (!Number.isFinite(date.getTime())) {\n throw new ActionRunError(`${label} must be a valid date.`)\n }\n return date\n}\n",
7
+ "/**\n * Thrown when a storage lookup by primary ID finds no matching object.\n * Carries structured context so callers can discriminate without string parsing.\n */\nexport class ObjectNotFoundError extends Error {\n readonly name = \"ObjectNotFoundError\"\n\n constructor(\n readonly objectTypeId: string,\n readonly primaryId: string,\n readonly context: string\n ) {\n super(`[Sixb] ${context}: ${objectTypeId}:${primaryId}`)\n }\n}\n\nexport class ObjectStorageError extends Error {\n readonly name = \"ObjectStorageError\"\n}\n\nexport type StorageTransactionErrorCode =\n | \"nested_transaction\"\n | \"serialization_failure\"\n | \"transaction_inactive\"\n\nexport interface StorageTransactionErrorOptions {\n readonly cause?: unknown\n readonly code?: StorageTransactionErrorCode\n}\n\nexport class StorageTransactionError extends Error {\n readonly name = \"StorageTransactionError\"\n readonly code?: StorageTransactionErrorCode\n override readonly cause?: unknown\n\n constructor(message: string, options: StorageTransactionErrorOptions = {}) {\n super(message)\n this.code = options.code\n this.cause = options.cause\n }\n}\n\nexport function isStorageSerializationFailure(error: unknown): boolean {\n return error instanceof StorageTransactionError && error.code === \"serialization_failure\"\n}\n",
8
+ "/**\n * The activity rules every provider shares: validation, retries, quota, visit assignment and\n * sequence. Providers own atomicity and their queries; see `src/activity/README.md`.\n */\nimport type {\n ActivityActor,\n ActivityAttribution,\n ActivityDay,\n ActivityEventInput,\n ActivityInteraction,\n ActivityPageView,\n AppendActivityInput,\n} from \"./types\"\n\n// The HTTP schemas share these, so the API and the providers refuse the same inputs.\nexport const ACTIVITY_BATCH_LIMIT = 20\nexport const ACTIVITY_EVENT_ID_PATTERN = /^[a-zA-Z0-9_-]{1,80}$/\nexport const ACTIVITY_VISIT_ID_PATTERN = /^[a-zA-Z0-9_-]{1,128}$/\nexport const ACTIVITY_HOSTNAME_PATTERN =\n /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/\n/** A UTM label: any text without control characters. */\nexport const ACTIVITY_LABEL_PATTERN = /^[^\\x00-\\x1f\\x7f]*$/\nexport const ACTIVITY_LABEL_MAX_LENGTH = 100\nexport const ACTIVITY_REFERRER_MAX_LENGTH = 253\nexport const ACTIVITY_ROUTE_MAX_LENGTH = 512\nexport const ACTIVITY_ID_MAX_LENGTH = 256\n/**\n * An interaction name: lowercase dotted segments, each starting with a letter and at most 40\n * characters, such as `invoices.row.open`, without a run of four digits. A segment that starts\n * with a digit, or holds a long number, is usually a value, which names never carry. No pattern\n * catches every value: names are meant to be constants.\n */\nexport const ACTIVITY_INTERACTION_NAME_PATTERN =\n /^(?!.*\\d{4})[a-z][a-z0-9_-]{0,39}(?:\\.[a-z][a-z0-9_-]{0,39})*$/\nexport const ACTIVITY_INTERACTION_NAME_MAX_LENGTH = 100\nexport const ACTIVITY_MAX_PERIOD_MS = 31 * 24 * 60 * 60_000\nexport const ACTIVITY_MAX_PAGE_SIZE = 100\n\nexport const ACTIVITY_SOURCE_LIMIT_PER_MINUTE = 120\nexport const ACTIVITY_MIN_IDLE_TIMEOUT_MS = 60_000\n/** A visit ends at its next event once this old, so a period query bounds `started_at`. */\nexport const ACTIVITY_MAX_VISIT_MS = 24 * 60 * 60_000\n\nconst QUOTA_WINDOW_MS = 60_000\nconst DAY_MS = 86_400_000\nconst ATTRIBUTION_KEYS = [\"source\", \"medium\", \"campaign\", \"referrer\"] as const\n\n/** What a provider keeps per session between batches, read and written under its lock. */\nexport interface ActivitySourceState {\n readonly visitId: string\n /** When the current visit started; `null` once that visit was deleted. Epoch milliseconds. */\n readonly visitStartedAt: number | null\n /** Epoch milliseconds. Never moves backwards. */\n readonly lastSeenAt: number\n /** Sequence of the visit's last stored event, page view or interaction. */\n readonly sequence: number\n readonly windowStart: number\n readonly windowCount: number\n}\n\n/** A page view or an interaction already stored for the session, compared with a retry of it. */\nexport interface StoredActivityEvent {\n readonly id: string\n readonly route: string\n /** Set for an interaction only. */\n readonly name?: string\n readonly attribution?: ActivityAttribution\n}\n\n/** A page view to insert. Its own attribution is kept only to recognize a retry. */\nexport interface PlannedActivityPageView extends ActivityPageView {\n readonly attribution?: ActivityAttribution\n}\n\nexport type ActivityAppendPlan =\n | { readonly status: \"duplicate\" }\n | { readonly status: \"throttled\" }\n | {\n readonly status: \"append\"\n /** Set when the batch starts a visit, with the arrival that visit keeps. */\n readonly newVisit: { readonly attribution: ActivityAttribution | null } | null\n readonly pageViews: readonly PlannedActivityPageView[]\n readonly interactions: readonly ActivityInteraction[]\n /** Events counted against the quota: page views, activity and interactions alike. */\n readonly accepted: number\n readonly state: ActivitySourceState\n }\n\nexport function validateActivityEvents(events: readonly ActivityEventInput[]): void {\n if (!Array.isArray(events) || events.length === 0 || events.length > ACTIVITY_BATCH_LIMIT) {\n throw new Error(`[Sixb] Activity batches must contain 1 to ${ACTIVITY_BATCH_LIMIT} events.`)\n }\n\n const ids = new Set<string>()\n for (const event of events) {\n if (\n !event ||\n typeof event.id !== \"string\" ||\n !ACTIVITY_EVENT_ID_PATTERN.test(event.id) ||\n ids.has(event.id)\n ) {\n throw new Error(\"[Sixb] Activity event ids must be unique, nonempty identifiers.\")\n }\n ids.add(event.id)\n\n if (\n event.type !== \"page.view\" &&\n event.type !== \"visit.activity\" &&\n event.type !== \"ui.interaction\"\n ) {\n throw new Error(\"[Sixb] Unknown activity event type.\")\n }\n\n if (!isActivityRoutePattern(event.route)) {\n throw new Error(\n \"[Sixb] Activity routes must be normalized file-router patterns without URL parameters.\"\n )\n }\n\n if (event.type !== \"ui.interaction\") {\n serializeActivityAttribution(event.attribution)\n continue\n }\n\n if (!isActivityInteractionName(event.name)) {\n throw new Error(\n `[Sixb] Activity interaction names are lowercase dotted identifiers such as \"invoices.export\": each segment starts with a letter, holds at most 40 characters and no run of four digits, and the name at most ${ACTIVITY_INTERACTION_NAME_MAX_LENGTH}.`\n )\n }\n\n // An interaction is its name, route and time: the arrival travels with page views.\n if (Reflect.get(event, \"attribution\") !== undefined) {\n throw new Error(\"[Sixb] Activity interactions carry no attribution.\")\n }\n }\n}\n\nexport function validateActivityAppend(input: AppendActivityInput): void {\n validateActivityEvents(input.events)\n\n if (input.actor.type !== \"user\" && input.actor.type !== \"share\") {\n throw new Error(\"[Sixb] Invalid activity actor.\")\n }\n\n const actorId = input.actor.type === \"user\" ? input.actor.userId : input.actor.grantId\n for (const value of [input.projectId, input.sessionId, input.newVisitId, actorId]) {\n if (typeof value !== \"string\" || !value.trim() || value.length > ACTIVITY_ID_MAX_LENGTH) {\n throw new Error(\"[Sixb] Invalid activity identity.\")\n }\n }\n\n if (\n !Number.isFinite(input.now.getTime()) ||\n !Number.isSafeInteger(input.idleTimeoutMs) ||\n input.idleTimeoutMs < ACTIVITY_MIN_IDLE_TIMEOUT_MS\n ) {\n throw new Error(\"[Sixb] Invalid activity clock or inactivity window.\")\n }\n}\n\n/**\n * Plans one batch for one session. `current` is the session's state, absent before its first\n * batch; `stored` holds its page views and interactions whose ids appear in the batch.\n */\nexport function planActivityAppend(\n input: AppendActivityInput,\n current: ActivitySourceState | undefined,\n stored: readonly StoredActivityEvent[]\n): ActivityAppendPlan {\n const fresh = input.events.filter((event) => !isRetry(event, stored))\n if (fresh.length === 0) {\n return { status: \"duplicate\" }\n }\n\n // A server clock stepping back must not reorder a visit.\n const now = Math.max(input.now.getTime(), current?.lastSeenAt ?? 0)\n\n const windowOpen = current !== undefined && now - current.windowStart < QUOTA_WINDOW_MS\n const windowStart = windowOpen ? current.windowStart : now\n const windowCount = windowOpen ? current.windowCount : 0\n if (windowCount + fresh.length > ACTIVITY_SOURCE_LIMIT_PER_MINUTE) {\n return { status: \"throttled\" }\n }\n\n const continued = continuesVisit(current, now, input.idleTimeoutMs) ? current : undefined\n const visitId = continued?.visitId ?? input.newVisitId\n const previousSequence = continued?.sequence ?? 0\n\n // Page views and interactions share the visit's sequence, in the order the batch sent them.\n const pageViews: PlannedActivityPageView[] = []\n const interactions: ActivityInteraction[] = []\n let sequence = previousSequence\n\n fresh.forEach((event, index) => {\n const receivedAt = new Date(now)\n const opensVisit = !continued && index === 0\n\n if (event.type === \"ui.interaction\") {\n // Like activity, an interaction that opens a visit starts it on its page. The page view's\n // id is derived outside the event-id alphabet, so no browser event can claim it.\n if (opensVisit) {\n sequence += 1\n pageViews.push({\n id: `${event.id}.page`,\n visitId,\n sequence,\n route: event.route,\n receivedAt,\n attribution: {},\n })\n }\n\n sequence += 1\n interactions.push({\n id: event.id,\n visitId,\n sequence,\n name: event.name,\n route: event.route,\n receivedAt,\n })\n return\n }\n\n // A visit opened by activity, someone back on a page after inactivity, starts on that page.\n if (event.type === \"page.view\" || opensVisit) {\n sequence += 1\n pageViews.push({\n id: event.id,\n visitId,\n sequence,\n route: event.route,\n receivedAt,\n ...(event.attribution === undefined\n ? {}\n : { attribution: structuredClone(event.attribution) }),\n })\n }\n })\n\n // An interaction carries no arrival: the visit it opens reads as direct.\n const first = fresh[0]\n const arrival = first?.type === \"ui.interaction\" ? {} : first?.attribution\n\n return {\n status: \"append\",\n newVisit: continued ? null : { attribution: cloneAttribution(arrival) },\n pageViews,\n interactions,\n accepted: fresh.length,\n state: {\n visitId,\n visitStartedAt: continued ? continued.visitStartedAt : now,\n lastSeenAt: now,\n sequence,\n windowStart,\n windowCount: windowCount + fresh.length,\n },\n }\n}\n\n/**\n * A visit continues while it is active and younger than a day. One whose row was deleted cannot:\n * the next event starts another.\n */\nfunction continuesVisit(\n current: ActivitySourceState | undefined,\n now: number,\n idleTimeoutMs: number\n): current is ActivitySourceState {\n return (\n current !== undefined &&\n current.visitStartedAt !== null &&\n now - current.lastSeenAt < idleTimeoutMs &&\n now - current.visitStartedAt < ACTIVITY_MAX_VISIT_MS\n )\n}\n\n/**\n * An event whose id is already stored is a retry, and must say the same thing. Stored rows are\n * page views, the activity that opened a visit, and interactions; either of the first two types\n * can retry a page view. Other activity is not stored, and is never recognized as a retry.\n */\nfunction isRetry(event: ActivityEventInput, stored: readonly StoredActivityEvent[]): boolean {\n const previous = stored.find((candidate) => candidate.id === event.id)\n if (!previous) {\n return false\n }\n\n const same =\n event.type === \"ui.interaction\"\n ? event.name === previous.name && event.route === previous.route\n : previous.name === undefined &&\n event.route === previous.route &&\n serializeActivityAttribution(event.attribution) ===\n serializeActivityAttribution(previous.attribution)\n\n if (!same) {\n throw new Error(\"[Sixb] Activity event id was reused with different content.\")\n }\n\n return true\n}\n\n/**\n * Each UTC day of `[from, to)` that a visit overlaps, with its page views. A visit across midnight\n * counts on both days.\n */\nexport function activityCalendarDays(\n period: { readonly from: Date; readonly to: Date },\n visits: readonly { readonly startedAt: Date; readonly lastSeenAt: Date }[],\n pageViewsByDay: ReadonlyMap<string, number>\n): ActivityDay[] {\n const visitsByDay = new Map<string, number>()\n const from = period.from.getTime()\n const last = period.to.getTime() - 1\n\n for (const visit of visits) {\n const firstDay = Math.floor(Math.max(visit.startedAt.getTime(), from) / DAY_MS)\n const lastDay = Math.floor(Math.min(visit.lastSeenAt.getTime(), last) / DAY_MS)\n\n for (let day = firstDay; day <= lastDay; day++) {\n const key = activityDay(day * DAY_MS)\n visitsByDay.set(key, (visitsByDay.get(key) ?? 0) + 1)\n }\n }\n\n const days = new Set([...visitsByDay.keys(), ...pageViewsByDay.keys()])\n return [...days].sort().map((day) => ({\n day,\n visits: visitsByDay.get(day) ?? 0,\n pageViews: pageViewsByDay.get(day) ?? 0,\n }))\n}\n\n/** The UTC calendar day of an instant, as `YYYY-MM-DD`. */\nexport function activityDay(at: Date | number): string {\n return new Date(at).toISOString().slice(0, 10)\n}\n\nexport function activityActor(\n type: string,\n userId: string | null,\n grantId: string | null\n): ActivityActor {\n if (type === \"user\" && userId) {\n return { type, userId }\n }\n if (type === \"share\" && grantId) {\n return { type, grantId }\n }\n throw new Error(\"[Sixb] Stored activity actor is invalid.\")\n}\n\n/** Canonical JSON, so a retry matches whatever order its keys come in. `undefined` stays null. */\nexport function serializeActivityAttribution(value: unknown): string | null {\n if (value === undefined) {\n return null\n }\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new Error(\"[Sixb] Invalid activity attribution.\")\n }\n if (Object.keys(value).some((key) => !ATTRIBUTION_KEYS.some((field) => field === key))) {\n throw new Error(\"[Sixb] Unknown activity attribution field.\")\n }\n\n const result: Record<string, string> = {}\n for (const key of ATTRIBUTION_KEYS) {\n const text: unknown = Reflect.get(value, key)\n if (text === undefined) {\n continue\n }\n\n const maxLength = key === \"referrer\" ? ACTIVITY_REFERRER_MAX_LENGTH : ACTIVITY_LABEL_MAX_LENGTH\n if (!isAttributionLabel(text, maxLength)) {\n throw new Error(\"[Sixb] Activity attribution requires bounded, nonempty labels.\")\n }\n if (key === \"referrer\" && !ACTIVITY_HOSTNAME_PATTERN.test(text)) {\n throw new Error(\"[Sixb] Activity referrer must be a hostname, not a URL.\")\n }\n\n result[key] = text\n }\n\n return JSON.stringify(result)\n}\n\nexport function parseActivityAttribution(value: string | null): ActivityAttribution | null {\n if (value === null) {\n return null\n }\n\n const data: unknown = JSON.parse(value)\n serializeActivityAttribution(data)\n // The check above limits every key and value to the attribution contract.\n return data as ActivityAttribution\n}\n\nfunction cloneAttribution(value: ActivityAttribution | undefined): ActivityAttribution | null {\n return value === undefined ? null : structuredClone(value)\n}\n\nfunction isAttributionLabel(value: unknown, maxLength: number): value is string {\n return (\n typeof value === \"string\" &&\n value.length > 0 &&\n value.length <= maxLength &&\n value === value.trim() &&\n ACTIVITY_LABEL_PATTERN.test(value)\n )\n}\n\nfunction isActivityInteractionName(value: unknown): value is string {\n return (\n typeof value === \"string\" &&\n value.length <= ACTIVITY_INTERACTION_NAME_MAX_LENGTH &&\n ACTIVITY_INTERACTION_NAME_PATTERN.test(value)\n )\n}\n\n/** A file-router pattern: rooted, normalized, without a query, fragment or escape. */\nexport function isActivityRoutePattern(value: unknown): value is string {\n return (\n typeof value === \"string\" &&\n value.length <= ACTIVITY_ROUTE_MAX_LENGTH &&\n value.startsWith(\"/\") &&\n !value.includes(\"//\") &&\n !/[?#%\\s\\x00-\\x1f]/.test(value)\n )\n}\n",
9
+ "import { isArtifactKind } from \"../../artifacts/kinds\"\nimport type { ArtifactOutline } from \"../../artifacts/outline\"\nimport type { ArtifactReference } from \"../../artifacts/references\"\nimport type { Principal } from \"../../auth\"\nimport { isFileRef } from \"../../blob-storage\"\nimport { ArtifactStorageError } from \"./errors\"\nimport type {\n ArtifactFile,\n ArtifactFrameGrantRecord,\n ArtifactFrameTarget,\n ArtifactKind,\n ArtifactRecord,\n ArtifactVersionRecord,\n} from \"./types\"\n\n// Rows arrive from providers with camelCase keys. JSON columns may arrive parsed (jsonb) or as text\n// (SQLite), and timestamps as `Date` or ISO text. A row that does not read back as a valid record\n// fails closed rather than rendering something the store never held.\n\ntype Row = { readonly [column: string]: unknown }\n\nexport function parseArtifactRow(row: Row): ArtifactRecord {\n const id = text(row.id, \"id\", \"artifact\")\n const where = `artifact '${id}'`\n const kind = row.kind\n if (!isArtifactKind(kind)) throw corrupt(where, \"kind is not an artifact kind\")\n return {\n projectId: text(row.projectId, \"projectId\", where),\n id,\n kind,\n title: text(row.title, \"title\", where),\n owner: principal(row.ownerPrincipalType, row.ownerPrincipalId, \"owner\", where),\n latestVersion: positiveInteger(row.latestVersion, \"latestVersion\", where),\n createdAt: date(row.createdAt, \"createdAt\", where),\n updatedAt: date(row.updatedAt, \"updatedAt\", where),\n }\n}\n\nexport function parseArtifactVersionRow(row: Row): ArtifactVersionRecord {\n const artifactId = text(row.artifactId, \"artifactId\", \"artifact version\")\n const version = positiveInteger(row.version, \"version\", `artifact '${artifactId}'`)\n const where = `artifact '${artifactId}' version ${version}`\n const originThreadId = row.originThreadId\n const originRunId = row.originRunId\n if ((originThreadId == null) !== (originRunId == null)) {\n throw corrupt(where, \"origin needs both a thread and a run\")\n }\n return {\n projectId: text(row.projectId, \"projectId\", where),\n artifactId,\n version,\n title: text(row.title, \"title\", where),\n entry: text(row.entry, \"entry\", where),\n files: files(json(row.files, \"files\", where), where),\n outline: outline(json(row.outline, \"outline\", where), where),\n references: references(json(row.refs, \"refs\", where), where),\n author: principal(row.authorPrincipalType, row.authorPrincipalId, \"author\", where),\n ...(originThreadId == null\n ? {}\n : {\n origin: {\n threadId: text(originThreadId, \"originThreadId\", where),\n runId: text(originRunId, \"originRunId\", where),\n },\n }),\n createdAt: date(row.createdAt, \"createdAt\", where),\n }\n}\n\n/** Targets are checked one by one: they decide what a frame may show from other artifacts. */\nexport function parseArtifactFrameGrantRow(row: Row): ArtifactFrameGrantRecord {\n const artifactId = text(row.artifactId, \"artifactId\", \"artifact frame grant\")\n const where = `frame grant for artifact '${artifactId}'`\n return {\n projectId: text(row.projectId, \"projectId\", where),\n tokenHash: text(row.tokenHash, \"tokenHash\", where),\n artifactId,\n version: positiveInteger(row.version, \"version\", where),\n targets: frameTargets(json(row.targets, \"targets\", where), where),\n createdAt: date(row.createdAt, \"createdAt\", where),\n expiresAt: date(row.expiresAt, \"expiresAt\", where),\n }\n}\n\n/** The errors every provider raises, with one wording. */\nexport const artifactStorageErrors = {\n exists: (id: string) =>\n new ArtifactStorageError(\"artifact_exists\", `[Sixb] Artifact '${id}' already exists.`),\n notFound: (id: string) =>\n new ArtifactStorageError(\"artifact_not_found\", `[Sixb] Artifact '${id}' was not found.`),\n kindMismatch: (id: string, kind: ArtifactKind, requested: ArtifactKind) =>\n new ArtifactStorageError(\n \"artifact_kind_mismatch\",\n `[Sixb] Artifact '${id}' is a ${kind}; it cannot take a ${requested} version.`\n ),\n}\n\nfunction files(value: unknown, where: string): ArtifactFile[] {\n if (!Array.isArray(value)) throw corrupt(where, \"files is not a list\")\n return value.map((entry) => {\n if (!isObject(entry) || typeof entry.path !== \"string\" || !isFileRef(entry.file)) {\n throw corrupt(where, \"a file entry is not a path and a file reference\")\n }\n return { path: entry.path, file: entry.file }\n })\n}\n\nfunction outline(value: unknown, where: string): ArtifactOutline {\n if (!isObject(value) || !isArtifactKind(value.kind)) {\n throw corrupt(where, \"outline does not name an artifact kind\")\n }\n return value as unknown as ArtifactOutline\n}\n\nfunction references(value: unknown, where: string): ArtifactReference[] {\n if (!Array.isArray(value)) throw corrupt(where, \"references is not a list\")\n return value.map((entry) => {\n if (\n !isObject(entry) ||\n typeof entry.address !== \"string\" ||\n (entry.as !== \"embed\" && entry.as !== \"link\") ||\n typeof entry.at !== \"string\" ||\n !Number.isSafeInteger(entry.resolvedVersion) ||\n (entry.resolvedVersion as number) < 1\n ) {\n throw corrupt(where, \"a reference is not an address, a verb, a place, and a version\")\n }\n return {\n address: entry.address,\n as: entry.as,\n at: entry.at,\n resolvedVersion: entry.resolvedVersion as number,\n }\n })\n}\n\nfunction frameTargets(value: unknown, where: string): ArtifactFrameTarget[] {\n if (!Array.isArray(value)) throw corrupt(where, \"targets is not a list\")\n return value.map((entry) => {\n if (\n !isObject(entry) ||\n typeof entry.address !== \"string\" ||\n typeof entry.artifactId !== \"string\" ||\n !Number.isSafeInteger(entry.version) ||\n (entry.version as number) < 1\n ) {\n throw corrupt(where, \"a target is not an address, an artifact, and a version\")\n }\n return {\n address: entry.address,\n artifactId: entry.artifactId,\n version: entry.version as number,\n }\n })\n}\n\nconst PRINCIPAL_TYPES: ReadonlySet<string> = new Set([\"user\", \"serviceAccount\", \"system\"])\n\nfunction principal(type: unknown, id: unknown, column: string, where: string): Principal {\n if (typeof type !== \"string\" || !PRINCIPAL_TYPES.has(type)) {\n throw corrupt(where, `${column} is not a principal`)\n }\n return { type: type as Principal[\"type\"], id: text(id, column, where) }\n}\n\nfunction json(value: unknown, column: string, where: string): unknown {\n if (typeof value !== \"string\") return value\n try {\n return JSON.parse(value)\n } catch {\n throw corrupt(where, `${column} is not JSON`)\n }\n}\n\nfunction text(value: unknown, column: string, where: string): string {\n if (typeof value !== \"string\" || value.length === 0) throw corrupt(where, `${column} is not text`)\n return value\n}\n\nfunction positiveInteger(value: unknown, column: string, where: string): number {\n const number = typeof value === \"bigint\" ? Number(value) : value\n if (typeof number !== \"number\" || !Number.isSafeInteger(number) || number < 1) {\n throw corrupt(where, `${column} is not a positive integer`)\n }\n return number\n}\n\nfunction date(value: unknown, column: string, where: string): Date {\n const parsed = value instanceof Date || typeof value === \"string\" ? new Date(value) : null\n if (!parsed || !Number.isFinite(parsed.getTime())) throw corrupt(where, `${column} is not a date`)\n return parsed\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction corrupt(where: string, reason: string): Error {\n return new Error(`[Sixb] Stored ${where} is invalid: ${reason}.`)\n}\n",
10
+ "import { isFileRef } from \"../../blob-storage\"\nimport type { FileDownloadGrantRecord } from \"./types\"\n\n/**\n * Rebuilds a grant from a provider row with camelCase keys. `file` may arrive parsed (jsonb) or\n * as text (SQLite), and timestamps as `Date` or ISO text. Fails closed on corruption: a grant that\n * cannot be read must not serve a file.\n */\nexport function parseFileDownloadGrantRow(row: {\n readonly [column: string]: unknown\n}): FileDownloadGrantRecord {\n const id = text(row.id, \"id\", String(row.id))\n const file = typeof row.file === \"string\" ? JSON.parse(row.file) : row.file\n if (!isFileRef(file)) throw corrupt(id, \"file is not a file reference\")\n\n return {\n id,\n projectId: text(row.projectId, \"projectId\", id),\n tokenHash: text(row.tokenHash, \"tokenHash\", id),\n file,\n executionId: text(row.executionId, \"executionId\", id),\n createdAt: date(row.createdAt, \"createdAt\", id),\n expiresAt: date(row.expiresAt, \"expiresAt\", id),\n ...(row.revokedAt == null ? {} : { revokedAt: date(row.revokedAt, \"revokedAt\", id) }),\n }\n}\n\nexport function cloneFileDownloadGrantRecord(\n record: FileDownloadGrantRecord\n): FileDownloadGrantRecord {\n return structuredClone(record)\n}\n\nfunction text(value: unknown, column: string, id: string): string {\n if (typeof value !== \"string\" || value.length === 0) throw corrupt(id, `${column} is not text`)\n return value\n}\n\nfunction date(value: unknown, column: string, id: string): Date {\n const parsed = value instanceof Date || typeof value === \"string\" ? new Date(value) : null\n if (!parsed || !Number.isFinite(parsed.getTime())) throw corrupt(id, `${column} is not a date`)\n return parsed\n}\n\nfunction corrupt(id: string, reason: string): Error {\n return new Error(`[Sixb] Stored file download grant '${id}' is invalid: ${reason}.`)\n}\n",
11
+ "import type { PipelineRunRecord, QueuePipelineRunInput } from \"./types\"\n\nexport function canRequeuePipelineRunAfterEnqueueFailure(\n existing: PipelineRunRecord,\n input: QueuePipelineRunInput\n): boolean {\n return (\n existing.status === \"failed\" &&\n existing.error?.code === \"queue.enqueue_failed\" &&\n existing.error.retryable &&\n existing.executionId === input.executionId &&\n existing.pipelineId === input.pipelineId\n )\n}\n",
12
+ "import type { QueueSyncRunInput, SyncRunRecord } from \"./types\"\n\nexport function canRequeueSyncRunAfterEnqueueFailure(\n existing: SyncRunRecord,\n input: QueueSyncRunInput\n): boolean {\n return (\n existing.status === \"failed\" &&\n existing.error?.code === \"queue.enqueue_failed\" &&\n existing.error.retryable &&\n existing.executionId === input.executionId &&\n existing.syncId === input.syncId &&\n existing.datasetId === input.datasetId &&\n existing.mode === input.mode &&\n existing.expectedLatestVersionId === input.expectedLatestVersionId &&\n existing.commitMessage === input.commitMessage\n )\n}\n",
13
+ "import { StorageTransactionError } from \"./errors\"\nimport { createObjectOperationScope } from \"./operation-scope\"\nimport type { Storage } from \"./types\"\n\ntype ObjectLike = Record<PropertyKey, unknown>\n\nexport function createTransactionStorageProxy<T extends Storage>(\n target: T,\n isActive: () => boolean\n): T {\n const proxies = new WeakMap<object, object>()\n const objectStorage = createObjectOperationScope(target.objects, {\n assertAvailable: () => assertTransactionActive(isActive),\n run: async <TResult>(operation: () => Promise<TResult> | TResult): Promise<TResult> => {\n assertTransactionActive(isActive)\n return operation()\n },\n })\n\n const wrap = <TValue extends object>(value: TValue): TValue => {\n const existing = proxies.get(value)\n if (existing) return existing as TValue\n\n const proxy = new Proxy(value as ObjectLike, {\n // The guard runs on property access and on call. Its purpose is to fail fast when a\n // transaction handle (`tx`) leaks past the transaction's lifetime — using it afterward is a\n // bug, not a recoverable state. Overhead is bounded: only the storage namespaces reachable\n // from `tx` are wrapped (a handful), not the row/link data graph, and never per-record.\n get(current, property, receiver) {\n assertTransactionActive(isActive)\n const result =\n current === target && property === \"objects\"\n ? objectStorage\n : Reflect.get(current, property, receiver)\n if (typeof result === \"function\") {\n return (...args: unknown[]) => {\n assertTransactionActive(isActive)\n return result.apply(current, args)\n }\n }\n if (result && typeof result === \"object\") {\n return wrap(result)\n }\n return result\n },\n })\n\n proxies.set(value, proxy)\n return proxy as TValue\n }\n\n return wrap(target)\n}\n\nexport function assertTransactionActive(isActive: () => boolean): void {\n if (!isActive()) {\n throw new StorageTransactionError(\n \"[Sixb] Transaction storage cannot be used after transaction completion.\",\n { code: \"transaction_inactive\" }\n )\n }\n}\n\nexport function throwNestedStorageTransaction(): never {\n throw new StorageTransactionError(\"[Sixb] Nested storage transactions are not supported yet.\", {\n code: \"nested_transaction\",\n })\n}\n"
14
+ ],
15
+ "mappings": "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",
16
+ "debugId": "BE6522CD0B17F2AA64756E2164756E21",
17
+ "names": []
18
+ }