@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
@@ -78,13 +78,33 @@ export interface SandboxNetworkTarget {
78
78
  readonly origin: string
79
79
  }
80
80
 
81
- /** Host-only credentials injected outside the guest into one exact HTTPS request target.
82
- * This selects authenticated requests, not the sandbox's general egress allowlist.
81
+ /** HTTP methods a request credential can be injected into. HEAD and OPTIONS never are. */
82
+ export type SandboxRequestMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE"
83
+
84
+ /**
85
+ * Host-only credentials injected outside the guest into matching HTTPS requests.
86
+ *
87
+ * A credential selects which requests receive its Authorization header. It does not decide what
88
+ * the guest can reach, which is the network policy, nor which resources the token can act on:
89
+ * the token's own permissions are the boundary, so issue it with the narrowest scope that works.
90
+ *
91
+ * Providers apply the same rules so that a credential means the same thing everywhere:
92
+ * - `origin` is one `https://` domain: no port, path, user info, IP address, loopback host or
93
+ * `*` wildcard.
94
+ * - A path is matched case-sensitively against the raw request path. It starts with a single
95
+ * "/" and is printable ASCII without spaces, control characters, "?", "#", "%", "\\", or "."
96
+ * and ".." segments. A prefix also ends with "/", so it stops at a segment boundary.
97
+ * - Two credentials must not match the same request: one credential per request, so providers
98
+ * reject the overlap instead of picking one.
99
+ * - Only Authorization can be set, and the provider forces the request's Host header to
100
+ * `origin`'s domain.
83
101
  */
84
102
  export interface SandboxRequestCredential {
85
103
  readonly origin: string
86
- readonly path: string
87
- readonly method: "GET" | "POST"
104
+ /** One exact path, or every path under `prefix`. */
105
+ readonly path: string | { readonly prefix: string }
106
+ /** One method, or a non-empty list of distinct methods. */
107
+ readonly method: SandboxRequestMethod | readonly SandboxRequestMethod[]
88
108
  readonly headers: { readonly Authorization: string }
89
109
  }
90
110
 
