@sixb/core 0.1.19 → 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 (765) 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/cookies.d.ts +2 -4
  98. package/dist/auth/cookies.d.ts.map +1 -1
  99. package/dist/auth/index.d.ts +0 -2
  100. package/dist/auth/index.d.ts.map +1 -1
  101. package/dist/auth/index.js +14 -20
  102. package/dist/auth/index.js.map +1 -1
  103. package/dist/auth/runtime.d.ts +8 -10
  104. package/dist/auth/runtime.d.ts.map +1 -1
  105. package/dist/auth/session-cache.d.ts +1 -5
  106. package/dist/auth/session-cache.d.ts.map +1 -1
  107. package/dist/auth/strategy.js +1 -1
  108. package/dist/auth/types.d.ts +4 -8
  109. package/dist/auth/types.d.ts.map +1 -1
  110. package/dist/auth/validation.d.ts +0 -1
  111. package/dist/auth/validation.d.ts.map +1 -1
  112. package/dist/authorization/decision.d.ts +2 -4
  113. package/dist/authorization/decision.d.ts.map +1 -1
  114. package/dist/authorization/grant-kinds.d.ts +6 -8
  115. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  116. package/dist/authorization/index.d.ts +0 -1
  117. package/dist/authorization/index.d.ts.map +1 -1
  118. package/dist/authorization/index.js +7 -11
  119. package/dist/authorization/index.js.map +1 -1
  120. package/dist/authorization/resolve.d.ts +1 -1
  121. package/dist/authorization/resolve.d.ts.map +1 -1
  122. package/dist/blob-storage/browser.js +1 -1
  123. package/dist/blob-storage/index.js +2 -2
  124. package/dist/blob-storage/internal.d.ts +1 -1
  125. package/dist/blob-storage/internal.d.ts.map +1 -1
  126. package/dist/blob-storage/internal.js +11 -5
  127. package/dist/blob-storage/internal.js.map +1 -1
  128. package/dist/blob-storage/media-type.d.ts +12 -0
  129. package/dist/blob-storage/media-type.d.ts.map +1 -1
  130. package/dist/bootstrap/index.js +54 -48
  131. package/dist/bootstrap/index.js.map +2 -2
  132. package/dist/{chunk-t6vq7bff.js → chunk-0bphap9y.js} +5 -5
  133. package/dist/{chunk-7mbzgd9m.js → chunk-1cc1xaf3.js} +3 -3
  134. package/dist/chunk-3jms7je7.js +14 -0
  135. package/dist/chunk-3jms7je7.js.map +10 -0
  136. package/dist/{chunk-s54c868q.js → chunk-3qct2mdc.js} +3 -13
  137. package/dist/chunk-3qct2mdc.js.map +12 -0
  138. package/dist/{chunk-6gmfggss.js → chunk-431pyp2c.js} +3 -3
  139. package/dist/{chunk-c85m1hyj.js → chunk-447a5c0p.js} +2 -2
  140. package/dist/chunk-48qjhh6v.js +185 -0
  141. package/dist/chunk-48qjhh6v.js.map +13 -0
  142. package/dist/{chunk-80mc0971.js → chunk-561r0yc9.js} +8 -8
  143. package/dist/{chunk-5e43w60z.js → chunk-5948n82c.js} +2 -2
  144. package/dist/{chunk-yzwja0mj.js → chunk-5hx48dnn.js} +2 -2
  145. package/dist/{chunk-tjb1mk5t.js → chunk-5vems3nx.js} +5 -6
  146. package/dist/{chunk-tjb1mk5t.js.map → chunk-5vems3nx.js.map} +3 -3
  147. package/dist/{chunk-aff7cyea.js → chunk-61y5xs4p.js} +563 -167
  148. package/dist/{chunk-aff7cyea.js.map → chunk-61y5xs4p.js.map} +12 -9
  149. package/dist/chunk-65abf64x.js +13 -0
  150. package/dist/chunk-65abf64x.js.map +10 -0
  151. package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
  152. package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
  153. package/dist/chunk-6rqgmkde.js +2028 -0
  154. package/dist/chunk-6rqgmkde.js.map +29 -0
  155. package/dist/{chunk-y7rqfrgg.js → chunk-6vb4st8k.js} +29 -38
  156. package/dist/chunk-6vb4st8k.js.map +23 -0
  157. package/dist/chunk-7q8t23v4.js +467 -0
  158. package/dist/chunk-7q8t23v4.js.map +14 -0
  159. package/dist/{chunk-kyzq4wy9.js → chunk-858emn8m.js} +17 -17
  160. package/dist/chunk-858emn8m.js.map +18 -0
  161. package/dist/{chunk-hvsb78a1.js → chunk-8frc8a4j.js} +26 -26
  162. package/dist/{chunk-hvsb78a1.js.map → chunk-8frc8a4j.js.map} +2 -2
  163. package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
  164. package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
  165. package/dist/{chunk-j2bp5ryw.js → chunk-918wwnaa.js} +495 -28
  166. package/dist/{chunk-j2bp5ryw.js.map → chunk-918wwnaa.js.map} +14 -12
  167. package/dist/{chunk-1f7wpmyp.js → chunk-9j4jw7as.js} +103 -110
  168. package/dist/chunk-9j4jw7as.js.map +14 -0
  169. package/dist/chunk-9kgkfg6v.js +502 -0
  170. package/dist/chunk-9kgkfg6v.js.map +14 -0
  171. package/dist/chunk-a3faa34j.js +74 -0
  172. package/dist/chunk-a3faa34j.js.map +10 -0
  173. package/dist/{chunk-ey3pyej1.js → chunk-akzryx9h.js} +347 -1174
  174. package/dist/{chunk-ey3pyej1.js.map → chunk-akzryx9h.js.map} +19 -25
  175. package/dist/chunk-arns890k.js +10 -0
  176. package/dist/chunk-arns890k.js.map +10 -0
  177. package/dist/{chunk-zrmy8zvw.js → chunk-bk9svbcq.js} +11 -11
  178. package/dist/{chunk-zrmy8zvw.js.map → chunk-bk9svbcq.js.map} +2 -2
  179. package/dist/{chunk-hkc3jct7.js → chunk-c06hmxyy.js} +2 -10
  180. package/dist/chunk-c06hmxyy.js.map +10 -0
  181. package/dist/{chunk-q1vkr2ys.js → chunk-c1rxbz5y.js} +3 -3
  182. package/dist/chunk-cfj9dfbb.js +288 -0
  183. package/dist/chunk-cfj9dfbb.js.map +12 -0
  184. package/dist/{chunk-4tcx876c.js → chunk-cn0fwwhy.js} +19 -19
  185. package/dist/{chunk-4tcx876c.js.map → chunk-cn0fwwhy.js.map} +1 -1
  186. package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
  187. package/dist/{chunk-fa02jy15.js → chunk-cy4mbddw.js} +1 -1
  188. package/dist/{chunk-7kg3k1m9.js → chunk-d09e3rax.js} +1 -1
  189. package/dist/chunk-d5rjr8c0.js +176 -0
  190. package/dist/chunk-d5rjr8c0.js.map +12 -0
  191. package/dist/{chunk-rhg02hxq.js → chunk-d7dnxdep.js} +3 -3
  192. package/dist/{chunk-b38szspf.js → chunk-dhcv7yxc.js} +1 -1
  193. package/dist/{chunk-b38szspf.js.map → chunk-dhcv7yxc.js.map} +1 -1
  194. package/dist/{chunk-enpsx8k5.js → chunk-dhdha526.js} +23 -21
  195. package/dist/chunk-dhdha526.js.map +10 -0
  196. package/dist/{chunk-8mx7qw3y.js → chunk-dvd2fp9q.js} +2 -2
  197. package/dist/{chunk-8mx7qw3y.js.map → chunk-dvd2fp9q.js.map} +3 -3
  198. package/dist/{chunk-bwjcehza.js → chunk-e17zdm62.js} +6 -12
  199. package/dist/{chunk-bwjcehza.js.map → chunk-e17zdm62.js.map} +3 -4
  200. package/dist/{chunk-tpn40322.js → chunk-e6k4thh5.js} +11 -10
  201. package/dist/{chunk-tpn40322.js.map → chunk-e6k4thh5.js.map} +3 -3
  202. package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
  203. package/dist/chunk-eptrvnby.js.map +12 -0
  204. package/dist/{chunk-xt1zt7gv.js → chunk-f4pamkt9.js} +30 -23
  205. package/dist/chunk-f4pamkt9.js.map +12 -0
  206. package/dist/chunk-ff5xkv0p.js +211 -0
  207. package/dist/chunk-ff5xkv0p.js.map +10 -0
  208. package/dist/{chunk-bpgy64fw.js → chunk-g257jwnc.js} +10 -4
  209. package/dist/{chunk-bpgy64fw.js.map → chunk-g257jwnc.js.map} +3 -3
  210. package/dist/chunk-g5bvzyyr.js +32 -0
  211. package/dist/chunk-g5bvzyyr.js.map +10 -0
  212. package/dist/{chunk-2jntasmh.js → chunk-hcbyfxbe.js} +25 -49
  213. package/dist/chunk-hcbyfxbe.js.map +12 -0
  214. package/dist/chunk-hke9aeen.js +9 -0
  215. package/dist/chunk-hke9aeen.js.map +10 -0
  216. package/dist/{chunk-1sr8ryzk.js → chunk-hwksyjks.js} +122 -1
  217. package/dist/{chunk-1sr8ryzk.js.map → chunk-hwksyjks.js.map} +3 -3
  218. package/dist/chunk-jcfw4h7m.js +9 -0
  219. package/dist/chunk-jcfw4h7m.js.map +10 -0
  220. package/dist/{chunk-85yvv5n0.js → chunk-k43ct2ke.js} +20 -11
  221. package/dist/chunk-k43ct2ke.js.map +12 -0
  222. package/dist/{chunk-dnmadg9k.js → chunk-kge7k6ey.js} +40 -8
  223. package/dist/chunk-kge7k6ey.js.map +15 -0
  224. package/dist/{chunk-wz0xs816.js → chunk-ky3j490c.js} +2 -2
  225. package/dist/chunk-mjddfa7k.js +129 -0
  226. package/dist/chunk-mjddfa7k.js.map +12 -0
  227. package/dist/{chunk-3gnrh4ve.js → chunk-nn5xnx3s.js} +86 -111
  228. package/dist/chunk-nn5xnx3s.js.map +40 -0
  229. package/dist/{chunk-rz53yb4v.js → chunk-q5e5tv4b.js} +35 -7
  230. package/dist/{chunk-rz53yb4v.js.map → chunk-q5e5tv4b.js.map} +3 -3
  231. package/dist/{chunk-vyf9kfqf.js → chunk-q7gn29y3.js} +1 -1
  232. package/dist/{chunk-d2ync1v3.js → chunk-rmakanzx.js} +10 -12
  233. package/dist/{chunk-d2ync1v3.js.map → chunk-rmakanzx.js.map} +3 -4
  234. package/dist/{chunk-v9xd5wzd.js → chunk-s7jg7pmn.js} +1 -1
  235. package/dist/chunk-tbc1ngpd.js +642 -0
  236. package/dist/chunk-tbc1ngpd.js.map +18 -0
  237. package/dist/chunk-twe4dx8p.js +676 -0
  238. package/dist/chunk-twe4dx8p.js.map +15 -0
  239. package/dist/{chunk-nre82s12.js → chunk-vf57cr4t.js} +2 -2
  240. package/dist/{chunk-9ybhtmg4.js → chunk-vvxtn22d.js} +1 -1
  241. package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
  242. package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
  243. package/dist/chunk-x0v3jd47.js +124 -0
  244. package/dist/chunk-x0v3jd47.js.map +10 -0
  245. package/dist/{chunk-7t429e3f.js → chunk-xvsc5m8n.js} +1 -1
  246. package/dist/{chunk-kg5j6fct.js → chunk-y5tah2kf.js} +1 -1
  247. package/dist/{chunk-52bk93x8.js → chunk-z58tm0hm.js} +2 -2
  248. package/dist/datasets/builders.d.ts +15 -2
  249. package/dist/datasets/builders.d.ts.map +1 -1
  250. package/dist/datasets/column-index.d.ts +7 -0
  251. package/dist/datasets/column-index.d.ts.map +1 -0
  252. package/dist/datasets/execution.d.ts +3 -2
  253. package/dist/datasets/execution.d.ts.map +1 -1
  254. package/dist/datasets/write.js +8 -8
  255. package/dist/deploy/internal.js +4 -3
  256. package/dist/deploy/internal.js.map +4 -4
  257. package/dist/deploy/services.d.ts.map +1 -1
  258. package/dist/deploy/types.d.ts +1 -2
  259. package/dist/deploy/types.d.ts.map +1 -1
  260. package/dist/error-reporting/internal.js +4 -4
  261. package/dist/errors/internal.d.ts +1 -0
  262. package/dist/errors/internal.d.ts.map +1 -1
  263. package/dist/errors/internal.js +7 -4
  264. package/dist/errors/internal.js.map +1 -1
  265. package/dist/events/execution.d.ts +12 -2
  266. package/dist/events/execution.d.ts.map +1 -1
  267. package/dist/events/index.js +4 -4
  268. package/dist/execution/agent.js +56 -49
  269. package/dist/execution/agent.js.map +1 -1
  270. package/dist/execution/authorization.d.ts.map +1 -1
  271. package/dist/execution/authorized-object-reader.d.ts +52 -11
  272. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  273. package/dist/execution/object-reader-clearance.d.ts +41 -0
  274. package/dist/execution/object-reader-clearance.d.ts.map +1 -0
  275. package/dist/execution/object-reader-ontology.d.ts +12 -0
  276. package/dist/execution/object-reader-ontology.d.ts.map +1 -0
  277. package/dist/execution/object-reader-security.d.ts +45 -0
  278. package/dist/execution/object-reader-security.d.ts.map +1 -0
  279. package/dist/execution/primitive.js +54 -47
  280. package/dist/execution/primitive.js.map +1 -1
  281. package/dist/execution/request.js +49 -42
  282. package/dist/execution/request.js.map +2 -2
  283. package/dist/http/api-routes.d.ts.map +1 -1
  284. package/dist/http/index.js +1 -1
  285. package/dist/index.d.ts +23 -7
  286. package/dist/index.d.ts.map +1 -1
  287. package/dist/index.js +111 -109
  288. package/dist/index.js.map +1 -1
  289. package/dist/lake-storage/in-memory.d.ts +1 -0
  290. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  291. package/dist/lake-storage/index.d.ts +6 -3
  292. package/dist/lake-storage/index.d.ts.map +1 -1
  293. package/dist/lake-storage/index.js +21 -13
  294. package/dist/lake-storage/index.js.map +1 -1
  295. package/dist/lake-storage/lineage.d.ts +94 -0
  296. package/dist/lake-storage/lineage.d.ts.map +1 -0
  297. package/dist/lake-storage/sql-transforms.d.ts +45 -0
  298. package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
  299. package/dist/lake-storage/types.d.ts +55 -1
  300. package/dist/lake-storage/types.d.ts.map +1 -1
  301. package/dist/lake-storage/version-inputs.d.ts +14 -3
  302. package/dist/lake-storage/version-inputs.d.ts.map +1 -1
  303. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  304. package/dist/materializer/index.js +31 -30
  305. package/dist/materializer/index.js.map +1 -1
  306. package/dist/models/execution/index.js +26 -25
  307. package/dist/models/execution/index.js.map +1 -1
  308. package/dist/objects/clearance-redaction.d.ts +27 -0
  309. package/dist/objects/clearance-redaction.d.ts.map +1 -0
  310. package/dist/objects/index.js +54 -47
  311. package/dist/objects/index.js.map +1 -1
  312. package/dist/objects/link/authorization.d.ts +8 -5
  313. package/dist/objects/link/authorization.d.ts.map +1 -1
  314. package/dist/objects/link/upsert-batch.d.ts.map +1 -1
  315. package/dist/objects/object/delete.d.ts.map +1 -1
  316. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  317. package/dist/objects/object/upsert.d.ts.map +1 -1
  318. package/dist/objects/property-clearance.d.ts +47 -24
  319. package/dist/objects/property-clearance.d.ts.map +1 -1
  320. package/dist/objects/query/clearance-admission.d.ts +10 -0
  321. package/dist/objects/query/clearance-admission.d.ts.map +1 -0
  322. package/dist/objects/query/index.js +29 -28
  323. package/dist/objects/query/index.js.map +1 -1
  324. package/dist/objects/query/link-query-clearance.d.ts +21 -0
  325. package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
  326. package/dist/objects/vectors/handle.d.ts.map +1 -1
  327. package/dist/objects/vectors/profile.d.ts +5 -0
  328. package/dist/objects/vectors/profile.d.ts.map +1 -1
  329. package/dist/ontology/builders.d.ts.map +1 -1
  330. package/dist/ontology/docs-markdown.d.ts +1 -1
  331. package/dist/ontology/docs-markdown.d.ts.map +1 -1
  332. package/dist/ontology/index.js +7 -7
  333. package/dist/ontology/internal.js +4 -4
  334. package/dist/ontology/internal.js.map +1 -1
  335. package/dist/pipelines/index.d.ts +2 -0
  336. package/dist/pipelines/index.d.ts.map +1 -1
  337. package/dist/pipelines/index.js +47 -35
  338. package/dist/pipelines/index.js.map +1 -1
  339. package/dist/pipelines/lineage.d.ts +17 -0
  340. package/dist/pipelines/lineage.d.ts.map +1 -0
  341. package/dist/projections/internal.d.ts +2 -2
  342. package/dist/projections/internal.js +30 -29
  343. package/dist/projections/internal.js.map +1 -1
  344. package/dist/runtime/create.d.ts +3 -0
  345. package/dist/runtime/create.d.ts.map +1 -1
  346. package/dist/runtime/host.d.ts +6 -0
  347. package/dist/runtime/host.d.ts.map +1 -1
  348. package/dist/runtime/internal.d.ts +2 -0
  349. package/dist/runtime/internal.d.ts.map +1 -1
  350. package/dist/runtime/internal.js +46 -42
  351. package/dist/runtime/internal.js.map +1 -1
  352. package/dist/runtime/ontology-mutations.d.ts +2 -0
  353. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  354. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  355. package/dist/runtime/sixb.d.ts +8 -0
  356. package/dist/runtime/sixb.d.ts.map +1 -1
  357. package/dist/sandboxes/auth.d.ts +16 -0
  358. package/dist/sandboxes/auth.d.ts.map +1 -1
  359. package/dist/sandboxes/config.d.ts.map +1 -1
  360. package/dist/sandboxes/configuration.d.ts +26 -0
  361. package/dist/sandboxes/configuration.d.ts.map +1 -1
  362. package/dist/sandboxes/index.d.ts +1 -1
  363. package/dist/sandboxes/index.d.ts.map +1 -1
  364. package/dist/sandboxes/index.js +14 -13
  365. package/dist/sandboxes/index.js.map +1 -1
  366. package/dist/sandboxes/sandbox.d.ts +28 -5
  367. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  368. package/dist/security/applied-markings-contribution.d.ts +58 -0
  369. package/dist/security/applied-markings-contribution.d.ts.map +1 -0
  370. package/dist/security/applied-markings-host.d.ts +10 -0
  371. package/dist/security/applied-markings-host.d.ts.map +1 -0
  372. package/dist/security/applied-markings-snapshot.d.ts +67 -0
  373. package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
  374. package/dist/security/applied-markings.d.ts +73 -0
  375. package/dist/security/applied-markings.d.ts.map +1 -0
  376. package/dist/security/builders.d.ts.map +1 -1
  377. package/dist/security/dataset-version-markings.d.ts +47 -0
  378. package/dist/security/dataset-version-markings.d.ts.map +1 -0
  379. package/dist/security/every.d.ts +1 -4
  380. package/dist/security/every.d.ts.map +1 -1
  381. package/dist/security/grants.d.ts +4 -5
  382. package/dist/security/grants.d.ts.map +1 -1
  383. package/dist/security/index.d.ts +2 -2
  384. package/dist/security/index.d.ts.map +1 -1
  385. package/dist/security/internal.d.ts +15 -0
  386. package/dist/security/internal.d.ts.map +1 -0
  387. package/dist/security/internal.js +135 -0
  388. package/dist/security/internal.js.map +10 -0
  389. package/dist/security/marking-propagation.d.ts +62 -0
  390. package/dist/security/marking-propagation.d.ts.map +1 -0
  391. package/dist/security/marking-sets.d.ts +14 -0
  392. package/dist/security/marking-sets.d.ts.map +1 -0
  393. package/dist/security/markings.d.ts +6 -3
  394. package/dist/security/markings.d.ts.map +1 -1
  395. package/dist/security/membership-policies.d.ts.map +1 -1
  396. package/dist/security/pipeline-markings.d.ts +20 -0
  397. package/dist/security/pipeline-markings.d.ts.map +1 -0
  398. package/dist/security/project.d.ts +4 -0
  399. package/dist/security/project.d.ts.map +1 -0
  400. package/dist/security/projection-markings.d.ts +71 -0
  401. package/dist/security/projection-markings.d.ts.map +1 -0
  402. package/dist/security/public.d.ts +10 -0
  403. package/dist/security/public.d.ts.map +1 -0
  404. package/dist/security/public.js +10 -0
  405. package/dist/security/public.js.map +9 -0
  406. package/dist/security/redactions.d.ts +4 -1
  407. package/dist/security/redactions.d.ts.map +1 -1
  408. package/dist/security/registry.d.ts +0 -1
  409. package/dist/security/registry.d.ts.map +1 -1
  410. package/dist/security/types.d.ts +34 -19
  411. package/dist/security/types.d.ts.map +1 -1
  412. package/dist/security/validation.d.ts +0 -6
  413. package/dist/security/validation.d.ts.map +1 -1
  414. package/dist/shares/internal.js +25 -24
  415. package/dist/shares/internal.js.map +2 -2
  416. package/dist/storage/action-runs/failure.js +3 -3
  417. package/dist/storage/action-runs/in-memory.d.ts +4 -0
  418. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  419. package/dist/storage/action-runs/types.d.ts +8 -0
  420. package/dist/storage/action-runs/types.d.ts.map +1 -1
  421. package/dist/storage/activity/in-memory.d.ts +55 -0
  422. package/dist/storage/activity/in-memory.d.ts.map +1 -0
  423. package/dist/storage/activity/index.d.ts +3 -0
  424. package/dist/storage/activity/index.d.ts.map +1 -0
  425. package/dist/storage/activity/policy.d.ts +96 -0
  426. package/dist/storage/activity/policy.d.ts.map +1 -0
  427. package/dist/storage/activity/types.d.ts +191 -0
  428. package/dist/storage/activity/types.d.ts.map +1 -0
  429. package/dist/storage/agents/in-memory.d.ts +4 -0
  430. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  431. package/dist/storage/agents/provider.d.ts.map +1 -1
  432. package/dist/storage/agents/provider.js +2 -5
  433. package/dist/storage/agents/provider.js.map +1 -1
  434. package/dist/storage/agents/types.d.ts +10 -9
  435. package/dist/storage/agents/types.d.ts.map +1 -1
  436. package/dist/storage/ai-limits/enforcement.js +3 -3
  437. package/dist/storage/artifacts/errors.d.ts +8 -0
  438. package/dist/storage/artifacts/errors.d.ts.map +1 -0
  439. package/dist/storage/artifacts/in-memory.d.ts +34 -0
  440. package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
  441. package/dist/storage/artifacts/index.d.ts +5 -0
  442. package/dist/storage/artifacts/index.d.ts.map +1 -0
  443. package/dist/storage/artifacts/record.d.ts +17 -0
  444. package/dist/storage/artifacts/record.d.ts.map +1 -0
  445. package/dist/storage/artifacts/types.d.ts +184 -0
  446. package/dist/storage/artifacts/types.d.ts.map +1 -0
  447. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  448. package/dist/storage/auth/in-memory/magic-links.d.ts.map +1 -1
  449. package/dist/storage/auth/in-memory/oidc-attempts.d.ts.map +1 -1
  450. package/dist/storage/auth/in-memory/sessions.d.ts +2 -11
  451. package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
  452. package/dist/storage/auth/in-memory/shared.d.ts +1 -2
  453. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  454. package/dist/storage/auth/index.d.ts +1 -1
  455. package/dist/storage/auth/index.d.ts.map +1 -1
  456. package/dist/storage/auth/types.d.ts +20 -17
  457. package/dist/storage/auth/types.d.ts.map +1 -1
  458. package/dist/storage/connector-connections/provider.js +2 -2
  459. package/dist/storage/executions/in-memory.d.ts +2 -1
  460. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  461. package/dist/storage/executions/index.d.ts +1 -1
  462. package/dist/storage/executions/index.d.ts.map +1 -1
  463. package/dist/storage/executions/provider.d.ts +2 -0
  464. package/dist/storage/executions/provider.d.ts.map +1 -1
  465. package/dist/storage/executions/provider.js +9 -223
  466. package/dist/storage/executions/provider.js.map +3 -4
  467. package/dist/storage/executions/types.d.ts +31 -0
  468. package/dist/storage/executions/types.d.ts.map +1 -1
  469. package/dist/storage/file-upload-sessions/provider.js +12 -12
  470. package/dist/storage/in-memory/index.d.ts +8 -0
  471. package/dist/storage/in-memory/index.d.ts.map +1 -1
  472. package/dist/storage/index.d.ts +6 -4
  473. package/dist/storage/index.d.ts.map +1 -1
  474. package/dist/storage/index.js +47 -46
  475. package/dist/storage/index.js.map +1 -1
  476. package/dist/storage/internal.d.ts +3 -0
  477. package/dist/storage/internal.d.ts.map +1 -1
  478. package/dist/storage/internal.js +66 -16
  479. package/dist/storage/internal.js.map +1 -1
  480. package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
  481. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  482. package/dist/storage/ontology/index.d.ts +1 -1
  483. package/dist/storage/ontology/index.d.ts.map +1 -1
  484. package/dist/storage/ontology/sources.d.ts +15 -0
  485. package/dist/storage/ontology/sources.d.ts.map +1 -1
  486. package/dist/storage/projection-runs/provider.js +3 -3
  487. package/dist/storage/share-grants/in-memory.d.ts +2 -1
  488. package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
  489. package/dist/storage/share-grants/index.d.ts +1 -1
  490. package/dist/storage/share-grants/index.d.ts.map +1 -1
  491. package/dist/storage/share-grants/types.d.ts +6 -0
  492. package/dist/storage/share-grants/types.d.ts.map +1 -1
  493. package/dist/storage/types.d.ts +4 -0
  494. package/dist/storage/types.d.ts.map +1 -1
  495. package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
  496. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  497. package/dist/storage/workflow-runs/provider.js +14 -13
  498. package/dist/storage/workflow-runs/provider.js.map +1 -1
  499. package/dist/storage/workflow-runs/types.d.ts +5 -0
  500. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  501. package/dist/syncs/index.js +35 -34
  502. package/dist/syncs/index.js.map +1 -1
  503. package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
  504. package/dist/testing/activity-storage-contract.d.ts +14 -0
  505. package/dist/testing/activity-storage-contract.d.ts.map +1 -0
  506. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  507. package/dist/testing/artifact-storage-contract.d.ts +13 -0
  508. package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
  509. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  510. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  511. package/dist/testing/index.d.ts +2 -0
  512. package/dist/testing/index.d.ts.map +1 -1
  513. package/dist/testing/index.js +4493 -3225
  514. package/dist/testing/index.js.map +14 -12
  515. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
  516. package/dist/testing/lake-storage-contract.d.ts +2 -0
  517. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  518. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  519. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
  520. package/dist/webhooks/internal.js +28 -27
  521. package/dist/webhooks/internal.js.map +2 -2
  522. package/dist/workers/index.js +2 -2
  523. package/dist/workflows/builders.d.ts.map +1 -1
  524. package/dist/workflows/index.js +57 -51
  525. package/dist/workflows/index.js.map +1 -1
  526. package/dist/workflows/types.d.ts +9 -0
  527. package/dist/workflows/types.d.ts.map +1 -1
  528. package/dist/workflows/validation.d.ts +7 -0
  529. package/dist/workflows/validation.d.ts.map +1 -1
  530. package/package.json +32 -2
  531. package/src/actions/execution.ts +18 -13
  532. package/src/actions/request.ts +18 -3
  533. package/src/actions/run-authorization.ts +23 -0
  534. package/src/activity/README.md +155 -0
  535. package/src/activity/connection.ts +217 -0
  536. package/src/activity/device.ts +41 -0
  537. package/src/activity/execution.ts +210 -0
  538. package/src/activity/service.ts +274 -0
  539. package/src/activity/shares.ts +62 -0
  540. package/src/activity/timeline.ts +424 -0
  541. package/src/agents/index.ts +8 -3
  542. package/src/agents/request.ts +5 -0
  543. package/src/agents/skills.ts +6 -0
  544. package/src/agents/types.ts +8 -8
  545. package/src/agents/validation.ts +2 -0
  546. package/src/artifacts/address.ts +132 -0
  547. package/src/artifacts/csv.ts +108 -0
  548. package/src/artifacts/errors.ts +21 -0
  549. package/src/artifacts/execution.ts +153 -0
  550. package/src/artifacts/frames/assets.ts +88 -0
  551. package/src/artifacts/frames/grants.ts +124 -0
  552. package/src/artifacts/frames/index.ts +15 -0
  553. package/src/artifacts/frames/kit.ts +392 -0
  554. package/src/artifacts/frames/probe.ts +309 -0
  555. package/src/artifacts/frames/protocol.ts +174 -0
  556. package/src/artifacts/frames/runtime.ts +213 -0
  557. package/src/artifacts/html.ts +25 -0
  558. package/src/artifacts/ids.ts +18 -0
  559. package/src/artifacts/index.ts +61 -0
  560. package/src/artifacts/kinds.ts +8 -0
  561. package/src/artifacts/limits.ts +27 -0
  562. package/src/artifacts/outline.ts +62 -0
  563. package/src/artifacts/publish/files.ts +87 -0
  564. package/src/artifacts/publish/index.ts +12 -0
  565. package/src/artifacts/publish/publish.ts +250 -0
  566. package/src/artifacts/publish/references.ts +130 -0
  567. package/src/artifacts/publish/validate/document.ts +114 -0
  568. package/src/artifacts/publish/validate/file.ts +19 -0
  569. package/src/artifacts/publish/validate/sheet.ts +251 -0
  570. package/src/artifacts/publish/validate/slides.ts +134 -0
  571. package/src/artifacts/references.ts +11 -0
  572. package/src/artifacts/resolve.ts +97 -0
  573. package/src/artifacts/theme.ts +116 -0
  574. package/src/artifacts/warnings.ts +10 -0
  575. package/src/artifacts/workbook.ts +315 -0
  576. package/src/auth/cookies.ts +3 -20
  577. package/src/auth/index.ts +0 -6
  578. package/src/auth/runtime.ts +59 -76
  579. package/src/auth/session-cache.ts +2 -9
  580. package/src/auth/types.ts +4 -8
  581. package/src/auth/validation.ts +0 -2
  582. package/src/authorization/decision.ts +13 -23
  583. package/src/authorization/grant-kinds.ts +33 -28
  584. package/src/authorization/index.ts +0 -1
  585. package/src/authorization/resolve.ts +10 -6
  586. package/src/blob-storage/internal.ts +1 -1
  587. package/src/blob-storage/media-type.ts +69 -0
  588. package/src/datasets/builders.ts +66 -2
  589. package/src/datasets/column-index.ts +19 -0
  590. package/src/datasets/execution.ts +23 -9
  591. package/src/deploy/services.ts +0 -1
  592. package/src/deploy/types.ts +1 -2
  593. package/src/deploy/validation.ts +3 -1
  594. package/src/errors/internal.ts +1 -0
  595. package/src/events/execution.ts +134 -21
  596. package/src/execution/authorization.ts +11 -5
  597. package/src/execution/authorized-object-reader.ts +270 -256
  598. package/src/execution/object-reader-clearance.ts +91 -0
  599. package/src/execution/object-reader-ontology.ts +63 -0
  600. package/src/execution/object-reader-security.ts +146 -0
  601. package/src/http/api-routes.ts +125 -0
  602. package/src/index.ts +72 -17
  603. package/src/lake-storage/in-memory.ts +26 -3
  604. package/src/lake-storage/index.ts +13 -1
  605. package/src/lake-storage/lineage.ts +385 -0
  606. package/src/lake-storage/sql-transforms.ts +45 -0
  607. package/src/lake-storage/types.ts +59 -1
  608. package/src/lake-storage/version-inputs.ts +35 -6
  609. package/src/maintenance/ontology-maintenance.ts +15 -0
  610. package/src/models/execution/embedding.ts +6 -6
  611. package/src/objects/clearance-redaction.ts +138 -0
  612. package/src/objects/link/authorization.ts +27 -7
  613. package/src/objects/link/remove.ts +2 -2
  614. package/src/objects/link/upsert-batch.ts +7 -5
  615. package/src/objects/link/upsert.ts +2 -2
  616. package/src/objects/object/delete.ts +2 -0
  617. package/src/objects/object/upsert-batch.ts +2 -4
  618. package/src/objects/object/upsert.ts +2 -3
  619. package/src/objects/property-clearance.ts +171 -152
  620. package/src/objects/query/clearance-admission.ts +112 -0
  621. package/src/objects/query/link-query-clearance.ts +73 -0
  622. package/src/objects/vectors/README.md +4 -0
  623. package/src/objects/vectors/handle.ts +11 -2
  624. package/src/objects/vectors/indexing-generate.ts +2 -2
  625. package/src/objects/vectors/profile.ts +5 -0
  626. package/src/ontology/builders.ts +12 -1
  627. package/src/ontology/docs-markdown.ts +1 -1
  628. package/src/pipelines/index.ts +2 -0
  629. package/src/pipelines/lineage.ts +45 -0
  630. package/src/projections/internal.ts +2 -2
  631. package/src/runtime/create.ts +4 -0
  632. package/src/runtime/host.ts +55 -0
  633. package/src/runtime/internal.ts +2 -0
  634. package/src/runtime/ontology-mutations.ts +19 -4
  635. package/src/runtime/resolve-definitions.ts +66 -3
  636. package/src/runtime/sixb.ts +18 -1
  637. package/src/sandboxes/README.md +29 -7
  638. package/src/sandboxes/auth.ts +16 -0
  639. package/src/sandboxes/config.ts +2 -7
  640. package/src/sandboxes/configuration.ts +61 -7
  641. package/src/sandboxes/index.ts +1 -0
  642. package/src/sandboxes/sandbox.ts +27 -5
  643. package/src/security/applied-markings-contribution.ts +277 -0
  644. package/src/security/applied-markings-host.ts +41 -0
  645. package/src/security/applied-markings-snapshot.ts +235 -0
  646. package/src/security/applied-markings.ts +405 -0
  647. package/src/security/builders.ts +7 -2
  648. package/src/security/dataset-version-markings.ts +163 -0
  649. package/src/security/every.ts +0 -4
  650. package/src/security/grants.ts +42 -27
  651. package/src/security/index.ts +3 -3
  652. package/src/security/internal.ts +18 -0
  653. package/src/security/marking-propagation.ts +255 -0
  654. package/src/security/marking-sets.ts +42 -0
  655. package/src/security/markings.ts +29 -178
  656. package/src/security/membership-policies.ts +3 -1
  657. package/src/security/pipeline-markings.ts +175 -0
  658. package/src/security/project.ts +8 -0
  659. package/src/security/projection-markings.ts +421 -0
  660. package/src/security/public.ts +10 -0
  661. package/src/security/redactions.ts +7 -2
  662. package/src/security/registry.ts +0 -8
  663. package/src/security/types.ts +38 -26
  664. package/src/security/validation.ts +28 -19
  665. package/src/storage/action-runs/in-memory.ts +18 -0
  666. package/src/storage/action-runs/types.ts +8 -0
  667. package/src/storage/activity/in-memory.ts +374 -0
  668. package/src/storage/activity/index.ts +27 -0
  669. package/src/storage/activity/policy.ts +430 -0
  670. package/src/storage/activity/types.ts +211 -0
  671. package/src/storage/agents/in-memory.ts +10 -0
  672. package/src/storage/agents/provider.ts +2 -13
  673. package/src/storage/agents/types.ts +10 -17
  674. package/src/storage/artifacts/errors.ts +16 -0
  675. package/src/storage/artifacts/in-memory.ts +240 -0
  676. package/src/storage/artifacts/index.ts +30 -0
  677. package/src/storage/artifacts/record.ts +200 -0
  678. package/src/storage/artifacts/types.ts +209 -0
  679. package/src/storage/auth/in-memory/auth-storage.ts +0 -18
  680. package/src/storage/auth/in-memory/magic-links.ts +0 -3
  681. package/src/storage/auth/in-memory/oidc-attempts.ts +0 -3
  682. package/src/storage/auth/in-memory/sessions.ts +22 -25
  683. package/src/storage/auth/in-memory/shared.ts +1 -10
  684. package/src/storage/auth/index.ts +2 -0
  685. package/src/storage/auth/types.ts +20 -18
  686. package/src/storage/executions/in-memory.ts +61 -1
  687. package/src/storage/executions/index.ts +3 -0
  688. package/src/storage/executions/provider.ts +12 -0
  689. package/src/storage/executions/types.ts +30 -0
  690. package/src/storage/in-memory/index.ts +16 -0
  691. package/src/storage/index.ts +63 -0
  692. package/src/storage/internal.ts +30 -0
  693. package/src/storage/ontology/in-memory/sources.ts +23 -0
  694. package/src/storage/ontology/index.ts +2 -0
  695. package/src/storage/ontology/sources.ts +17 -0
  696. package/src/storage/share-grants/in-memory.ts +8 -0
  697. package/src/storage/share-grants/index.ts +1 -0
  698. package/src/storage/share-grants/types.ts +8 -0
  699. package/src/storage/types.ts +4 -0
  700. package/src/storage/workflow-runs/in-memory.ts +16 -0
  701. package/src/storage/workflow-runs/types.ts +5 -0
  702. package/src/testing/action-run-storage-contract.ts +25 -0
  703. package/src/testing/activity-storage-contract.ts +840 -0
  704. package/src/testing/agent-storage-contract.ts +22 -21
  705. package/src/testing/artifact-storage-contract.ts +517 -0
  706. package/src/testing/auth-storage-contract.ts +61 -107
  707. package/src/testing/execution-storage-contract.ts +147 -3
  708. package/src/testing/index.ts +9 -0
  709. package/src/testing/lake-merge-storage-contract.ts +38 -0
  710. package/src/testing/lake-storage-contract.ts +247 -2
  711. package/src/testing/materializer-storage-contract.ts +1 -0
  712. package/src/testing/ontology-storage-contract.ts +57 -2
  713. package/src/testing/share-grant-storage-contract.ts +15 -0
  714. package/src/workflows/builders.ts +14 -0
  715. package/src/workflows/types.ts +9 -0
  716. package/src/workflows/validation.ts +72 -0
  717. package/dist/auth/audience.d.ts +0 -8
  718. package/dist/auth/audience.d.ts.map +0 -1
  719. package/dist/authorization/application-access.d.ts +0 -18
  720. package/dist/authorization/application-access.d.ts.map +0 -1
  721. package/dist/chunk-1f7wpmyp.js.map +0 -14
  722. package/dist/chunk-1k89ecfr.js +0 -85
  723. package/dist/chunk-1k89ecfr.js.map +0 -10
  724. package/dist/chunk-2jntasmh.js.map +0 -13
  725. package/dist/chunk-3gnrh4ve.js.map +0 -40
  726. package/dist/chunk-85yvv5n0.js.map +0 -12
  727. package/dist/chunk-9gyp8hg1.js +0 -363
  728. package/dist/chunk-9gyp8hg1.js.map +0 -14
  729. package/dist/chunk-dnmadg9k.js.map +0 -15
  730. package/dist/chunk-enpsx8k5.js.map +0 -10
  731. package/dist/chunk-hkc3jct7.js.map +0 -10
  732. package/dist/chunk-kyzq4wy9.js.map +0 -18
  733. package/dist/chunk-s16apyk9.js +0 -256
  734. package/dist/chunk-s16apyk9.js.map +0 -16
  735. package/dist/chunk-s54c868q.js.map +0 -12
  736. package/dist/chunk-tw03bsmb.js.map +0 -11
  737. package/dist/chunk-wwdfe68s.js +0 -128
  738. package/dist/chunk-wwdfe68s.js.map +0 -11
  739. package/dist/chunk-xt1zt7gv.js.map +0 -13
  740. package/dist/chunk-y7rqfrgg.js.map +0 -24
  741. package/dist/security/applications.d.ts +0 -15
  742. package/dist/security/applications.d.ts.map +0 -1
  743. package/src/auth/audience.ts +0 -28
  744. package/src/authorization/application-access.ts +0 -34
  745. package/src/security/applications.ts +0 -11
  746. /package/dist/{chunk-t6vq7bff.js.map → chunk-0bphap9y.js.map} +0 -0
  747. /package/dist/{chunk-7mbzgd9m.js.map → chunk-1cc1xaf3.js.map} +0 -0
  748. /package/dist/{chunk-6gmfggss.js.map → chunk-431pyp2c.js.map} +0 -0
  749. /package/dist/{chunk-c85m1hyj.js.map → chunk-447a5c0p.js.map} +0 -0
  750. /package/dist/{chunk-80mc0971.js.map → chunk-561r0yc9.js.map} +0 -0
  751. /package/dist/{chunk-5e43w60z.js.map → chunk-5948n82c.js.map} +0 -0
  752. /package/dist/{chunk-yzwja0mj.js.map → chunk-5hx48dnn.js.map} +0 -0
  753. /package/dist/{chunk-q1vkr2ys.js.map → chunk-c1rxbz5y.js.map} +0 -0
  754. /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
  755. /package/dist/{chunk-fa02jy15.js.map → chunk-cy4mbddw.js.map} +0 -0
  756. /package/dist/{chunk-7kg3k1m9.js.map → chunk-d09e3rax.js.map} +0 -0
  757. /package/dist/{chunk-rhg02hxq.js.map → chunk-d7dnxdep.js.map} +0 -0
  758. /package/dist/{chunk-wz0xs816.js.map → chunk-ky3j490c.js.map} +0 -0
  759. /package/dist/{chunk-vyf9kfqf.js.map → chunk-q7gn29y3.js.map} +0 -0
  760. /package/dist/{chunk-v9xd5wzd.js.map → chunk-s7jg7pmn.js.map} +0 -0
  761. /package/dist/{chunk-nre82s12.js.map → chunk-vf57cr4t.js.map} +0 -0
  762. /package/dist/{chunk-9ybhtmg4.js.map → chunk-vvxtn22d.js.map} +0 -0
  763. /package/dist/{chunk-7t429e3f.js.map → chunk-xvsc5m8n.js.map} +0 -0
  764. /package/dist/{chunk-kg5j6fct.js.map → chunk-y5tah2kf.js.map} +0 -0
  765. /package/dist/{chunk-52bk93x8.js.map → chunk-z58tm0hm.js.map} +0 -0
