@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,892 @@
1
+ // @bun
2
+ import {
3
+ isArtifactAddress2,
4
+ parseArtifactAddress2
5
+ } from "../../chunk-mjddfa7k.js";
6
+ import {
7
+ ArtifactRequestError2,
8
+ decodeHtmlEntities,
9
+ SLIDES_ENTRY2,
10
+ FRAME_ASSET_PREFIX
11
+ } from "../../chunk-48qjhh6v.js";
12
+ import"../../chunk-wkv3h3q7.js";
13
+ import"../../chunk-a3faa34j.js";
14
+ // src/artifacts/frames/kit.ts
15
+ var FONTS = {
16
+ "--font-sans": '"SF Pro Text", "SF Pro Display", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif',
17
+ "--font-serif": 'ui-serif, Georgia, Cambria, "Times New Roman", Times, serif',
18
+ "--font-mono": '"SF Mono", "Geist Mono", "JetBrains Mono", ui-monospace, monospace'
19
+ };
20
+ var FRAME_DEFAULT_THEMES = {
21
+ light: {
22
+ dark: false,
23
+ tokens: {
24
+ "--background": "#fafafa",
25
+ "--foreground": "#101010",
26
+ "--card": "#ffffff",
27
+ "--card-foreground": "#101010",
28
+ "--muted": "#f4f4f4",
29
+ "--muted-foreground": "#5f5f5f",
30
+ "--primary": "#0a0a0a",
31
+ "--primary-foreground": "#ffffff",
32
+ "--accent": "#f0f0f0",
33
+ "--accent-foreground": "#202020",
34
+ "--border": "#e2e2e2",
35
+ "--chart-1": "#101010",
36
+ "--chart-2": "#404040",
37
+ "--chart-3": "#737373",
38
+ "--chart-4": "#a3a3a3",
39
+ "--chart-5": "#d4d4d4",
40
+ ...FONTS,
41
+ "--radius": "0.5rem"
42
+ }
43
+ },
44
+ dark: {
45
+ dark: true,
46
+ tokens: {
47
+ "--background": "#0a0a0a",
48
+ "--foreground": "#f4f4f4",
49
+ "--card": "#141414",
50
+ "--card-foreground": "#f4f4f4",
51
+ "--muted": "#1c1c1c",
52
+ "--muted-foreground": "#8a8a8a",
53
+ "--primary": "#f4f4f4",
54
+ "--primary-foreground": "#0a0a0a",
55
+ "--accent": "#1c1c1c",
56
+ "--accent-foreground": "#f4f4f4",
57
+ "--border": "#262626",
58
+ "--chart-1": "#f4f4f4",
59
+ "--chart-2": "#c4c4c4",
60
+ "--chart-3": "#8a8a8a",
61
+ "--chart-4": "#5f5f5f",
62
+ "--chart-5": "#404040",
63
+ ...FONTS,
64
+ "--radius": "0.5rem"
65
+ }
66
+ }
67
+ };
68
+ var LIGHT = FRAME_DEFAULT_THEMES.light.tokens;
69
+ var FRAME_KIT_CSS = `
70
+ @layer sixb-kit, sixb-theme;
71
+
72
+ @layer sixb-kit {
73
+ :root {
74
+ ${Object.entries(LIGHT).map(([name, value]) => ` ${name}: ${value};`).join(`
75
+ `)}
76
+ --sixb-scale: 1;
77
+ --sixb-overview-scale: 0.25;
78
+ --sixb-columns: 4;
79
+ --sixb-stage: ${LIGHT["--muted"]};
80
+ --sixb-stage-border: ${LIGHT["--border"]};
81
+ --sixb-stage-foreground: ${LIGHT["--foreground"]};
82
+ }
83
+
84
+ *, *::before, *::after { box-sizing: border-box; }
85
+ html, body { margin: 0; padding: 0; }
86
+ body {
87
+ background: var(--muted);
88
+ color: var(--foreground);
89
+ font-family: var(--font-sans);
90
+ -webkit-font-smoothing: antialiased;
91
+ }
92
+
93
+ /*
94
+ * The stage: a slide's size and scale, which slides show, and the stage around them, in the
95
+ * app's colors (--sixb-stage and its kin, which only the app's theme sets). A deck's own CSS, unlayered,
96
+ * wins over everything else in the kit, so these alone are important: an important declaration
97
+ * in a layer wins over every unlayered one, a deck's own important ones included. Otherwise a
98
+ * deck that sets display on its closing slide shows it under every other, and one that sets its
99
+ * body's background repaints the stage.
100
+ */
101
+ html.sixb-deck section.slide { width: 1280px !important; height: 720px !important; flex: none !important; }
102
+
103
+ /* One slide at a time, scaled to fit and centered on the stage. */
104
+ html.sixb-deck:not([data-mode="overview"]),
105
+ html.sixb-deck:not([data-mode="overview"]) body { height: 100% !important; overflow: hidden !important; }
106
+ html.sixb-deck:not([data-mode="overview"]) body {
107
+ margin: 0 !important;
108
+ padding: 0 !important;
109
+ display: grid !important;
110
+ place-items: center !important;
111
+ background: var(--sixb-stage) !important;
112
+ }
113
+ html.sixb-deck:not([data-mode="overview"]) section.slide { zoom: var(--sixb-scale) !important; }
114
+ html.sixb-deck:not([data-mode="overview"]) section.slide:not([data-current]) { display: none !important; }
115
+ html.sixb-deck[data-mode="slide"] section.slide {
116
+ border-radius: calc(10px / var(--sixb-scale)) !important;
117
+ box-shadow: 0 0 0 calc(1px / var(--sixb-scale)) var(--sixb-stage-border) !important;
118
+ }
119
+ /* Filled, the slide is the whole frame, as a thumbnail or an embed shows it; presented, it
120
+ fills the page on black. */
121
+ html.sixb-deck:is([data-mode="fill"], [data-mode="present"]) section.slide {
122
+ border-radius: 0 !important;
123
+ box-shadow: none !important;
124
+ }
125
+ html.sixb-deck[data-mode="present"] body { background: #000 !important; }
126
+
127
+ /* Every slide in a grid. */
128
+ html.sixb-deck[data-mode="overview"],
129
+ html.sixb-deck[data-mode="overview"] body { height: 100% !important; overflow: auto !important; }
130
+ html.sixb-deck[data-mode="overview"] body {
131
+ margin: 0 !important;
132
+ display: grid !important;
133
+ grid-template-columns: repeat(var(--sixb-columns), max-content) !important;
134
+ justify-content: center !important;
135
+ align-content: start !important;
136
+ gap: 16px !important;
137
+ padding: 16px !important;
138
+ background: var(--sixb-stage) !important;
139
+ }
140
+ html.sixb-deck[data-mode="overview"] section.slide {
141
+ zoom: var(--sixb-overview-scale) !important;
142
+ cursor: pointer;
143
+ border-radius: calc(6px / var(--sixb-overview-scale)) !important;
144
+ box-shadow: 0 0 0 calc(1px / var(--sixb-overview-scale)) var(--sixb-stage-border) !important;
145
+ }
146
+ html.sixb-deck[data-mode="overview"] section.slide[data-current] {
147
+ box-shadow: 0 0 0 calc(1px / var(--sixb-overview-scale)) var(--sixb-stage-foreground) !important;
148
+ outline: calc(2px / var(--sixb-overview-scale)) solid var(--sixb-stage-foreground) !important;
149
+ outline-offset: calc(2px / var(--sixb-overview-scale)) !important;
150
+ }
151
+
152
+ /*
153
+ * A slide: 1280\xD7720. Its footer, a rule with the source and the slide's number, sits in the
154
+ * bottom padding, so content never runs into it.
155
+ */
156
+ section.slide {
157
+ position: relative;
158
+ display: flex;
159
+ flex-direction: column;
160
+ gap: 28px;
161
+ width: 1280px;
162
+ height: 720px;
163
+ flex: none;
164
+ padding: 72px 96px 140px;
165
+ overflow: hidden;
166
+ background: var(--background);
167
+ color: var(--foreground);
168
+ font-size: 28px;
169
+ line-height: 1.4;
170
+ }
171
+
172
+ /* Type: nothing on a slide is smaller than 18px. */
173
+ section.slide :is(h1, h2, h3) { margin: 0; text-wrap: balance; }
174
+ section.slide h1 { font-size: 72px; line-height: 1; font-weight: 650; letter-spacing: -0.035em; }
175
+ section.slide h2 { max-width: 1000px; font-size: 46px; line-height: 1.08; font-weight: 600; letter-spacing: -0.025em; }
176
+ section.slide h3 { font-size: 30px; line-height: 1.2; font-weight: 600; letter-spacing: -0.01em; }
177
+ section.slide p { margin: 0; max-width: 34em; }
178
+ section.slide :is(ul, ol) {
179
+ margin: 0;
180
+ padding-left: 30px;
181
+ display: flex;
182
+ flex-direction: column;
183
+ gap: 22px;
184
+ font-size: 30px;
185
+ line-height: 1.35;
186
+ letter-spacing: -0.01em;
187
+ }
188
+ section.slide li { padding-left: 6px; }
189
+ section.slide li::marker { color: var(--muted-foreground); }
190
+ section.slide strong { font-weight: 600; }
191
+ section.slide a { color: inherit; text-decoration-thickness: 2px; text-underline-offset: 5px; }
192
+ section.slide small, section.slide .note { font-size: 20px; color: var(--muted-foreground); }
193
+ section.slide img, section.slide svg, section.slide video { max-width: 100%; max-height: 100%; }
194
+ /* A figure's default 40px margins would squeeze a chart and its labels below the type floor. */
195
+ section.slide figure { margin: 0; }
196
+ section.slide code { font-family: var(--font-mono); font-size: 0.85em; }
197
+
198
+ /* Chrome: a label above the heading (two spans sit at either end), and the footer. */
199
+ section.slide .eyebrow {
200
+ display: flex;
201
+ justify-content: space-between;
202
+ gap: 24px;
203
+ margin: 0;
204
+ max-width: none;
205
+ font-size: 20px;
206
+ line-height: 1.3;
207
+ letter-spacing: 0.01em;
208
+ color: var(--muted-foreground);
209
+ }
210
+ section.slide .eyebrow + :is(h1, h2) { margin-top: -12px; }
211
+ section.slide::after {
212
+ content: attr(data-number);
213
+ position: absolute;
214
+ left: 96px;
215
+ right: 96px;
216
+ bottom: 64px;
217
+ padding-top: 22px;
218
+ border-top: 1px solid var(--border);
219
+ text-align: right;
220
+ font-size: 18px;
221
+ line-height: 1.4;
222
+ font-variant-numeric: tabular-nums;
223
+ color: var(--muted-foreground);
224
+ }
225
+ section.slide.no-number::after { content: ""; }
226
+ section.slide.no-number:not(:has(.source))::after { display: none; }
227
+ section.slide .source {
228
+ position: absolute;
229
+ left: 96px;
230
+ right: calc(96px + 3em);
231
+ bottom: 64px;
232
+ z-index: 1;
233
+ max-width: none;
234
+ overflow: hidden;
235
+ white-space: nowrap;
236
+ text-overflow: ellipsis;
237
+ font-size: 18px;
238
+ line-height: 1.4;
239
+ font-variant-numeric: tabular-nums;
240
+ color: var(--muted-foreground);
241
+ }
242
+
243
+ /* Layouts. */
244
+ section.slide.title > .eyebrow { margin-bottom: auto; }
245
+ section.slide.title h1 { margin-top: 0; font-size: 132px; line-height: 0.92; letter-spacing: -0.04em; max-width: 9em; }
246
+ section.slide.title > p:not(.eyebrow, .source) { font-size: 36px; line-height: 1.25; letter-spacing: -0.01em; color: var(--muted-foreground); max-width: 24em; text-wrap: balance; }
247
+
248
+ section.slide.section { justify-content: flex-end; }
249
+ section.slide.section h2 { font-size: 72px; line-height: 1; letter-spacing: -0.035em; max-width: 13em; }
250
+
251
+ section.slide.split {
252
+ display: grid;
253
+ grid-template-columns: 5fr 6fr;
254
+ grid-template-rows: auto 1fr;
255
+ column-gap: 80px;
256
+ row-gap: 28px;
257
+ }
258
+ section.slide.split:has(> .eyebrow) { grid-template-rows: auto auto 1fr; }
259
+ section.slide.split > :is(h1, h2, .eyebrow) { grid-column: 1 / -1; }
260
+ section.slide.split > * { min-width: 0; min-height: 0; }
261
+ section.slide.split > :not(h1, h2, .eyebrow) { align-self: center; }
262
+
263
+ section.slide.stat > .value { margin-top: auto; }
264
+ section.slide.stat .value {
265
+ font-size: 144px;
266
+ line-height: 0.9;
267
+ font-weight: 600;
268
+ letter-spacing: -0.045em;
269
+ font-variant-numeric: tabular-nums;
270
+ color: var(--primary);
271
+ }
272
+ section.slide.stat .label { font-size: 26px; line-height: 1.35; color: var(--muted-foreground); }
273
+ section.slide.stat .stats {
274
+ margin-top: auto;
275
+ display: grid;
276
+ grid-auto-flow: column;
277
+ grid-auto-columns: minmax(0, 1fr);
278
+ gap: 64px;
279
+ padding-bottom: 16px;
280
+ }
281
+ section.slide.stat .stats > * {
282
+ display: flex;
283
+ flex-direction: column;
284
+ gap: 14px;
285
+ padding-top: 28px;
286
+ border-top: 2px solid var(--foreground);
287
+ }
288
+ section.slide.stat .stats:has(> :nth-child(3)) .value { font-size: 96px; }
289
+ section.slide.stat .stats:has(> :nth-child(4)) .value { font-size: 80px; }
290
+
291
+ section.slide.quote { justify-content: center; }
292
+ section.slide.quote blockquote {
293
+ margin: 0;
294
+ font-family: var(--font-serif);
295
+ font-size: 52px;
296
+ line-height: 1.2;
297
+ letter-spacing: -0.01em;
298
+ max-width: 22em;
299
+ text-wrap: balance;
300
+ }
301
+ section.slide.quote cite { font-style: normal; font-size: 24px; color: var(--muted-foreground); }
302
+
303
+ section.slide.image > :is(img, figure) { flex: 1; min-height: 0; margin: 0; object-fit: contain; }
304
+ section.slide.image.bleed { padding: 0; }
305
+ section.slide.image.bleed > img { width: 100%; height: 100%; object-fit: cover; }
306
+ section.slide.image.bleed::after, section.slide.image.bleed .source { display: none; }
307
+
308
+ section.slide.chart > :is(figure, svg, img, .chart) { flex: 1; min-height: 0; margin: 0; }
309
+ section.slide.chart figure { display: flex; flex-direction: column; gap: 20px; }
310
+ section.slide.chart figure > :is(svg, img) { flex: 1; min-height: 0; width: 100%; }
311
+ section.slide figcaption { font-size: 20px; color: var(--muted-foreground); }
312
+
313
+ section.slide.table table { width: 100%; border-collapse: collapse; font-size: 26px; font-variant-numeric: tabular-nums; }
314
+ section.slide.table :is(th, td) { padding: 14px 16px; border-bottom: 1px solid var(--border); text-align: left; }
315
+ section.slide.table :is(th, td):first-child { padding-left: 0; }
316
+ section.slide.table :is(th, td):last-child { padding-right: 0; }
317
+ section.slide.table th { font-size: 20px; font-weight: 500; color: var(--muted-foreground); }
318
+ section.slide.table :is(th, td).num, section.slide.table :is(th, td)[data-numeric] { text-align: right; }
319
+
320
+ /*
321
+ * Another artifact on the slide: the app draws it over this box, sized by the deck's CSS like
322
+ * any block. Until it does, and in a thumbnail, the box shows where it goes.
323
+ */
324
+ sixb-embed {
325
+ display: block;
326
+ position: relative;
327
+ width: 100%;
328
+ min-width: 0;
329
+ aspect-ratio: 16 / 9;
330
+ border-radius: 12px;
331
+ background: color-mix(in oklab, var(--muted) 80%, transparent);
332
+ }
333
+ sixb-embed[title]::after {
334
+ content: attr(title);
335
+ position: absolute;
336
+ inset: auto 24px 20px;
337
+ font-size: 20px;
338
+ color: var(--muted-foreground);
339
+ }
340
+ section.slide.chart > sixb-embed,
341
+ section.slide.chart figure > sixb-embed { flex: 1; min-height: 0; aspect-ratio: auto; }
342
+ /* An image from another artifact its reader cannot see. */
343
+ section.slide img[data-sixb-ref="unavailable"] {
344
+ display: block;
345
+ min-width: 160px;
346
+ min-height: 90px;
347
+ border-radius: 12px;
348
+ background: var(--muted);
349
+ }
350
+
351
+ /* Components. */
352
+ section.slide .legend {
353
+ display: flex;
354
+ flex-direction: row;
355
+ flex-wrap: wrap;
356
+ gap: 8px 24px;
357
+ margin: 0;
358
+ padding: 0;
359
+ list-style: none;
360
+ font-size: 20px;
361
+ line-height: 1.3;
362
+ letter-spacing: 0;
363
+ color: var(--muted-foreground);
364
+ }
365
+ section.slide .legend > * { display: flex; align-items: center; gap: 8px; padding: 0; }
366
+ section.slide .legend > *::before {
367
+ content: "";
368
+ width: 0.8em;
369
+ height: 0.8em;
370
+ border-radius: 2px;
371
+ background: var(--swatch, var(--chart-1));
372
+ }
373
+ section.slide .callout {
374
+ padding: 24px 28px;
375
+ border-radius: var(--radius);
376
+ background: var(--muted);
377
+ font-size: 26px;
378
+ }
379
+ section.slide .tag {
380
+ display: inline-block;
381
+ padding: 4px 12px;
382
+ border-radius: 999px;
383
+ background: var(--muted);
384
+ font-size: 18px;
385
+ font-weight: 600;
386
+ }
387
+ }
388
+ `;
389
+
390
+ // src/artifacts/frames/runtime.ts
391
+ function frameRuntime() {
392
+ const PROTOCOL = "sixb-frame/1";
393
+ const WIDTH = 1280;
394
+ const HEIGHT = 720;
395
+ const KEYS = [
396
+ "ArrowLeft",
397
+ "ArrowRight",
398
+ "ArrowUp",
399
+ "ArrowDown",
400
+ "PageUp",
401
+ "PageDown",
402
+ "Home",
403
+ "End",
404
+ " ",
405
+ "Escape"
406
+ ];
407
+ const root = document.documentElement;
408
+ const start = new URLSearchParams(window.location.hash.slice(1));
409
+ root.classList.add("sixb-deck");
410
+ root.dataset.mode = start.has("sixb-fill") ? "fill" : "slide";
411
+ let current = Number(start.get("sixb-slide")) || 1;
412
+ const slides = () => Array.from(document.querySelectorAll("section.slide"));
413
+ const post = (message) => window.parent.postMessage({ protocol: PROTOCOL, ...message }, "*");
414
+ const fit = () => {
415
+ const columns = window.innerWidth < 720 ? 2 : window.innerWidth < 1100 ? 3 : 4;
416
+ const gap = 16;
417
+ const margin = root.dataset.mode === "fill" || root.dataset.mode === "present" ? 0 : Math.min(32, window.innerWidth * 0.04);
418
+ root.style.setProperty("--sixb-scale", String(Math.min((window.innerWidth - margin * 2) / WIDTH, (window.innerHeight - margin * 2) / HEIGHT)));
419
+ root.style.setProperty("--sixb-columns", String(columns));
420
+ root.style.setProperty("--sixb-overview-scale", String((window.innerWidth - gap * (columns + 1)) / columns / WIDTH));
421
+ };
422
+ let reported = "";
423
+ let reporting = false;
424
+ const reportEmbeds = () => {
425
+ if (reporting || root.dataset.mode === "fill")
426
+ return;
427
+ reporting = true;
428
+ requestAnimationFrame(() => {
429
+ reporting = false;
430
+ const scale = Number(root.style.getPropertyValue("--sixb-scale")) || 1;
431
+ const slide = root.dataset.mode === "overview" ? undefined : slides()[current - 1];
432
+ const embeds = Array.from(slide?.querySelectorAll("sixb-embed[src]") ?? []).map((element) => {
433
+ const rect = element.getBoundingClientRect();
434
+ return {
435
+ address: (element.getAttribute("src") ?? "").trim(),
436
+ rect: { x: rect.left, y: rect.top, width: rect.width, height: rect.height },
437
+ scale
438
+ };
439
+ });
440
+ const next = JSON.stringify(embeds);
441
+ if (next === reported)
442
+ return;
443
+ reported = next;
444
+ post({ event: "embeds", params: { embeds } });
445
+ });
446
+ };
447
+ const show = (slide) => {
448
+ const all = slides();
449
+ current = Math.min(Math.max(1, Math.round(slide) || 1), Math.max(1, all.length));
450
+ all.forEach((element, index) => {
451
+ element.toggleAttribute("data-current", index + 1 === current);
452
+ });
453
+ if (root.dataset.mode === "overview") {
454
+ all[current - 1]?.scrollIntoView({ block: "nearest" });
455
+ }
456
+ reportEmbeds();
457
+ };
458
+ const handle = (method, params) => {
459
+ switch (method) {
460
+ case "theme": {
461
+ const tokens = params.tokens ?? {};
462
+ const declarations = Object.entries(tokens).filter(([name, value]) => /^--[a-z0-9-]+$/.test(name) && typeof value === "string" && !/[;{}<]/.test(value)).map(([name, value]) => `${name}: ${value};`);
463
+ for (const [stage, token] of [
464
+ ["--sixb-stage", "--muted"],
465
+ ["--sixb-stage-border", "--border"],
466
+ ["--sixb-stage-foreground", "--foreground"]
467
+ ]) {
468
+ const value = declarations.find((declaration) => declaration.startsWith(`${token}:`));
469
+ if (value)
470
+ declarations.push(`${stage}${value.slice(token.length)}`);
471
+ }
472
+ let style = document.getElementById("sixb-theme");
473
+ if (!style) {
474
+ style = document.createElement("style");
475
+ style.id = "sixb-theme";
476
+ document.head.append(style);
477
+ }
478
+ style.textContent = `@layer sixb-theme { :root { ${declarations.join(" ")} color-scheme: ${params.dark === true ? "dark" : "light"}; } }`;
479
+ root.classList.toggle("dark", params.dark === true);
480
+ return;
481
+ }
482
+ case "goto":
483
+ show(Number(params.slide));
484
+ return;
485
+ case "mode":
486
+ if (root.dataset.mode === "fill")
487
+ return;
488
+ root.dataset.mode = params.mode === "overview" || params.mode === "present" ? params.mode : "slide";
489
+ fit();
490
+ show(current);
491
+ return;
492
+ default:
493
+ throw new Error(`Unknown method '${method}'.`);
494
+ }
495
+ };
496
+ window.addEventListener("message", (event) => {
497
+ if (event.source !== window.parent)
498
+ return;
499
+ const data = event.data;
500
+ if (!data || data.protocol !== PROTOCOL || typeof data.id !== "number")
501
+ return;
502
+ if (typeof data.method !== "string")
503
+ return;
504
+ try {
505
+ handle(String(data.method), data.params ?? {});
506
+ post({ id: data.id });
507
+ } catch (error) {
508
+ post({ id: data.id, error: error instanceof Error ? error.message : String(error) });
509
+ }
510
+ });
511
+ window.addEventListener("keydown", (event) => {
512
+ if (event.metaKey || event.ctrlKey || event.altKey)
513
+ return;
514
+ const target = event.target;
515
+ if (target?.closest("input, textarea, select, [contenteditable]"))
516
+ return;
517
+ if (!KEYS.includes(event.key))
518
+ return;
519
+ event.preventDefault();
520
+ post({ event: "key", params: { key: event.key } });
521
+ });
522
+ document.addEventListener("click", (event) => {
523
+ const target = event.target;
524
+ const link = target?.closest("a[href]");
525
+ if (link) {
526
+ const href = link.getAttribute("href") ?? "";
527
+ if (/^artifact:/i.test(href.trim())) {
528
+ event.preventDefault();
529
+ post({ event: "open", params: { address: href.trim() } });
530
+ } else if (!href.startsWith("#")) {
531
+ link.target = "_blank";
532
+ link.rel = "noopener noreferrer";
533
+ }
534
+ return;
535
+ }
536
+ if (root.dataset.mode !== "overview")
537
+ return;
538
+ const slide = target?.closest("section.slide");
539
+ if (!slide)
540
+ return;
541
+ post({ event: "select", params: { slide: slides().indexOf(slide) + 1 } });
542
+ });
543
+ window.addEventListener("resize", () => {
544
+ fit();
545
+ reportEmbeds();
546
+ });
547
+ const ready = () => {
548
+ slides().forEach((element, index) => {
549
+ element.dataset.number = String(index + 1);
550
+ });
551
+ fit();
552
+ show(current);
553
+ post({ event: "ready", params: { slides: slides().length } });
554
+ const resized = new ResizeObserver(reportEmbeds);
555
+ for (const element of Array.from(document.querySelectorAll("section.slide > *, sixb-embed"))) {
556
+ resized.observe(element);
557
+ }
558
+ window.addEventListener("load", reportEmbeds);
559
+ document.fonts?.ready.then(reportEmbeds);
560
+ };
561
+ if (document.readyState === "loading")
562
+ document.addEventListener("DOMContentLoaded", ready);
563
+ else
564
+ ready();
565
+ }
566
+
567
+ // src/artifacts/frames/assets.ts
568
+ var FRAME_ASSETS = {
569
+ [`${FRAME_ASSET_PREFIX}kit.css`]: { body: FRAME_KIT_CSS, type: "text/css; charset=utf-8" },
570
+ [`${FRAME_ASSET_PREFIX}runtime.js`]: {
571
+ body: `(${frameRuntime.toString()})()
572
+ `,
573
+ type: "text/javascript; charset=utf-8"
574
+ }
575
+ };
576
+ var INJECTED = `<link rel="stylesheet" href="${FRAME_ASSET_PREFIX}kit.css"><script src="${FRAME_ASSET_PREFIX}runtime.js"></script>`;
577
+ function injectFrameAssets(html) {
578
+ for (const selector of ["head", "html"]) {
579
+ let injected = false;
580
+ const rewritten = new HTMLRewriter().on(selector, {
581
+ element(element) {
582
+ if (injected)
583
+ return;
584
+ injected = true;
585
+ element.prepend(INJECTED, { html: true });
586
+ }
587
+ }).transform(html);
588
+ if (injected)
589
+ return rewritten;
590
+ }
591
+ const doctype = /^\s*<!doctype[^>]*>/i.exec(html)?.[0] ?? "";
592
+ return `${doctype}${INJECTED}${html.slice(doctype.length)}`;
593
+ }
594
+ var FRAME_REFERENCE_PREFIX = `${FRAME_ASSET_PREFIX}ref/`;
595
+ function frameReferencePath(target) {
596
+ const file = parseArtifactAddress2(target.address)?.path;
597
+ if (!file)
598
+ return null;
599
+ const path = file.split("/").map(encodeURIComponent).join("/");
600
+ return `${FRAME_REFERENCE_PREFIX}${target.artifactId}@${target.version}/${path}`;
601
+ }
602
+ function rewriteFrameReferences(html, targets) {
603
+ return new HTMLRewriter().on("img[src]", {
604
+ element(element) {
605
+ const source = decodeHtmlEntities(element.getAttribute("src") ?? "").trim();
606
+ if (!isArtifactAddress2(source))
607
+ return;
608
+ const target = targets.find((candidate) => candidate.address === source);
609
+ const path = target ? frameReferencePath(target) : null;
610
+ if (path) {
611
+ element.setAttribute("src", path);
612
+ element.setAttribute("data-sixb-ref", "");
613
+ } else {
614
+ element.removeAttribute("src");
615
+ element.setAttribute("data-sixb-ref", "unavailable");
616
+ }
617
+ }
618
+ }).transform(html);
619
+ }
620
+ // src/artifacts/frames/grants.ts
621
+ import { createHash, randomBytes } from "crypto";
622
+ var ARTIFACT_FRAME_ROUTE_PREFIX = "/api/artifact-frames/";
623
+ var FRAME_LIFETIME_MS = 60 * 60 * 1000;
624
+ var TOKEN_PATTERN = /^[A-Za-z0-9_-]{43}$/;
625
+ async function createArtifactFrame(input) {
626
+ const { version } = input;
627
+ if (version.outline.kind !== "slides") {
628
+ throw new ArtifactRequestError2("artifact_kind_mismatch", `[Sixb] Only a deck opens in a frame; '${version.artifactId}' is a ${version.outline.kind}. Read its files instead.`);
629
+ }
630
+ const createdAt = input.now ?? new Date;
631
+ const expiresAt = new Date(createdAt.getTime() + FRAME_LIFETIME_MS);
632
+ const token = randomBytes(32).toString("base64url");
633
+ await input.storage.createFrameGrant({
634
+ projectId: input.projectId,
635
+ tokenHash: hashToken(token),
636
+ artifactId: version.artifactId,
637
+ version: version.version,
638
+ targets: input.read ? await frameTargets(version, input.read) : [],
639
+ createdAt,
640
+ expiresAt
641
+ });
642
+ return { path: `${ARTIFACT_FRAME_ROUTE_PREFIX}${token}/`, expiresAt };
643
+ }
644
+ async function frameTargets(version, read) {
645
+ const targets = [];
646
+ for (const reference of version.references) {
647
+ if (reference.as !== "embed" || targets.some((target) => target.address === reference.address)) {
648
+ continue;
649
+ }
650
+ const address = parseArtifactAddress2(reference.address);
651
+ if (!address?.path)
652
+ continue;
653
+ const target = await read(address.artifactId, address.version ?? "latest").catch(() => null);
654
+ if (!target?.files.some((file) => file.path === address.path))
655
+ continue;
656
+ targets.push({
657
+ address: reference.address,
658
+ artifactId: target.artifactId,
659
+ version: target.version
660
+ });
661
+ }
662
+ return targets;
663
+ }
664
+ async function resolveArtifactFrame(input) {
665
+ if (!TOKEN_PATTERN.test(input.token))
666
+ return null;
667
+ const grant = await input.storage.findFrameGrant({
668
+ projectId: input.projectId,
669
+ tokenHash: hashToken(input.token)
670
+ });
671
+ if (!grant || grant.expiresAt <= (input.now ?? new Date))
672
+ return null;
673
+ const version = await input.storage.getVersion({
674
+ projectId: input.projectId,
675
+ artifactId: grant.artifactId,
676
+ version: grant.version
677
+ });
678
+ return version?.outline.kind === "slides" ? { version, targets: grant.targets } : null;
679
+ }
680
+ function hashToken(token) {
681
+ return createHash("sha256").update(token).digest("hex");
682
+ }
683
+ // src/artifacts/frames/probe.ts
684
+ function layoutProbe(slideNumber) {
685
+ const MAX_PER_CODE = 8;
686
+ const slide = document.querySelectorAll("section.slide")[slideNumber - 1];
687
+ if (!slide)
688
+ return [];
689
+ const box = slide.getBoundingClientRect();
690
+ const problems = [];
691
+ const counts = new Map;
692
+ const selector = (element) => element instanceof SVGElement && element.tagName.toLowerCase() !== "svg" ? `svg ${element.tagName.toLowerCase()}` : [element.tagName.toLowerCase(), ...Array.from(element.classList).slice(0, 2)].join(".");
693
+ const report = (code, element, details = {}) => {
694
+ const count = counts.get(code) ?? 0;
695
+ if (count >= MAX_PER_CODE)
696
+ return;
697
+ counts.set(code, count + 1);
698
+ problems.push({
699
+ code,
700
+ rect: at(element.getBoundingClientRect()),
701
+ selector: selector(element),
702
+ ...details,
703
+ text: details.text ?? describe(element)
704
+ });
705
+ };
706
+ const at = (rect) => ({
707
+ x: Math.round(rect.left - box.left),
708
+ y: Math.round(rect.top - box.top),
709
+ width: Math.round(rect.width),
710
+ height: Math.round(rect.height)
711
+ });
712
+ const describe = (element) => (element instanceof HTMLElement ? element.innerText : element.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, 60) || element.tagName.toLowerCase();
713
+ const shown = (element) => {
714
+ const style = getComputedStyle(element);
715
+ if (style.display === "none" || style.visibility === "hidden" || style.opacity === "0") {
716
+ return false;
717
+ }
718
+ const rect = element.getBoundingClientRect();
719
+ return rect.width > 0 && rect.height > 0;
720
+ };
721
+ const ownText = (element) => Array.from(element.childNodes).some((node) => node.nodeType === Node.TEXT_NODE && (node.textContent ?? "").trim() !== "");
722
+ const media = (element) => /^(img|svg|canvas|video|picture|table|sixb-embed)$/i.test(element.tagName);
723
+ const elements = Array.from(slide.querySelectorAll("*")).filter((element) => !element.closest("svg *, .source") && shown(element));
724
+ const content = elements.filter((element) => ownText(element) || media(element));
725
+ const svgText = Array.from(slide.querySelectorAll("svg text")).filter((element) => (element.textContent ?? "").trim() !== "" && shown(element));
726
+ const footer = getComputedStyle(slide, "::after");
727
+ const footerTop = footer.content === "none" || footer.display === "none" ? Number.POSITIVE_INFINITY : box.bottom - Number.parseFloat(footer.bottom) - Number.parseFloat(footer.paddingTop) - Number.parseFloat(footer.lineHeight) - Number.parseFloat(footer.borderTopWidth);
728
+ const outside = [];
729
+ for (const element of content) {
730
+ if (outside.some((parent) => parent.contains(element)))
731
+ continue;
732
+ const rect = element.getBoundingClientRect();
733
+ if (rect.left < box.left - 1 || rect.top < box.top - 1 || rect.right > box.right + 1 || rect.bottom > box.bottom + 1) {
734
+ outside.push(element);
735
+ report("outside", element);
736
+ } else if (rect.bottom > footerTop + 1 && rect.top < box.bottom) {
737
+ outside.push(element);
738
+ report("footer", element);
739
+ }
740
+ }
741
+ const lines = content.filter((element) => ownText(element) && !outside.some((parent) => parent.contains(element))).map((element) => {
742
+ const lineHeight = Number.parseFloat(getComputedStyle(element).lineHeight);
743
+ const rects = [];
744
+ for (const node of Array.from(element.childNodes)) {
745
+ if (node.nodeType !== Node.TEXT_NODE || (node.textContent ?? "").trim() === "")
746
+ continue;
747
+ const range = document.createRange();
748
+ range.selectNodeContents(node);
749
+ for (const rect of Array.from(range.getClientRects())) {
750
+ if (rect.width === 0)
751
+ continue;
752
+ const inset = Number.isFinite(lineHeight) && rect.height > lineHeight ? (rect.height - lineHeight) / 2 : 0;
753
+ rects.push(new DOMRect(rect.x, rect.y + inset, rect.width, rect.height - inset * 2));
754
+ }
755
+ }
756
+ return { element, rects };
757
+ });
758
+ const crosses = (a, b) => Math.min(a.right, b.right) - Math.max(a.left, b.left) > 3 && Math.min(a.bottom, b.bottom) - Math.max(a.top, b.top) > 3;
759
+ const overlapping = new Set;
760
+ for (const [index, a] of lines.entries()) {
761
+ for (const b of lines.slice(index + 1)) {
762
+ if (overlapping.has(a.element) || overlapping.has(b.element))
763
+ continue;
764
+ if (a.rects.some((rectA) => b.rects.some((rectB) => crosses(rectA, rectB)))) {
765
+ overlapping.add(a.element);
766
+ overlapping.add(b.element);
767
+ report("overlap", b.element, { other: describe(a.element) });
768
+ }
769
+ }
770
+ }
771
+ for (const element of elements) {
772
+ if (outside.some((parent) => parent.contains(element) || element.contains(parent)))
773
+ continue;
774
+ const style = getComputedStyle(element);
775
+ const clips = /hidden|clip/.test(`${style.overflowX} ${style.overflowY}`);
776
+ if (!clips || (element.textContent ?? "").trim() === "")
777
+ continue;
778
+ const wraps = style.textOverflow === "ellipsis" && style.whiteSpace === "nowrap";
779
+ if (!wraps && (element.scrollHeight > element.clientHeight + 2 || element.scrollWidth > element.clientWidth + 2)) {
780
+ report("clipped", element);
781
+ }
782
+ }
783
+ const canvas = document.createElement("canvas");
784
+ canvas.width = 1;
785
+ canvas.height = 1;
786
+ const context = canvas.getContext("2d", { willReadFrequently: true });
787
+ const rgba = (color) => {
788
+ if (!context)
789
+ return null;
790
+ context.clearRect(0, 0, 1, 1);
791
+ context.fillStyle = "rgba(0, 0, 0, 0)";
792
+ context.fillStyle = color;
793
+ context.fillRect(0, 0, 1, 1);
794
+ const [r = 0, g = 0, b = 0, a = 0] = context.getImageData(0, 0, 1, 1).data;
795
+ return [r, g, b, a / 255];
796
+ };
797
+ const over = (top, under) => [
798
+ top[0] * top[3] + under[0] * (1 - top[3]),
799
+ top[1] * top[3] + under[1] * (1 - top[3]),
800
+ top[2] * top[3] + under[2] * (1 - top[3]),
801
+ 1
802
+ ];
803
+ const background = (element) => {
804
+ const layers = [];
805
+ const rect = element.getBoundingClientRect();
806
+ const stack = document.elementsFromPoint(rect.left + rect.width / 2, rect.top + rect.height / 2);
807
+ const start = Math.max(0, stack.indexOf(element));
808
+ const under = stack.slice(start);
809
+ const pictures = under.filter((node) => /^(img|picture|video|canvas)$/i.test(node.tagName));
810
+ for (const node of under) {
811
+ if (pictures.includes(node))
812
+ return null;
813
+ if (pictures.some((picture) => node.contains(picture)))
814
+ continue;
815
+ const style = getComputedStyle(node);
816
+ const shape = node instanceof SVGGeometryElement;
817
+ const paint = shape ? style.fill : style.backgroundColor;
818
+ if (!shape && style.backgroundImage !== "none" || paint.startsWith("url("))
819
+ return null;
820
+ const color = rgba(paint);
821
+ if (color && shape)
822
+ color[3] *= Number.parseFloat(style.fillOpacity) || 0;
823
+ if (color && color[3] > 0) {
824
+ layers.push(color);
825
+ if (color[3] >= 0.99)
826
+ break;
827
+ }
828
+ }
829
+ return layers.reduceRight((under, top) => over(top, under), [255, 255, 255, 1]);
830
+ };
831
+ const luminance = ([r, g, b]) => {
832
+ const channel = (value = 0) => {
833
+ const c = value / 255;
834
+ return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
835
+ };
836
+ return 0.2126 * channel(r) + 0.7152 * channel(g) + 0.0722 * channel(b);
837
+ };
838
+ const hex = (color) => `#${color.slice(0, 3).map((value) => Math.round(value).toString(16).padStart(2, "0")).join("")}`;
839
+ const texts = [
840
+ ...content.filter((element) => ownText(element)).map((element) => {
841
+ const style = getComputedStyle(element);
842
+ return { element, size: Number.parseFloat(style.fontSize), ink: style.color };
843
+ }),
844
+ ...svgText.map((element) => {
845
+ const style = getComputedStyle(element);
846
+ const scale = element.getScreenCTM()?.a ?? 1;
847
+ return { element, size: Number.parseFloat(style.fontSize) * scale, ink: style.fill };
848
+ })
849
+ ];
850
+ for (const { element, size, ink } of texts) {
851
+ if (outside.some((parent) => parent.contains(element)))
852
+ continue;
853
+ if (size < 17.5) {
854
+ report("small_text", element, { size: Math.round(size * 10) / 10 });
855
+ }
856
+ const color = rgba(ink);
857
+ const behind = background(element);
858
+ if (!color || color[3] === 0 || !behind)
859
+ continue;
860
+ const solid = over(color, behind);
861
+ const [light, dark] = [luminance(solid), luminance(behind)].sort((a, b) => b - a);
862
+ const ratio = ((light ?? 0) + 0.05) / ((dark ?? 0) + 0.05);
863
+ const bold = Number.parseInt(getComputedStyle(element).fontWeight, 10) >= 700;
864
+ const needed = size >= 24 || bold && size >= 18.66 ? 3 : 4.5;
865
+ if (ratio < needed) {
866
+ report("contrast", element, {
867
+ ratio: Math.round(ratio * 100) / 100,
868
+ colors: [hex(solid), hex(behind)]
869
+ });
870
+ }
871
+ }
872
+ for (const image of Array.from(slide.querySelectorAll("img:not([data-sixb-ref])"))) {
873
+ if (image.getAttribute("src") && image.complete && image.naturalWidth === 0) {
874
+ report("broken_image", image, { text: image.getAttribute("src") ?? "img" });
875
+ }
876
+ }
877
+ return problems;
878
+ }
879
+ export {
880
+ ARTIFACT_FRAME_ROUTE_PREFIX,
881
+ FRAME_ASSETS,
882
+ FRAME_DEFAULT_THEMES,
883
+ FRAME_REFERENCE_PREFIX,
884
+ SLIDES_ENTRY2 as SLIDES_ENTRY,
885
+ createArtifactFrame,
886
+ injectFrameAssets,
887
+ layoutProbe,
888
+ resolveArtifactFrame,
889
+ rewriteFrameReferences
890
+ };
891
+
892
+ //# debugId=87504D80B2F871CF64756E2164756E21