@@ -123,6 +143,8 @@ export interface Sandbox {
123
143
  /** Optional secure injection capability. Replaces all credentials on this session only.
124
144
  * An empty list removes injection. Secrets must never enter guest files, env or snapshots.
125
145
  * Must not resume a stopped session or change defaults inherited by future sessions.
146
+ * Renewal, ephemeral or persistent, targets the handle's session; after stop() it rejects.
147
+ * A thrown error is reported to onError: it and its causes must never contain a credential.
126
148
  */
127
149
  readonly setRequestCredentials?: (
128
150
  credentials: readonly SandboxRequestCredential[]
@@ -166,7 +188,7 @@ export interface Sandbox {
166
188
  * Credentials and current authority must be supplied again, never inferred from saved files.
167
189
  */
168
190
  export interface SandboxFactory<in out TParams extends ParamsConfig = ParamsConfig> {
169
- /** Supports initial and renewable host-only credentials on named persistent sessions. */
191
+ /** Supports initial and renewable host-only credentials on ephemeral and named sessions. */
170
192
  readonly supportsRequestCredentials?: boolean
171
193
  /** Common host-side environment recipe. Never a discovered Agent definition. */
172
194
  readonly configuration?: SandboxConfig<TParams>
@@ -0,0 +1,277 @@
1
+ import type { ProjectionEventOrigin } from "../events/envelope"
2
+ import type { DatasetVersion } from "../lake-storage/types"
3
+ import type { OntologyDefinitionCatalog } from "../ontology/registry"
4
+ import type { PipelineDefinition } from "../pipelines/types"
5
+ import type { LinkProjectionDefinition, ObjectProjectionDefinition } from "../projections/types"
6
+ import type { ActiveOntologySource } from "../storage/ontology"
7
+ import { type AppliedContribution, NO_CONTRIBUTION } from "./applied-markings-snapshot"
8
+ import type { VersionClassification } from "./dataset-version-markings"
9
+ import { registeredSteps } from "./marking-propagation"
10
+ import { type ProjectionKeyTarget, projectionSurplus } from "./projection-markings"
11
+
12
+ export type SourceProjection = ObjectProjectionDefinition | LinkProjectionDefinition
13
+
14
+ /** What reading a projection's applied version from the lake gave. */
15
+ export type AppliedVersionRead =
16
+ | {
17
+ readonly kind: "read"
18
+ readonly version: DatasetVersion
19
+ readonly classification: VersionClassification
20
+ }
21
+ | { readonly kind: "missing" }
22
+ | { readonly kind: "failed"; readonly error: unknown }
23
+
24
+ export interface AppliedContributionContext {
25
+ readonly ontology: Pick<OntologyDefinitionCatalog, "getObjectTypeById">
26
+ /** The revision of a projection's current definition. */
27
+ readonly revisionOf: (projectionId: string) => string
28
+ /** What a version that cannot be read may carry. */
29
+ readonly everyMarking: ReadonlySet<string>
30
+ /** The pipeline that writes a dataset in the current code, for messages. */
31
+ readonly pipelineOf: (datasetId: string) => string | undefined
32
+ }
33
+
34
+ /**
35
+ * What one projection's applied version adds to the code's markings, with the notice that explains
36
+ * it. It reads nothing: the caller reads and classifies the version.
37
+ *
38
+ * - A version that could not be read seals the projection's target with every marking.
39
+ * - Objects written by an earlier definition, which may have mapped any column, seal it with every
40
+ * marking of the version.
41
+ * - Otherwise a property keeps the markings its column carries beyond its declaration, and a key
42
+ * column that carries markings seals what it keys.
43
+ */
44
+ export function appliedContribution(
45
+ projection: SourceProjection,
46
+ source: ActiveOntologySource,
47
+ read: AppliedVersionRead,
48
+ context: AppliedContributionContext
49
+ ): AppliedContribution {
50
+ const { datasetId, versionId } = source.datasetVersion
51
+ const subject = `version '${versionId}' of '${datasetId}'`
52
+ const target = projectionTarget(projection)
53
+ const hint = rerunHint(datasetId, read.kind === "read" ? read.version : undefined, context)
54
+ const every = [...context.everyMarking].sort()
55
+
56
+ if (read.kind === "failed") {
57
+ return sealed(projection.id, target, every, hint, {
58
+ reason: `the ${subject} it applied, which could not be read from the lake,`,
59
+ detail: `applied ${subject}, which could not be read from the lake: ${sentence(errorMessage(read.error))}`,
60
+ })
61
+ }
62
+
63
+ if (read.kind === "missing") {
64
+ return sealed(projection.id, target, every, hint, {
65
+ reason: `the ${subject} it applied, which the lake no longer has,`,
66
+ detail: `applied ${subject}, which the lake no longer has.`,
67
+ })
68
+ }
69
+
70
+ const { columns, conservative } = read.classification
71
+ const because =
72
+ conservative === undefined
73
+ ? ""
74
+ : ` The version was classified with every marking its sources could hold, because ${conservative}.`
75
+
76
+ if (
77
+ datasetId !== projection.datasetId ||
78
+ source.projectionRevision !== context.revisionOf(projection.id)
79
+ ) {
80
+ const markings = appliedVersionMarkings(read, context.everyMarking)
81
+ return sealed(projection.id, target, markings, hint, {
82
+ reason: `the ${subject} it applied under an earlier definition of the projection`,
83
+ detail: `applied ${subject} under an earlier definition of the projection, and that version carries ${markingList(markings)}.${because}`,
84
+ })
85
+ }
86
+
87
+ const markingsOf = (column: string) => [...(columns.get(column) ?? [])].sort()
88
+ const surplus = projectionSurplus(projection, context.ontology, markingsOf)
89
+ if (surplus.properties.length === 0 && surplus.keys.length === 0) return NO_CONTRIBUTION
90
+
91
+ const column = (name: string) => `'${datasetId}.${name}'`
92
+ const seals = surplus.keys.map((key) => ({
93
+ target: key.target,
94
+ seal: {
95
+ projectionId: projection.id,
96
+ markings: key.markings,
97
+ reason: `in the version '${versionId}' it applied, column ${column(key.column)}, which ${key.role},`,
98
+ },
99
+ }))
100
+
101
+ const details = [
102
+ ...surplus.keys.map(
103
+ (key) => `column ${column(key.column)} ${key.role} and carries ${markingList(key.markings)}`
104
+ ),
105
+ ...surplus.properties.map(
106
+ (property) =>
107
+ `property '${property.objectTypeId}.${property.propertyId}' is projected from column ${column(property.column)}, which carries ${markingList(property.markings)}`
108
+ ),
109
+ ]
110
+
111
+ const consequences: string[] = []
112
+ if (seals.length > 0) {
113
+ const markings = [...new Set(seals.flatMap(({ seal }) => seal.markings))].sort()
114
+ consequences.push(
115
+ `${describeTargets(seals.map(({ target }) => target))} cannot be read without clearance for ${markingList(markings)}`
116
+ )
117
+ }
118
+
119
+ if (surplus.properties.length > 0) {
120
+ const names = surplus.properties.map((p) => `'${p.objectTypeId}.${p.propertyId}'`)
121
+ const verb = surplus.properties.length === 1 ? "keeps" : "keep"
122
+ consequences.push(`${describeNames(names)} ${verb} these markings`)
123
+ }
124
+
125
+ return {
126
+ properties: surplus.properties.map(({ objectTypeId, propertyId, markings }) => ({
127
+ objectTypeId,
128
+ propertyId,
129
+ markings,
130
+ })),
131
+ seals,
132
+ notice: {
133
+ projectionId: projection.id,
134
+ sealed: seals.length > 0,
135
+ message: `[Sixb] Projection '${projection.id}' applied ${subject}, in which ${details.join("; ")}.${because} ${capitalize(consequences.join(", and "))} until the projection applies a version the code allows. ${hint}`,
136
+ },
137
+ }
138
+ }
139
+
140
+ /** Every marking the version carries in any column; every marking when it could not be read. */
141
+ export function appliedVersionMarkings(
142
+ read: AppliedVersionRead,
143
+ everyMarking: ReadonlySet<string>
144
+ ): readonly string[] {
145
+ if (read.kind !== "read") return [...everyMarking].sort()
146
+
147
+ const { columns } = read.classification
148
+ return [...new Set([...columns.values()].flatMap((set) => [...set]))].sort()
149
+ }
150
+
151
+ /** An object event a projection emitted: the version its values came from, and its type. */
152
+ export type EventOriginRef = Pick<
153
+ ProjectionEventOrigin,
154
+ "projectionId" | "datasetId" | "datasetVersionId"
155
+ > & { readonly objectTypeId: string }
156
+
157
+ /**
158
+ * The markings an object event's origin version carries on each property its projection maps.
159
+ * When the projection now maps another dataset or type, or the version cannot be read, every
160
+ * property but the primary one carries every marking it could, as objects written under an
161
+ * earlier definition do.
162
+ */
163
+ export function eventOriginMarkings(
164
+ projection: ObjectProjectionDefinition,
165
+ origin: EventOriginRef,
166
+ read: AppliedVersionRead,
167
+ context: Pick<AppliedContributionContext, "ontology" | "everyMarking">
168
+ ): AppliedContribution["properties"] {
169
+ const { objectTypeId } = origin
170
+
171
+ if (
172
+ read.kind === "read" &&
173
+ projection.datasetId === origin.datasetId &&
174
+ projection.objectTypeId === objectTypeId
175
+ ) {
176
+ const { columns } = read.classification
177
+ return Object.entries(projection.properties).flatMap(([propertyId, column]) => {
178
+ const markings = [...(columns.get(column) ?? [])].sort()
179
+ return markings.length === 0 ? [] : [{ objectTypeId, propertyId, markings }]
180
+ })
181
+ }
182
+
183
+ const markings = appliedVersionMarkings(read, context.everyMarking)
184
+ if (markings.length === 0) return []
185
+
186
+ return (context.ontology.getObjectTypeById(objectTypeId)?.properties ?? [])
187
+ .filter((property) => !property.primary)
188
+ .map((property) => ({ objectTypeId, propertyId: property.id, markings }))
189
+ }
190
+
191
+ /** The pipeline that writes each dataset in the current code. */
192
+ export function producingPipelines(
193
+ pipelines: readonly PipelineDefinition[]
194
+ ): (datasetId: string) => string | undefined {
195
+ const byDataset = new Map<string, string>()
196
+ for (const { pipelineId, step } of registeredSteps(pipelines)) {
197
+ if (!byDataset.has(step.output.id)) byDataset.set(step.output.id, pipelineId)
198
+ }
199
+
200
+ return (datasetId) => byDataset.get(datasetId)
201
+ }
202
+
203
+ /** Seal the projection's whole target: its object type, or its link. */
204
+ function sealed(
205
+ projectionId: string,
206
+ target: ProjectionKeyTarget,
207
+ markings: readonly string[],
208
+ hint: string,
209
+ text: { readonly reason: string; readonly detail: string }
210
+ ): AppliedContribution {
211
+ if (markings.length === 0) return NO_CONTRIBUTION
212
+ return {
213
+ properties: [],
214
+ seals: [{ target, seal: { projectionId, markings, reason: text.reason } }],
215
+ notice: {
216
+ projectionId,
217
+ sealed: true,
218
+ message: `[Sixb] Projection '${projectionId}' ${text.detail} ${describeTargets([target])} cannot be read without clearance for ${markingList(markings)} until the projection applies a version the code allows. ${hint}`,
219
+ },
220
+ }
221
+ }
222
+
223
+ function projectionTarget(projection: SourceProjection): ProjectionKeyTarget {
224
+ return projection._tag === "ObjectProjectionDefinition"
225
+ ? { kind: "type", objectTypeId: projection.objectTypeId }
226
+ : {
227
+ kind: "link",
228
+ objectTypeId: projection.sourceObjectTypeId,
229
+ linkId: projection.linkId,
230
+ targetObjectTypeId: projection.targetObjectTypeId,
231
+ }
232
+ }
233
+
234
+ function rerunHint(
235
+ datasetId: string,
236
+ version: DatasetVersion | undefined,
237
+ context: AppliedContributionContext
238
+ ): string {
239
+ const pipelineId =
240
+ context.pipelineOf(datasetId) ??
241
+ (version?.producer?.kind === "pipeline" ? version.producer.id : undefined)
242
+ return pipelineId === undefined
243
+ ? `Write a new version of '${datasetId}' to replace it.`
244
+ : `Rerun pipeline '${pipelineId}' to replace it.`
245
+ }
246
+
247
+ function describeTargets(targets: readonly ProjectionKeyTarget[]): string {
248
+ return describeNames(
249
+ targets.map((target) =>
250
+ target.kind === "type"
251
+ ? `'${target.objectTypeId}'`
252
+ : `link '${target.objectTypeId}.${target.linkId}'`
253
+ )
254
+ )
255
+ }
256
+
257
+ function describeNames(names: readonly string[]): string {
258
+ const unique = [...new Set(names)]
259
+ const last = unique.pop() ?? ""
260
+ return unique.length === 0 ? last : `${unique.join(", ")} and ${last}`
261
+ }
262
+
263
+ function capitalize(text: string): string {
264
+ return text.charAt(0).toUpperCase() + text.slice(1)
265
+ }
266
+
267
+ export function sentence(text: string): string {
268
+ return text.endsWith(".") ? text : `${text}.`
269
+ }
270
+
271
+ function markingList(markings: readonly string[]): string {
272
+ return `[${markings.join(", ")}]`
273
+ }
274
+
275
+ export function errorMessage(error: unknown): string {
276
+ return error instanceof Error ? error.message : String(error)
277
+ }
@@ -0,0 +1,41 @@
1
+ import type { AppliedMarkings } from "./applied-markings"
2
+ import { errorMessage } from "./applied-markings-contribution"
3
+
4
+ const appliedMarkingsKey: unique symbol = Symbol("sixb.appliedMarkings")
5
+
6
+ interface AppliedMarkingsOwner {
7
+ readonly [appliedMarkingsKey]?: AppliedMarkings
8
+ }
9
+
10
+ /** One snapshot per host, so every reader shares it and its resolved clearances. */
11
+ export function registerAppliedMarkings(owner: object, markings: AppliedMarkings): void {
12
+ const registered = (owner as AppliedMarkingsOwner)[appliedMarkingsKey]
13
+ if (registered && registered !== markings) {
14
+ throw new Error("[Sixb] Applied markings are already registered for this owner.")
15
+ }
16
+
17
+ Object.defineProperty(owner, appliedMarkingsKey, {
18
+ configurable: false,
19
+ enumerable: false,
20
+ value: markings,
21
+ writable: false,
22
+ })
23
+ }
24
+
25
+ export function getAppliedMarkings(owner: object): AppliedMarkings {
26
+ const markings = (owner as AppliedMarkingsOwner)[appliedMarkingsKey]
27
+ if (markings) return markings
28
+ throw new Error("[Sixb] Applied markings are not registered for this runtime.")
29
+ }
30
+
31
+ /**
32
+ * Read the applied versions ahead of the first request that needs them. A failure is only
33
+ * reported here: that request reads them again, and fails closed if it cannot.
34
+ */
35
+ export function warmAppliedMarkings(owner: object): void {
36
+ getAppliedMarkings(owner)
37
+ .current()
38
+ .catch((error: unknown) => {
39
+ console.warn(errorMessage(error))
40
+ })
41
+ }
@@ -0,0 +1,235 @@
1
+ import type { ProjectionKeyTarget } from "./projection-markings"
2
+
3
+ /** Why readers lacking some markings cannot read an object type or a link. */
4
+ export interface AppliedSeal {
5
+ readonly projectionId: string
6
+ readonly markings: ReadonlySet<string>
7
+ /** What carries the marking, completed by "carries marking 'm'" in messages. */
8
+ readonly reason: string
9
+ }
10
+
11
+ export interface AppliedLinkSeals {
12
+ readonly objectTypeId: string
13
+ readonly linkId: string
14
+ readonly targetObjectTypeId: string
15
+ readonly seals: readonly AppliedSeal[]
16
+ }
17
+
18
+ export interface AppliedMarkingsNotice {
19
+ readonly projectionId: string
20
+ /** Whether the projection makes an object type or a link unreadable, not only properties. */
21
+ readonly sealed: boolean
22
+ readonly message: string
23
+ }
24
+
25
+ /**
26
+ * What the applied versions add to the ontology's markings.
27
+ *
28
+ * Every reader of a host shares one snapshot and the clearances resolved for it, so a snapshot is
29
+ * immutable all the way down: its maps and sets refuse writes.
30
+ */
31
+ export interface AppliedMarkingsSnapshot {
32
+ /** Surplus markings by object type, then property. */
33
+ readonly properties: ReadonlyMap<string, ReadonlyMap<string, ReadonlySet<string>>>
34
+ /** Object types readers lacking a seal's markings cannot read. */
35
+ readonly types: ReadonlyMap<string, readonly AppliedSeal[]>
36
+ /** Links, by {@link appliedLinkKey}, readers lacking a seal's markings cannot read. */
37
+ readonly links: ReadonlyMap<string, AppliedLinkSeals>
38
+ /** Every marking above: a reader cleared for all of them reads what the code allows. */
39
+ readonly markings: ReadonlySet<string>
40
+ /** One per projection whose applied version adds markings, for diagnostics. */
41
+ readonly notices: readonly AppliedMarkingsNotice[]
42
+ }
43
+
44
+ export function appliedLinkKey(objectTypeId: string, linkId: string): string {
45
+ return `${objectTypeId}\0${linkId}`
46
+ }
47
+
48
+ /** What one applied version adds, as plain data so that equal results serialize equally. */
49
+ export interface AppliedContribution {
50
+ readonly properties: readonly {
51
+ readonly objectTypeId: string
52
+ readonly propertyId: string
53
+ readonly markings: readonly string[]
54
+ }[]
55
+ readonly seals: readonly {
56
+ readonly target: ProjectionKeyTarget
57
+ readonly seal: {
58
+ readonly projectionId: string
59
+ readonly markings: readonly string[]
60
+ readonly reason: string
61
+ }
62
+ }[]
63
+ readonly notice?: AppliedMarkingsNotice
64
+ }
65
+
66
+ /** An applied version that adds nothing. */
67
+ export const NO_CONTRIBUTION: AppliedContribution = Object.freeze({
68
+ properties: Object.freeze([]),
69
+ seals: Object.freeze([]),
70
+ })
71
+
72
+ export const NO_APPLIED_MARKINGS: AppliedMarkingsSnapshot = Object.freeze({
73
+ properties: readonlyMap(new Map()),
74
+ types: readonlyMap(new Map()),
75
+ links: readonlyMap(new Map()),
76
+ markings: readonlySet(new Set<string>()),
77
+ notices: Object.freeze([]),
78
+ })
79
+
80
+ /** One snapshot from the contributions of every applied version, in projection order. */
81
+ export function assembleAppliedMarkings(
82
+ contributions: readonly AppliedContribution[]
83
+ ): AppliedMarkingsSnapshot {
84
+ if (contributions.length === 0) return NO_APPLIED_MARKINGS
85
+
86
+ const properties = new Map<string, Map<string, Set<string>>>()
87
+ const types = new Map<string, AppliedSeal[]>()
88
+ const links = new Map<string, AppliedLinkSeals & { seals: AppliedSeal[] }>()
89
+ const markings = new Set<string>()
90
+ const notices: AppliedMarkingsNotice[] = []
91
+
92
+ for (const contribution of contributions) {
93
+ for (const { objectTypeId, propertyId, markings: added } of contribution.properties) {
94
+ const byProperty = properties.get(objectTypeId) ?? new Map<string, Set<string>>()
95
+ properties.set(objectTypeId, byProperty)
96
+
97
+ const set = byProperty.get(propertyId) ?? new Set<string>()
98
+ byProperty.set(propertyId, set)
99
+
100
+ for (const markingId of added) {
101
+ set.add(markingId)
102
+ markings.add(markingId)
103
+ }
104
+ }
105
+
106
+ for (const { target, seal: data } of contribution.seals) {
107
+ const seal: AppliedSeal = Object.freeze({
108
+ ...data,
109
+ markings: readonlySet(new Set(data.markings)),
110
+ })
111
+
112
+ for (const markingId of data.markings) markings.add(markingId)
113
+
114
+ if (target.kind === "type") {
115
+ types.set(target.objectTypeId, [...(types.get(target.objectTypeId) ?? []), seal])
116
+ continue
117
+ }
118
+
119
+ const key = appliedLinkKey(target.objectTypeId, target.linkId)
120
+ const existing = links.get(key)
121
+ if (existing) existing.seals.push(seal)
122
+ else {
123
+ links.set(key, {
124
+ objectTypeId: target.objectTypeId,
125
+ linkId: target.linkId,
126
+ targetObjectTypeId: target.targetObjectTypeId,
127
+ seals: [seal],
128
+ })
129
+ }
130
+ }
131
+
132
+ if (contribution.notice) notices.push(Object.freeze({ ...contribution.notice }))
133
+ }
134
+
135
+ return Object.freeze({
136
+ properties: readonlyMap(
137
+ new Map(
138
+ [...properties].map(([objectTypeId, byProperty]) => [
139
+ objectTypeId,
140
+ readonlyMap(
141
+ new Map([...byProperty].map(([propertyId, set]) => [propertyId, readonlySet(set)]))
142
+ ),
143
+ ])
144
+ )
145
+ ),
146
+ types: readonlyMap(
147
+ new Map([...types].map(([objectTypeId, seals]) => [objectTypeId, Object.freeze(seals)]))
148
+ ),
149
+ links: readonlyMap(
150
+ new Map(
151
+ [...links].map(([key, link]) => [
152
+ key,
153
+ Object.freeze({ ...link, seals: Object.freeze(link.seals) }),
154
+ ])
155
+ )
156
+ ),
157
+ markings: readonlySet(markings),
158
+ notices: Object.freeze(notices),
159
+ })
160
+ }
161
+
162
+ /**
163
+ * The snapshot with these properties' markings added: what an object event reads under, given the
164
+ * markings its origin version carries on them.
165
+ */
166
+ export function withPropertyMarkings(
167
+ snapshot: AppliedMarkingsSnapshot,
168
+ added: AppliedContribution["properties"]
169
+ ): AppliedMarkingsSnapshot {
170
+ if (added.length === 0) return snapshot
171
+
172
+ const properties = new Map<string, Map<string, Set<string>>>(
173
+ [...snapshot.properties].map(([objectTypeId, byProperty]) => [
174
+ objectTypeId,
175
+ new Map([...byProperty].map(([propertyId, set]) => [propertyId, new Set(set)])),
176
+ ])
177
+ )
178
+
179
+ const markings = new Set(snapshot.markings)
180
+ for (const { objectTypeId, propertyId, markings: ids } of added) {
181
+ const byProperty = properties.get(objectTypeId) ?? new Map<string, Set<string>>()
182
+ properties.set(objectTypeId, byProperty)
183
+
184
+ const set = byProperty.get(propertyId) ?? new Set<string>()
185
+ byProperty.set(propertyId, set)
186
+
187
+ for (const markingId of ids) {
188
+ set.add(markingId)
189
+ markings.add(markingId)
190
+ }
191
+ }
192
+
193
+ return Object.freeze({
194
+ ...snapshot,
195
+ properties: readonlyMap(
196
+ new Map(
197
+ [...properties].map(([objectTypeId, byProperty]) => [
198
+ objectTypeId,
199
+ readonlyMap(
200
+ new Map([...byProperty].map(([propertyId, set]) => [propertyId, readonlySet(set)]))
201
+ ),
202
+ ])
203
+ )
204
+ ),
205
+ markings: readonlySet(markings),
206
+ })
207
+ }
208
+
209
+ /**
210
+ * A map that refuses writes. `Object.freeze` alone leaves a map's entries writable through its
211
+ * methods, so they are shadowed by ones that throw, and then frozen.
212
+ */
213
+ function readonlyMap<TKey, TValue>(map: Map<TKey, TValue>): ReadonlyMap<TKey, TValue> {
214
+ return Object.freeze(
215
+ Object.defineProperties(map, {
216
+ set: { value: refuseWrite },
217
+ delete: { value: refuseWrite },
218
+ clear: { value: refuseWrite },
219
+ })
220
+ )
221
+ }
222
+
223
+ function readonlySet<TValue>(set: Set<TValue>): ReadonlySet<TValue> {
224
+ return Object.freeze(
225
+ Object.defineProperties(set, {
226
+ add: { value: refuseWrite },
227
+ delete: { value: refuseWrite },
228
+ clear: { value: refuseWrite },
229
+ })
230
+ )
231
+ }
232
+
233
+ function refuseWrite(): never {
234
+ throw new TypeError("[Sixb] Applied markings are immutable.")
235
+ }