@@ -3,6 +3,7 @@ import { isActionDefinition } from "../actions"
3
3
  import { AGENT_REASONING_LEVELS, isAgentToolDefinition } from "../agents"
4
4
  import { isModelReasoning } from "../models/language-model"
5
5
  import type { SchemaOrRef } from "../ontology"
6
+ import type { SandboxFactory } from "../sandboxes"
6
7
  import type { ScheduleDefinition, ScheduleDefinitionForEvent } from "../schedules"
7
8
  import { isScheduleDefinition } from "../schedules"
8
9
  import { isGroupDefinition } from "../security"
@@ -25,6 +26,7 @@ import type {
25
26
  WorkflowTriggerDefinition,
26
27
  } from "./types"
27
28
  import {
29
+ assertAgentStepSandbox,
28
30
  assertNonEmpty,
29
31
  isAgentStepDefinition,
30
32
  isInterventionDefinition,
@@ -137,6 +139,7 @@ export function defineAgentStep<const TId extends string>(
137
139
  const groupIds = groupIdsFromAgentStepConfig(id, config)
138
140
  const toolNames = toolNamesFromAgentStepConfig(id, config)
139
141
  const skillNames = skillNamesFromAgentStepConfig(id, config)
142
+ const sandbox = sandboxFromAgentStepConfig(id, config)
140
143
 
141
144
  return {
142
145
  input(input: RuntimeWorkflowInput): unknown {
@@ -156,6 +159,7 @@ export function defineAgentStep<const TId extends string>(
156
159
  groupIds,
157
160
  toolNames,
158
161
  skillNames,
162
+ ...(sandbox === undefined ? {} : { sandbox }),
159
163
  input,
160
164
  output,
161
165
  prompt,
@@ -231,6 +235,16 @@ function skillNamesFromAgentStepConfig(
231
235
  return Object.freeze(skillNames)
232
236
  }
233
237
 
238
+ function sandboxFromAgentStepConfig(
239
+ stepId: string,
240
+ config: DefineAgentStepConfig
241
+ ): SandboxFactory | undefined {
242
+ if (config.sandbox === undefined) return undefined
243
+
244
+ assertAgentStepSandbox(config.sandbox, `Agent step "${stepId}"`)
245
+ return config.sandbox
246
+ }
247
+
234
248
  function assertUniqueAgentStepValues(
235
249
  stepId: string,
236
250
  kind: "group" | "tool" | "skill",
@@ -22,6 +22,7 @@ import type { InferSchemaOrRef, ObjectRef, SchemaOrRef } from "../ontology"
22
22
  import type { PipelinesRuntime } from "../pipelines/execution"
23
23
  import type { ProjectionsRuntime } from "../projections/execution"
24
24
  import type { RulesRuntime } from "../rules/execution"
25
+ import type { SandboxFactory } from "../sandboxes"
25
26
  import type { ScheduleDefinition, ScheduleDefinitionForEvent } from "../schedules"
26
27
  import type { SchedulesRuntime } from "../schedules/execution"
27
28
  import type { GroupDefinition } from "../security"
@@ -147,6 +148,13 @@ export interface DefineAgentStepConfig {
147
148
  readonly tools?: readonly AgentToolDefinition[]
148
149
  /** Names of the project Agent Skills (`skills/<name>/`) this workflow task may use. Defaults to none. */
149
150
  readonly skills?: readonly string[]
151
+ /**
152
+ * The step's own sandbox: each run gets a fresh one from this factory's static recipe (source,
153
+ * setup, env, network and auth), destroyed when the run ends. Without it, each run gets an empty
154
+ * sandbox from the project's `sandboxes` that reaches only the Sixb API. Factories with `params`
155
+ * or `resolve` are not supported.
156
+ */
157
+ readonly sandbox?: SandboxFactory
150
158
  }
151
159
 
152
160
  export interface AgentStepDefinition<
@@ -164,6 +172,7 @@ export interface AgentStepDefinition<
164
172
  readonly groupIds: readonly string[]
165
173
  readonly toolNames: readonly string[]
166
174
  readonly skillNames: readonly string[]
175
+ readonly sandbox?: SandboxFactory
167
176
  readonly input: TInput
168
177
  readonly output: TOutput
169
178
  readonly prompt: AgentStepPrompt<Record<string, unknown>>
@@ -4,6 +4,13 @@ import type { ModelCatalog } from "../models"
4
4
  import { isModelReasoning, modelReasoningSupportIssue } from "../models/language-model"
5
5
  import type { SchemaOrRef, ValueType } from "../ontology"
6
6
  import { validateSchemaOrRefValue } from "../ontology/refs"
7
+ import type { SandboxFactory } from "../sandboxes"
8
+ import {
9
+ type SandboxEnvironment,
10
+ sandboxCredentialIssue,
11
+ staticSandboxRecipe,
12
+ } from "../sandboxes/configuration"
13
+ import { SandboxError } from "../sandboxes/errors"
7
14
  import type { ScheduleDefinition } from "../schedules"
8
15
  import type { SecurityDefinitionCatalog } from "../security"
9
16
  import { WorkflowDefinitionError, WorkflowValidationError } from "./errors"
@@ -413,6 +420,15 @@ function validateAgentNodeDefinition(workflowId: string, node: WorkflowAgentNode
413
420
  assertUniqueNonEmptyAgentStepValues(workflowId, node.id, "group", node.agentStep.groupIds)
414
421
  assertUniqueNonEmptyAgentStepValues(workflowId, node.id, "tool", node.agentStep.toolNames)
415
422
  assertUniqueNonEmptyAgentStepValues(workflowId, node.id, "skill", node.agentStep.skillNames)
423
+
424
+ // A hand-built node skips defineAgentStep, so its sandbox is checked again here.
425
+ if (node.agentStep.sandbox !== undefined) {
426
+ assertAgentStepSandbox(
427
+ node.agentStep.sandbox,
428
+ `Workflow "${workflowId}" agent step "${node.id}"`
429
+ )
430
+ }
431
+
416
432
  if (node.mapper !== undefined && typeof node.mapper !== "function") {
417
433
  throw new WorkflowDefinitionError(
418
434
  `Workflow "${workflowId}" agent node "${node.id}" mapper must be a function.`
@@ -420,6 +436,62 @@ function validateAgentNodeDefinition(workflowId: string, node: WorkflowAgentNode
420
436
  }
421
437
  }
422
438
 
439
+ /**
440
+ * Reject a value that cannot be an Agent step's sandbox; `step` names it in the error. A step has
441
+ * no thread to bind params to, so only a static recipe applies. Its network must let the agent
442
+ * reach the Sixb API. Its source access must pass the rule a project factory passes at startup.
443
+ */
444
+ export function assertAgentStepSandbox(
445
+ value: unknown,
446
+ step: string
447
+ ): asserts value is SandboxFactory {
448
+ const fail = (issue: string, cause?: unknown): never => {
449
+ throw new WorkflowDefinitionError(
450
+ `${step} sandbox ${issue}`,
451
+ cause === undefined ? undefined : { cause }
452
+ )
453
+ }
454
+
455
+ if (!isRecord(value) || typeof value.create !== "function") {
456
+ return fail("must be a sandbox factory with a create function.")
457
+ }
458
+
459
+ const { configuration } = value
460
+ if (configuration === undefined) return
461
+ if (!isRecord(configuration)) return fail("configuration must be a sandbox recipe object.")
462
+ if (configuration.params !== undefined || configuration.resolve !== undefined) {
463
+ return fail("must use a static recipe: params and resolve are not supported in workflow steps.")
464
+ }
465
+
466
+ let recipe: SandboxEnvironment
467
+ try {
468
+ recipe = staticSandboxRecipe(configuration)
469
+ } catch (error) {
470
+ if (!(error instanceof SandboxError)) throw error
471
+ // Recipe validation names the invalid field, never its value.
472
+ return fail(`recipe is invalid: ${error.message.replace(/^\[Sixb\] /, "")}`, error)
473
+ }
474
+
475
+ // Sixb adds its API to every other policy when the step runs, so only none cannot reach it.
476
+ if (recipe.network?.mode === "none") {
477
+ return fail(
478
+ 'network mode "none" cannot run an agent: the agent needs the Sixb API. Use { mode: "restricted", allow: [...] } with the origins the project needs; Sixb adds its own.'
479
+ )
480
+ }
481
+
482
+ const { auth } = configuration
483
+ if (auth !== undefined && !(isRecord(auth) && typeof auth.authorize === "function")) {
484
+ return fail("auth requires an authorize function.")
485
+ }
486
+
487
+ const credentialIssue = sandboxCredentialIssue({
488
+ supportsRequestCredentials: value.supportsRequestCredentials === true,
489
+ auth,
490
+ source: recipe.source,
491
+ })
492
+ if (credentialIssue) fail(`is invalid: ${credentialIssue}`)
493
+ }
494
+
423
495
  function assertUniqueNonEmptyAgentStepValues(
424
496
  workflowId: string,
425
497
  stepId: string,
@@ -1,8 +0,0 @@
1
- export declare const DEFAULT_AUTH_SESSION_AUDIENCE = "atlas";
2
- export type AuthSessionAudience = typeof DEFAULT_AUTH_SESSION_AUDIENCE | "app";
3
- export interface AuthSessionAudienceOptions {
4
- readonly audience?: AuthSessionAudience;
5
- }
6
- export declare function isValidAuthSessionAudience(value: string): value is AuthSessionAudience;
7
- export declare function resolveAuthSessionAudience(value: AuthSessionAudience | undefined): AuthSessionAudience;
8
- //# sourceMappingURL=audience.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../../src/auth/audience.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,6BAA6B,UAAU,CAAA;AAEpD,MAAM,MAAM,mBAAmB,GAAG,OAAO,6BAA6B,GAAG,KAAK,CAAA;AAE9E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CACxC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,mBAAmB,CAEtF;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,mBAAmB,GAAG,SAAS,GACrC,mBAAmB,CAWrB"}
@@ -1,18 +0,0 @@
1
- import type { AuthSessionAudience } from "../auth/audience";
2
- import type { AuthorizationContext, ResolvedRole } from "./types";
3
- /** Whether declaring roles has enabled an allowlist for an application. */
4
- export declare function isApplicationAccessControlled(roles: readonly ResolvedRole[], audience: AuthSessionAudience): boolean;
5
- /**
6
- * Whether this principal may open this application.
7
- *
8
- * KNOWN LIMITATION (0.1.x): application access is the one capability that is **not** deny-by-default.
9
- * While no role mentions an application, every authenticated principal may open it; the allowlist only
10
- * switches on once some role grants it. Every other capability — `view`, `apply`, `run`, `observe` —
11
- * denies unless granted, so this is the single asymmetry in the model.
12
- *
13
- * It is deliberate for now: flipping it would lock every project out of Atlas until it declares a role,
14
- * including projects with no security definitions at all. Closing it means shipping a default grant with
15
- * the scaffold first, and it is a breaking change for any project relying on the open default.
16
- */
17
- export declare function canAccessApplication(authorization: AuthorizationContext, roles: readonly ResolvedRole[], audience: AuthSessionAudience): boolean;
18
- //# sourceMappingURL=application-access.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"application-access.d.ts","sourceRoot":"","sources":["../../src/authorization/application-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEjE,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAET;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,oBAAoB,EACnC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAKT"}
@@ -1,14 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/security/redactions.ts", "../src/objects/property-clearance.ts", "../src/agents/authority.ts", "../src/storage/workflow-runs/errors.ts", "../src/storage/workflow-runs/provider.ts"],
4
- "sourcesContent": [
5
- "import type { Redactions } from \"./types\"\n\n/** List the values hidden from a reader that lacks a clearance for their markings. */\nexport function missingClearanceRedactions(ids: Iterable<string>): Redactions {\n return Object.fromEntries([...ids].map((id) => [id, { reason: \"missing_clearance\" }] as const))\n}\n",
6
- "import { AuthorizationError } from \"../authorization/errors\"\nimport type { StoredDomainEvent } from \"../events/types\"\nimport type { OntologyDefinitionCatalog } from \"../ontology/registry\"\nimport { missingClearanceRedactions } from \"../security/redactions\"\nimport type { ExpandedLinkValue, ExpandedObjectRow, ObjectRow } from \"../storage\"\nimport type {\n ObjectQueryAdmissionState,\n ObjectQueryPropertyUse,\n ObjectQuerySemanticAdmission,\n} from \"./query/validate\"\n\n/**\n * The marked properties one reader cannot read, resolved once from its clearances.\n *\n * A property is readable when the reader clears every one of its markings. Unreadable properties\n * are omitted from rows and cannot be used to select, order, or aggregate objects.\n */\nexport interface PropertyClearance {\n /** Marked properties of this object type the reader cannot read. */\n hiddenPropertyIds(objectTypeId: string): ReadonlySet<string>\n /** First marking on the property that the reader is not cleared for. */\n missingMarking(objectTypeId: string, propertyId: string): string | undefined\n}\n\nconst NO_PROPERTIES: ReadonlySet<string> = new Set()\n\n// Readers are built per execution, but few distinct clearance sets exist per ontology.\nconst clearancesByOntology = new WeakMap<\n OntologyDefinitionCatalog,\n Map<string, PropertyClearance | undefined>\n>()\n\n/**\n * Resolve what a reader with these clearances cannot read. Returns `undefined` when it can read\n * every property, so callers skip redaction entirely.\n */\nexport function resolvePropertyClearance(\n ontology: OntologyDefinitionCatalog,\n clearances: ReadonlySet<string>\n): PropertyClearance | undefined {\n let resolved = clearancesByOntology.get(ontology)\n if (!resolved) {\n resolved = new Map()\n clearancesByOntology.set(ontology, resolved)\n }\n const key = JSON.stringify([...clearances].sort())\n if (!resolved.has(key)) resolved.set(key, createPropertyClearance(ontology, clearances))\n return resolved.get(key)\n}\n\nfunction createPropertyClearance(\n ontology: OntologyDefinitionCatalog,\n clearances: ReadonlySet<string>\n): PropertyClearance | undefined {\n const missingByType = new Map<string, ReadonlyMap<string, string>>()\n for (const objectType of ontology.listObjectTypes()) {\n const missing = new Map<string, string>()\n for (const property of objectType.properties) {\n const marking = property.markings?.find((markingId) => !clearances.has(markingId))\n if (marking !== undefined) missing.set(property.id, marking)\n }\n if (missing.size > 0) missingByType.set(objectType.id, missing)\n }\n if (missingByType.size === 0) return undefined\n\n const hiddenByType = new Map(\n [...missingByType].map(([objectTypeId, missing]) => [objectTypeId, new Set(missing.keys())])\n )\n return Object.freeze({\n hiddenPropertyIds: (objectTypeId: string) => hiddenByType.get(objectTypeId) ?? NO_PROPERTIES,\n missingMarking: (objectTypeId: string, propertyId: string) =>\n missingByType.get(objectTypeId)?.get(propertyId),\n })\n}\n\n/**\n * Omit unreadable properties from a row and the objects expanded under it.\n *\n * Every hidden property of the type is listed in `redactions`, whether or not the row holds a\n * value: listing only present values would reveal which hidden properties are empty.\n */\nexport function redactObjectRow<TRow extends ObjectRow>(\n row: TRow,\n clearance: PropertyClearance\n): TRow {\n const hidden = clearance.hiddenPropertyIds(row.objectTypeId)\n const links = row.links\n if (hidden.size === 0 && links === undefined) return row\n\n const redacted: TRow = { ...row }\n if (hidden.size > 0) {\n redacted.properties = withoutKeys(row.properties, hidden)\n redacted.redactions = missingClearanceRedactions(hidden)\n }\n if (links !== undefined) {\n redacted.links = Object.fromEntries(\n Object.entries(links).map(([linkId, value]) => [linkId, redactLinkValue(value, clearance)])\n )\n }\n return redacted\n}\n\nfunction redactLinkValue(\n value: ExpandedLinkValue,\n clearance: PropertyClearance\n): ExpandedLinkValue {\n if (value === null) return null\n if (Array.isArray(value)) return value.map((row) => redactObjectRow(row, clearance))\n // Array.isArray does not narrow a readonly[] away, so assert the single-object case.\n return redactObjectRow(value as ExpandedObjectRow, clearance)\n}\n\n/**\n * Omit unreadable properties from an object event, under the same contract as rows. Other events\n * carry no markable value: link properties and telemetry properties cannot be marked.\n */\nexport function redactDomainEvent(\n event: StoredDomainEvent,\n clearance: PropertyClearance\n): StoredDomainEvent {\n if (event.topic !== \"objects\") return event\n const hidden = clearance.hiddenPropertyIds(event.payload.objectTypeId)\n if (hidden.size === 0) return event\n\n const payload = {\n ...event.payload,\n propertyChanges: withoutKeys(event.payload.propertyChanges, hidden),\n redactions: missingClearanceRedactions(hidden),\n }\n if (event.type === \"object.deleted\") return { ...event, payload }\n return {\n ...event,\n payload: { ...payload, properties: withoutKeys(event.payload.properties, hidden) },\n }\n}\n\nfunction withoutKeys<TValue>(\n record: Readonly<Record<string, TValue>>,\n hidden: ReadonlySet<string>\n): Record<string, TValue> {\n const kept: Record<string, TValue> = {}\n for (const [key, value] of Object.entries(record)) {\n if (!hidden.has(key)) kept[key] = value\n }\n return kept\n}\n\n/**\n * Reject every query use of a property the reader cannot read, except projection.\n *\n * Filtering, ordering, searching, or faceting by a hidden value would reveal it through which\n * objects match and in what order. Projection only shapes the output, which is redacted anyway.\n */\nexport function createClearanceQueryAdmission(\n clearance: PropertyClearance\n): ObjectQuerySemanticAdmission {\n // Each state stands for the object types a query has reached so far. A property without an\n // explicit type is checked against all of them.\n const reachedTypes = new WeakMap<ObjectQueryAdmissionState, readonly string[]>()\n const state = (objectTypeIds: readonly string[]): ObjectQueryAdmissionState => {\n const created = Object.freeze({})\n reachedTypes.set(created, Object.freeze([...objectTypeIds]))\n return created\n }\n const reached = (input: ObjectQueryAdmissionState): readonly string[] => {\n const objectTypeIds = reachedTypes.get(input)\n if (!objectTypeIds) {\n throw new Error(\"[Sixb] Clearance query admission received a state it did not create.\")\n }\n return objectTypeIds\n }\n const empty = state([])\n\n const admission: ObjectQuerySemanticAdmission = {\n empty: () => empty,\n source: (input) => ({ state: state(input.result.objectTypeIds) }),\n edge: (input) => ({ state: state(input.result.objectTypeIds) }),\n // A difference only returns objects of its first input.\n set: (input) =>\n input.op === \"subtract\"\n ? (input.states[0] ?? empty)\n : state([...new Set(input.states.flatMap(reached))]),\n property: (input) => {\n if (input.use === \"project\") return undefined\n const objectTypeIds =\n input.objectTypeId === undefined ? reached(input.state) : [input.objectTypeId]\n for (const objectTypeId of objectTypeIds) {\n const marking = clearance.missingMarking(objectTypeId, input.propertyId)\n if (marking === undefined) continue\n return new AuthorizationError(\n `clearance:marking:${marking}`,\n `[Sixb] Cannot ${PROPERTY_USE_VERBS[input.use]} '${objectTypeId}.${input.propertyId}' at '${input.path}': it requires clearance for marking '${marking}'.`\n )\n }\n return undefined\n },\n }\n return Object.freeze(admission)\n}\n\nconst PROPERTY_USE_VERBS: Readonly<Record<ObjectQueryPropertyUse, string>> = {\n filter: \"filter by\",\n text: \"search\",\n vector: \"run a vector search over\",\n sort: \"sort by\",\n project: \"project\",\n \"expand.orderBy\": \"order expanded objects by\",\n facet: \"facet by\",\n}\n",
7
- "import { principalsEqual, SYSTEM_PRINCIPAL } from \"../auth\"\nimport type { AuthorizationContext } from \"../authorization\"\nimport { resolveAuthorizationContext } from \"../authorization\"\nimport { createSixbError } from \"../errors/internal\"\nimport type { AuthorizablePrincipal, AuthorizationRef } from \"../execution\"\nimport { type PropertyClearance, resolvePropertyClearance } from \"../objects/property-clearance\"\nimport type { OntologyDefinitionCatalog } from \"../ontology/registry\"\nimport type { SecurityDefinitionCatalog } from \"../security\"\nimport type {\n AccessTokenRecord,\n AuthStorage,\n ServiceAccountGroupMembershipRecord,\n ServiceAccountRecord,\n SessionRecord,\n UserRecord,\n} from \"../storage/auth\"\nimport { AuthStorageError } from \"../storage/auth\"\nimport { agentServiceAccountId } from \"./identity\"\n\nexport type AgentExecutionAuthorization =\n | { readonly type: \"principal\"; readonly context: AuthorizationContext }\n | { readonly type: \"disabled\" }\n\n/**\n * The marked properties an Agent execution cannot read, resolved exactly as its object reader\n * resolves them. Disabled authorization reads everything.\n */\nexport function resolveAgentPropertyClearance(\n ontology: OntologyDefinitionCatalog,\n authorization: AgentExecutionAuthorization\n): PropertyClearance | undefined {\n return authorization.type === \"principal\"\n ? resolvePropertyClearance(ontology, authorization.context.clearances ?? new Set())\n : undefined\n}\n\ntype UserCredentialRef = NonNullable<\n Extract<AuthorizationRef, { readonly type: \"principal\" }>[\"credential\"]\n>\n\ninterface CredentialedUserAuthorizationRef {\n readonly type: \"principal\"\n readonly principal: Extract<AuthorizablePrincipal, { readonly type: \"user\" }>\n readonly credential: UserCredentialRef\n}\n\nexport { agentServiceAccountId } from \"./identity\"\n\nexport interface AgentExecutionIdentity {\n readonly serviceAccount: ServiceAccountRecord\n readonly principal: Extract<AuthorizablePrincipal, { readonly type: \"serviceAccount\" }>\n readonly groupMemberships: readonly ServiceAccountGroupMembershipRecord[]\n}\n\n/** Ensure a framework-managed Agent actor exists with exactly its declared group memberships. */\nexport async function ensureManagedAgentExecutionIdentity(input: {\n readonly auth: AuthStorage | undefined\n readonly projectId: string\n readonly actorId: string\n readonly name: string\n readonly description: string\n readonly groupIds: readonly string[]\n}): Promise<AgentExecutionIdentity> {\n const auth = requireAuthStorage(input.auth)\n const id = agentServiceAccountId(input.actorId)\n const now = new Date()\n const loaded = await loadOrCreateAgentServiceAccount(auth, {\n id,\n projectId: input.projectId,\n name: input.name,\n description: input.description,\n updatedAt: now,\n })\n assertFrameworkManagedAgentServiceAccount(input.actorId, loaded)\n assertActiveAgentServiceAccount(input.actorId, loaded)\n const serviceAccount = await updateAgentServiceAccountMetadata(auth, {\n existing: loaded,\n name: input.name,\n description: input.description,\n updatedAt: now,\n })\n assertActiveAgentServiceAccount(input.actorId, serviceAccount)\n\n const groupMemberships = requireDefinitionOwnedGroupMemberships(\n input.actorId,\n await auth.serviceAccountGroupMemberships.reconcileForServiceAccount({\n projectId: input.projectId,\n serviceAccountId: id,\n groupIds: input.groupIds,\n source: \"agent\",\n updatedAt: now,\n })\n )\n\n return {\n serviceAccount,\n principal: { type: \"serviceAccount\", id },\n groupMemberships,\n }\n}\n\n/** Load the managed identity, recovering only the expected concurrent-create race. */\nasync function loadOrCreateAgentServiceAccount(\n auth: AuthStorage,\n input: {\n readonly id: string\n readonly projectId: string\n readonly name: string\n readonly description: string\n readonly updatedAt: Date\n }\n): Promise<ServiceAccountRecord> {\n const existing = await auth.serviceAccounts.getById({\n projectId: input.projectId,\n id: input.id,\n })\n if (existing) return existing\n\n try {\n return await auth.serviceAccounts.create({\n id: input.id,\n projectId: input.projectId,\n name: input.name,\n description: input.description,\n status: \"active\",\n createdByPrincipal: SYSTEM_PRINCIPAL,\n createdAt: input.updatedAt,\n updatedAt: input.updatedAt,\n })\n } catch (error) {\n if (!(error instanceof AuthStorageError) || error.code !== \"duplicate_service_account\") {\n throw error\n }\n const concurrent = await auth.serviceAccounts.getById({\n projectId: input.projectId,\n id: input.id,\n })\n if (!concurrent) throw error\n return concurrent\n }\n}\n\nfunction assertActiveAgentServiceAccount(\n actorId: string,\n serviceAccount: ServiceAccountRecord\n): void {\n if (serviceAccount.status === \"suspended\") {\n throw new Error(\n `[Sixb] Agent '${actorId}' service account '${serviceAccount.id}' is suspended.`\n )\n }\n}\n\nfunction assertFrameworkManagedAgentServiceAccount(\n actorId: string,\n serviceAccount: ServiceAccountRecord\n): void {\n if (\n serviceAccount.createdByPrincipal === undefined ||\n !principalsEqual(serviceAccount.createdByPrincipal, SYSTEM_PRINCIPAL)\n ) {\n throw createSixbError(\n \"agent.execution_failed\",\n `[Sixb] Agent '${actorId}' cannot use service account '${serviceAccount.id}' because it is not managed by Sixb.`,\n { details: { actorId, serviceAccountId: serviceAccount.id } }\n )\n }\n}\n\nfunction requireDefinitionOwnedGroupMemberships(\n actorId: string,\n memberships: readonly ServiceAccountGroupMembershipRecord[]\n): readonly ServiceAccountGroupMembershipRecord[] {\n const externalGroupIds = memberships\n .filter((membership) => membership.source !== \"agent\")\n .map((membership) => membership.groupId)\n if (externalGroupIds.length > 0) {\n throw createSixbError(\n \"agent.execution_failed\",\n `[Sixb] Agent '${actorId}' service account has group memberships not managed by its definition: ${externalGroupIds.join(\", \")}.`,\n { details: { actorId, externalGroupIds } }\n )\n }\n return memberships\n}\n\n/** Resolve current grants for the service account referenced by a durable Agent execution. */\nexport async function resolveAgentExecutionAuthorization(input: {\n readonly auth: AuthStorage | undefined\n readonly projectId: string\n readonly actorId: string\n readonly authorizationRef: AuthorizationRef\n readonly security: SecurityDefinitionCatalog\n}): Promise<{ readonly identity: AgentExecutionIdentity; readonly context: AuthorizationContext }> {\n const auth = requireAuthStorage(input.auth)\n const expectedId = agentServiceAccountId(input.actorId)\n const principal =\n input.authorizationRef.type === \"principal\" ? input.authorizationRef.principal : null\n if (principal?.type !== \"serviceAccount\" || principal.id !== expectedId) {\n throw new Error(\n `[Sixb] Agent '${input.actorId}' execution authority must reference service account '${expectedId}'.`\n )\n }\n\n const serviceAccount = await auth.serviceAccounts.getById({\n projectId: input.projectId,\n id: principal.id,\n })\n if (!serviceAccount || serviceAccount.status !== \"active\") {\n throw new Error(`[Sixb] Agent service account '${principal.id}' is not active.`)\n }\n assertFrameworkManagedAgentServiceAccount(input.actorId, serviceAccount)\n\n const groupMemberships = requireDefinitionOwnedGroupMemberships(\n input.actorId,\n await auth.serviceAccountGroupMemberships.listForServiceAccount({\n projectId: input.projectId,\n serviceAccountId: principal.id,\n })\n )\n const identity: AgentExecutionIdentity = {\n serviceAccount,\n principal: { type: \"serviceAccount\", id: principal.id },\n groupMemberships,\n }\n return {\n identity,\n context: resolveAuthorizationContext({\n principal: identity.principal,\n groupIds: groupMemberships.map((membership) => membership.groupId),\n roles: input.security.listResolvedRoles(),\n }),\n }\n}\n\n/** Revalidate the durable user authority inherited by a conversational or child Agent. */\nexport async function resolveInheritedAgentExecutionAuthorization(input: {\n readonly auth: AuthStorage | undefined\n readonly projectId: string\n readonly authorizationRef: AuthorizationRef\n readonly security: SecurityDefinitionCatalog\n readonly now?: Date\n}): Promise<AgentExecutionAuthorization> {\n if (input.authorizationRef.type === \"disabled\") return { type: \"disabled\" }\n\n const ref = requireCredentialedUserAuthority(input.authorizationRef)\n const auth = requireAuthStorage(input.auth)\n const now = input.now ?? new Date()\n const user = await requireActiveUser(auth, input.projectId, ref.principal.id)\n const memberships = await auth.groupMemberships.listForUser({\n projectId: input.projectId,\n userId: user.id,\n })\n const credential = await revalidateUserCredential({\n auth,\n projectId: input.projectId,\n userId: user.id,\n credential: ref.credential,\n currentGroupIds: memberships.map((membership) => membership.groupId),\n now,\n })\n\n return {\n type: \"principal\",\n context: resolveAuthorizationContext({\n principal: ref.principal,\n groupIds: credential.groupIds,\n roles: input.security.listResolvedRoles(),\n ...(credential.sessionId === undefined ? {} : { sessionId: credential.sessionId }),\n }),\n }\n}\n\nfunction requireCredentialedUserAuthority(ref: AuthorizationRef): CredentialedUserAuthorizationRef {\n if (ref.type !== \"principal\" || ref.principal.type !== \"user\" || ref.credential === undefined) {\n throw invalidInheritedAuthority(\"the durable reference is not a credentialed user\")\n }\n return {\n type: \"principal\",\n principal: { type: \"user\", id: ref.principal.id },\n credential: { type: ref.credential.type, id: ref.credential.id },\n }\n}\n\nasync function requireActiveUser(\n auth: AuthStorage,\n projectId: string,\n userId: string\n): Promise<UserRecord> {\n const user = await auth.users.getById({ projectId, id: userId })\n if (!user || user.status !== \"active\") {\n throw invalidInheritedAuthority(`user '${userId}' is not active`)\n }\n return user\n}\n\nasync function revalidateUserCredential(input: {\n readonly auth: AuthStorage\n readonly projectId: string\n readonly userId: string\n readonly credential: UserCredentialRef\n readonly currentGroupIds: readonly string[]\n readonly now: Date\n}): Promise<{ readonly groupIds: readonly string[]; readonly sessionId?: string }> {\n if (input.credential.type === \"session\") {\n const session = await input.auth.sessions.getById({\n projectId: input.projectId,\n id: input.credential.id,\n })\n if (!isUsableUserSession(session, input.userId, input.now)) {\n throw invalidInheritedAuthority(\"the inherited session is no longer valid\")\n }\n return { groupIds: input.currentGroupIds, sessionId: session.id }\n }\n\n const accessToken = await input.auth.accessTokens.getById({\n projectId: input.projectId,\n id: input.credential.id,\n })\n if (!isUsableUserAccessToken(accessToken, input.userId, input.now)) {\n throw invalidInheritedAuthority(\"the inherited access token is no longer valid\")\n }\n if (accessToken.groupIds === undefined) return { groupIds: input.currentGroupIds }\n\n const allowedGroupIds = new Set(accessToken.groupIds)\n return {\n groupIds: input.currentGroupIds.filter((groupId) => allowedGroupIds.has(groupId)),\n }\n}\n\nfunction isUsableUserSession(\n session: SessionRecord | null,\n userId: string,\n now: Date\n): session is SessionRecord {\n if (!session || session.userId !== userId || session.revokedAt !== undefined) return false\n if (session.expiresAt.getTime() <= now.getTime()) return false\n return (\n session.absoluteExpiresAt === undefined || session.absoluteExpiresAt.getTime() > now.getTime()\n )\n}\n\nfunction isUsableUserAccessToken(\n token: AccessTokenRecord | null,\n userId: string,\n now: Date\n): token is AccessTokenRecord {\n if (!token || !principalsEqual(token.subject, { type: \"user\", id: userId })) return false\n return token.revokedAt === undefined && token.expiresAt.getTime() > now.getTime()\n}\n\nfunction invalidInheritedAuthority(reason: string): Error {\n return createSixbError(\n \"agent.execution_failed\",\n `[Sixb] The Agent execution cannot restore its inherited authority: ${reason}.`\n )\n}\n\nfunction requireAuthStorage(auth: AuthStorage | undefined): AuthStorage {\n if (!auth) {\n throw new Error(\"[Sixb] Agent executions require auth storage.\")\n }\n return auth\n}\n\nasync function updateAgentServiceAccountMetadata(\n auth: AuthStorage,\n input: {\n readonly existing: ServiceAccountRecord\n readonly name: string\n readonly description: string\n readonly updatedAt: Date\n }\n): Promise<ServiceAccountRecord> {\n if (input.existing.name === input.name && input.existing.description === input.description) {\n return input.existing\n }\n return auth.serviceAccounts.update({\n projectId: input.existing.projectId,\n id: input.existing.id,\n name: input.name,\n description: input.description,\n updatedAt: input.updatedAt,\n })\n}\n",
8
- "/**\n * Base error for workflow-run storage operations.\n */\nexport class WorkflowRunError extends Error {\n readonly name = \"WorkflowRunError\"\n}\n",
9
- "import { agentServiceAccountId } from \"../../agents/authority\"\nimport type { ExecutionStorage } from \"../executions\"\nimport { findAgentRunExecution, findPrimitiveRunExecution } from \"../executions/run-link\"\nimport { WorkflowRunError } from \"./errors\"\n\n/** Validate the semantic link between a durable workflow run and its immutable execution. */\nexport async function assertWorkflowRunExecution(input: {\n readonly executions: ExecutionStorage\n readonly projectId: string\n readonly executionId: string\n readonly runId: string\n readonly workflowId: string\n}): Promise<void> {\n const execution = await findPrimitiveRunExecution({\n executions: input.executions,\n projectId: input.projectId,\n executionId: input.executionId,\n primitive: { kind: \"workflow\", id: input.workflowId, runId: input.runId },\n sourceTypes: [\"execution\", \"schedule\", \"event\"],\n })\n if (!execution) {\n invalidExecution(input.executionId, input.runId)\n }\n\n if (execution.source.type === \"schedule\" || execution.source.type === \"event\") {\n if (execution.requestedBy !== undefined) {\n invalidExecution(input.executionId, input.runId)\n }\n return\n }\n\n // ExecutionStorage already validates the immutable parent reference, correlation id, and\n // requested-by propagation. This boundary only owns the workflow-specific source restriction.\n if (execution.source.type !== \"execution\") {\n invalidExecution(input.executionId, input.runId)\n }\n}\n\n/** Validate the semantic link between a Workflow Agent-node run and its child execution. */\nexport async function assertWorkflowAgentNodeRunExecution(input: {\n readonly executions: ExecutionStorage\n readonly projectId: string\n readonly executionId: string\n readonly nodeRunId: string\n readonly actorId: string\n readonly workflowExecutionId: string\n}): Promise<void> {\n const execution = await findAgentRunExecution({\n executions: input.executions,\n projectId: input.projectId,\n executionId: input.executionId,\n runId: input.nodeRunId,\n authority: { type: \"managed\", serviceAccountId: agentServiceAccountId(input.actorId) },\n })\n if (\n !execution ||\n execution.source.type !== \"execution\" ||\n execution.source.executionId !== input.workflowExecutionId\n ) {\n throw new WorkflowRunError(\n `[Sixb] Execution '${input.executionId}' does not authorize Workflow Agent-node run '${input.nodeRunId}'.`\n )\n }\n}\n\nfunction invalidExecution(executionId: string, runId: string): never {\n throw new WorkflowRunError(\n `[Sixb] Execution '${executionId}' does not authorize workflow run '${runId}'.`\n )\n}\n"
10
- ],
11
- "mappings": "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",
12
- "debugId": "86420060B98AACE864756E2164756E21",
13
- "names": []
14
- }
@@ -1,85 +0,0 @@
1
- // @bun
2
- import {
3
- isPrimitiveSchema
4
- } from "./chunk-hvsb78a1.js";
5
- import {
6
- isPlainRecord
7
- } from "./chunk-wy0qdqfm.js";
8
-
9
- // src/ontology/validation/definition.ts
10
- function assertValidSchema(schema, path, invalid, visiting = new Set) {
11
- if (typeof schema === "string") {
12
- if (isPrimitiveSchema(schema)) {
13
- return;
14
- }
15
- throw invalid(path);
16
- }
17
- if (!isPlainRecord(schema) || typeof schema.type !== "string" || visiting.has(schema)) {
18
- throw invalid(path);
19
- }
20
- visiting.add(schema);
21
- switch (schema.type) {
22
- case "enum": {
23
- const values = schema.values;
24
- const validValues = isValidEnumValues(values, schema.valueType);
25
- if (!validValues || new Set(values).size !== values.length) {
26
- throw invalid(path);
27
- }
28
- break;
29
- }
30
- case "array":
31
- assertValidSchema(schema.items, `${path}.items`, invalid, visiting);
32
- break;
33
- case "map":
34
- if (schema.keySchema !== "string") {
35
- throw invalid(path);
36
- }
37
- assertValidSchema(schema.valueSchema, `${path}.valueSchema`, invalid, visiting);
38
- break;
39
- case "object": {
40
- if (!isPlainRecord(schema.properties)) {
41
- throw invalid(path);
42
- }
43
- for (const [fieldId, field] of Object.entries(schema.properties)) {
44
- if (!fieldId.trim() || !isPlainRecord(field) || !("schema" in field)) {
45
- throw invalid(`${path}.properties.${fieldId}`);
46
- }
47
- if (field.required !== undefined && typeof field.required !== "boolean" || field.nullable !== undefined && typeof field.nullable !== "boolean" || field.description !== undefined && (typeof field.description !== "string" || !field.description.trim())) {
48
- throw invalid(`${path}.properties.${fieldId}`);
49
- }
50
- assertValidSchema(field.schema, `${path}.properties.${fieldId}.schema`, invalid, visiting);
51
- }
52
- break;
53
- }
54
- case "valueTypeRef":
55
- if (typeof schema.valueTypeId !== "string" || !schema.valueTypeId.trim()) {
56
- throw invalid(path);
57
- }
58
- if (schema._resolved !== undefined) {
59
- assertValidSchema(schema._resolved, `${path}._resolved`, invalid, visiting);
60
- }
61
- break;
62
- default:
63
- throw invalid(path);
64
- }
65
- visiting.delete(schema);
66
- }
67
- function isValidEnumValues(values, valueType) {
68
- if (!Array.isArray(values) || values.length === 0) {
69
- return false;
70
- }
71
- for (let index = 0;index < values.length; index += 1) {
72
- if (!Object.hasOwn(values, index)) {
73
- return false;
74
- }
75
- const value = values[index];
76
- if (valueType === "string" ? typeof value !== "string" : valueType !== "integer" || typeof value !== "number" || !Number.isInteger(value)) {
77
- return false;
78
- }
79
- }
80
- return true;
81
- }
82
-
83
- export { assertValidSchema };
84
-
85
- //# debugId=6F187C1748947F4164756E2164756E21
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/ontology/validation/definition.ts"],
4
- "sourcesContent": [
5
- "import { isPlainRecord } from \"../../json\"\nimport { isPrimitiveSchema } from \"../primitives\"\n\n/** Validate a declarative schema's shape independently of the primitive that consumes it. */\nexport function assertValidSchema(\n schema: unknown,\n path: string,\n invalid: (path: string) => Error,\n visiting: Set<object> = new Set()\n): void {\n if (typeof schema === \"string\") {\n if (isPrimitiveSchema(schema)) {\n return\n }\n throw invalid(path)\n }\n if (!isPlainRecord(schema) || typeof schema.type !== \"string\" || visiting.has(schema)) {\n throw invalid(path)\n }\n\n visiting.add(schema)\n switch (schema.type) {\n case \"enum\": {\n const values = schema.values\n const validValues = isValidEnumValues(values, schema.valueType)\n if (!validValues || new Set(values).size !== values.length) {\n throw invalid(path)\n }\n break\n }\n case \"array\":\n assertValidSchema(schema.items, `${path}.items`, invalid, visiting)\n break\n case \"map\":\n if (schema.keySchema !== \"string\") {\n throw invalid(path)\n }\n assertValidSchema(schema.valueSchema, `${path}.valueSchema`, invalid, visiting)\n break\n case \"object\": {\n if (!isPlainRecord(schema.properties)) {\n throw invalid(path)\n }\n for (const [fieldId, field] of Object.entries(schema.properties)) {\n if (!fieldId.trim() || !isPlainRecord(field) || !(\"schema\" in field)) {\n throw invalid(`${path}.properties.${fieldId}`)\n }\n if (\n (field.required !== undefined && typeof field.required !== \"boolean\") ||\n (field.nullable !== undefined && typeof field.nullable !== \"boolean\") ||\n (field.description !== undefined &&\n (typeof field.description !== \"string\" || !field.description.trim()))\n ) {\n throw invalid(`${path}.properties.${fieldId}`)\n }\n assertValidSchema(field.schema, `${path}.properties.${fieldId}.schema`, invalid, visiting)\n }\n break\n }\n case \"valueTypeRef\":\n if (typeof schema.valueTypeId !== \"string\" || !schema.valueTypeId.trim()) {\n throw invalid(path)\n }\n if (schema._resolved !== undefined) {\n assertValidSchema(schema._resolved, `${path}._resolved`, invalid, visiting)\n }\n break\n default:\n throw invalid(path)\n }\n visiting.delete(schema)\n}\n\nfunction isValidEnumValues(values: unknown, valueType: unknown): values is unknown[] {\n if (!Array.isArray(values) || values.length === 0) {\n return false\n }\n\n for (let index = 0; index < values.length; index += 1) {\n if (!Object.hasOwn(values, index)) {\n return false\n }\n const value = values[index]\n if (\n valueType === \"string\"\n ? typeof value !== \"string\"\n : valueType !== \"integer\" || typeof value !== \"number\" || !Number.isInteger(value)\n ) {\n return false\n }\n }\n return true\n}\n"
6
- ],
7
- "mappings": ";;;;;;;;;AAIO,SAAS,iBAAiB,CAC/B,QACA,MACA,SACA,WAAwB,IAAI,KACtB;AAAA,EACN,IAAI,OAAO,WAAW,UAAU;AAAA,IAC9B,IAAI,kBAAkB,MAAM,GAAG;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,IAAI;AAAA,EACpB;AAAA,EACA,IAAI,CAAC,cAAc,MAAM,KAAK,OAAO,OAAO,SAAS,YAAY,SAAS,IAAI,MAAM,GAAG;AAAA,IACrF,MAAM,QAAQ,IAAI;AAAA,EACpB;AAAA,EAEA,SAAS,IAAI,MAAM;AAAA,EACnB,QAAQ,OAAO;AAAA,SACR,QAAQ;AAAA,MACX,MAAM,SAAS,OAAO;AAAA,MACtB,MAAM,cAAc,kBAAkB,QAAQ,OAAO,SAAS;AAAA,MAC9D,IAAI,CAAC,eAAe,IAAI,IAAI,MAAM,EAAE,SAAS,OAAO,QAAQ;AAAA,QAC1D,MAAM,QAAQ,IAAI;AAAA,MACpB;AAAA,MACA;AAAA,IACF;AAAA,SACK;AAAA,MACH,kBAAkB,OAAO,OAAO,GAAG,cAAc,SAAS,QAAQ;AAAA,MAClE;AAAA,SACG;AAAA,MACH,IAAI,OAAO,cAAc,UAAU;AAAA,QACjC,MAAM,QAAQ,IAAI;AAAA,MACpB;AAAA,MACA,kBAAkB,OAAO,aAAa,GAAG,oBAAoB,SAAS,QAAQ;AAAA,MAC9E;AAAA,SACG,UAAU;AAAA,MACb,IAAI,CAAC,cAAc,OAAO,UAAU,GAAG;AAAA,QACrC,MAAM,QAAQ,IAAI;AAAA,MACpB;AAAA,MACA,YAAY,SAAS,UAAU,OAAO,QAAQ,OAAO,UAAU,GAAG;AAAA,QAChE,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE,YAAY,QAAQ;AAAA,UACpE,MAAM,QAAQ,GAAG,mBAAmB,SAAS;AAAA,QAC/C;AAAA,QACA,IACG,MAAM,aAAa,aAAa,OAAO,MAAM,aAAa,aAC1D,MAAM,aAAa,aAAa,OAAO,MAAM,aAAa,aAC1D,MAAM,gBAAgB,cACpB,OAAO,MAAM,gBAAgB,YAAY,CAAC,MAAM,YAAY,KAAK,IACpE;AAAA,UACA,MAAM,QAAQ,GAAG,mBAAmB,SAAS;AAAA,QAC/C;AAAA,QACA,kBAAkB,MAAM,QAAQ,GAAG,mBAAmB,kBAAkB,SAAS,QAAQ;AAAA,MAC3F;AAAA,MACA;AAAA,IACF;AAAA,SACK;AAAA,MACH,IAAI,OAAO,OAAO,gBAAgB,YAAY,CAAC,OAAO,YAAY,KAAK,GAAG;AAAA,QACxE,MAAM,QAAQ,IAAI;AAAA,MACpB;AAAA,MACA,IAAI,OAAO,cAAc,WAAW;AAAA,QAClC,kBAAkB,OAAO,WAAW,GAAG,kBAAkB,SAAS,QAAQ;AAAA,MAC5E;AAAA,MACA;AAAA;AAAA,MAEA,MAAM,QAAQ,IAAI;AAAA;AAAA,EAEtB,SAAS,OAAO,MAAM;AAAA;AAGxB,SAAS,iBAAiB,CAAC,QAAiB,WAAyC;AAAA,EACnF,IAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW,GAAG;AAAA,IACjD,OAAO;AAAA,EACT;AAAA,EAEA,SAAS,QAAQ,EAAG,QAAQ,OAAO,QAAQ,SAAS,GAAG;AAAA,IACrD,IAAI,CAAC,OAAO,OAAO,QAAQ,KAAK,GAAG;AAAA,MACjC,OAAO;AAAA,IACT;AAAA,IACA,MAAM,QAAQ,OAAO;AAAA,IACrB,IACE,cAAc,WACV,OAAO,UAAU,WACjB,cAAc,aAAa,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,KAAK,GACnF;AAAA,MACA,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,OAAO;AAAA;",
8
- "debugId": "6F187C1748947F4164756E2164756E21",
9
- "names": []
10
- }
@@ -1,13 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/auth/errors.ts", "../src/auth/audience.ts", "../src/auth/cookies.ts", "../src/auth/validation.ts"],
4
- "sourcesContent": [
5
- "export type AuthRuntimeErrorCode =\n | \"authentication_required\"\n | \"auth_storage_missing\"\n | \"authorization_denied\"\n | \"invalid_auth_input\"\n | \"invalid_auth_config\"\n | \"rate_limited\"\n | \"production_auth_required\"\n\nexport class AuthRuntimeError extends Error {\n readonly name = \"AuthRuntimeError\"\n\n constructor(\n readonly code: AuthRuntimeErrorCode,\n message: string\n ) {\n super(message)\n }\n}\n\n/** Why a strategy refused someone who authenticated. Each is something a person can act on. */\nexport type SignInRefusalReason =\n | \"not_invited\"\n | \"suspended\"\n | \"domain_not_allowed\"\n | \"no_trusted_address\"\n\n/**\n * Thrown by a strategy that refuses a sign-in for a known reason. The sign-in page tells the\n * person which reason, naming `email` when there is one; `message` is for the server log.\n */\nexport class SignInRefusedError extends Error {\n readonly name = \"SignInRefusedError\"\n\n constructor(\n readonly reason: SignInRefusalReason,\n message: string,\n readonly email?: string\n ) {\n super(message)\n }\n}\n",
6
- "import { AuthRuntimeError } from \"./errors\"\n\nexport const DEFAULT_AUTH_SESSION_AUDIENCE = \"atlas\"\n\nexport type AuthSessionAudience = typeof DEFAULT_AUTH_SESSION_AUDIENCE | \"app\"\n\nexport interface AuthSessionAudienceOptions {\n readonly audience?: AuthSessionAudience\n}\n\nexport function isValidAuthSessionAudience(value: string): value is AuthSessionAudience {\n return value === \"atlas\" || value === \"app\"\n}\n\nexport function resolveAuthSessionAudience(\n value: AuthSessionAudience | undefined\n): AuthSessionAudience {\n const audience = value ?? DEFAULT_AUTH_SESSION_AUDIENCE\n\n if (!isValidAuthSessionAudience(audience)) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n `[Sixb] Auth session audience '${audience}' is invalid. Expected 'atlas' or 'app'.`\n )\n }\n\n return audience\n}\n",
7
- "import type { AuthSessionAudience } from \"./audience\"\nimport { DEFAULT_AUTH_SESSION_AUDIENCE, resolveAuthSessionAudience } from \"./audience\"\nimport type { AuthCookieOptions } from \"./types\"\n\nexport const DEFAULT_SESSION_COOKIE_NAME = \"sixb_session\"\nexport const DEFAULT_CSRF_COOKIE_NAME = \"sixb_csrf\"\n\nexport interface ResolvedAuthCookieOptions {\n readonly sessionCookieName: string\n readonly csrfCookieName: string\n readonly domain?: string\n readonly secure: boolean | \"auto\"\n readonly sameSite: \"strict\"\n readonly csrfHttpOnly: boolean\n}\n\ninterface CookieSerializationOptions {\n readonly name: string\n readonly value: string\n readonly httpOnly?: boolean\n readonly maxAge?: number\n readonly expires?: Date\n readonly domain?: string\n readonly secure?: boolean\n readonly sameSite: \"strict\"\n}\n\nexport function resolveAuthCookieOptions(\n options: AuthCookieOptions | undefined\n): ResolvedAuthCookieOptions {\n const resolved = {\n sessionCookieName: options?.sessionCookieName ?? DEFAULT_SESSION_COOKIE_NAME,\n csrfCookieName: options?.csrfCookieName ?? DEFAULT_CSRF_COOKIE_NAME,\n domain: options?.cookieDomain,\n secure: options?.secure ?? \"auto\",\n sameSite: options?.sameSite ?? \"strict\",\n csrfHttpOnly: options?.csrfHttpOnly ?? false,\n }\n\n assertValidCookieOptions(resolved)\n return resolved\n}\n\nexport function resolveAuthCookieOptionsForAudience(\n options: ResolvedAuthCookieOptions,\n audience: AuthSessionAudience | undefined\n): ResolvedAuthCookieOptions {\n const resolvedAudience = resolveAuthSessionAudience(audience)\n if (resolvedAudience === DEFAULT_AUTH_SESSION_AUDIENCE) {\n return options\n }\n\n return {\n ...options,\n sessionCookieName: `${options.sessionCookieName}_${resolvedAudience}`,\n csrfCookieName: `${options.csrfCookieName}_${resolvedAudience}`,\n }\n}\n\nexport function parseCookieHeader(header: string | null): ReadonlyMap<string, string> {\n const cookies = new Map<string, string>()\n if (!header) {\n return cookies\n }\n\n for (const part of header.split(\";\")) {\n const separator = part.indexOf(\"=\")\n if (separator <= 0) {\n continue\n }\n\n const name = part.slice(0, separator).trim()\n if (!name || cookies.has(name)) {\n continue\n }\n\n const value = part.slice(separator + 1).trim()\n cookies.set(name, value)\n }\n\n return cookies\n}\n\nexport function getCookie(request: Request, name: string): string | undefined {\n return parseCookieHeader(request.headers.get(\"cookie\")).get(name)\n}\n\nexport function serializeCookie(options: CookieSerializationOptions): string {\n const parts = [`${options.name}=${options.value}`]\n\n parts.push(\"Path=/\")\n parts.push(\"SameSite=Strict\")\n\n if (options.domain) {\n parts.push(`Domain=${options.domain}`)\n }\n\n if (options.httpOnly) {\n parts.push(\"HttpOnly\")\n }\n\n if (options.secure) {\n parts.push(\"Secure\")\n }\n\n if (options.maxAge !== undefined) {\n parts.push(`Max-Age=${Math.trunc(options.maxAge)}`)\n }\n\n if (options.expires) {\n parts.push(`Expires=${options.expires.toUTCString()}`)\n }\n\n return parts.join(\"; \")\n}\n\nexport function shouldUseSecureCookies(\n request: Request,\n options: ResolvedAuthCookieOptions\n): boolean {\n if (\n requiresSecureCookieName(options.sessionCookieName) ||\n requiresSecureCookieName(options.csrfCookieName)\n ) {\n return true\n }\n\n if (typeof options.secure === \"boolean\") {\n return options.secure\n }\n\n const url = new URL(request.url)\n if (isLocalhost(url.hostname)) {\n return false\n }\n\n return url.protocol === \"https:\" || process.env.NODE_ENV === \"production\"\n}\n\nexport function createSessionCookieHeader(params: {\n readonly request: Request\n readonly value: string\n readonly expiresAt: Date\n readonly options: ResolvedAuthCookieOptions\n}): string {\n const lifetime = resolveCookieLifetime(params.expiresAt)\n return serializeCookie({\n name: params.options.sessionCookieName,\n value: params.value,\n httpOnly: true,\n ...lifetime,\n domain: params.options.domain,\n secure: shouldUseSecureCookies(params.request, params.options),\n sameSite: params.options.sameSite,\n })\n}\n\nexport function createCsrfCookieHeader(params: {\n readonly request: Request\n readonly value: string\n readonly expiresAt: Date\n readonly options: ResolvedAuthCookieOptions\n}): string {\n const lifetime = resolveCookieLifetime(params.expiresAt)\n return serializeCookie({\n name: params.options.csrfCookieName,\n value: params.value,\n httpOnly: params.options.csrfHttpOnly,\n ...lifetime,\n domain: params.options.domain,\n secure: shouldUseSecureCookies(params.request, params.options),\n sameSite: params.options.sameSite,\n })\n}\n\nfunction resolveCookieLifetime(expiresAt: Date): {\n readonly maxAge: number\n readonly expires: Date\n} {\n const expiresAtMs = expiresAt.getTime()\n if (!Number.isFinite(expiresAtMs)) {\n throw new Error(\"[Sixb] Auth cookie expiresAt must be a valid date.\")\n }\n\n return {\n maxAge: Math.max(0, Math.floor((expiresAtMs - Date.now()) / 1000)),\n expires: new Date(expiresAtMs),\n }\n}\n\nexport function clearSessionCookieHeader(params: {\n readonly request: Request\n readonly options: ResolvedAuthCookieOptions\n}): string {\n return serializeCookie({\n name: params.options.sessionCookieName,\n value: \"\",\n httpOnly: true,\n maxAge: 0,\n expires: new Date(0),\n domain: params.options.domain,\n secure: shouldUseSecureCookies(params.request, params.options),\n sameSite: params.options.sameSite,\n })\n}\n\nexport function clearCsrfCookieHeader(params: {\n readonly request: Request\n readonly options: ResolvedAuthCookieOptions\n}): string {\n return serializeCookie({\n name: params.options.csrfCookieName,\n value: \"\",\n maxAge: 0,\n expires: new Date(0),\n domain: params.options.domain,\n secure: shouldUseSecureCookies(params.request, params.options),\n sameSite: params.options.sameSite,\n })\n}\n\nfunction isLocalhost(hostname: string): boolean {\n return hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\"\n}\n\nfunction assertValidCookieOptions(options: ResolvedAuthCookieOptions): void {\n assertValidCookieName(options.sessionCookieName, \"sessionCookieName\")\n assertValidCookieName(options.csrfCookieName, \"csrfCookieName\")\n\n if (options.sameSite !== \"strict\") {\n throw new Error(\"[Sixb] Auth cookie sameSite must be 'strict'.\")\n }\n\n if (\n options.domain &&\n (isHostPrefixedCookieName(options.sessionCookieName) ||\n isHostPrefixedCookieName(options.csrfCookieName))\n ) {\n throw new Error(\"[Sixb] __Host- auth cookies cannot be configured with cookieDomain.\")\n }\n\n if (\n options.secure === false &&\n (requiresSecureCookieName(options.sessionCookieName) ||\n requiresSecureCookieName(options.csrfCookieName))\n ) {\n throw new Error(\"[Sixb] __Host- auth cookies require secure cookies.\")\n }\n}\n\nfunction assertValidCookieName(name: string, label: string): void {\n if (!/^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/.test(name)) {\n throw new Error(`[Sixb] Auth cookie ${label} '${name}' is not a valid cookie name.`)\n }\n}\n\nfunction isHostPrefixedCookieName(name: string): boolean {\n return name.startsWith(\"__Host-\")\n}\n\nfunction requiresSecureCookieName(name: string): boolean {\n return isHostPrefixedCookieName(name) || name.startsWith(\"__Secure-\")\n}\n",
8
- "import { resolveAuthCookieOptions } from \"./cookies\"\nimport { AuthRuntimeError } from \"./errors\"\nimport type {\n AuthSessionOptions,\n AuthStrategy,\n InvitationDeliveryAuthStrategy,\n MagicLinkAuthStrategy,\n OidcAuthStrategy,\n ResolvedAuthConfig,\n SixbAuthConfig,\n} from \"./types\"\n\nconst DAY = 24 * 60 * 60 * 1000\n\nexport const DEFAULT_AUTH_SESSION_IDLE_TIMEOUT_MS = 30 * DAY\nexport const DEFAULT_AUTH_SESSION_RENEWAL_WINDOW_MS = 7 * DAY\nexport const DEFAULT_AUTH_INVITATION_TTL_MS = 7 * DAY\nexport const MAX_AUTH_INVITATION_TTL_MS = 30 * DAY\n/**\n * Default in-process session cache window. Short enough that a revoked session lingers\n * only briefly, long enough to collapse a burst of requests to a single auth resolution.\n */\nexport const DEFAULT_AUTH_SESSION_CACHE_TTL_MS = 5_000\n\nexport { resolveAuthSessionAudience } from \"./audience\"\n\nexport function resolveAuthConfig(config: SixbAuthConfig | undefined): ResolvedAuthConfig {\n if (!config) {\n return {\n strategy: null,\n session: resolveAuthSessionOptions(undefined),\n cookies: resolveAuthCookieOptions(undefined),\n }\n }\n\n const strategy = \"strategy\" in config ? config.strategy : config\n assertValidStrategy(strategy)\n\n return {\n strategy,\n session: resolveAuthSessionOptions(\"strategy\" in config ? config.session : undefined),\n cookies: resolveAuthCookieOptions(\"strategy\" in config ? config.cookies : undefined),\n }\n}\n\nexport function resolveInvitationExpiresAt(value: Date | undefined, now: Date): Date {\n const expiresAt = value\n ? new Date(value)\n : new Date(now.getTime() + DEFAULT_AUTH_INVITATION_TTL_MS)\n const expiresAtTime = expiresAt.getTime()\n\n if (!Number.isFinite(expiresAtTime)) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n \"[Sixb] Invitation expiresAt must be a valid date.\"\n )\n }\n\n if (expiresAtTime <= now.getTime()) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n \"[Sixb] Invitation expiresAt must be in the future.\"\n )\n }\n\n if (expiresAtTime > now.getTime() + MAX_AUTH_INVITATION_TTL_MS) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n \"[Sixb] Invitation expiresAt must be no more than 30 days in the future.\"\n )\n }\n\n return expiresAt\n}\n\nexport function sanitizeReturnTo(value: string | undefined): string {\n if (!value || !value.startsWith(\"/\") || value.startsWith(\"//\")) {\n return \"/\"\n }\n\n try {\n const parsed = new URL(value, \"http://sixb.local\")\n if (parsed.origin !== \"http://sixb.local\") {\n return \"/\"\n }\n\n return `${parsed.pathname}${parsed.search}${parsed.hash}`\n } catch {\n return \"/\"\n }\n}\n\nexport function assertNonEmpty(value: string, label: string): string {\n const normalized = value.trim()\n if (!normalized) {\n throw new AuthRuntimeError(\"invalid_auth_input\", `[Sixb] ${label} must be a non-empty string.`)\n }\n return normalized\n}\n\nexport function normalizePagination(input: { readonly limit?: number; readonly offset?: number }): {\n readonly limit?: number\n readonly offset: number\n} {\n if (input.limit !== undefined && (!Number.isInteger(input.limit) || input.limit < 0)) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n \"[Sixb] Invitation list limit must be a non-negative integer.\"\n )\n }\n\n if (input.offset !== undefined && (!Number.isInteger(input.offset) || input.offset < 0)) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n \"[Sixb] Invitation list offset must be a non-negative integer.\"\n )\n }\n\n return {\n limit: input.limit,\n offset: input.offset ?? 0,\n }\n}\n\nfunction resolveAuthSessionOptions(\n options: AuthSessionOptions | undefined\n): ResolvedAuthConfig[\"session\"] {\n const idleTimeoutMs = options?.idleTimeoutMs ?? DEFAULT_AUTH_SESSION_IDLE_TIMEOUT_MS\n if (!Number.isFinite(idleTimeoutMs) || idleTimeoutMs <= 0) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n \"[Sixb] Auth session idleTimeoutMs must be a positive finite number.\"\n )\n }\n\n const renewalWindowMs = options?.renewalWindowMs ?? DEFAULT_AUTH_SESSION_RENEWAL_WINDOW_MS\n if (!Number.isFinite(renewalWindowMs) || renewalWindowMs <= 0) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n \"[Sixb] Auth session renewalWindowMs must be a positive finite number.\"\n )\n }\n if (renewalWindowMs >= idleTimeoutMs) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n \"[Sixb] Auth session renewalWindowMs must be less than idleTimeoutMs.\"\n )\n }\n\n const absoluteTimeoutMs = options?.absoluteTimeoutMs\n if (\n absoluteTimeoutMs !== undefined &&\n (!Number.isFinite(absoluteTimeoutMs) || absoluteTimeoutMs <= 0)\n ) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n \"[Sixb] Auth session absoluteTimeoutMs must be a positive finite number when configured.\"\n )\n }\n if (absoluteTimeoutMs !== undefined && absoluteTimeoutMs < idleTimeoutMs) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n \"[Sixb] Auth session absoluteTimeoutMs must be greater than or equal to idleTimeoutMs.\"\n )\n }\n\n const cacheTtlMs = options?.cacheTtlMs ?? DEFAULT_AUTH_SESSION_CACHE_TTL_MS\n if (!Number.isFinite(cacheTtlMs) || cacheTtlMs < 0) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n \"[Sixb] Auth session cacheTtlMs must be a non-negative finite number.\"\n )\n }\n if (cacheTtlMs >= renewalWindowMs) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n \"[Sixb] Auth session cacheTtlMs must be less than renewalWindowMs.\"\n )\n }\n\n return {\n idleTimeoutMs,\n renewalWindowMs,\n ...(absoluteTimeoutMs === undefined ? {} : { absoluteTimeoutMs }),\n cacheTtlMs,\n }\n}\n\nexport function isMagicLinkAuthStrategy(\n strategy: AuthStrategy | null\n): strategy is MagicLinkAuthStrategy {\n if (!strategy || strategy.kind !== \"magicLink\") {\n return false\n }\n\n const candidate = strategy as {\n readonly requestMagicLink?: unknown\n readonly completeMagicLinkSignIn?: unknown\n }\n\n return (\n typeof candidate.requestMagicLink === \"function\" &&\n typeof candidate.completeMagicLinkSignIn === \"function\"\n )\n}\n\nexport function isInvitationDeliveryAuthStrategy(\n strategy: AuthStrategy | null\n): strategy is InvitationDeliveryAuthStrategy {\n if (!strategy) {\n return false\n }\n\n const candidate = strategy as {\n readonly deliverInvitation?: unknown\n }\n\n return typeof candidate.deliverInvitation === \"function\"\n}\n\nexport function isOidcAuthStrategy(strategy: AuthStrategy | null): strategy is OidcAuthStrategy {\n if (!strategy || strategy.kind !== \"oidc\") {\n return false\n }\n\n const candidate = strategy as {\n readonly startOidcSignIn?: unknown\n readonly completeOidcSignIn?: unknown\n }\n\n return (\n typeof candidate.startOidcSignIn === \"function\" &&\n typeof candidate.completeOidcSignIn === \"function\"\n )\n}\n\nfunction assertValidStrategy(strategy: AuthStrategy): void {\n if (!strategy.id.trim()) {\n throw new AuthRuntimeError(\"invalid_auth_config\", \"[Sixb] Auth strategy id is required.\")\n }\n}\n"
9
- ],
10
- "mappings": "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",
11
- "debugId": "E4EC0B2B5EB9DD3264756E2164756E21",
12
- "names": []
13
- }